Agent-readable docs index: /llms.txt. Full docs in one file: /llms-full.txt. Download /docs.zip to grep all markdown files locally.
Subscriptions

Retrieve a subscription

One subscription: its status, whether it grants access and until when, its wallet, email and external_id, the period it last paid for, and what comes next. access, payment_status and access_until are what Check access answers for it.
A superseded id, left out of the list, still answers here, so an id you stored keeps working.
On a plan with an end date, access is false from that date on and access_until is never later than it, whatever period was paid for. next_charge_at and next_retry_at are null once the plan ends before the charge or the retry.
GEThttps://api.mesub.io/v1/subscriptions/{id}
GETRetrieve a subscription
https://api.mesub.io/v1/subscriptions/{id}

Calls are real. They go to https://api.mesub.io and act on the project the key belongs to.

Authorization

The key stays in this browser and is sent only to the API. It is not stored or logged by the docs.

Path

Fill id to send.

cURL
curl "https://api.mesub.io/v1/subscriptions/{id}" \
  -H "Authorization: Bearer $MESUB_API_KEY"
Response

Send the request to see the status, the headers and the body.

Limit: 1,000 calls a minute per API key.Guide: Lifecycle.

Headers

Mesub-Versionenum<string>

The version of this contract the call is written against. Without it, the call is served as the first version, 2026-10-02. Any other value is refused with 400 unsupported_version.

One of2026-10-02

Request example
curl "https://api.mesub.io/v1/subscriptions/cmg1x0abc0001" \ -H "Authorization: Bearer $MESUB_API_KEY"
Response example
{ "id": "cmg1x0abc0001", "status": "active", "paused": false, "end_reason": null, "late_reason": null, "stop_reason": null, "access": true, "payment_status": "paid", "blocked_since": null, "blocked_reason": null, "plan": "pro", "wallet": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin", "email": "[email protected]", "external_id": "user_42", "current_period_start": "2026-01-01T00:00:00.000Z", "current_period_end": "2026-01-31T00:00:00.000Z", "next_charge_at": "2026-01-31T00:00:00.000Z", "next_retry_at": null, "retry_deadline": null, "next_retry_number": null, "retries_allowed": null, "access_until": "2026-01-31T00:00:00.000Z", "closable": false, "closable_from": null, "created_at": "2026-01-01T00:00:00.000Z", "confirmed_at": "2026-01-01T00:00:05.000Z" }