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

Submit a subscription

Relays what the wallet signed: the transaction and the terms. Mesub checks both signatures, co-signs, sends the transaction and waits for the chain, so this call is slow by design: up to 90 seconds.
Safe to send again unchanged. Mesub recognises what it already co-signed and answers from the chain, so a customer is never charged twice.
A transaction submitted after its 150 blocks, about half a minute, is refused with transaction_expired: nothing was sent, and the same submit sent again cannot land. Ask for a fresh transaction, have the wallet sign it, and sign the terms again if their message changed.
POSThttps://api.mesub.io/v1/subscriptions/{id}/submit
POSTSubmit a subscription
https://api.mesub.io/v1/subscriptions/{id}/submit

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
Body

Fill id, transaction, terms_signature to send.

cURL
curl -X POST "https://api.mesub.io/v1/subscriptions/{id}/submit" \
  -H "Authorization: Bearer $MESUB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Response

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

Limit: 60 calls a minute per API key.Guide: Subscribe from your server.

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 -X POST "https://api.mesub.io/v1/subscriptions/cmg1x0abc0001/submit" \ -H "Authorization: Bearer $MESUB_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "transaction": "gAIBBg0Xq3ZkT9yLmR4vP7wJ8sN2aHcVbE5uYtKfDgQxWz1oMiCj6rA0lSnUhBdXe2GqFpYv7mNcTz4RwK8sLjH5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIDBAUGBwgJCgsM", "terms_signature": "2Jd8sPq7XkVnT4mWcR9yHbFz3LgNuA6eKtQx5CvMjD1rYpZwSoEiGhUa8BfT2nXkVq4mWcR7yHbFz9LgNuA3eKtQ" }'
Response example
{ "subscription": { "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" } }