Reference

200

Music Delivery API reference

The generated reference below follows the canonical OpenAPI 3.1 contract. Read the quickstart and operational guides before enabling writes for a Partner sender.

Download the raw OpenAPI YAML

POST/validate

Validate a manifest without writing data

Requires `deliveries.validate`. This is a strict, write-free dry run. The response uses stable issue codes and JSONPath locations. When the publication-attestation rollout applies, a valid response also returns the exact public account/sender binding, normalized business-manifest SHA-256, territories, and resolved video-use scope needed to construct `rightsDeclaration`. Validation creates no acceptance evidence.

Operation ID
validateMusicDelivery
Responses
200, 401, 403, 413, 428, 429
Schemas
DeliveryManifestV1, SingleManifest, ValidationResponse, Unauthorized, Forbidden, ManifestTooLarge, PublicationPreconditionRequired, RateLimited
POST/

Submit a durable delivery message

Requires `deliveries.write`. `NEW_RELEASE`, `METADATA_UPDATE`, `ASSET_UPDATE`, `DEAL_UPDATE`, and `TAKEDOWN` use this endpoint and append history; updates never overwrite prior deliveries. The pair `(authenticated sender, message.id)` is the idempotency key. Replaying the same normalized SHA-256 and complete evidence SHA-256 returns the existing batch. Different content or publication evidence with the same key returns a conflict. Partner API/bulk submission requires a declaration bound to the validation hash; the server independently resolves the current agreement acceptance, payment regime, declaration, and video-use scope in the acceptance transaction.

Operation ID
submitMusicDelivery
Responses
202, 400, 401, 403, 409, 413, 428, 429
Schemas
DeliveryManifestV1, SingleManifest, SubmitResponse, ManifestInvalid, Unauthorized, Forbidden, IdempotencyConflict, ManifestTooLarge, PublicationPreconditionRequired, RateLimited
GET/{batchPublicId}

Read batch status and counters

Requires `deliveries.read`. Reads are scoped to both sender and catalog account.

Operation ID
getMusicDeliveryBatch
Responses
200, 401, 403, 404, 429
Schemas
Batch, Unauthorized, Forbidden, NotFound, RateLimited
GET/{batchPublicId}/items

List independently progressing delivery items

Requires `deliveries.read`. Cursor order is stable by creation time and opaque ID.

Operation ID
listMusicDeliveryItems
Responses
200, 400, 401, 403, 404, 429
Schemas
ItemPage, BadCursor, Unauthorized, Forbidden, NotFound, RateLimited
GET/{batchPublicId}/issues

List stable machine-readable issues

Requires `deliveries.read`. Blocking, retryable, and resolved state are explicit.

Operation ID
listMusicDeliveryIssues
Responses
200, 400, 401, 403, 404, 429
Schemas
IssuePage, BadCursor, Unauthorized, Forbidden, NotFound, RateLimited
POST/{batchPublicId}/uploads/intents

Create or renew a scoped object upload intent

Requires `assets.upload`. The server derives the object key from the authenticated account and batch; arbitrary bucket or object keys are never accepted.

Operation ID
createMusicDeliveryUploadIntent
Responses
201, 400, 401, 403, 404, 428, 429
Schemas
UploadIntentRequest, UploadIntent, ManifestInvalid, Unauthorized, Forbidden, NotFound, PublicationPreconditionRequired, RateLimited
POST/{batchPublicId}/uploads/{intentPublicId}/complete

Verify and complete an uploaded asset

Requires `assets.upload`; object size, media type, and checksum are verified server-side.

Operation ID
completeMusicDeliveryUpload
Responses
202, 400, 401, 403, 404, 410, 429
Schemas
UploadCompletion, ManifestInvalid, Unauthorized, Forbidden, NotFound, Error, RateLimited
POST/{batchPublicId}/retry

Retry retryable failed items

Requires `deliveries.write`. Permanent validation failures cannot be retried.

Operation ID
retryMusicDeliveryBatch
Responses
202, 400, 401, 403, 404, 429
Schemas
ManifestInvalid, Unauthorized, Forbidden, NotFound, RateLimited