ClipSpeed API

REST API for ClipSpeedAI documented on its developer docs: generate captioned short-form clips from long videos and live streams, list and download clip projects, restyle captions, schedule posts and discover presets, authenticated with an API key from the ClipSpeedAI dashboard.

GitHub OpenAPI

Operations 10

POST /api/v1/captions/restyle POST /api/v1/captions/restyle #
GET /api/v1/clips GET /api/v1/clips #
POST /api/v1/clips/generate POST /api/v1/clips/generate #
GET /api/v1/clips/{id} GET /api/v1/clips/{id} #
GET /api/v1/clips/{id}/download/{index} GET /api/v1/clips/{id}/download/{index} #
GET /api/v1/clips/{id}/download/all GET /api/v1/clips/{id}/download/all #
POST /api/v1/discover POST /api/v1/discover #
POST /api/v1/schedule POST /api/v1/schedule #
GET /api/v1/status GET /api/v1/status #
GET /api/v1/usage/history GET /api/v1/usage/history #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/clipspeed-ai:clipspeed-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

clipspeed-ai-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: ClipSpeedAI API
  version: '2026-11-04'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-04: 13 operation(s) read from 40 public
    documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract;
    ClipSpeedAI has published no machine-readable contract that the pipeline could find. Engine: anthropic.'
  x-evidence-tiers:
    code-example: 13
    documentation: 0
    pages-with-code: 4
    pages-read: 40
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-04'
  x-generator: generate-contract-from-docs.py
  x-engine: anthropic
  x-sources:
  - https://www.clipspeed.ai/developers
  - https://www.clipspeed.ai/ai-tools/clip-maker-api.html
  - https://www.clipspeed.ai/features.html
  - https://www.clipspeed.ai/mcp/codex.html
  - https://www.clipspeed.ai/mcp/cursor.html
  - https://www.clipspeed.ai/mcp/chatgpt.html
  - https://www.clipspeed.ai/mcp/windsurf.html
  - https://www.clipspeed.ai/mcp/claude-ai.html
  - https://www.clipspeed.ai/mcp/claude-code.html
  - https://www.clipspeed.ai/mcp/claude-desktop.html
  - https://www.clipspeed.ai/app/?signin=1
  - https://www.clipspeed.ai/app/?trial=1&utm_source=homepage_hero&utm_campaign=start_creating
  - https://www.clipspeed.ai/app/?ai-tool=character-swap&utm_source=homepage_genviral
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_genviral
  - https://www.clipspeed.ai/mcp/openclaw.html
  - https://www.clipspeed.ai/mcp/hermes.html
  - https://www.clipspeed.ai/app/?ai-tool=video&utm_source=homepage_ai_tools
  - https://www.clipspeed.ai/app/?ai-tool=image&utm_source=homepage_ai_tools
  - https://www.clipspeed.ai/app/?ai-tool=marketing&utm_source=homepage_ai_tools
  - https://www.clipspeed.ai/app/?ai-tool=character-swap&utm_source=homepage_ai_tools
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_ai_tools
  - https://www.clipspeed.ai/app
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_tawa-uncle
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_crest-titan
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_tangerine-dandy
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_neon-mechanic
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_professor-voltage
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_bubblegum-executive
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_disco-accountant
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_orchid-detective
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_pixel-gardener
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_night-market-maestro
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_emo-titan
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_mullet-mogul
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_chrome-cowboy
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_velvet-sprinter
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_midnight-poet
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_retro-space-captain
  - https://www.clipspeed.ai/app/?ai-tool=influencer&utm_source=homepage_influencer_showcase&utm_content=cast_solar-dj
