---
title: "Create Plan"
method: POST
path: "/api/v1/admin/plans"
tags: ["Plans"]
---

# Create Plan

`POST /api/v1/admin/plans`

## Request body

- object
  - `slug` string — URL-friendly identifier (lowercase alphanumeric and hyphens)
  - `primaryLocale` 'zh' | 'en' — Primary locale (market selector: zh = domestic pricing page, en = international)
  - `supportedLocales` string[] — Supported locale codes
  - `translations` object, required — Translations by locale key (e.g. { zh: {...}, en: {...} })
  - `currency` string
  - `priceCents` integer, required
  - `billingCycle` string
  - `features` object
  - `purchaseFormFieldIds` integer[], required — At least one form field must be selected
  - `certificateTemplateId` unknown

## Response `200`

Created

- object — Created
  - `success` boolean, required
  - `data` object, required
    - `id` integer
    - `slug` string
    - `primaryLocale` string
    - `supportedLocales` string[]
    - `translations` object
    - `currency` string
    - `priceCents` integer
    - `billingCycle` string
    - `status` 'on_shelf' | 'off_shelf' — on_shelf=上架, off_shelf=下架
    - `hasBeenOrdered` boolean — Whether this plan has been ordered
    - `features` object
    - `highlight` boolean — Whether this plan is highlighted as default on the pricing page
    - `purchaseFormFields` object[]
    - `purchaseFormFieldIds` integer[]
    - `certificateTemplateId` unknown
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

## Other responses

- `400` — Validation failed

---

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