Skip to main content
GET

List Subscriptions

Intro

Retrieve every subscription created against your products, with filtering by status or product and standard pagination. This is the endpoint to reach for when you need a dashboard view or a periodic sync of subscription state, rather than a lookup on one record.

Context

This is one of three subscription endpoints in the Partner API, alongside Get Subscription and Cancel Subscription. Subscriptions themselves are created indirectly — by adding subscription_frequency_key to a charge or session request — not through this API; see Subscriptions for how recurring billing is set up and billed. This endpoint only reads. Results are always scoped to the merchant your API key belongs to, and to that key’s environment: a sandbox key only ever sees sandbox subscriptions, a live key only live ones. A subscription created against one of your products never appears for another merchant, regardless of who queries.

Hows

GET /subscriptions

Query parameters

Response

product and customer are null if the linked record can’t be resolved. price is the recurring charge amount in minor units, in currency. trial is always present — is_on_trial is false and the date fields are null for subscriptions that never had a trial.

Errors

Whys

Filtering happens server-side against your product list rather than requiring you to pass merchant identifiers — the API key already carries that scope, so product_id only needs to identify which of your products, and ownership is checked before it’s used in the query. This is also why an unrecognized product_id returns 404 PRODUCT_NOT_FOUND instead of an empty list: a filter on someone else’s product should look like it doesn’t exist, not like it matched nothing. Responses for this endpoint are cached briefly server-side, which is why a subscription’s status can lag a few minutes behind a change made through the dashboard or a webhook-driven update. This trades a small amount of staleness for materially lower load on a query that’s easy to poll aggressively.

Why nots

  • This endpoint doesn’t return payment history or trial timelines beyond the summary trial block — use Get Subscription for the full record, including payment_history and plan snapshot.
  • There’s no full-text or customer-email search; filtering is limited to status and product_id. If you need to find a specific customer’s subscriptions by email, resolve the customer first and filter client-side, or page through with a tight product_id.
  • Don’t rely on this list to reflect a cancellation the instant it happens — given the short cache window, a status change from Cancel Subscription may not show up here for a few minutes even though the cancellation itself already took effect.