com.atiproto.subscription
{
"$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
}
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.
-
blue.hearth.tier record
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…
-
blue.hearth.entitlement record
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…