Krea Audio API

Speech and audio generation endpoints

Operations 5

POST /generate/audio/bytedance/seed-audio-1.0 Seed Audio 1.0 #
POST /generate/audio/elevenlabs/tts ElevenLabs TTS #
POST /generate/audio/elevenlabs/music ElevenLabs Music #
POST /generate/audio/elevenlabs/music-v2 ElevenLabs Music v2 #
POST /generate/audio/elevenlabs/music-v2.5 ElevenLabs Music v2.5 #

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/krea-ai:krea-ai-audio-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

krea-ai-audio-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Krea Audio API
  version: v1
  description: Speech and audio generation endpoints
servers:
- url: https://api.krea.ai
  description: Krea API
security:
- bearerAuth: []
tags:
- name: Audio
  description: Speech and audio generation endpoints
paths:
  /generate/audio/bytedance/seed-audio-1.0:
    post:
      tags:
      - Audio
      description: Generate speech, dialogue, and sound design from a text prompt with Seed Audio 1.0.
      summary: Seed Audio 1.0
      parameters:
      - name: X-Webhook-URL
        in: header
        required: false
        schema:
          type: string
          format: uri
        description: URL to receive a POST request when the job completes. The webhook will receive the job data including results. When signing is configured, deliveries are signed with ECDSA P-256 (ES256); verify them with the keys at https://api.krea.ai/.well-known/jwks.json (see X-Krea-Webhook-* headers). Treat requests without these headers as unauthenticated.
      requestBody:
        content:
          application/json:
            example:
              prompt: A floating village, with houses on stilts and boats zigzagging between.
            schema:
              type: object
              properties:
                prompt:
                  type: string
                  minLength: 1
                  maxLength: 2048
                  description: 'Text prompt describing the speech, dialogue, or sound to generate, e.g. "A calm female narrator says: ...".'
              required:
              - prompt
              additionalProperties: false
      responses:
        '200':
          description: The resulting job data. This will be returned in a pending state until the job is completed. See [`/jobs/{id}`](#tag/default/get/jobs/{id}) for retrieving the results.
          content:
            application/json:
              schema:
                type: object
                properties:
                  job_id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  status:
                    type: string
                    enum:
                    - backlogged
                    - queued
                    - scheduled
                    - processing
                    - sampling
                    - intermediate-complete
                    - completed
                    - failed
                    - cancelled
                  created_at:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                  completed_at:
                    type: 'null'
                  result:
                    type: 'null'
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                    - code
                    additionalProperties: false
                  progress:
                    anyOf:
                    - type: number
                      minimum: 0
                      maximum: 1
                    - type: 'null'
                required:
                - job_id
                - status
                - created_at
                - completed_at
                - result
                additionalProperties: false
        '400':
          description: The request body is invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '401':
          description: You are not authenticated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '402':
          description: You have run out of credits.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '429':
          description: You have reached the maximum number of concurrent jobs.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
      operationId: postGenerateAudioBytedanceSeedAudio10
      x-operation-id-source: derived
  /generate/audio/elevenlabs/tts:
    post:
      tags:
      - Audio
      description: 'Convert text to natural-sounding speech with ElevenLabs voices. Defaults to eleven_multilingual_v2; pass model_id: eleven_v4 for ElevenLabs'' most expressive model (best voice cloning, 90+ languages) or eleven_v4_turbo for low-latency delivery.'
      summary: ElevenLabs TTS
      parameters:
      - name: X-Webhook-URL
        in: header
        required: false
        schema:
          type: string
          format: uri
        description: URL to receive a POST request when the job completes. The webhook will receive the job data including results. When signing is configured, deliveries are signed with ECDSA P-256 (ES256); verify them with the keys at https://api.krea.ai/.well-known/jwks.json (see X-Krea-Webhook-* headers). Treat requests without these headers as unauthenticated.
      requestBody:
        content:
          application/json:
            example:
              prompt: Immense tree city, houses in branches, residents swinging on vines, reminiscent of nature-centric anime.
            schema:
              type: object
              properties:
                prompt:
                  type: string
                  minLength: 1
                  maxLength: 2000
                  description: The text to convert to speech.
                voice_id:
                  default: hpp4J3VqNfWAUOO0d1Us
                  description: 'ElevenLabs voice ID. Available voices: Bella (hpp4J3VqNfWAUOO0d1Us), Roger (CwhRBWXzGAHq8TQ4Fs17), Sarah (EXAVITQu4vr4xnSDxMaL), Laura (FGY2WhTYpPnrIDTdsKH5), Charlie (IKne3meq5aSn9XLyUdCD), George (JBFqnCBsd6RMkjVDRZzb), Callum (N2lVS1w4EtoT3dr4eOWO), River (SAz9YHcvj6GT2YYXdXww), Harry (SOYHLrjzK2X1ezoPC6cr), Liam (TX3LPaxmHKxFdv7VOQHJ), Alice (Xb7hH8MSUJpSbSDYk0k2), Matilda (XrExE9yKIg1WjnnlVkGX), Will (bIHbv24MWmeRgasZH58o), Jessica (cgSgspJ2msm6clMCkdW9), Eric (cjVigY5qzO86Huf0OWal), Chris (iP95p4xoKVk53GoZ742B), Brian (nPczCjzI2devNBz1zQrb), Daniel (onwK4e9ZLuTAKqWW03F9), Lily (pFZP5JQG7iQjIQuC4Bku), Adam (pNInz6obpgDQGcFmaJgB), Bill (pqHfZKP75CvOlQylNhV4).'
                  type: string
                  minLength: 1
                model_id:
                  default: eleven_multilingual_v2
                  description: ElevenLabs model ID. Defaults to eleven_multilingual_v2. Use eleven_v4 for ElevenLabs' most expressive, highest-quality model (best voice cloning, 90+ languages), or eleven_v4_turbo for low-latency generation.
                  type: string
                  minLength: 1
              required:
              - prompt
              additionalProperties: false
      responses:
        '200':
          description: The resulting job data. This will be returned in a pending state until the job is completed. See [`/jobs/{id}`](#tag/default/get/jobs/{id}) for retrieving the results.
          content:
            application/json:
              schema:
                type: object
                properties:
                  job_id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  status:
                    type: string
                    enum:
                    - backlogged
                    - queued
                    - scheduled
                    - processing
                    - sampling
                    - intermediate-complete
                    - completed
                    - failed
                    - cancelled
                  created_at:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                  completed_at:
                    type: 'null'
                  result:
                    type: 'null'
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                    - code
                    additionalProperties: false
                  progress:
                    anyOf:
                    - type: number
                      minimum: 0
                      maximum: 1
                    - type: 'null'
                required:
                - job_id
                - status
                - created_at
                - completed_at
                - result
                additionalProperties: false
        '400':
          description: The request body is invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '401':
          description: You are not authenticated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '402':
          description: You have run out of credits.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '429':
          description: You have reached the maximum number of concurrent jobs.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
      operationId: postGenerateAudioElevenlabsTts
      x-operation-id-source: derived
  /generate/audio/elevenlabs/music:
    post:
      tags:
      - Audio
      description: Generate a song or instrumental track from a text prompt with ElevenLabs Music. Vocals are included by default; set force_instrumental for instrumental-only output.
      summary: ElevenLabs Music
      parameters:
      - name: X-Webhook-URL
        in: header
        required: false
        schema:
          type: string
          format: uri
        description: URL to receive a POST request when the job completes. The webhook will receive the job data including results. When signing is configured, deliveries are signed with ECDSA P-256 (ES256); verify them with the keys at https://api.krea.ai/.well-known/jwks.json (see X-Krea-Webhook-* headers). Treat requests without these headers as unauthenticated.
      requestBody:
        content:
          application/json:
            example:
              prompt: Night market under a starry sky, spirits peddling wares, echoing spirited-away vibes.
            schema:
              type: object
              properties:
                prompt:
                  type: string
                  minLength: 1
                  maxLength: 4100
                  description: Text prompt describing the music to generate, e.g. genre, mood, instruments, and lyrics style.
                music_length_ms:
                  description: Length of the track in milliseconds (3s to 600s). Omit to let the model choose.
                  type: integer
                  minimum: 3000
                  maximum: 600000
                force_instrumental:
                  default: false
                  description: When true, generate instrumental music without vocals.
                  type: boolean
              required:
              - prompt
              additionalProperties: false
      responses:
        '200':
          description: The resulting job data. This will be returned in a pending state until the job is completed. See [`/jobs/{id}`](#tag/default/get/jobs/{id}) for retrieving the results.
          content:
            application/json:
              schema:
                type: object
                properties:
                  job_id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  status:
                    type: string
                    enum:
                    - backlogged
                    - queued
                    - scheduled
                    - processing
                    - sampling
                    - intermediate-complete
                    - completed
                    - failed
                    - cancelled
                  created_at:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                  completed_at:
                    type: 'null'
                  result:
                    type: 'null'
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                    - code
                    additionalProperties: false
                  progress:
                    anyOf:
                    - type: number
                      minimum: 0
                      maximum: 1
                    - type: 'null'
                required:
                - job_id
                - status
                - created_at
                - completed_at
                - result
                additionalProperties: false
        '400':
          description: The request body is invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '401':
          description: You are not authenticated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '402':
          description: You have run out of credits.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '429':
          description: You have reached the maximum number of concurrent jobs.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
      operationId: postGenerateAudioElevenlabsMusic
      x-operation-id-source: derived
  /generate/audio/elevenlabs/music-v2:
    post:
      tags:
      - Audio
      description: Generate a song or instrumental track from a text prompt with ElevenLabs Music v2 — better prompt adherence, composition, and vocal delivery than v1, plus multilingual output. Vocals are included by default; set force_instrumental for instrumental-only output.
      summary: ElevenLabs Music v2
      parameters:
      - name: X-Webhook-URL
        in: header
        required: false
        schema:
          type: string
          format: uri
        description: URL to receive a POST request when the job completes. The webhook will receive the job data including results. When signing is configured, deliveries are signed with ECDSA P-256 (ES256); verify them with the keys at https://api.krea.ai/.well-known/jwks.json (see X-Krea-Webhook-* headers). Treat requests without these headers as unauthenticated.
      requestBody:
        content:
          application/json:
            example:
              prompt: An old lighthouse on a rugged coastline, waves crashing at its base.
            schema:
              type: object
              properties:
                prompt:
                  type: string
                  minLength: 1
                  maxLength: 4100
                  description: Text prompt describing the music to generate, e.g. genre, mood, instruments, and lyrics style.
                music_length_ms:
                  description: Length of the track in milliseconds (3s to 600s). Omit to let the model choose.
                  type: integer
                  minimum: 3000
                  maximum: 600000
                force_instrumental:
                  default: false
                  description: When true, generate instrumental music without vocals.
                  type: boolean
              required:
              - prompt
              additionalProperties: false
      responses:
        '200':
          description: The resulting job data. This will be returned in a pending state until the job is completed. See [`/jobs/{id}`](#tag/default/get/jobs/{id}) for retrieving the results.
          content:
            application/json:
              schema:
                type: object
                properties:
                  job_id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  status:
                    type: string
                    enum:
                    - backlogged
                    - queued
                    - scheduled
                    - processing
                    - sampling
                    - intermediate-complete
                    - completed
                    - failed
                    - cancelled
                  created_at:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                  completed_at:
                    type: 'null'
                  result:
                    type: 'null'
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                    - code
                    additionalProperties: false
                  progress:
                    anyOf:
                    - type: number
                      minimum: 0
                      maximum: 1
                    - type: 'null'
                required:
                - job_id
                - status
                - created_at
                - completed_at
                - result
                additionalProperties: false
        '400':
          description: The request body is invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '401':
          description: You are not authenticated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '402':
          description: You have run out of credits.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '429':
          description: You have reached the maximum number of concurrent jobs.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
      operationId: postGenerateAudioElevenlabsMusicV2
      x-operation-id-source: derived
  /generate/audio/elevenlabs/music-v2.5:
    post:
      tags:
      - Audio
      description: Generate a song or instrumental track from a text prompt with ElevenLabs Music v2.5, the latest ElevenLabs music model. Vocals are included by default; set force_instrumental for instrumental-only output.
      summary: ElevenLabs Music v2.5
      parameters:
      - name: X-Webhook-URL
        in: header
        required: false
        schema:
          type: string
          format: uri
        description: URL to receive a POST request when the job completes. The webhook will receive the job data including results. When signing is configured, deliveries are signed with ECDSA P-256 (ES256); verify them with the keys at https://api.krea.ai/.well-known/jwks.json (see X-Krea-Webhook-* headers). Treat requests without these headers as unauthenticated.
      requestBody:
        content:
          application/json:
            example:
              prompt: Majestic fjords with small fishing villages nestled at their bases.
            schema:
              type: object
              properties:
                prompt:
                  type: string
                  minLength: 1
                  maxLength: 4100
                  description: Text prompt describing the music to generate, e.g. genre, mood, instruments, and lyrics style.
                music_length_ms:
                  description: Length of the track in milliseconds (3s to 600s). Omit to let the model choose.
                  type: integer
                  minimum: 3000
                  maximum: 600000
                force_instrumental:
                  default: false
                  description: When true, generate instrumental music without vocals.
                  type: boolean
              required:
              - prompt
              additionalProperties: false
      responses:
        '200':
          description: The resulting job data. This will be returned in a pending state until the job is completed. See [`/jobs/{id}`](#tag/default/get/jobs/{id}) for retrieving the results.
          content:
            application/json:
              schema:
                type: object
                properties:
                  job_id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  status:
                    type: string
                    enum:
                    - backlogged
                    - queued
                    - scheduled
                    - processing
                    - sampling
                    - intermediate-complete
                    - completed
                    - failed
                    - cancelled
                  created_at:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                  completed_at:
                    type: 'null'
                  result:
                    type: 'null'
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                    - code
                    additionalProperties: false
                  progress:
                    anyOf:
                    - type: number
                      minimum: 0
                      maximum: 1
                    - type: 'null'
                required:
                - job_id
                - status
                - created_at
                - completed_at
                - result
                additionalProperties: false
        '400':
          description: The request body is invalid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '401':
          description: You are not authenticated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '402':
          description: You have run out of credits.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '429':
          description: You have reached the maximum number of concurrent jobs.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
      operationId: postGenerateAudioElevenlabsMusicV25
      x-operation-id-source: derived
components:
  securitySchemes:
    bearerAuth:
      scheme: bearer
      bearerFormat: Bearer
      type: http
x-provenance:
  method: harvested
  publisher: Krea
  source: https://api.krea.ai/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)