Gensprite
Billing

Get the plan on this account

GET
/v1/subscription

Read from our own database rather than from Stripe: every subscription change arrives as a webhook and is mirrored on write, so this answers from one row and keeps answering when the payment provider is slow.

subscription is absent for an account that has never bought a plan. That is the ordinary case and a 200 with an empty envelope, not a 404.

renews_at is the end of the paid period: when the next allowance lands, or - when cancel_at_period_end is true - when the plan stops. Treat an unrecognised status the same way you treat no subscription at all.

Authorization

AuthorizationBearer <token>

API key: Authorization: Bearer gsk_.... Used by the Godot plugin, the MCP server and the engine.

In: header

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/subscription"
{  "subscription": {    "product_id": "string",    "status": "active",    "renews_at": "2019-08-24T14:15:22Z",    "cancel_at_period_end": true  }}