diff --git a/api-reference/openapi/accounts.json b/api-reference/openapi/accounts.json index 4ad84341..92338660 100644 --- a/api-reference/openapi/accounts.json +++ b/api-reference/openapi/accounts.json @@ -415,6 +415,78 @@ } } }, + "/api/subscription/status": { + "get": { + "servers": [ + { + "url": "https://api.recoupable.com" + } + ], + "description": "Check whether an account has an active pro subscription. Checks both direct account subscriptions and organization-level subscriptions in parallel. Returns a single boolean `isPro` flag.", + "security": [ + { + "apiKeyAuth": [] + }, + { + "bearerAuth": [] + } + ], + "parameters": [ + { + "name": "accountId", + "in": "query", + "description": "Filter to a specific account. Only applicable when the authenticated account has access to multiple accounts via organization membership; if not provided, the API key's own account is used.", + "required": false, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Subscription status retrieved successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionStatusResponse" + } + } + } + }, + "400": { + "description": "Bad request — missing or invalid `accountId`", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccountErrorResponse" + } + } + } + }, + "401": { + "description": "Unauthorized — invalid or missing authentication", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccountErrorResponse" + } + } + } + }, + "403": { + "description": "Forbidden - account override not permitted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccountErrorResponse" + } + } + } + } + } + } + }, "/api/workspaces": { "post": { "description": "Create a new workspace account. Workspaces can optionally be linked to an organization.", @@ -2934,6 +3006,19 @@ "example": "Verified" } } + }, + "SubscriptionStatusResponse": { + "type": "object", + "required": [ + "isPro" + ], + "properties": { + "isPro": { + "type": "boolean", + "description": "`true` if the account has an active pro subscription (via a direct account subscription or an organization-level subscription); `false` otherwise.", + "example": true + } + } } } } diff --git a/api-reference/subscriptions/status.mdx b/api-reference/subscriptions/status.mdx new file mode 100644 index 00000000..6decd6c2 --- /dev/null +++ b/api-reference/subscriptions/status.mdx @@ -0,0 +1,4 @@ +--- +title: 'Get Subscription Status' +openapi: '/api-reference/openapi/accounts.json GET /api/subscription/status' +--- diff --git a/docs.json b/docs.json index 997442ca..0a6d8a0c 100644 --- a/docs.json +++ b/docs.json @@ -328,7 +328,8 @@ { "group": "Subscriptions", "pages": [ - "api-reference/subscriptions/get" + "api-reference/subscriptions/get", + "api-reference/subscriptions/status" ] }, {