com.atiproto.subscription

atiproto.com

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A record representing a subscription from one user to another",
      "key": "any",
      "record": {
        "properties": {
          "accessUntil": {
            "description": "Date until which the subscriber retains access after cancellation",
            "format": "datetime",
            "type": "string"
          },
          "amount": {
            "description": "Subscription amount in cents (0 for free subscriptions)",
            "minimum": 0,
            "type": "integer"
          },
          "billingStartDate": {
            "description": "First billing period, can be used to determine recurrence",
            "format": "datetime",
            "type": "string"
          },
          "cancelledAt": {
            "description": "Cancellation timestamp",
            "format": "datetime",
            "type": "string"
          },
          "createdAt": {
            "description": "Creation timestamp",
            "format": "datetime",
            "type": "string"
          },
          "currency": {
            "description": "ISO 4217 currency code",
            "maxLength": 3,
            "type": "string"
          },
          "interval": {
            "description": "Billing interval",
            "enum": [
              "monthly",
              "yearly"
            ],
            "maxLength": 64,
            "type": "string"
          },
          "status": {
            "description": "Subscription status",
            "enum": [
              "pending",
              "active",
              "past_due",
              "cancelled",
              "expired"
            ],
            "maxLength": 64,
            "type": "string"
          },
          "subject": {
            "description": "DID of the user being subscribed to",
            "format": "did",
            "type": "string"
          }
        },
        "required": [
          "subject",
          "amount",
          "currency",
          "interval",
          "status",
          "billingStartDate",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "view": {
      "description": "View of a subscription record for use in API responses",
      "properties": {
        "accessUntil": {
          "description": "Date until which the subscriber retains access after cancellation",
          "format": "datetime",
          "type": "string"
        },
        "amount": {
          "description": "Subscription amount in cents (0 for free subscriptions)",
          "minimum": 0,
          "type": "integer"
        },
        "billingStartDate": {
          "description": "First billing period, can be used to determine recurrence",
          "format": "datetime",
          "type": "string"
        },
        "cancelledAt": {
          "description": "Cancellation timestamp",
          "format": "datetime",
          "type": "string"
        },
        "createdAt": {
          "description": "Creation timestamp",
          "format": "datetime",
          "type": "string"
        },
        "currency": {
          "description": "ISO 4217 currency code",
          "maxLength": 3,
          "type": "string"
        },
        "interval": {
          "description": "Billing interval",
          "enum": [
            "monthly",
            "yearly"
          ],
          "maxLength": 64,
          "type": "string"
        },
        "renewalDate": {
          "description": "Next scheduled renewal/billing date. Server-derived from the billing schedule; not stored in PDS. Omitted when not applicable (e.g. cancelled or unauthenticated views).",
          "format": "datetime",
          "type": "string"
        },
        "status": {
          "description": "Subscription status",
          "enum": [
            "pending",
            "active",
            "past_due",
            "cancelled",
            "expired"
          ],
          "maxLength": 64,
          "type": "string"
        },
        "subject": {
          "description": "DID of the user being subscribed to",
          "format": "did",
          "type": "string"
        },
        "uri": {
          "description": "AT-URI of the subscription record",
          "format": "at-uri",
          "type": "string"
        }
      },
      "required": [
        "uri",
        "amount",
        "currency",
        "interval",
        "status",
        "billingStartDate",
        "createdAt"
      ],
      "type": "object"
    }
  },
  "id": "com.atiproto.subscription",
  "lexicon": 1
}

Validate Record

Validate a record against com.atiproto.subscription

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:4x5dcv6u4wlkjcssto7f22nu
CID
bafyreiayubrhbdzr7epptpjkistxbwn7l5ppf7iqtdf6rbhzawbiqqe5za
Indexed At
2026-04-29 14:50 UTC
AT-URI
at://did:plc:4x5dcv6u4wlkjcssto7f22nu/com.atproto.lexicon.schema/com.atiproto.subscription

Version History (2 versions)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • A recurring payment commitment. Immutable once created — supporters cancel and create new subscriptions to change terms. Bills on anniversary dates with automatic retry on failure.

  • Get a specific subscription sent by the authenticated user. Looks up by subscription record uri or subject (recipient) DID. These are mutually exclusive; uri takes precedence.

  • A subscription tier offered by a creator. Lives in the creator's repository, so the creator is the repo owner and is not repeated as a field. Tiers are tied to the creator's DID rather than to any publication or app.

  • Count active subscriptions. If subject is provided, counts subscriptions received by that DID. If omitted, counts subscriptions the authenticated user has active (as the subscriber). Optionally filtered by a start/end d…

  • Proof that a subscriber currently holds a tier. This is the record attested.network deliberately leaves undefined: its payment records prove a payment happened but carry no expiry, revocation or status, so they cannot a…

Lexicon Garden

@