Version
GET

List a subscription's pass moves

/v1/subscriptions/{subscription}/pass-moves in the Subscriptions API.

curl https://api.subscriby.net/v1/subscriptions/$SUBSCRIPTION_ID/pass-moves \  -H "Authorization: Bearer $SUBSCRIBY_TOKEN"

Every hop the purchase's passes made, oldest first, from the project's pass move log: a date cancelled and the holder rolled forward (window_cancelled), a season date replaced by another (series_date_substituted), or a payment that settled after the date it was for and was bound to the next one (paid_after_window). Each hop names both dates by id and as a person reads them in the plan's zone, who made it (moved_by_user_id and moved_by_name, null when the platform made it on its own) and when. The ledger rewrites a moved pass in place and keeps only its last move; the log keeps them all, so a pass moved twice answers two rows. A purchase with no dated passes answers an empty list. Moves made before the log existed were carried over once from the ledger with the last move it remembered for each pass.

Reads under project-subscription:view, the subscription's own gate, and resolves the subscription as the token may see it: a stranger's purchase is a 404 RESOURCE_NOT_FOUND. The same hops reach the Pass Roster as departures, and pass.holder_moved carries each one's move_id as it happens.

GET
/v1/subscriptions/{subscription}/pass-moves

The token must hold this ability, or the call is refused with 403.

Runs the same action from an agent, behind the same ability.

Authorization

bearerToken
AuthorizationBearer <token>

A personal access token minted on the dashboard under Settings, then Tokens, sent as Authorization: Bearer sbt_live_…. The token carries the abilities each endpoint lists under Requires ability and is frozen to one team.

In: header

Path Parameters

subscription*string

The subscription, resolved by the route binder.

Formatuuid

Responses

200OK

Array of PassMoveResource

401Unauthorized

The request carries no bearer token, or one that is revoked, malformed, or minted for another environment (an sbt_test_ token on production).

403Forbidden

The token is valid but does not carry the ability this endpoint requires; error.context.required_ability names the one to grant. An endpoint that also checks who owns a row or which tier the account is on answers FORBIDDEN, TEAM_TIER_REQUIRED or CONNECTOR_TIER_REQUIRED with the same status, and says so in its own description.

404Not found

An id in the path names nothing the token can see. TENANT_MISMATCH: the project sits outside the token's scope:project: allow-list, or the token carries no team scope. Both answer 404 rather than 403 so that existence outside the token's scope cannot be inferred.

429Too many requests

The token has spent its 300 requests a minute or 10,000 an hour; Retry-After says when the next one is accepted.

How is this guide?

Last updated on