Skip to main content
POST
/
subscriptions
/
checkout
curl -X POST https://api.llmgenerator.com/api/v1/subscriptions/checkout \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "planId": "professional",
    "successUrl": "https://yourapp.com/subscription/success",
    "cancelUrl": "https://yourapp.com/pricing"
  }'
{
  "sessionId": "cs_test_a1b2c3d4e5f6g7h8i9j0",
  "url": "https://checkout.stripe.com/c/pay/cs_test_a1b2c3d4...",
  "plan": {
    "id": "professional",
    "name": "Professional",
    "monthlyCredits": 3000,
    "priceCents": 1299
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.llmgenerator.com/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Creates a Stripe checkout session for subscribing to a plan. Returns a URL where you should redirect the user to complete the payment. Requires session-based authentication (JWT access token).
For third-party integrations: Use POST /subscriptions/checkout/api with API Key authentication instead.

Authentication

Authorization
string
required
Your JWT access token. Format: Bearer YOUR_ACCESS_TOKEN

Request Body

planId
string
required
The plan identifier to subscribe to. Must be one of: starter, professional, business, or agency.
billingCycle
string
default:"monthly"
Billing frequency. Options: monthly or yearly.
successUrl
string
URL to redirect to after successful payment. Defaults to application dashboard.
cancelUrl
string
URL to redirect to if user cancels payment. Defaults to pricing page.
curl -X POST https://api.llmgenerator.com/api/v1/subscriptions/checkout \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "planId": "professional",
    "successUrl": "https://yourapp.com/subscription/success",
    "cancelUrl": "https://yourapp.com/pricing"
  }'
{
  "sessionId": "cs_test_a1b2c3d4e5f6g7h8i9j0",
  "url": "https://checkout.stripe.com/c/pay/cs_test_a1b2c3d4...",
  "plan": {
    "id": "professional",
    "name": "Professional",
    "monthlyCredits": 3000,
    "priceCents": 1299
  }
}

Response Fields

sessionId
string
Stripe checkout session ID. Can be used to verify the session later.
url
string
URL to redirect the user to for payment. This is a Stripe-hosted checkout page.
plan
object
Details of the selected plan.

Checkout Flow

  1. Create session: Call this endpoint with the desired plan
  2. Redirect user: Send user to the returned url
  3. Payment processing: User completes payment on Stripe
  4. Webhook: Stripe notifies your webhook endpoint
  5. Success redirect: User is redirected to successUrl
  6. Verify (optional): Check subscription status via /subscriptions/current

Error Responses

400
Bad Request - Invalid plan ID or user already has an active subscription.
401
Unauthorized - Invalid or missing token.
If the user already has an active subscription, they should use the billing portal (/subscriptions/portal) to change plans instead.

POST /subscriptions/checkout/api

Creates a Stripe checkout session using API Key authentication. Ideal for third-party integrations.

Authentication

Requires API Key authentication. Include your API key in the Authorization header:
Authorization: Bearer llmgen_your_api_key_here

Request Body

Same as /subscriptions/checkout above.

Response

Same as /subscriptions/checkout above.
curl -X POST https://api.llmgenerator.com/api/v1/subscriptions/checkout/api \
  -H "Authorization: Bearer llmgen_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "planId": "professional",
    "successUrl": "https://yourapp.com/subscription/success",
    "cancelUrl": "https://yourapp.com/pricing"
  }'