Skip to content
API documentation

Get clip detail

GET/api/v1/suno/clips/{clipId}

Authentication · x-api-key

Free direct resource read. `clipId` is the external Suno ID (legacy `mid`), never a TaskResult database ID. `accessLevel` controls field projection only: owned clips return the full contract, shared clips are public or remixable, and other readable external clips return minimal media fields. It does not grant derive or export permission. No Task is created or charged.

Request

clipIdpath · Required
string

Suno clip identifier returned by a Generation or clip read.

Responses

200 OK

application/json

Unknown fields are not accepted.

  • Response 200 · accessLevelRequired

    "owned" | "shared" | "external"

    Read projection only. owned returns the full public Clip contract; shared is public or remixable; external is merely readable by clipId. This value does not grant derive or export permission.

  • Response 200 · audioUrlRequired

    string | null

    May be null. Must match at least one alternative.

    2 fields / alternatives
  • Response 200 · clipIdRequired

    string

    Suno clip identifier (`mid`); do not substitute an OmnAPI resource identifier.

  • Response 200 · createdAtRequired

    string | null

    May be null. Must match at least one alternative.

    2 fields / alternatives
  • Response 200 · deliveryStatusRequired

    "submitted" | "queued" | "streaming" | "complete" | "error"
  • Response 200 · durationRequired

    number | null

    May be null. Must match at least one alternative.

    2 fields / alternatives
    • Response 200 · duration · anyOf 1Alternative

      number

      Clip duration in seconds. Missing eventually-consistent metadata is repaired on later reads.

      Minimum: 0.

    • Response 200 · duration · anyOf 2Alternative

      null
  • Response 200 · errorCodeRequired

    string | null

    May be null. Must match at least one alternative.

    2 fields / alternatives
  • Response 200 · errorMessageRequired

    string | null

    May be null. Must match at least one alternative.

    2 fields / alternatives
  • Response 200 · imageUrlRequired

    string | null

    May be null. Must match at least one alternative.

    2 fields / alternatives
  • Response 200 · indexRequired

    number

    Minimum: 0.

  • Response 200 · instrumentalRequired

    boolean | null

    May be null. Must match at least one alternative.

    2 fields / alternatives
  • Response 200 · majorModelVersionRequired

    string | null

    May be null. Must match at least one alternative.

    2 fields / alternatives
  • Response 200 · modelRequired

    string | null

    May be null. Must match at least one alternative.

    2 fields / alternatives
    • Response 200 · model · anyOf 1Alternative

      string

      Compatibility model label. Prefer modelCode, providerModelName and majorModelVersion for unambiguous integrations.

    • Response 200 · model · anyOf 2Alternative

      null
  • Response 200 · modelCodeRequired

    string | null

    May be null. Must match at least one alternative.

    2 fields / alternatives
    • Response 200 · modelCode · anyOf 1Alternative

      string

      Canonical OmnAPI model code selected for an owned generation. Null when a clip is read directly from Suno without a local task.

    • Response 200 · modelCode · anyOf 2Alternative

      null
  • Response 200 · playableRequired

    boolean
  • Response 200 · playbackRequired

    object

    Unknown fields are not accepted.

    8 fields
  • Response 200 · promptRequired

    string | null

    May be null. Must match at least one alternative.

    2 fields / alternatives
    • Response 200 · prompt · anyOf 1Alternative

      string

      Generation prompt for owned clips only. Shared and external clips always return null.

    • Response 200 · prompt · anyOf 2Alternative

      null
  • Response 200 · providerModelNameRequired

    string | null

    May be null. Must match at least one alternative.

    2 fields / alternatives
  • Response 200 · roleRequired

    "candidate" | "final"
  • Response 200 · tagsRequired

    string | null

    May be null. Must match at least one alternative.

    2 fields / alternatives
    • Response 200 · tags · anyOf 1Alternative

      string

      Public style tags for owned and shared clips. Null for external clips or before metadata propagation completes.

    • Response 200 · tags · anyOf 2Alternative

      null
  • Response 200 · titleRequired

    string | null

    May be null. Must match at least one alternative.

    2 fields / alternatives
  • Response 200 · updatedAtRequired

    string | null

    May be null. Must match at least one alternative.

    2 fields / alternatives
  • Response 200 · videoUrlRequired

    string | null

    May be null. Must match at least one alternative.

    2 fields / alternatives
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

403 Forbidden

Forbidden: the API key lacks the required scope or its IP policy rejects this request.

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

404 Not Found

application/json

  • Response 404 · errorRequired

    object
    3 fields
    • Response 404 · error.codeRequired

      string

      Application-specific error code (see error catalog)

    • Response 404 · error.messageRequired

      string

      Human readable error message

    • Response 404 · error.detailsOptional

      object

      Additional error details (optional)

  • Response 404 · 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