Endpoints

Billing

GET/api/v1/me/billing/plans

List all available subscription plans.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X GET "https://example.com/api/v1/me/billing/plans"
{  "plans": [    {      "id": "string",      "name": "string",      "display_name": "string",      "price_monthly": 0,      "price_yearly": 0,      "paddle_price_id_monthly": "string",      "paddle_price_id_yearly": "string",      "max_monitors": 0,      "min_interval_seconds": 0,      "max_team_members": 0,      "max_status_pages": 0,      "features": [        "string"      ]    }  ]}
GET/api/v1/me/billing/subscription

Get current subscription and usage for the authenticated organization.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X GET "https://example.com/api/v1/me/billing/subscription"
{  "subscription": {    "id": "string",    "plan": {      "id": "string",      "name": "string",      "display_name": "string",      "price_monthly": 0,      "price_yearly": 0,      "paddle_price_id_monthly": "string",      "paddle_price_id_yearly": "string",      "max_monitors": 0,      "min_interval_seconds": 0,      "max_team_members": 0,      "max_status_pages": 0,      "features": [        "string"      ]    },    "status": "string",    "paddle_subscription_id": "string",    "paddle_customer_id": "string",    "current_period_start": "string",    "current_period_end": "string",    "next_billed_at": "string",    "scheduled_change": {},    "payment_method": {}  },  "usage": {    "plan": {      "name": "string",      "display_name": "string",      "max_monitors": 0,      "max_team_members": 0,      "max_status_pages": 0,      "min_interval_seconds": 0,      "analytics_retention_days": 0,      "data_retention_days": 0,      "api_rate_limit_per_min": 0,      "api_key_rate_limit_per_min": 0,      "notification_channels": [        "string"      ],      "multi_region_enabled": true,      "heartbeat_enabled": true    },    "logs_gb": {      "current": 0,      "limit": 0,      "percentage": 0,      "overage_billable": true    },    "traces_millions": {      "current": 0,      "limit": 0,      "percentage": 0,      "overage_billable": true    },    "metrics_millions": {      "current": 0,      "limit": 0,      "percentage": 0,      "overage_billable": true    },    "monitors": {      "used": 0,      "limit": 0,      "utilization_pct": 0    },    "team_members": {      "used": 0,      "limit": 0,      "utilization_pct": 0    },    "status_pages": {      "used": 0,      "limit": 0,      "utilization_pct": 0    },    "min_interval_seconds": 0,    "analytics_retention_days": 0,    "data_retention_days": 0,    "api_rate_limit_per_min": 0,    "api_key_rate_limit_per_min": 0,    "notification_channels": [      "string"    ],    "multi_region_enabled": true,    "heartbeat_enabled": true  }}
GET/api/v1/me/billing/usage

Get current resource usage for the organization.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X GET "https://example.com/api/v1/me/billing/usage"
{  "plan": {    "name": "string",    "display_name": "string",    "max_monitors": 0,    "max_team_members": 0,    "max_status_pages": 0,    "min_interval_seconds": 0,    "analytics_retention_days": 0,    "data_retention_days": 0,    "api_rate_limit_per_min": 0,    "api_key_rate_limit_per_min": 0,    "notification_channels": [      "string"    ],    "multi_region_enabled": true,    "heartbeat_enabled": true  },  "logs_gb": {    "current": 0,    "limit": 0,    "percentage": 0,    "overage_billable": true  },  "traces_millions": {    "current": 0,    "limit": 0,    "percentage": 0,    "overage_billable": true  },  "metrics_millions": {    "current": 0,    "limit": 0,    "percentage": 0,    "overage_billable": true  },  "monitors": {    "used": 0,    "limit": 0,    "utilization_pct": 0  },  "team_members": {    "used": 0,    "limit": 0,    "utilization_pct": 0  },  "status_pages": {    "used": 0,    "limit": 0,    "utilization_pct": 0  },  "min_interval_seconds": 0,  "analytics_retention_days": 0,  "data_retention_days": 0,  "api_rate_limit_per_min": 0,  "api_key_rate_limit_per_min": 0,  "notification_channels": [    "string"  ],  "multi_region_enabled": true,  "heartbeat_enabled": true}
POST/api/v1/me/billing/checkout-settings

Get Paddle checkout configuration for the frontend overlay. Requires Owner role.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X POST "https://example.com/api/v1/me/billing/checkout-settings"
{  "price_id": "string",  "customer_email": "string",  "custom_data": {    "property1": "string",    "property2": "string"  },  "settings": {    "display_mode": "string",    "theme": "string",    "locale": "string"  }}
POST/api/v1/me/billing/cancel

Cancel subscription at end of current billing period. Requires Owner role.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X POST "https://example.com/api/v1/me/billing/cancel"
{  "scheduled_change": {},  "message": "string"}
POST/api/v1/me/billing/resume

Resume a subscription scheduled for cancellation. Requires Owner role.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X POST "https://example.com/api/v1/me/billing/resume"
{  "message": "string"}
POST/api/v1/me/billing/change-plan

Change subscription plan (upgrade or downgrade). Requires Owner role.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X POST "https://example.com/api/v1/me/billing/change-plan"
{}
POST/api/v1/me/billing/portal-session

Generate a Paddle customer portal URL for the org owner.

Returns {"url": "https://customer.paddle.com?ctok=..."} on success. Requires the org owner role. Returns 503 if Paddle is not configured.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X POST "https://example.com/api/v1/me/billing/portal-session"
{  "url": "string"}
GET/api/v1/me/billing/transactions

List transaction history for the organization.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Query Parameters

page?Page
Default1
per_page?Per Page
Default20

Response Body

application/json

application/json

curl -X GET "https://example.com/api/v1/me/billing/transactions"
{  "transactions": [    {      "id": "string",      "paddle_transaction_id": "string",      "status": "string",      "amount": 0,      "currency": "string",      "tax_amount": 0,      "receipt_url": "string",      "billed_at": "string",      "created_at": "string"    }  ],  "pagination": {    "page": 0,    "per_page": 0,    "total": 0  }}