---
title: "Create Channel Script"
method: POST
path: "/api/v1/channels/{channel}/scripts"
tags: ["scripts"]
---

# Create Channel Script

`POST /api/v1/channels/{channel}/scripts`

## Request

- Base URL: `https://subscribr.ai`
- URL: `https://subscribr.ai/api/v1/channels/{channel}/scripts`
- Auth: HTTP bearer

## Request body

- CreateChannelScriptRequest
  - `angle` string, nullable
  - `language` string, nullable
  - `length` integer, required: Target script length in words. Minimum is 200 for standard templates; 50 for shorts_* templates (30-60 second content).
  - `prompt` string, nullable
  - `research_texts` string[], nullable
  - `research_urls` string[], nullable
  - `template_id` integer, nullable
  - `title` string, required
  - `topic` string, required
  - `voice` string, nullable
  - `voice_id` integer, nullable

## Response `201`

Successful response.

- CreateChannelScriptResponse
  - `data` object, required
    - `canvas_url` string, uri, required
    - `script_id` integer, required
    - `script_number` integer, required
    - `status` string, required
    - `thread_id` integer, required
  - `success` boolean, required

## Other responses

- `400`: The request could not be processed.
- `401`: Authentication is required.
- `403`: The token, role, entitlement, or object policy denies this action.
- `404`: The resource was not found or is not visible.
- `422`: One or more request fields are invalid.
- `429`: The request exceeded a rate limit.
- `500`: The service is temporarily unavailable.

---

[API](https://skmtc.dev/subscribr/apis/subscribr-customer-api.md) · [All operations](https://skmtc.dev/subscribr/apis/subscribr-customer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/subscribr/apis/subscribr-customer-api/revisions/d1f105b58bbd?raw)
