PUBLIC REST API v1 SPECIFICATION

Developer Documentation

Learn how to authenticate requests, manage granular permission scopes, stay within rate limit boundaries, and interact with the DistroVibe REST API v1.

1. Authentication

The DistroVibe Public REST API v1 uses Bearer token authentication via cryptographically generated live keys (dv_live_...).

Every request must include your secret API key in the Authorization header:

Authorization: Bearer dv_live_8f3a9b1c7d2e...
Security Principle: Never expose your API keys in clientside web applications (browser JavaScript) or public repositories. Always make calls from your secure backend servers or serverless functions.

2. Granular Scopes Matrix

Scope IdentifierCategoryDescriptionAccess Level
artists:readCatalogView artist profiles & rosterStandard
artists:writeCatalogCreate and update artist profilesStandard
releases:readReleasesView releases, metadata & submission statesStandard
releases:writeReleasesCreate & update draft release packagesStandard
releases:submitReleasesSubmit release for QA & store deliverySensitive
catalog:readCatalogEnumerate full catalog, query UPCs & ISRCsStandard
analytics:readInsightsAccess stream telemetry & platform breakdownStandard
royalties:readFinancialsAccess monthly sales & track royalty ledgerRestricted
publishing:readPublishingView composition registrations & sharesStandard
publishing:writePublishingUpdate songwriting splits & agreementsStandard
teams:readOrganizationView team members & rolesStandard
teams:manageOrganizationInvite/remove team membersSensitive
uploads:writeMediaRequest presigned direct S3 upload URLsStandard
webhooks:manageToolsManage webhook endpoints & subscriptionsStandard

3. Rate Limiting & Resource Protection

To ensure stable platform availability and prevent noisy neighbors on cluster nodes, the following limits are enforced per organization:

Minute Limit
60 req / min

Sliding minute window

Concurrency Limit
3 simultaneous

Active in-flight requests

Monthly Allowance
30,000 req / mo

Included with Label Pro

HTTP Response Headers

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 42 // Seconds until window resets
Retry-After: 42 // Only present when 429 Too Many Requests

4. Error Handling

The DistroVibe API uses standard HTTP status codes. Error responses always return a structured RFC-compliant JSON object:

{
  "error": {
    "code": "INSUFFICIENT_SCOPE",
    "message": "This API key lacks the required scope: 'royalties:read'.",
    "status": 403,
    "requiredScope": "royalties:read"
  }
}
200 / 201Success
401Unauthorized
403Forbidden / Scope
429Rate Limited