Skip to content
API documentation

Render edited audio

POST/api/v1/audio/renders

Authentication · x-api-key

Crop, reorder, repeat and apply linear fades to segments of one public MP3/WAV source. Segments play in array order; repeat is the total play count and each copy includes its fades. Times use [startSeconds,endSeconds), rounded to the nearest output sample (half up). Defaults: WAV PCM16, 48 kHz, stereo; MP3 uses 192 kbps. Limits: 200 MiB, 15-minute source, mono/stereo at 44.1/48 kHz, 64 expanded segments, 30-minute output. Billed once per started output minute; maxCredits caps the quote. Accepted tasks use the shared Task lifecycle; final failures without delivery refund credits. Outputs are retained for 14 days; query the task to refresh download URLs (at most one hour). Idempotency-Key is recommended for safe retries.

Request

Idempotency-Keyheader · Optional
string

Unique key for one logical write. Retrying the same body with the same key replays the original result; reusing it with a different body returns 409.

Maximum characters: 255.

Unknown fields are not accepted.

  • Request · segmentsRequired

    array<object>

    Segments in playback order; at most 64 copies after repetition and 30 minutes total output.

    Minimum items: 1. Maximum items: 64.

    1 field
    • Request · segments[]Each item

      object

      Unknown fields are not accepted.

      5 fields
      • Request · segments[].endSecondsRequired

        number

        Exclusive end in source seconds; must exceed the start and fit the decoded source.

        Maximum: 900. Exclusive lower bound: 0.

      • Request · segments[].startSecondsRequired

        number

        Inclusive start in source seconds, rounded to the nearest output sample (half up).

        Minimum: 0. Maximum: 900.

      • Request · segments[].fadeInSecondsOptional

        number

        Linear fade-in duration. A positive fade must span at least two output samples.

        Minimum: 0. Maximum: 900. Default: 0.

      • Request · segments[].fadeOutSecondsOptional

        number

        Linear fade-out duration. Both fades combined must fit the segment.

        Minimum: 0. Maximum: 900. Default: 0.

      • Request · segments[].repeatOptional

        string | integer

        Total copies of this segment; fades apply to every copy.

        Minimum: 1. Maximum: 64. Default: 1. Must match at least one alternative.

        2 fields / alternatives
  • Request · sourceUrlRequired

    string

    Public HTTP(S) URL of one MP3 or uncompressed PCM WAV source.

    Maximum characters: 8192. Format: uri.

  • Request · maxCreditsOptional

    number

    Maximum authorized credit charge; a higher quote rejects creation before debit.

    Minimum: 0.

  • Request · outputOptional

    object

    Output settings; defaults to WAV PCM16, 48 kHz, stereo.

    Unknown fields are not accepted.

    3 fields
    • Request · output.channelsOptional

      1 | 2

      Output channels: 1 for mono or 2 for stereo.

      Default: 2.

    • Request · output.formatOptional

      "wav" | "mp3"

      Output encoding: WAV PCM16 or MP3 at 192 kbps.

      Default: "wav".

    • Request · output.sampleRateOptional

      44100 | 48000

      Output sample rate in Hz.

      Default: 48000.

  • Request · webhookUrlOptional

    string

    Optional HTTPS destination for standard Task completion notifications.

    Maximum characters: 2048. Format: uri.

Responses

202 Accepted

application/json

  • Response 202 · creditsRequiredRequired

    number

    Accepted credit charge for this edit.

  • Response 202 · pollUrlRequired

    string

    Relative Task read URL, resolved against the API base URL.

  • Response 202 · statusRequired

    string

    Task status at acceptance.

  • Response 202 · taskIdRequired

    string

    Accepted Task identifier.

400 Bad Request

application/json

  • Response 400 · errorRequired

    object
    3 fields
    • Response 400 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 400 · error.messageRequired

      string

      Human readable error message

    • Response 400 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 400 · successRequired

    false

    Always false for error responses

401 Unauthorized

application/json

  • Response 401 · errorRequired

    object
    3 fields
    • Response 401 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 401 · error.messageRequired

      string

      Human readable error message

    • Response 401 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 401 · successRequired

    false

    Always false for error responses

402 Payment Required

application/json

  • Response 402 · errorRequired

    object
    3 fields
    • Response 402 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 402 · error.messageRequired

      string

      Human readable error message

    • Response 402 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 402 · successRequired

    false

    Always false for error responses

403 Forbidden

Response for status 403 Forbidden: API-key scope/IP restrictions or billing hold. A positive balance does not bypass payment review. Check GET /api/v1/account/credits billingStatus before further paid requests.

application/json

  • Response 403 · errorRequired

    object
    3 fields
    • Response 403 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 403 · error.messageRequired

      string

      Human readable error message

    • Response 403 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 403 · successRequired

    false

    Always false for error responses

409 Conflict

application/json

  • Response 409 · errorRequired

    object
    3 fields
    • Response 409 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 409 · error.messageRequired

      string

      Human readable error message

    • Response 409 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 409 · successRequired

    false

    Always false for error responses

413 Payload Too Large

application/json

  • Response 413 · errorRequired

    object
    3 fields
    • Response 413 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 413 · error.messageRequired

      string

      Human readable error message

    • Response 413 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 413 · successRequired

    false

    Always false for error responses

422 Unprocessable Entity

application/json

  • Response 422 · errorRequired

    object
    3 fields
    • Response 422 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 422 · error.messageRequired

      string

      Human readable error message

    • Response 422 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 422 · successRequired

    false

    Always false for error responses

429 Too Many Requests

Request allowance or task admission capacity exceeded. Follow Retry-After when present; otherwise wait for active tasks and use bounded backoff. Limits do not guarantee throughput. For SSE, this is the HTTP connection response, not an event.

application/json

  • Response 429 · errorRequired

    object
    3 fields
    • Response 429 · error.codeRequired

      string

      RATE_LIMITED for request and task admission rejections.

    • Response 429 · error.messageRequired

      string
    • Response 429 · error.detailsOptional

      object

      Optional and scope-dependent. Request limits supply scope/policy/type/limit/current/retryAfterSec. Task admission supplies inFlight/limit/tier, plus scope=apiKey for a key cap. IP rejection can omit details. In-flight rejection does not promise Retry-After.

      8 fields
  • Response 429 · successRequired

    false

    Default: false.

500 Internal Server Error

application/json

  • Response 500 · errorRequired

    object
    3 fields
    • Response 500 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 500 · error.messageRequired

      string

      Human readable error message

    • Response 500 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 500 · successRequired

    false

    Always false for error responses

503 Service Unavailable

application/json

  • Response 503 · errorRequired

    object
    3 fields
    • Response 503 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 503 · error.messageRequired

      string

      Human readable error message

    • Response 503 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 503 · successRequired

    false

    Always false for error responses

Interactive API Explorer → · OpenAPI JSON