---
title: "Bulk create up to 50 stories"
method: POST
path: "/api/v1/stories/bulk"
tags: ["Stories"]
---

# Bulk create up to 50 stories

`POST /api/v1/stories/bulk`

## Request

- Base URL: `https://storylayer.ai`
- URL: `https://storylayer.ai/api/v1/stories/bulk`
- Auth: HTTP bearer

Bulk create up to 50 stories

## Request body

- BulkCreateRequest
  - `stories` CreateStoryRequest[], required
    - `projectId` string, uuid: Required when token is user-scoped
    - `title` string
    - `caption` string, required
    - `channels` string[]
    - `hashtags` string: Space-separated hashtags
    - `media_url` string, uri
    - `media_urls` string[]
    - `slides` Slide[]
      - `media_url` string, uri, required
      - `alt_text` string
      - `caption_overlay` string
      - `swipe_through_url` string, uri
    - `post_type` 'single' | 'carousel' | 'reel' | 'story'
    - `scheduled_at` string, date-time: ISO 8601 with offset
    - `scheduled_at_local` string: Local time without offset, e.g. 2026-06-18T09:00:00
    - `timezone` string: IANA timezone, e.g. America/New_York
    - `channel_overrides` object

## Response `201`

Success

- StoryListResponse
  - `stories` Story[]
    - `id` string, uuid
    - `project_id` string, uuid
    - `status` 'draft' | 'scheduled' | 'published' | 'failed' | 'archived' | 'cancelled'
    - `caption` string
    - `channels` string[]
    - `scheduled_at` string, date-time, nullable
    - `published_url` string, uri, nullable
    - `published_urls` object

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `429`: Rate limited

---

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