All routes require an authenticated Medusa Admin user. Unauthenticated requests return
401.Status values
| Value | Meaning |
|---|---|
active | Subscription is billing normally |
paused | Subscription is on hold |
cancelled | Subscription has been terminated |
past_due | Last renewal failed; dunning may be active |
GET /admin/subscriptions
Returns the paginated subscription list for Admin DataTable views.Query parameters
Number of results per page. Defaults to 20.
Zero-based result offset for pagination.
Free-text search across customer name, email, and reference.
Field to sort by. Supported database-backed fields:
created_at, updated_at, status, frequency_interval, frequency_value, next_renewal_at, trial_ends_at, skip_next_cycle. Supported in-memory fields: customer_name, customer_email, product_title, variant_title, discount_value.Sort direction. One of
asc or desc.Filter by subscription status. Accepts a single value or an array.
Filter by customer ID.
Filter by product ID.
Filter by variant ID.
ISO datetime lower bound for
next_renewal_at.ISO datetime upper bound for
next_renewal_at.Filter to trial subscriptions only.
Filter by whether the next cycle is skipped.
Response
Array of subscription list items.
Total matching records.
Page size used.
Result offset used.
Response example
Errors
| Code | Error | Meaning |
|---|---|---|
400 | invalid_data | Invalid query parameter shape, unsupported query value, or unsupported sort field |
GET /admin/subscriptions/:id
Returns the full detail payload for a single subscription.Path parameters
Subscription ID.
Response
Returns asubscription object with all list fields plus:
Response example
Errors
| Code | Error | Meaning |
|---|---|---|
404 | not_found | Subscription does not exist |
POST /admin/subscriptions/:id/pause
Pauses an active subscription. All mutation routes return the refreshed full detail payload.Path parameters
Subscription ID.
Body parameters
Optional reason for the pause.
ISO datetime for when the pause takes effect. Optional.
Request example
Errors
| Code | Error | Meaning |
|---|---|---|
400 | invalid_data | Invalid body payload |
404 | not_found | Subscription does not exist |
409 | conflict | Subscription cannot be paused from its current state |
POST /admin/subscriptions/:id/resume
Resumes a paused subscription.Path parameters
Subscription ID.
Body parameters
ISO datetime for when the subscription resumes. Optional.
When
true, keeps the original billing anchor date. Optional.Request example
Errors
| Code | Error | Meaning |
|---|---|---|
400 | invalid_data | Invalid body payload |
404 | not_found | Subscription does not exist |
409 | conflict | Subscription cannot be resumed from its current state |
POST /admin/subscriptions/:id/cancel
Cancels a subscription immediately or at end of cycle.Path parameters
Subscription ID.
Body parameters
Optional cancellation reason.
When to apply the cancellation. One of
immediately or end_of_cycle. Optional.Request example
Errors
| Code | Error | Meaning |
|---|---|---|
400 | invalid_data | Invalid body payload |
404 | not_found | Subscription does not exist |
409 | conflict | Subscription cannot be cancelled from its current state |
POST /admin/subscriptions/:id/schedule-plan-change
Stores a future plan or cadence update inpending_update_data. The change is applied at the next renewal or at the specified effective_at date.
Path parameters
Subscription ID.
Body parameters
Target variant ID for the plan change.
New billing interval. One of
week, month, or year.New billing cadence as a positive integer.
ISO datetime when the change becomes effective. Optional.
Request example
pending_update_data is returned inside the refreshed subscription detail payload after the change is scheduled.Errors
| Code | Error | Meaning |
|---|---|---|
400 | invalid_data | Invalid body payload |
404 | not_found | Subscription does not exist |
409 | conflict | Plan change is not allowed for the current subscription state |
POST /admin/subscriptions/:id/update-shipping-address
Updates the subscription shipping address snapshot used by Admin and future operational flows.Path parameters
Subscription ID.
Body parameters
First name.
Last name.
Primary address line.
City.
Postal or ZIP code.
Two-letter ISO country code.
Company name. Optional.
Secondary address line. Optional.
Province or state. Optional.
Phone number. Optional.
Request example
Errors
| Code | Error | Meaning |
|---|---|---|
400 | invalid_data | Invalid body payload |
404 | not_found | Subscription does not exist |