{"openapi":"3.1.1","info":{"title":"MDG Developer API","version":"1.0.0","description":"Approved partners use the existing MDG release lifecycle. API keys cannot approve, clear rights or distribute releases.","contact":{"name":"MDG partner administration","url":"https://musicdistroglobal.com"}},"servers":[{"url":"/api/v1","description":"This deployment; sandbox and production require separate hosts and credentials."}],"paths":{"/identity":{"get":{"operationId":"identity","summary":"Read approved partner identity and active key scopes","tags":["identity"],"x-required-scopes":["identity:read"],"security":[{"PartnerKey":[]}],"parameters":[],"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"partnerId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"name":{"type":"string"},"tenantId":{"type":"string"},"environment":{"type":"string","enum":["sandbox","production"]},"scopes":{"type":"array","items":{"type":"string","enum":["identity:read","artists:read","artists:write","releases:read","releases:write","releases:submit","uploads:write","catalog:read","webhooks:read","webhooks:write"]},"maxItems":100},"rateLimitPerMinute":{"type":"integer"},"dailyUploadBytes":{"type":"integer"}},"required":["partnerId","tenantId","environment","scopes"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/artists":{"get":{"operationId":"artists","summary":"List accessible artist profiles","tags":["artists"],"x-required-scopes":["artists:read"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"limit","in":"query","schema":{"type":"string","pattern":"^(?:[1-9]|[1-4][0-9]|50)$"}},{"name":"after","in":"query","schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}},{"name":"externalId","in":"query","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}}],"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"name":{"type":"string"},"legalName":{"type":"string"},"bio":{"type":"string"},"socialLinks":{"type":"object","properties":{"spotify":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"appleMusicId":{"type":"string"}},"required":[],"additionalProperties":true}},"required":["id","name"],"additionalProperties":true},"maxItems":50},"next":{"anyOf":[{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},{"type":"null"}]},"onboarding":{"type":"object","properties":{"status":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"}},"required":[],"additionalProperties":true}},"required":["data","next"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createArtist","summary":"Create a direct profile or send an existing label roster invitation","tags":["artists"],"x-required-scopes":["artists:write"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique 16–128 character key per logical write. Reuse only for an identical request.","schema":{"type":"string","minLength":16,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"email":{"type":"string","format":"email","maxLength":320},"legalName":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"externalId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":["name","externalId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"artist":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"name":{"type":"string"},"legalName":{"type":"string"},"bio":{"type":"string"},"socialLinks":{"type":"object","properties":{"spotify":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"appleMusicId":{"type":"string"}},"required":[],"additionalProperties":true}},"required":["id","name"],"additionalProperties":true},"externalId":{"type":"string"}},"required":["artist","externalId"],"additionalProperties":true},{"type":"object","properties":{"onboardingRequired":{"const":true},"externalId":{"type":"string"},"invitation":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"status":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"}},"required":[],"additionalProperties":true},"nextAction":{"type":"string"}},"required":["onboardingRequired","externalId","invitation"],"additionalProperties":true}]}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/artists/{id}/mapping":{"put":{"operationId":"mapArtist","summary":"Map an accessible existing artist to your external identifier","tags":["artists"],"x-required-scopes":["artists:write"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique 16–128 character key per logical write. Reuse only for an identical request.","schema":{"type":"string","minLength":16,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"externalId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":["externalId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"artistId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"externalId":{"type":"string"}},"required":["artistId","externalId"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/artists/{id}":{"patch":{"operationId":"updateArtist","summary":"Update an accessible profile using MDG DSP mapping verification","tags":["artists"],"x-required-scopes":["artists:write"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique 16–128 character key per logical write. Reuse only for an identical request.","schema":{"type":"string","minLength":16,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bio":{"type":"string","maxLength":4000,"pattern":"^[^<>\\u0000]*$"},"socialLinks":{"type":"object","properties":{"spotify":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"appleMusicId":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"audiomack":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"youtube":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"instagram":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"twitter":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"facebook":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048}},"required":[],"additionalProperties":false}},"required":[],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"name":{"type":"string"},"legalName":{"type":"string"},"bio":{"type":"string"},"socialLinks":{"type":"object","properties":{"spotify":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"appleMusicId":{"type":"string"}},"required":[],"additionalProperties":true}},"required":["id","name"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/catalog":{"get":{"operationId":"catalog","summary":"Look up accessible releases by exact identifiers","tags":["catalog"],"x-required-scopes":["catalog:read"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"limit","in":"query","schema":{"type":"string","pattern":"^(?:[1-9]|[1-4][0-9]|50)$"}},{"name":"after","in":"query","schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}},{"name":"isrc","in":"query","schema":{"type":"string","pattern":"^[A-Z]{2}[A-Z0-9]{3}[0-9]{7}$"}},{"name":"upc","in":"query","schema":{"type":"string","pattern":"^(?:[0-9]{12}|[0-9]{13})$"}},{"name":"externalId","in":"query","schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}}],"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Release"},"maxItems":50},"next":{"anyOf":[{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},{"type":"null"}]}},"required":["data","next"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reference":{"get":{"operationId":"reference","summary":"Read active genres, DSPs, supported languages and media policies","tags":["reference"],"x-required-scopes":["releases:read"],"security":[{"PartnerKey":[]}],"parameters":[],"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"genres":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"name":{"type":"string"},"isPrimary":{"type":"boolean"},"parentGenreId":{"anyOf":[{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},{"type":"null"}]}},"required":[],"additionalProperties":true},"maxItems":2000},"platforms":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"name":{"type":"string"}},"required":[],"additionalProperties":true},"maxItems":500},"languages":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":[],"additionalProperties":true},"maxItems":1000},"uploads":{"type":"object","properties":{"allowedAudioFormats":{"type":"array","items":{"type":"string"},"maxItems":100},"maxAudioFileSizeMiB":{"type":"number"},"allowedArtworkFormats":{"type":"array","items":{"type":"string"},"maxItems":100},"maxArtworkFileSizeMiB":{"type":"number"},"minArtworkDimensions":{"type":"integer"},"maxArtworkDimension":{"type":"integer"},"chunkSize":{"type":"integer"},"audio":{"type":"string"}},"required":[],"additionalProperties":true}},"required":["genres","platforms","languages","uploads"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/releases":{"post":{"operationId":"createRelease","summary":"Create a draft through the existing MDG release service","tags":["releases"],"x-required-scopes":["releases:write"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique 16–128 character key per logical write. Reuse only for an identical request.","schema":{"type":"string","minLength":16,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"titleVersion":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"artistId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"releaseType":{"type":"string","enum":["single","ep","album"]},"releaseDate":{"type":"string","format":"date"},"originalReleaseDate":{"type":"string","format":"date"},"languageCode":{"type":"string","minLength":1,"maxLength":16,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"primaryGenreId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"secondaryGenreId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"upc":{"type":"string","pattern":"^(?:[0-9]{12}|[0-9]{13})$"},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"pLine":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"isExplicit":{"type":"boolean"},"productionType":{"type":"string","enum":["self_produced","outsourced_produced","free_beat","purchased_lease","unknown"]},"artists":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"legalName":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"email":{"type":"string","format":"email","maxLength":320},"role":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"spotifyUrl":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"appleMusicId":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":["name","legalName"],"additionalProperties":false},"maxItems":30},"distributionPlatforms":{"type":"array","items":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"maxItems":100},"externalId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":["title","artistId","releaseType","externalId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"release":{"$ref":"#/components/schemas/Release"},"externalId":{"type":"string"}},"required":["release"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/releases/{id}":{"get":{"operationId":"getRelease","summary":"Read release metadata, status and safe review history","tags":["releases"],"x-required-scopes":["releases:read"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}}],"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"release":{"$ref":"#/components/schemas/Release"},"qc":{"type":"object","properties":{"enabled":{"type":"boolean"},"advisoryOnly":{"type":"boolean"},"isCurrent":{"type":"boolean"},"scan":{"anyOf":[{"type":"null"},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"status":{"type":"string"},"findings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"source":{"type":"string","enum":["deterministic","ai"]},"severity":{"type":"string","enum":["error","warning","info"]},"trackId":{"type":["string","null"]},"trackTitle":{"type":["string","null"]},"field":{"type":"string"},"message":{"type":"string"},"recommendedFix":{"type":"string"},"evidence":{"type":"string"}},"required":["code","severity","field","message","recommendedFix"],"additionalProperties":true},"maxItems":10000},"limitations":{"type":"array","items":{"type":"string"},"maxItems":100},"completedAt":{"type":"string","format":"date-time"}},"required":[],"additionalProperties":true}]}},"required":[],"additionalProperties":true}},"required":["release"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateRelease","summary":"Update editable release metadata","tags":["releases"],"x-required-scopes":["releases:write"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique 16–128 character key per logical write. Reuse only for an identical request.","schema":{"type":"string","minLength":16,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"titleVersion":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"artistId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"releaseType":{"type":"string","enum":["single","ep","album"]},"releaseDate":{"type":"string","format":"date"},"originalReleaseDate":{"type":"string","format":"date"},"languageCode":{"type":"string","minLength":1,"maxLength":16,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"primaryGenreId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"secondaryGenreId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"upc":{"type":"string","pattern":"^(?:[0-9]{12}|[0-9]{13})$"},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"pLine":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"isExplicit":{"type":"boolean"},"productionType":{"type":"string","enum":["self_produced","outsourced_produced","free_beat","purchased_lease","unknown"]},"artists":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"legalName":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"email":{"type":"string","format":"email","maxLength":320},"role":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"spotifyUrl":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"appleMusicId":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":["name","legalName"],"additionalProperties":false},"maxItems":30},"distributionPlatforms":{"type":"array","items":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"maxItems":100}},"required":[],"additionalProperties":false,"minProperties":1}}}},"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"release":{"$ref":"#/components/schemas/Release"}},"required":["release"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/releases/{id}/tracks":{"post":{"operationId":"addTrack","summary":"Append a draft track with contributors and splits","tags":["releases"],"x-required-scopes":["releases:write"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique 16–128 character key per logical write. Reuse only for an identical request.","schema":{"type":"string","minLength":16,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"titleVersion":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"trackNumber":{"type":"integer","minimum":1,"maximum":200},"isExplicit":{"type":"boolean"},"isrc":{"type":"string","pattern":"^[A-Z]{2}[A-Z0-9]{3}[0-9]{7}$"},"upc":{"type":"string","pattern":"^(?:[0-9]{12}|[0-9]{13})$"},"languageCode":{"type":"string","minLength":1,"maxLength":16,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"primaryGenreId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"secondaryGenreId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"producer":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"composer":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"lyrics":{"type":"string","maxLength":20000,"pattern":"^[^\\u0000]*$"},"aiDeclaration":{"type":"string","enum":["full_ai","partial_ai","ai_assisted","no_ai"]},"featuredArtists":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"legalName":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"email":{"type":"string","format":"email","maxLength":320},"role":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"spotifyUrl":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"appleMusicId":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":["name","legalName"],"additionalProperties":false},"maxItems":30},"contributors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"role":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":["name","role"],"additionalProperties":false},"maxItems":100},"splitSheet":{"type":"object","properties":{"collaborators":{"type":"array","items":{"type":"object","properties":{"collaboratorId":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"email":{"type":"string","format":"email","maxLength":320},"percentageShare":{"type":"number","exclusiveMinimum":0,"maximum":100},"role":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"collaboratorType":{"type":"string","enum":["internal","external"]},"isExternal":{"type":"boolean"},"internalUserId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"roidId":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":["name","email","percentageShare","role"],"additionalProperties":false},"maxItems":50}},"required":["collaborators"],"additionalProperties":false}},"required":["title","trackNumber"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"release":{"$ref":"#/components/schemas/Release"}},"required":["release"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/releases/{id}/tracks/{trackId}":{"patch":{"operationId":"updateTrack","summary":"Update a draft track without replacing uploaded media or clearance state","tags":["releases"],"x-required-scopes":["releases:write"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}},{"name":"trackId","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique 16–128 character key per logical write. Reuse only for an identical request.","schema":{"type":"string","minLength":16,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"titleVersion":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"trackNumber":{"type":"integer","minimum":1,"maximum":200},"isExplicit":{"type":"boolean"},"isrc":{"type":"string","pattern":"^[A-Z]{2}[A-Z0-9]{3}[0-9]{7}$"},"upc":{"type":"string","pattern":"^(?:[0-9]{12}|[0-9]{13})$"},"languageCode":{"type":"string","minLength":1,"maxLength":16,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"primaryGenreId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"secondaryGenreId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"producer":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"composer":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"lyrics":{"type":"string","maxLength":20000,"pattern":"^[^\\u0000]*$"},"aiDeclaration":{"type":"string","enum":["full_ai","partial_ai","ai_assisted","no_ai"]},"featuredArtists":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"legalName":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"email":{"type":"string","format":"email","maxLength":320},"role":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"spotifyUrl":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"appleMusicId":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":["name","legalName"],"additionalProperties":false},"maxItems":30},"contributors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"role":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":["name","role"],"additionalProperties":false},"maxItems":100},"splitSheet":{"type":"object","properties":{"collaborators":{"type":"array","items":{"type":"object","properties":{"collaboratorId":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"email":{"type":"string","format":"email","maxLength":320},"percentageShare":{"type":"number","exclusiveMinimum":0,"maximum":100},"role":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"collaboratorType":{"type":"string","enum":["internal","external"]},"isExternal":{"type":"boolean"},"internalUserId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"roidId":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":["name","email","percentageShare","role"],"additionalProperties":false},"maxItems":50}},"required":["collaborators"],"additionalProperties":false}},"required":[],"additionalProperties":false,"minProperties":1}}}},"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"release":{"$ref":"#/components/schemas/Release"}},"required":["release"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/releases/{id}/validate":{"post":{"operationId":"validate","summary":"Evaluate existing MDG metadata rules without submitting","tags":["releases"],"x-required-scopes":["releases:read"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"completion":{"type":"object","properties":{"enabled":{"type":"boolean"},"score":{"type":"number"},"complete":{"type":"boolean"},"missing":{"type":"array","items":{"type":"string"},"maxItems":100},"completedChecks":{"type":"integer"},"totalChecks":{"type":"integer"}},"required":["enabled","complete","missing"],"additionalProperties":true},"findings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"source":{"type":"string","enum":["deterministic","ai"]},"severity":{"type":"string","enum":["error","warning","info"]},"trackId":{"type":["string","null"]},"trackTitle":{"type":["string","null"]},"field":{"type":"string"},"message":{"type":"string"},"recommendedFix":{"type":"string"},"evidence":{"type":"string"}},"required":["code","severity","field","message","recommendedFix"],"additionalProperties":true},"maxItems":10000},"limitations":{"type":"array","items":{"type":"string"},"maxItems":100},"rulesVersion":{"type":"string"},"advisoryOnly":{"type":"boolean"},"submissionChecks":{"type":"string"}},"required":["completion","findings","limitations","rulesVersion","advisoryOnly"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/releases/{id}/fac":{"get":{"operationId":"fac","summary":"Read FAC and producer clearance status without signing tokens","tags":["releases"],"x-required-scopes":["releases:read"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}}],"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"featuredArtists":{"type":"array","items":{"type":"object","properties":{"clearanceId":{"type":"string"},"trackIds":{"type":"array","items":{"type":"string"},"maxItems":100},"artistName":{"type":"string"},"artistLegalName":{"type":"string"},"artistEmail":{"type":"string","format":"email","maxLength":320},"producerName":{"type":"string"},"producerLegalName":{"type":"string"},"producerEmail":{"type":"string","format":"email","maxLength":320},"status":{"type":"string","enum":["pending","accepted"]},"documentId":{"type":"string"},"acceptedAt":{"type":"string","format":"date-time"},"deliveryStatus":{"type":"string"}},"required":["status"],"additionalProperties":true},"maxItems":100},"producers":{"type":"array","items":{"type":"object","properties":{"clearanceId":{"type":"string"},"trackIds":{"type":"array","items":{"type":"string"},"maxItems":100},"artistName":{"type":"string"},"artistLegalName":{"type":"string"},"artistEmail":{"type":"string","format":"email","maxLength":320},"producerName":{"type":"string"},"producerLegalName":{"type":"string"},"producerEmail":{"type":"string","format":"email","maxLength":320},"status":{"type":"string","enum":["pending","accepted"]},"documentId":{"type":"string"},"acceptedAt":{"type":"string","format":"date-time"},"deliveryStatus":{"type":"string"}},"required":["status"],"additionalProperties":true},"maxItems":100},"nextAction":{"type":"string"}},"required":["status","featuredArtists","producers"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/releases/{id}/submit":{"post":{"operationId":"submit","summary":"Submit through existing entitlement, FAC, QC and admin review controls","tags":["releases"],"x-required-scopes":["releases:submit"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique 16–128 character key per logical write. Reuse only for an identical request.","schema":{"type":"string","minLength":16,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"release":{"$ref":"#/components/schemas/Release"},"reviewRequired":{"const":true}},"required":["release"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/uploads":{"post":{"operationId":"startUpload","summary":"Start a short-lived resumable upload for an editable release","tags":["uploads"],"x-required-scopes":["uploads:write"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique 16–128 character key per logical write. Reuse only for an identical request.","schema":{"type":"string","minLength":16,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"releaseId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"trackId":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"kind":{"type":"string","enum":["artwork","audio"]},"filename":{"type":"string","minLength":1,"maxLength":160,"pattern":"^[A-Za-z0-9][A-Za-z0-9._-]*$"},"contentType":{"type":"string","enum":["audio/wav","audio/x-wav","image/jpeg","image/png","image/webp"]},"size":{"type":"integer","minimum":1,"maximum":104857600},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["releaseId","kind","filename","contentType","size","sha256"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"token":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"},"chunkSize":{"type":"integer"},"partCount":{"type":"integer"},"nextAction":{"type":"string"}},"required":["id","token","expiresAt","chunkSize","partCount"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/uploads/{id}":{"get":{"operationId":"uploadStatus","summary":"Read received parts and upload progress","tags":["uploads"],"x-required-scopes":["uploads:write"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}},{"name":"Upload-Token","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"state":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"},"chunkSize":{"type":"integer"},"partCount":{"type":"integer"},"received":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer"},"sha256":{"type":"string"},"size":{"type":"integer"}},"required":[],"additionalProperties":true},"maxItems":100},"scanStatus":{"type":"string"}},"required":["id","state","received"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/uploads/{id}/parts/{part}":{"put":{"operationId":"putPart","summary":"Upload or safely retry an exact numbered chunk","tags":["uploads"],"x-required-scopes":["uploads:write"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}},{"name":"part","in":"path","required":true,"schema":{"type":"integer","minimum":0,"maximum":99}},{"name":"Upload-Token","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","contentMediaType":"application/octet-stream"}},"required":["file"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"index":{"type":"integer"},"sha256":{"type":"string"},"size":{"type":"integer"},"accepted":{"const":true}},"required":["index","sha256","size","accepted"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/uploads/{id}/complete":{"post":{"operationId":"completeUpload","summary":"Validate, scan, store and attach completed media","tags":["uploads"],"x-required-scopes":["uploads:write"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique 16–128 character key per logical write. Reuse only for an identical request.","schema":{"type":"string","minLength":16,"maxLength":128}},{"name":"Upload-Token","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"releaseId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"trackId":{"type":"string"},"state":{"const":"complete"},"scanStatus":{"type":"string","enum":["clean","not_configured"]}},"required":["releaseId","state","scanStatus"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhook":{"get":{"operationId":"webhookConfig","summary":"Read webhook configuration without signing secrets","tags":["webhook"],"x-required-scopes":["webhooks:read"],"security":[{"PartnerKey":[]}],"parameters":[],"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":["string","null"]},"keyId":{"type":["string","null"]},"allowedHosts":{"type":"array","items":{"type":"string"},"maxItems":100},"events":{"type":"array","items":{"type":"string"},"maxItems":100}},"required":["url","keyId","allowedHosts","events"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"operationId":"setWebhook","summary":"Set an approved HTTPS receiver and rotate its signing secret","tags":["webhook"],"x-required-scopes":["webhooks:write"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique 16–128 character key per logical write. Reuse only for an identical request.","schema":{"type":"string","minLength":16,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"keyId":{"type":"string"},"signingSecret":{"type":"string"},"warning":{"type":"string"}},"required":["url","keyId","signingSecret"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteWebhook","summary":"Disable webhook delivery and destroy its signing secret","tags":["webhook"],"x-required-scopes":["webhooks:write"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique 16–128 character key per logical write. Reuse only for an identical request.","schema":{"type":"string","minLength":16,"maxLength":128}}],"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"const":false}},"required":["enabled"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhook/deliveries":{"get":{"operationId":"deliveries","summary":"Read delivery attempts and pending/failed events","tags":["webhook"],"x-required-scopes":["webhooks:read"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"limit","in":"query","schema":{"type":"string","pattern":"^(?:[1-9]|[1-4][0-9]|50)$"}},{"name":"after","in":"query","schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}}],"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"_id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"eventId":{"type":"string"},"payload":{"$ref":"#/components/schemas/WebhookEvent"},"state":{"type":"string"},"attempts":{"type":"integer"},"nextAttemptAt":{"type":"string","format":"date-time"},"lastStatus":{"type":"integer"},"lastError":{"type":["string","null"]},"replayCount":{"type":"integer"},"logs":{"type":"array","items":{"type":"object","properties":{"at":{"type":"string","format":"date-time"},"status":{"type":"integer"},"error":{"type":"string"},"durationMs":{"type":"integer"}},"required":[],"additionalProperties":true},"maxItems":30}},"required":[],"additionalProperties":true},"maxItems":50},"next":{"anyOf":[{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},{"type":"null"}]}},"required":["data","next"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhook/deliveries/{id}/replay":{"post":{"operationId":"replay","summary":"Replay an existing event with its original event ID","tags":["webhook"],"x-required-scopes":["webhooks:write"],"security":[{"PartnerKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique 16–128 character key per logical write. Reuse only for an identical request.","schema":{"type":"string","minLength":16,"maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful result. Mutations return the same result for identical idempotency retries.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"eventId":{"type":"string"},"state":{"const":"pending"}},"required":["id","eventId","state"],"additionalProperties":true}}}},"400":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Safe error with machine-readable code and request ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"PartnerKey":{"type":"http","scheme":"bearer","bearerFormat":"mdg_<environment>_<key-id>.<secret>"}},"schemas":{"Error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"},"details":{"type":"array","items":{"type":"object"}}},"required":["code","message","requestId"],"additionalProperties":false},"ReleaseInput":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"titleVersion":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"artistId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"releaseType":{"type":"string","enum":["single","ep","album"]},"releaseDate":{"type":"string","format":"date"},"originalReleaseDate":{"type":"string","format":"date"},"languageCode":{"type":"string","minLength":1,"maxLength":16,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"primaryGenreId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"secondaryGenreId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"upc":{"type":"string","pattern":"^(?:[0-9]{12}|[0-9]{13})$"},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"pLine":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"isExplicit":{"type":"boolean"},"productionType":{"type":"string","enum":["self_produced","outsourced_produced","free_beat","purchased_lease","unknown"]},"artists":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"legalName":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"email":{"type":"string","format":"email","maxLength":320},"role":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"spotifyUrl":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"appleMusicId":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":["name","legalName"],"additionalProperties":false},"maxItems":30},"distributionPlatforms":{"type":"array","items":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"maxItems":100}},"required":["title","artistId","releaseType"],"additionalProperties":false},"TrackInput":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"titleVersion":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"trackNumber":{"type":"integer","minimum":1,"maximum":200},"isExplicit":{"type":"boolean"},"isrc":{"type":"string","pattern":"^[A-Z]{2}[A-Z0-9]{3}[0-9]{7}$"},"upc":{"type":"string","pattern":"^(?:[0-9]{12}|[0-9]{13})$"},"languageCode":{"type":"string","minLength":1,"maxLength":16,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"primaryGenreId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"secondaryGenreId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"producer":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"composer":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"lyrics":{"type":"string","maxLength":20000,"pattern":"^[^\\u0000]*$"},"aiDeclaration":{"type":"string","enum":["full_ai","partial_ai","ai_assisted","no_ai"]},"featuredArtists":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"legalName":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"email":{"type":"string","format":"email","maxLength":320},"role":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"spotifyUrl":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"appleMusicId":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":["name","legalName"],"additionalProperties":false},"maxItems":30},"contributors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"role":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":["name","role"],"additionalProperties":false},"maxItems":100},"splitSheet":{"type":"object","properties":{"collaborators":{"type":"array","items":{"type":"object","properties":{"collaboratorId":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"email":{"type":"string","format":"email","maxLength":320},"percentageShare":{"type":"number","exclusiveMinimum":0,"maximum":100},"role":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"collaboratorType":{"type":"string","enum":["internal","external"]},"isExternal":{"type":"boolean"},"internalUserId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"roidId":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":["name","email","percentageShare","role"],"additionalProperties":false},"maxItems":50}},"required":["collaborators"],"additionalProperties":false}},"required":["title","trackNumber"],"additionalProperties":false},"Release":{"type":"object","properties":{"_id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"title":{"type":"string"},"artistId":{"oneOf":[{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},{"type":"object","properties":{"_id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"name":{"type":"string"}},"required":[],"additionalProperties":true}]},"releaseType":{"type":"string","enum":["single","ep","album"]},"status":{"type":"string","enum":["draft","pending_fac","pending_producer","pending","in_review","submitted_to_stores","promo_pack_attached","live","distributed","rejected","takedown_requested","takedown_complete"]},"canEdit":{"type":"boolean"},"artwork":{"type":"string"},"upc":{"type":"string"},"releaseDate":{"type":"string","format":"date-time"},"languageCode":{"type":"string"},"tracks":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"titleVersion":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"trackNumber":{"type":"integer","minimum":1,"maximum":200},"isExplicit":{"type":"boolean"},"isrc":{"type":"string","pattern":"^[A-Z]{2}[A-Z0-9]{3}[0-9]{7}$"},"upc":{"type":"string","pattern":"^(?:[0-9]{12}|[0-9]{13})$"},"languageCode":{"type":"string","minLength":1,"maxLength":16,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"primaryGenreId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"secondaryGenreId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"producer":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"composer":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"lyrics":{"type":"string","maxLength":20000,"pattern":"^[^\\u0000]*$"},"aiDeclaration":{"type":"string","enum":["full_ai","partial_ai","ai_assisted","no_ai"]},"featuredArtists":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"legalName":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"email":{"type":"string","format":"email","maxLength":320},"role":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"spotifyUrl":{"type":"string","format":"uri","pattern":"^https://","maxLength":2048},"appleMusicId":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":[],"additionalProperties":true},"maxItems":100},"contributors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"role":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":["name","role"],"additionalProperties":false},"maxItems":100},"splitSheet":{"type":"object","properties":{"collaborators":{"type":"array","items":{"type":"object","properties":{"collaboratorId":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"name":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"email":{"type":"string","format":"email","maxLength":320},"percentageShare":{"type":"number","exclusiveMinimum":0,"maximum":100},"role":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"},"collaboratorType":{"type":"string","enum":["internal","external"]},"isExternal":{"type":"boolean"},"internalUserId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"roidId":{"type":"string","minLength":1,"maxLength":80,"pattern":"^[^\\u0000-\\u001f\\u007f<>]*$"}},"required":[],"additionalProperties":true},"maxItems":50}},"required":[],"additionalProperties":true},"trackId":{"type":"string"},"audioFile":{"type":"string"}},"required":["title","trackNumber"],"additionalProperties":true},"maxItems":200},"updates":{"type":"array","items":{"type":"object","properties":{"status":{"type":"string"},"at":{"type":"string","format":"date-time"}},"required":[],"additionalProperties":true},"maxItems":100}},"required":["_id","title","status","tracks"],"additionalProperties":true},"WebhookEvent":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["release.status_changed","release.action_required","release.fac_changed","release.rejected"]},"apiVersion":{"type":"string","const":"1.0"},"environment":{"type":"string","enum":["sandbox","production"]},"createdAt":{"type":"string","format":"date-time"},"data":{"type":"object","properties":{"releaseId":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"status":{"type":"string"},"actionRequired":{"type":"boolean"},"rejectionReason":{"type":["string","null"]},"fac":{"type":"object","properties":{"featuredArtists":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"}},"required":[],"additionalProperties":true},"maxItems":100},"producers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"}},"required":[],"additionalProperties":true},"maxItems":100}},"required":[],"additionalProperties":true}},"required":["releaseId","status","actionRequired"],"additionalProperties":true}},"required":["id","type","apiVersion","environment","createdAt","data"],"additionalProperties":true}}}}