Endpoints
| Method | Endpoint | Auth | Purpose |
|---|---|---|---|
GET | /api/agents/v1/subscriptions/plans | Bearer token | List available subscription plans and pay-as-you-go options |
GET | /api/agents/v1/subscriptions | Bearer token | List user subscriptions (addon, enterprise, normal) |
POST | /api/agents/v1/subscriptions | Bearer token | Create subscription — headless with payment_method_id or Checkout redirect |
POST | /api/agents/v1/subscriptions/confirm-checkout | Bearer token | Confirm a Stripe Checkout subscription session |
GET | /api/agents/v1/subscriptions/{id}/status | Bearer token | Check subscription status |
PUT | /api/agents/v1/subscriptions/{id} | Bearer token | Change subscription plan |
POST | /api/agents/v1/subscriptions/{id}/pause | Bearer token | Pause subscription |
POST | /api/agents/v1/subscriptions/{id}/resume | Bearer token | Resume subscription |
POST | /api/agents/v1/subscriptions/{id}/reset-cycle | Bearer token | Reset billing cycle anchor |
Discover available plans
Use this endpoint to list all subscription plans and learn about pay-as-you-go options before creating a subscription.id from a plan in subscription_plans as the plan_id when creating a subscription. Alternatively, use the pay-as-you-go option by funding your wallet directly.
Create subscription (Headless — Recommended for Agents)
Create a subscription using apayment_method_id obtained from the Stripe API. No browser redirect needed.
First, fetch the publishable key via GET /billing/stripe-config, then create a PaymentMethod via the Stripe API (see Headless Agent Flow for details):
plan_id(required, integer): The plan ID from the/subscriptions/plansendpointpayment_method_id(optional, string): Stripe PM ID from the Stripe API. If omitted, falls back to Stripe Checkout redirect.success_url/cancel_url(optional): Only used whenpayment_method_idis omitted (Checkout redirect flow).
If the card requires 3D Secure, the response returns HTTP 402 with
decline_code details. Cards requiring authentication should be handled via modelslab.com/pricing instead.Confirm subscription checkout (Human-Assisted flow)
After a human completes a subscription payment via a Stripe Checkout URL (created withPOST /billing/payment-link with purpose: "subscribe"), the agent confirms the session to activate the subscription. The human is redirected to ModelsLab’s success page after payment, where the session_id is displayed for them to copy and relay back to the agent.
session_id(required, string): The Stripe Checkout session ID fromPOST /billing/payment-linkresponse or copied by the human from the success page
Check subscription status
status values: active, past_due, canceled, paused, trialing.

