> ## Documentation Index
> Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Kling text-to-audio

> Use Kling Text to Audio API in CometAPI to convert text prompts into audio with voice style controls, duration options, and streaming-ready output.

Use this endpoint to generate a short audio clip from a text prompt through Kling.

## Before you call it

* Keep `prompt` concise and direct
* Start with `duration` between 3 and 10 seconds
* Treat `callback_url` and `external_task_id` as optional integration helpers, not core requirements

## Task flow

<Steps>
  <Step title="Submit the audio task">
    Send the text prompt and duration, then save the returned task id.
  </Step>

  <Step title="Poll the task">
    Continue with [Get a Kling task](./individual-queries) using the Kling audio query path until the task reaches a terminal state.
  </Step>

  <Step title="Store the audio output">
    Persist the final audio asset if you need it beyond the provider delivery window.
  </Step>
</Steps>

<Tip>
  For the complete parameter reference, see the [official Kling documentation](https://app.klingai.com/global/dev/document-api/apiReference/model/textToAudio).
</Tip>


## OpenAPI

````yaml api/openapi/video/kling/post-text-to-audio.openapi.json POST /kling/v1/audio/text-to-audio
openapi: 3.1.0
info:
  title: Text to Audio API
  version: 1.0.0
  description: Create a Kling audio-generation task from a text prompt.
servers:
  - url: https://api.cometapi.com
security:
  - bearerAuth: []
paths:
  /kling/v1/audio/text-to-audio:
    post:
      summary: Create a Kling text-to-audio task
      description: >-
        Submit a text prompt and duration, then poll the returned task id
        through the generic Kling query route.
      operationId: text_to_audio
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - prompt
                - duration
              properties:
                prompt:
                  type: string
                  description: >-
                    Text prompt describing the audio to generate. Max 200
                    characters.
                duration:
                  type: integer
                  description: >-
                    Duration of the generated audio in seconds. Range: 3.0–10.0,
                    supports one decimal place.
                external_task_id:
                  type: string
                  description: >-
                    Optional user-defined task ID for your own tracking. Does
                    not replace the system-generated task ID. Must be unique per
                    account.
                callback_url:
                  type: string
                  description: >-
                    Webhook URL for task status notifications. The server sends
                    a callback when the task status changes.
              default:
                prompt: Soft ambient ocean waves at sunrise.
                duration: 5
            examples:
              Validated request:
                summary: Validated request
                value:
                  prompt: Soft ambient ocean waves at sunrise.
                  duration: 5
      responses:
        '200':
          description: Task accepted.
          content:
            application/json:
              schema:
                type: object
                required:
                  - code
                  - message
                  - data
                properties:
                  code:
                    type: integer
                    description: |
                      Error code; specific error code definition
                  message:
                    type: string
                    description: |
                      Error message
                  data:
                    type: object
                    required:
                      - task_id
                      - task_status
                      - created_at
                      - updated_at
                    properties:
                      task_id:
                        type: string
                        description: |
                          Task ID, system-generated
                      task_status:
                        type: string
                        description: >
                          Task status, enum values: submitted, processing,
                          succeed, failed
                      created_at:
                        type: integer
                        description: |+
                          Task creation time, Unix timestamp, in ms

                      updated_at:
                        type: integer
                        description: |
                          Task update time, Unix timestamp, in ms
                example:
                  code: 0
                  message: SUCCEED
                  data:
                    task_id: '861254119619698760'
                    task_status: submitted
                    task_info: {}
                    created_at: 1773367502225
                    updated_at: 1773367502225
      x-codeSamples:
        - lang: Shell
          label: Default
          source: |
            curl https://api.cometapi.com/kling/v1/audio/text-to-audio \
              -H "Authorization: Bearer $COMETAPI_KEY" \
              -H "Content-Type: application/json" \
              -d '{
                  "prompt": "Soft ambient ocean waves at sunrise.",
                  "duration": 5
                }'
        - lang: Python
          label: Default
          source: >
            import os

            import requests


            response = requests.post(
                "https://api.cometapi.com/kling/v1/audio/text-to-audio",
                headers={"Authorization": "Bearer " + os.environ["COMETAPI_KEY"]},
                json={
                        "prompt": "Soft ambient ocean waves at sunrise.",
                        "duration": 5
                },
            )


            result = response.json()

            print(result["code"], result.get("data", {}).get("task_id"))  # code
            0 means submitted; poll the matching query endpoint until
            task_status is succeed
        - lang: JavaScript
          label: Default
          source: >
            const response = await
            fetch("https://api.cometapi.com/kling/v1/audio/text-to-audio", {
                method: "POST",
                headers: {
                    Authorization: `Bearer ${process.env.COMETAPI_KEY}`,
                    "Content-Type": "application/json",
                },
                body: JSON.stringify({
                        "prompt": "Soft ambient ocean waves at sunrise.",
                        "duration": 5
                    }),
            });


            const result = await response.json();

            console.log(result.code, result.data?.task_id); // code 0 means
            submitted; poll the matching query endpoint until task_status is
            succeed
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication. Use your CometAPI key.

````