Technical Preview - ATProtoFans is in early access. Learn more

XRPC API Reference

This document describes the ATProtoFans XRPC query endpoints.

com.atprotofans.validateSupporter

Validate if a DID is a supporter of another identity with attestations from a specific signer.

Query Parameters

Parameter Type Required Description
supporter string (DID) Yes DID of the supporter to validate
subject string (DID) Yes DID of the subject (creator) being supported
signer string (DID) Yes DID of the signer whose attestation must be valid

Response

{
  "valid": true,
  "profile": {
    "did": "did:plc:abc123",
    "handle": "supporter.bsky.social",
    "displayName": "Jane Supporter",
    "supporterCount": 5
  }
}

Fields

Field Type Description
valid boolean Whether the supporter relationship exists and the required attestation is valid
profile HydratedProfile Hydrated profile of the supporter (optional, included when valid)

Errors

Error Description
InvalidRequest Invalid DID format or missing required parameters
ServiceUnavailable Validation service temporarily unavailable

com.atprotofans.getSupporters

Get a paginated list of supporters for a subject.

Query Parameters

Parameter Type Required Description
subject string (DID) Yes DID of the creator
limit integer No Maximum number of results (default: 50, max: 100)
cursor string No Pagination cursor for fetching additional results

Response

{
  "supporters": [
    {
      "did": "did:plc:abc123",
      "handle": "fan1.bsky.social",
      "displayName": "Fan One",
      "supporterCount": 3
    },
    {
      "did": "did:plc:def456",
      "handle": "fan2.bsky.social",
      "displayName": "Fan Two",
      "supporterCount": 0
    }
  ],
  "cursor": "50"
}

Fields

Field Type Description
supporters array List of supporter profiles (HydratedProfile)
cursor string Pagination cursor for fetching the next page (optional, omitted on last page)

Errors

Error Description
InvalidRequest Invalid DID format

com.atprotofans.getProfile

Get profile information for a subject.

Query Parameters

Parameter Type Required Description
subject string (DID) Yes DID of the profile to fetch

Response

Returns a com.atprotofans.hydratedProfile object.

{
  "did": "did:plc:abc123",
  "handle": "creator.bsky.social",
  "displayName": "Jane Creator",
  "description": "Making cool things!",
  "acceptingSupporters": true,
  "supporterCount": 42
}

Fields

Field Type Description
did string (DID) DID of the profile owner
handle string Handle of the profile owner
displayName string Display name
description string Profile bio/description
facets array Rich text facets for description annotations
avatar blob Avatar image blob reference
banner blob Banner image blob reference
acceptingSupporters boolean Whether accepting new supporters
supporterCount integer Number of supporters for this profile

Errors

Error Description
InvalidRequest Invalid DID format
ProfileNotFound No profile found for the given DID