servers:
- url: https://api.clipspeed.ai
paths:
  /api/v1/captions/restyle:
    post:
      operationId: post_api_v1_captions_restyle
      tags:
      - Api
      summary: POST /api/v1/captions/restyle
      x-source: https://www.clipspeed.ai/developers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1CaptionsRestyleRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1CaptionsRestyleResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://api.clipspeed.ai/api/v1/captions/restyle  -H \"X-API-Key: $CLIPSPEED_API_KEY\"\
          \  -H \"Content-Type: application/json\"  -d '{ \"project_id\": \"proj_8f2a1c9e\", \"style\": \"beasty\"\
          \ }' \n Credits \n Check your balance, monthly usage, and a full ledger of debits and credits. 1 credit\
          \ = 1 minute of source video. \n GET /status \n Lightweight balance check. Ideal for an agent's first\
          \ call to con"
  /api/v1/clips:
    get:
      operationId: get_api_v1_clips
      tags:
      - Api
      summary: GET /api/v1/clips
      x-source: https://www.clipspeed.ai/developers
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: string
      - name: offset
        in: query
        required: false
        schema:
          type: string
      - name: status
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1ClipsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl \"https://api.clipspeed.ai/api/v1/clips?limit=20&offset=0&status=complete\"  -H \"X-API-Key:\
          \ $CLIPSPEED_API_KEY\" \n GET /clips/:id/download/all \n Get a manifest of every clip in a job with permanent,\
          \ force-download links (R2, Content-Disposition: attachment ). Great for bulk-saving. "
  /api/v1/clips/generate:
    post:
      operationId: post_api_v1_clips_generate
      tags:
      - Api
      summary: POST /api/v1/clips/generate
      x-source: https://www.clipspeed.ai/developers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1ClipsGenerateRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://api.clipspeed.ai/api/v1/clips/generate  -H \"X-API-Key: $CLIPSPEED_API_KEY\"\
          \  -H \"Content-Type: application/json\"  -d '{\n \"url\": \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\"\
          ,\n \"clip_count\": 10,\n \"caption_style\": \"karaoke\",\n \"aspect_ratio\": \"9:16\"\n }' \n Authentication\
          \ \n Every request to /api/v1 is authenticated with a personal API key. Pass it as a header — either style\
          \ works. \n"
  /api/v1/clips/{id}:
    get:
      operationId: get_api_v1_clips_id
      tags:
      - Api
      summary: GET /api/v1/clips/{id}
      x-source: https://www.clipspeed.ai/developers
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1ClipsProj8F2A1C9EResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl https://api.clipspeed.ai/api/v1/clips/proj_8f2a1c9e  -H \"X-API-Key: $CLIPSPEED_API_KEY\"\
          \ \n json · 200 response Copy \n { \n \"id\" : \"proj_8f2a1c9e\" , \n \"status\" : \"complete\" , \n \"\
          clips\" : [ \n { \n \"clip_id\" : \"clip_01\" , \n \"title\" : \"The one habit that changed everything\"\
          \ , \n \"viral_score\" : 96 , \n \"duration_seconds\" : 42 , \n \"video_url\" : \"https://cdn.clipspeed.ai/…/clip_01.mp4\"\
          \ \n } \n ] \n } \n GET"
      x-docs-path: GET /clips/:id
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
  /api/v1/clips/{id}/download/{index}:
    get:
      operationId: get_api_v1_clips_id_download_index
      tags:
      - Api
      summary: GET /api/v1/clips/{id}/download/{index}
      x-source: https://www.clipspeed.ai/developers
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1ClipsProj8F2A1C9EDownload1Response'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -L -O https://api.clipspeed.ai/api/v1/clips/proj_8f2a1c9e/download/1  -H \"X-API-Key: $CLIPSPEED_API_KEY\"\
          \ \n Captions \n Change a project's caption look without re-transcribing or re-clipping. Restyle is instant.\
          \ \n POST /captions/restyle costs credits \n Re-render a project's clips with a new caption style. Reuses\
          \ the existing transcript — no re-transcription. Scoped to projects you own. \n Field "
      x-docs-path: GET /clips/:id/download/:index
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: index
        in: path
        required: true
        schema:
          type: string
  /api/v1/clips/{id}/download/all:
    get:
      operationId: get_api_v1_clips_id_download_all
      tags:
      - Api
      summary: GET /api/v1/clips/{id}/download/all
      x-source: https://www.clipspeed.ai/developers
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1ClipsProj8F2A1C9EDownloadAllResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl https://api.clipspeed.ai/api/v1/clips/proj_8f2a1c9e/download/all  -H \"X-API-Key: $CLIPSPEED_API_KEY\"\
          \ \n json · 200 response Copy \n { \n \"project_id\" : \"proj_8f2a1c9e\" , \n \"count\" : 2 , \n \"clips\"\
          \ : [ \n { \n \"index\" : 1 , \n \"clip_id\" : \"clip_01\" , \n \"title\" : \"The one habit that changed\
          \ everything\" , \n \"viral_score\" : 96 , \n \"duration_seconds\" : 42 , \n \"url\" : \"https://cdn.clipspeed.ai/…/clip_01.m"
      x-docs-path: GET /clips/:id/download/all
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
  /api/v1/discover:
    post:
      operationId: post_api_v1_discover
      tags:
      - Api
      summary: POST /api/v1/discover
      x-source: https://www.clipspeed.ai/developers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1DiscoverRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1DiscoverResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://api.clipspeed.ai/api/v1/discover  -H \"X-API-Key: $CLIPSPEED_API_KEY\"  -H\
          \ \"Content-Type: application/json\"  -d '{ \"niche\": \"AI tools\", \"days\": 7 }' \n json · 200 response\
          \ Copy \n { \n \"ok\" : true , \n \"scanned\" : 48 , \n \"pick\" : { \n \"videoUrl\" : \"https://www.youtube.com/watch?v=abc123\"\
          \ , \n \"videoId\" : \"abc123\" , \n \"title\" : \"This AI agent builds full apps\" , \n \"viewCount\"\
          \ : 1840000"
  /api/v1/schedule:
    post:
      operationId: post_api_v1_schedule
      tags:
      - Api
      summary: POST /api/v1/schedule
      x-source: https://www.clipspeed.ai/developers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1ScheduleRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1ScheduleResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https://api.clipspeed.ai/api/v1/schedule  -H \"X-API-Key: $CLIPSPEED_API_KEY\"  -H\
          \ \"Content-Type: application/json\"  -d '{\n \"clip_id\": \"clip_01\",\n \"platforms\": [\"tiktok\",\
          \ \"youtube\"],\n \"scheduled_at\": \"2026-07-12T15:00:00Z\",\n \"title\": \"The one habit that changed\
          \ everything\",\n \"description\": \"You will not believe #3\",\n \"hashtags\": [\"mindset\", \"productivity\"\
          ]\n }' \n GET /schedule \n List you"
  /api/v1/status:
    get:
      operationId: get_api_v1_status
      tags:
      - Api
      summary: GET /api/v1/status
      x-source: https://www.clipspeed.ai/developers
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl https://api.clipspeed.ai/api/v1/status  -H \"X-API-Key: $CLIPSPEED_API_KEY\" \n Clip a video\
          \ \n Submit a URL. You get back a job_id — poll GET /clips/:id every 30–60s. Jobs typically finish in\
          \ ~10–30 minutes depending on source length. \n bash Copy "
  /api/v1/usage/history:
    get:
      operationId: get_api_v1_usage_history
      tags:
      - Api
      summary: GET /api/v1/usage/history
      x-source: https://www.clipspeed.ai/developers
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: string
      - name: offset
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1UsageHistoryResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl \"https://api.clipspeed.ai/api/v1/usage/history?limit=20&offset=0\"  -H \"X-API-Key: $CLIPSPEED_API_KEY\"\
          \ \n json · 200 response Copy \n { \n \"transactions\" : [ \n { \n \"id\" : \"ledg_4471\" , \n \"type\"\
          \ : \"debit\" , \n \"amount\" : 42 , \n \"reason\" : \"clip_generation\" , \n \"project_id\" : \"proj_8f2a1c9e\"\
          \ , \n \"date\" : \"2026-07-09T18:02:11Z\" \n } \n ], \n \"total\" : 37 , \n \"limit\" : 20 , \n \"offset\"\
          \ : 0 \n } \n Discovery"
components:
  schemas:
    PostApiV1CaptionsRestyleRequest:
      type: object
      properties:
        project_id:
          type: string
        style:
          type: string
    PostApiV1CaptionsRestyleResponse:
      type: object
      properties:
        credits_remaining:
          type: integer
        credits_total:
          type: integer
        plan:
          type: string
        is_trialing:
          type: boolean
    GetApiV1ClipsResponse:
      type: object
      properties:
        project_id:
          type: string
        count:
          type: integer
        clips:
          type: array
          items:
            type: object
            properties:
              index:
                type: integer
              clip_id:
                type: string
              title:
                type: string
              viral_score:
                type: integer
              duration_seconds:
                type: integer
              url:
                type: string
              filename:
                type: string
    PostApiV1ClipsGenerateRequest:
      type: object
      properties:
        url:
          type: string
        clip_count:
          type: integer
        caption_style:
          type: string
        aspect_ratio:
          type: string
    GetApiV1ClipsProj8F2A1C9EResponse:
      type: object
      properties:
        id:
          type: string
        status:
          type: string
        clips:
          type: array
          items:
            type: object
            properties:
              clip_id:
                type: string
              title:
                type: string
              viral_score:
                type: integer
              duration_seconds:
                type: integer
              video_url:
                type: string
    GetApiV1ClipsProj8F2A1C9EDownload1Response:
      type: object
      properties:
        credits_remaining:
          type: integer
        credits_total:
          type: integer
        plan:
          type: string
        is_trialing:
          type: boolean
    GetApiV1ClipsProj8F2A1C9EDownloadAllResponse:
      type: object
      properties:
        project_id:
          type: string
        count:
          type: integer
        clips:
          type: array
          items:
            type: object
            properties:
              index:
                type: integer
              clip_id:
                type: string
              title:
                type: string
              viral_score:
                type: integer
              duration_seconds:
                type: integer
              url:
                type: string
              filename:
                type: string
    PostApiV1DiscoverRequest:
      type: object
      properties:
        niche:
          type: string
        days:
          type: integer
    PostApiV1DiscoverResponse:
      type: object
      properties:
        ok:
          type: boolean
        scanned:
          type: integer
        pick:
          type: object
          properties:
            videoUrl:
              type: string
            videoId:
              type: string
            title:
              type: string
            viewCount:
              type: integer
            velocity:
              type: integer
            channelLift:
              type: number
            why:
              type: string
        candidates:
          type: array
          items: {}
    PostApiV1ScheduleRequest:
      type: object
      properties:
        clip_id:
          type: string
        platforms:
          type: array
          items:
            type: string
        scheduled_at:
          type: string
          format: date-time
        title:
          type: string
        description:
          type: string
        hashtags:
          type: array
          items:
            type: string
    PostApiV1ScheduleResponse:
      type: object
      properties:
        posts:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              platform:
                type: string
              caption:
                type: string
              title:
                type: string
              status:
                type: string
              scheduled_at:
                type: string
                format: date-time
              posted_at:
                type:
                - string
                - 'null'
              failure_reason:
                type:
                - string
                - 'null'
        total:
          type: integer
        limit:
          type: integer
        offset:
          type: integer
    GetApiV1UsageHistoryResponse:
      type: object
      properties:
        transactions:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              type:
                type: string
              amount:
                type: integer
              reason:
                type: string
              project_id:
                type: string
              date:
                type: string
                format: date-time
        total:
          type: integer
        limit:
          type: integer
        offset:
          type: integer
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
security:
- apiKey: []
tags:
- name: Api
- name: Auth
- name: Mcp