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

Check a customer's access

Whether a customer may use a plan, and what explains the answer. Always 200 for a customer, subscribed or not: a customer who never subscribed answers access: false with status: "none". The 404 is about the slug, never about them.
Leave plan out to get every plan of the project the customer has anything on.
On a plan with an end date, nobody has access past that date: access is false from the plan's end on and access_until is never later, whatever period was paid for. The subscription turns ended within minutes of it, so status can still read active or unpaid for that long with access false. Gate on access.
A charge may be held for a reason that is not the customer's: the answer then carries blocked_since and blocked_reason, both null otherwise. status and payment_status stay as they were, and Mesub keeps trying. access is never true past access_until on a blocked subscription. Lifecycle says what each reason asks of you.
GEThttps://api.mesub.io/v1/access
GETCheck access
https://api.mesub.io/v1/access

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.

Query
cURL
curl "https://api.mesub.io/v1/access" \
  -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: Check access.

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/access?external_id=user_42&plan=pro" \ -H "Authorization: Bearer $MESUB_API_KEY"
Response example
{ "wallet": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin", "plan": "pro", "subscription_id": "cmg1x0abc0001", "access": true, "status": "active", "paused": false, "end_reason": null, "late_reason": null, "stop_reason": null, "payment_status": "paid", "blocked_since": null, "blocked_reason": null, "subscribed_since": "2026-01-01T00:00:05.000Z", "first_subscribed_at": "2026-01-01T00:00:05.000Z", "current_period_end": "2026-01-31T00:00:00.000Z", "cancelled_at": null, "access_until": "2026-01-31T00:00:00.000Z", "closable": false, "closable_from": null, "next_charge_at": "2026-01-31T00:00:00.000Z", "next_retry_at": null, "retry_deadline": null, "revalidate_after": 300 }