clipIdpath · RequiredSuno clip identifier returned by a Generation or clip read.
/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.
clipIdpath · RequiredSuno clip identifier returned by a Generation or clip read.
application/json
Unknown fields are not accepted.
accessLevelRequiredRead 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.
audioUrlRequiredMay be null. Must match at least one alternative.
audioUrl · anyOf 1AlternativeaudioUrl · anyOf 2AlternativeclipIdRequiredSuno clip identifier (`mid`); do not substitute an OmnAPI resource identifier.
createdAtRequiredMay be null. Must match at least one alternative.
createdAt · anyOf 1AlternativeFormat: date-time.
createdAt · anyOf 2AlternativedeliveryStatusRequireddurationRequiredMay be null. Must match at least one alternative.
duration · anyOf 1AlternativeClip duration in seconds. Missing eventually-consistent metadata is repaired on later reads.
Minimum: 0.
duration · anyOf 2AlternativeerrorCodeRequiredMay be null. Must match at least one alternative.
errorCode · anyOf 1AlternativeerrorCode · anyOf 2AlternativeerrorMessageRequiredMay be null. Must match at least one alternative.
errorMessage · anyOf 1AlternativeerrorMessage · anyOf 2AlternativeimageUrlRequiredMay be null. Must match at least one alternative.
imageUrl · anyOf 1AlternativeimageUrl · anyOf 2AlternativeindexRequiredMinimum: 0.
instrumentalRequiredMay be null. Must match at least one alternative.
instrumental · anyOf 1Alternativeinstrumental · anyOf 2AlternativemajorModelVersionRequiredMay be null. Must match at least one alternative.
majorModelVersion · anyOf 1AlternativeExact Suno major_model_version value reported for this clip, for example v4.5-all.
majorModelVersion · anyOf 2AlternativemodelRequiredMay be null. Must match at least one alternative.
model · anyOf 1AlternativeCompatibility model label. Prefer modelCode, providerModelName and majorModelVersion for unambiguous integrations.
model · anyOf 2AlternativemodelCodeRequiredMay be null. Must match at least one alternative.
modelCode · anyOf 1AlternativeCanonical OmnAPI model code selected for an owned generation. Null when a clip is read directly from Suno without a local task.
modelCode · anyOf 2AlternativeplayableRequiredplaybackRequiredUnknown fields are not accepted.
playback.deliveryRequiredplayback.expiresAtRequiredMay be null. Must match at least one alternative.
playback.expiresAt · anyOf 1AlternativeFormat: date-time.
playback.expiresAt · anyOf 2Alternativeplayback.mimeTypeRequiredMay be null. Must match at least one alternative.
playback.mimeType · anyOf 1AlternativeMust match at least one alternative.
playback.mimeType · anyOf 1 · anyOf 1Alternativeplayback.mimeType · anyOf 1 · anyOf 2Alternativeplayback.mimeType · anyOf 2Alternativeplayback.retryAfterMsRequiredMay be null. Must match at least one alternative.
playback.retryAfterMs · anyOf 1AlternativeMinimum: 0.
playback.retryAfterMs · anyOf 2Alternativeplayback.seekableRequiredplayback.sessionCreateUrlRequiredMay be null. Must match at least one alternative.
playback.sessionCreateUrl · anyOf 1AlternativeDeprecated compatibility field. New integrations should use playback.url directly; no separate playback-session request is needed.
Deprecated; omit in new integrations.
playback.sessionCreateUrl · anyOf 2Alternativeplayback.stateRequiredplayback.urlRequiredMay be null. Must match at least one alternative.
playback.url · anyOf 1AlternativeCurrent playback URL. Live Generation reads provide a temporary URL; final reads provide the completed audio URL. Resolve relative URLs against the API base URL and open them without an API key. A null value means to wait and query the Generation again. Treat the complete URL as private and do not construct or modify it.
playback.url · anyOf 2AlternativepromptRequiredMay be null. Must match at least one alternative.
prompt · anyOf 1AlternativeGeneration prompt for owned clips only. Shared and external clips always return null.
prompt · anyOf 2AlternativeproviderModelNameRequiredMay be null. Must match at least one alternative.
providerModelName · anyOf 1AlternativeExact Suno model_name value reported for this clip, for example chirp-hawk.
providerModelName · anyOf 2AlternativeroleRequiredtitleRequiredMay be null. Must match at least one alternative.
title · anyOf 1Alternativetitle · anyOf 2AlternativeupdatedAtRequiredMay be null. Must match at least one alternative.
updatedAt · anyOf 1AlternativeFormat: date-time.
updatedAt · anyOf 2AlternativevideoUrlRequiredMay be null. Must match at least one alternative.
videoUrl · anyOf 1AlternativevideoUrl · anyOf 2Alternativeapplication/json
errorRequirederror.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalAdditional error details (optional)
successRequiredAlways false for error responses
application/json
errorRequirederror.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalAdditional error details (optional)
successRequiredAlways false for error responses
Forbidden: the API key lacks the required scope or its IP policy rejects this request.
application/json
errorRequirederror.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalAdditional error details (optional)
successRequiredAlways false for error responses
application/json
errorRequirederror.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalAdditional error details (optional)
successRequiredAlways false for error responses
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
errorRequirederror.codeRequiredRATE_LIMITED for request and task admission rejections.
error.messageRequirederror.detailsOptionalOptional 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.
error.details.currentOptionalMinimum: 0.
error.details.inFlightOptionalMinimum: 0.
error.details.limitOptionalMinimum: 0.
error.details.policyOptionalerror.details.retryAfterSecOptionalMinimum: 1.
error.details.scopeOptionalerror.details.tierOptionalerror.details.typeOptionalsuccessRequiredDefault: false.
application/json
errorRequirederror.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalAdditional error details (optional)
successRequiredAlways false for error responses
application/json
errorRequirederror.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalAdditional error details (optional)
successRequiredAlways false for error responses