---
title: "Create Polar checkout session"
method: POST
path: "/api/v1/billing/checkout"
tags: ["billing"]
---

# Create Polar checkout session

`POST /api/v1/billing/checkout`

## Request body

- CreateCheckoutRequest
  - `plan` 'developer' | 'pro', required — Plan to upgrade to. Only 'developer' and 'pro' are purchasable.

## Response `201`

Checkout session

- CreateCheckoutResponse
  - `checkout_url` string, uri, required

## Other responses

- `400` — Rejected checkout request
- `429` — Rate limited
- `502` — Provider error

## Changes

- **2026-08-25** `55772030ddd3` — 9 warning
  - removed the optional property `code` from the response with the `400` status
  - removed the optional property `code` from the response with the `429` status
  - removed the optional property `code` from the response with the `502` status
  - removed the optional property `fields` from the response with the `400` status
  - …5 more
- **2026-08-19** `b38f8e603649` — 9 info
  - added the optional property `code` to the response with the `400` status
  - added the optional property `code` to the response with the `429` status
  - added the optional property `code` to the response with the `502` status
  - added the optional property `fields` to the response with the `400` status
  - …5 more

[Change history](https://skmtc.dev/crosmos/apis/crosmos-api/changes/api/v1/billing/checkout/post.md)

---

[API](https://skmtc.dev/crosmos/apis/crosmos-api.md) · [All operations](https://skmtc.dev/crosmos/apis/crosmos-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/crosmos/crosmos-api/revisions/55772030ddd3/schema)
