ArcalotlArcalotl
Purchases

List purchases

Returns a keyset page of the community's one-time purchases, newest first.

Serverhttps://api.arcalotl.com
GET
/v1/purchases
AuthorizationBearer <token>

Community-scoped API key. Send it as Authorization: Bearer arclt_live_.... Keys carry scopes; endpoints that need a specific scope answer 403 missing_scope when the key lacks it.

In: header

Query Parameters

cursor?string

Opaque keyset cursor copied verbatim from a previous response's next_cursor. Omit it to fetch the first page.

limit?integer

Page size, capped at 100.

Default25
Range1 <= value <= 100

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://example.com/v1/purchases?cursor=eyJpZCI6IjAxSk1aWDQ3In0&limit=25"
{
  "data": [
    {
      "id": "pur_01JMZX9E7P",
      "status": "completed",
      "plan_id": "plan_01JMZX3B2K",
      "plan_name": "Lifetime",
      "tier_id": "tier_01JMZX2A9F",
      "tier_name": "VIP",
      "member_id": "mem_01JMZX1Z7D",
      "amount_cents": 4900,
      "currency": "usd",
      "access_expires_at": "2027-05-01T00:00:00Z",
      "paid_at": "2026-05-01T12:00:05Z",
      "created_at": "2026-05-01T12:00:00Z"
    }
  ],
  "next_cursor": "eyJpZCI6InB1cl8wMUpNWlg5RSJ9"
}
{
  "type": "https://docs.arcalotl.com/api/errors#invalid_request",
  "title": "Bad Request",
  "status": 400,
  "detail": "The 'cursor' parameter is not a valid cursor from a previous response.",
  "code": "invalid_request"
}
{
  "type": "https://docs.arcalotl.com/api/errors#unauthorized",
  "title": "Unauthorized",
  "status": 401,
  "detail": "A valid API key is required. Provide it as 'Authorization: Bearer arclt_live_...'.",
  "code": "unauthorized"
}
{
  "type": "https://docs.arcalotl.com/api/errors#missing_scope",
  "title": "Forbidden",
  "status": 403,
  "detail": "This API key is missing the required scope: subscriptions:read.",
  "code": "missing_scope"
}
{
  "type": "https://docs.arcalotl.com/api/errors#rate_limited",
  "title": "Too Many Requests",
  "status": 429,
  "detail": "Rate limit exceeded. Retry after the interval in the Retry-After header.",
  "code": "rate_limited"
}