---
title: "Create a Stripe Checkout session for a monthly subscription plan"
method: POST
path: "/v1/billing/subscribe"
tags: ["Billing"]
---

# Create a Stripe Checkout session for a monthly subscription plan

`POST /v1/billing/subscribe`

## Request

- Base URL: `https://archtools.dev`
- URL: `https://archtools.dev/v1/billing/subscribe`
- Auth: API key in header `x-api-key`

Requires an API key or signed-in session. Plans: starter-monthly (10,000 credits/mo, $19), pro-monthly (30,000 credits/mo, $49), growth-monthly (75,000 credits/mo, $99), business-monthly (175,000 credits/mo, $199).

## Request body

- object
  - `plan` 'starter-monthly' | 'pro-monthly' | 'growth-monthly' | 'business-monthly', required: Subscription plan id (the `id` from GET /v1/billing/plans). Bare tier names sent as `plan` (starter, pro, growth, business) expand to the -monthly plan id.

## Response `200`

Stripe Checkout session created

- object
  - `ok` boolean
  - `url` string: Stripe Checkout URL — open it to complete payment
  - `session_id` string
  - `plan` string
  - `request_id` string

## Other responses

- `400`: Unknown plan id, or a one-time pack id was sent via `pack` (use POST /v1/billing/checkout for one-time packs)
- `401`: Missing or invalid API key/session
- `503`: Stripe not configured

---

[API](https://skmtc.dev/archtools/apis/arch-tools-api.md) · [All operations](https://skmtc.dev/archtools/apis/arch-tools-api/llms.txt) · [OpenAPI document](https://skmtc.dev/archtools/apis/arch-tools-api/revisions/ed6c1f974033?raw)
