---
title: "Create a draft"
method: POST
path: "/v1/partners/{partnerId}/creators/{externalCreatorId}/pages"
tags: ["Creator publishing"]
---

# Create a draft

`POST /v1/partners/{partnerId}/creators/{externalCreatorId}/pages`

## Request

- Base URL: `https://comet-api.example.invalid`
- URL: `https://comet-api.example.invalid/v1/partners/{partnerId}/creators/{externalCreatorId}/pages`
- Auth: API key in header `x-api-key`

Requires page:edit.

## Path parameters

- `partnerId` string, required
- `externalCreatorId` string, required

## Headers

- `x-grant-generation` string, required
- `Idempotency-Key` string, required

## Request body

- CreatePage
  - `content` union, required: Versioned content, bounded to 256 KiB. Use capability discovery. Semantic URL, markup, identity-uniqueness, UTF-16 length, depth and publication readiness checks remain authoritative on the server.
    - ContentV1
      - `schemaVersion` 1, required
      - `sections` union[], required: Section IDs must be unique. Empty sections are accepted.
        - union
          - HeaderV1
            - `id` string, required
            - `type` 'header', required
            - `showSection` boolean, required
            - `layout` 'left' | 'center', required
            - `titleLocales` object, required
            - `subtitleLocales` object, required
          - LinksV1
            - `id` string, required
            - `type` 'links', required
            - `showSection` boolean, required
            - `heading` string, required: Server measures length in UTF-16 code units; JSON Schema maxLength is only a structural approximation for supplementary Unicode characters.
            - `appearance` 'solid' | 'outline' | 'minimal', required
            - `links` object[], required: Row IDs must be unique within this section.
              - …
    - ContentV2 (unresolved $ref)

## Response `201`

Successful operation. POST operations use HTTP 201, including idempotent retries.

- Page
  - `schemaVersion` 1, required
  - `pageId` string, required
  - `draftVersion` integer, required
  - `publicationVersion` integer, required
  - `activeRevision` string, nullable, required
  - `content` union, required: Versioned content, bounded to 256 KiB. Use capability discovery. Semantic URL, markup, identity-uniqueness, UTF-16 length, depth and publication readiness checks remain authoritative on the server.
    - ContentV1
      - `schemaVersion` 1, required
      - `sections` union[], required: Section IDs must be unique. Empty sections are accepted.
        - union
          - HeaderV1
            - `id` string, required
            - `type` 'header', required
            - `showSection` boolean, required
            - `layout` 'left' | 'center', required
            - `titleLocales` object, required
            - `subtitleLocales` object, required
          - LinksV1
            - `id` string, required
            - `type` 'links', required
            - `showSection` boolean, required
            - `heading` string, required: Server measures length in UTF-16 code units; JSON Schema maxLength is only a structural approximation for supplementary Unicode characters.
            - `appearance` 'solid' | 'outline' | 'minimal', required
            - `links` object[], required: Row IDs must be unique within this section.
              - …
    - ContentV2 (unresolved $ref)
  - `digest` string, required

## Other responses

- `400`: INVALID_INPUT or UNSUPPORTED_SECTION.
- `401`: UNAUTHENTICATED: missing or invalid app credential, or unsupported Authorization header.
- `403`: Current grant, creator or realm authority does not allow this operation.
- `404`: Scoped resource is absent or unavailable.
- `409`: VERSION_CONFLICT, PREVIEW_CONFLICT, IDEMPOTENCY_CONFLICT, BINDING_CONFLICT or UPLOAD_IN_PROGRESS (retry the same media command after its active lease).
- `413`: Request exceeds the route limit: 256 KiB normally, 28 MiB JSON for POST media; decoded media limit is 5 MiB for images and 20 MiB for videos. Ingress parser failures may use a different envelope.
- `422`: CONTENT_NOT_READY: visible content is not ready for publication.
- `503`: FEATURE_DISABLED, AUTHORITY_UNAVAILABLE or MEDIA_UNAVAILABLE (unconfigured media or provider failure).

---

[API](https://skmtc.dev/comet/apis/comet-creator-publishing-api.md) - [All operations](https://skmtc.dev/comet/apis/comet-creator-publishing-api/llms.txt) - [OpenAPI document](https://skmtc.dev/comet/apis/comet-creator-publishing-api/revisions/04f959b645f0?raw)
