List rate plans
Present an API key (sb_live_… / sb_test_…), an OAuth2 access token, or a static token as a Bearer credential. The operator is implied by the credential; it is never in the path. Only a SHA-256 hash of an API key is stored server-side.
In: header
Query Parameters
Opaque pagination cursor from meta.cursor.next of the previous page. Do not construct or parse it.
Page size. Values above the maximum are clamped.
1 <= value <= 10025Filter by unit type.
uuidFilter to a single site.
uuidResponse Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/rate-plans"{ "data": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "object": "rate_plan", "site_id": "72771e6a-6f5e-4de4-a5b9-1266c4197811", "unit_type_id": "09feeea8-7692-422e-90f1-4a851084cb1a", "name": "string", "billing_interval": "week", "price_minor": 0, "currency": "str", "min_term_months": 0, "effective_from": "2019-08-24", "effective_to": "2019-08-24", "is_active": true, "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ], "meta": { "limit": 0, "cursor": { "next": "string", "has_more": true } }}{ "error": { "code": "unauthorized", "message": "Missing or invalid credential." }}{ "error": { "code": "insufficient_scope", "message": "The credential lacks a scope required by this endpoint." }}{ "error": { "code": "rate_limited", "message": "Rate limit exceeded. Retry after 7s." }}{ "error": { "code": "validation_error", "message": "string", "details": [ { "field": "string", "issue": "string" } ] }}List products GET
Previous Page
Update a coupon PATCH
Changes the fields given; an absent field is left as it is. A quote that is still live bills its promotion as it was sent, so while one carries this coupon, what the coupon takes off (`discount_kind`, `discount_value`, `currency`, `duration`, `duration_months`) cannot change and a change to it is refused with a 409 ("Quotes sent with this promotion hold its terms until 12th Oct ’26. Make a new promotion instead."). Sending the same values again, and every other field, is accepted. A code another coupon already has is also a 409.