API Documentation
The Record Label Registry provides public APIs for digital service providers, AI platforms, sync licensing services, and developers to programmatically verify label identity, check catalog rights, and query AI opt-out declarations.
Endpoints
- DSP Verification API : Verify a label by Registry ID
- Stamp Verification API : Validate a Digital Identity Stamp
- AI Opt-Out Ledger API : Query AI training opt-out declarations
- Sync Licensing Search API - Search sync-ready catalog
- Aggregated Stats API - Cross-platform streaming stats for a label's roster
Authentication
Most endpoints require an API key passed via the Authorization header. API keys are available to verified labels from the Settings page of your dashboard.
Authorization: Bearer rlr_live_your_api_key_hereThe AI Opt-Out Ledger and Stamp Verification endpoints are public and do not require authentication.
1. DSP Verification API
/api/v1/verify/{registryId}AUTH REQUIREDRetrieve the full verification profile for a label by its Registry ID. Returns identity, verification status, Digital Identity Stamp, catalog, AI opt-out declarations, corporate entity data, and compliance checks.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| registryId | string | Yes | The label's Registry ID (e.g., RLR-2026-00001) |
Example Request
curl -H "Authorization: Bearer rlr_live_abc123..." \
https://recordlabelregistry.com/api/v1/verify/RLR-2026-00001Response (200 OK)
{
"registryId": "RLR-2026-00001",
"name": "Example Records",
"status": "VERIFIED",
"verified": true,
"yearFounded": 1998,
"location": {
"city": "New York",
"state": "NY",
"country": "US"
},
"genres": ["Hip-Hop", "R&B"],
"website": "https://examplerecords.com",
"platforms": [
{ "platform": "spotify", "url": "https://open.spotify.com/..." },
{ "platform": "instagram", "url": "https://instagram.com/..." }
],
"digitalIdentityStamp": {
"stampId": "RLR-STAMP-...",
"fingerprint": "a1b2c3d4...",
"status": "ACTIVE",
"valid": true,
"issuedAt": "2026-01-15T00:00:00.000Z",
"expiresAt": "2027-01-15T00:00:00.000Z",
"catalogCount": 42,
"catalog": [
{
"title": "Album Title",
"type": "ALBUM",
"artists": ["Artist Name"],
"isrc": "USRC12345678",
"upc": "012345678901",
"releaseDate": "2025-06-01T00:00:00.000Z",
"ownership": 100,
"syncReady": true,
"canClearInstantly": true,
"ddexCompliant": true,
"splitsVerified": true,
"territory": "Worldwide"
}
]
},
"aiOptOut": {
"declared": true,
"declaredAt": "2026-03-01T00:00:00.000Z",
"scope": "FULL_CATALOG",
"restrictions": {
"voiceCloning": true,
"modelTraining": true,
"lyricTraining": true,
"coverArt": false
},
"contactEmail": "legal@examplerecords.com",
"statement": "No AI training permitted without license."
},
"corporateEntity": {
"legalName": "Example Records LLC",
"entityType": "LLC",
"status": "ACTIVE",
"stateOfFormation": "NY"
},
"compliance": {
"checks": [
{ "type": "ENTITY_FILING", "status": "PASSED", "score": 100, "checkedAt": "..." }
],
"overallPassed": true
},
"profileUrl": "https://recordlabelregistry.com/registry/example-records",
"queriedAt": "2026-06-26T12:00:00.000Z"
}Error Responses
| Status Code | Description |
|---|---|
| 401 | Missing or invalid Authorization header |
| 403 | API key is invalid or expired |
| 404 | Label not found or suspended |
| 500 | Internal server error |
2. Stamp Verification API
/api/v1/stamp/{stampId}PUBLICValidate a Digital Identity Stamp by its Stamp ID. This is a public endpoint. No API key required. Use this to verify that a stamp embedded on a label's website or in metadata is genuine and active.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| stampId | string | Yes | The Digital Identity Stamp ID (e.g., RLR-STAMP-...) |
Example Request
curl https://recordlabelregistry.com/api/v1/stamp/RLR-STAMP-abc123Response (200 OK)
{
"stampId": "RLR-STAMP-abc123",
"valid": true,
"status": "ACTIVE",
"fingerprint": "a1b2c3d4...",
"issuedAt": "2026-01-15T00:00:00.000Z",
"expiresAt": "2027-01-15T00:00:00.000Z",
"revokedAt": null,
"label": {
"registryId": "RLR-2026-00001",
"name": "Example Records",
"status": "VERIFIED",
"profileUrl": "https://recordlabelregistry.com/registry/example-records"
},
"catalogCount": 42,
"catalog": [
{
"title": "Album Title",
"type": "ALBUM",
"artists": ["Artist Name"],
"isrc": "USRC12345678",
"upc": "012345678901",
"releaseDate": "2025-06-01T00:00:00.000Z"
}
],
"verifiedAt": "2026-06-26T12:00:00.000Z"
}Error Responses
| Status Code | Description |
|---|---|
| 404 | Stamp not found |
| 500 | Internal server error |
3. AI Opt-Out Ledger API
/api/v1/ai-opt-outPUBLICQuery the public AI Training Opt-Out Ledger. This is a public endpoint. No API key required. AI platforms and model trainers should consult this ledger to respect label opt-out declarations. Responses are cached for 1 hour.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | No | Page number (default: 1) |
| limit | integer | No | Results per page, max 100 (default: 50) |
Example Request
curl https://recordlabelregistry.com/api/v1/ai-opt-out?page=1&limit=25Response (200 OK)
{
"ledger": "Record Label Registry | AI Training Opt-Out Ledger",
"version": "1.0",
"totalDeclarations": 156,
"page": 1,
"limit": 25,
"totalPages": 7,
"declarations": [
{
"registryId": "RLR-2026-00001",
"labelName": "Example Records",
"labelStatus": "VERIFIED",
"declaredAt": "2026-03-01T00:00:00.000Z",
"scope": "FULL_CATALOG",
"restrictions": {
"voiceCloning": true,
"modelTraining": true,
"lyricTraining": true,
"coverArt": false
},
"contactEmail": "legal@examplerecords.com",
"statement": "No AI training permitted without license.",
"profileUrl": "https://recordlabelregistry.com/registry/example-records"
}
],
"queriedAt": "2026-06-26T12:00:00.000Z"
}4. Sync Licensing Search API
/api/v1/sync/searchAUTH REQUIREDSearch for verified labels with sync-ready, instantly-clearable catalog entries. Designed for sync licensing platforms, music supervisors, and DSPs integrating clearance workflows.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | No | Search by label name or Registry ID |
| genre | string | No | Filter by genre (e.g., "Hip-Hop") |
| territory | string | No | Filter catalog by territory (e.g., "Worldwide", "US") |
| limit | integer | No | Results per page, max 100 (default: 50) |
| offset | integer | No | Number of results to skip (default: 0) |
Example Request
curl -H "Authorization: Bearer rlr_live_abc123..." \
"https://recordlabelregistry.com/api/v1/sync/search?genre=Hip-Hop&territory=US&limit=10"Response (200 OK)
{
"total": 34,
"limit": 10,
"offset": 0,
"results": [
{
"registryId": "RLR-2026-00001",
"name": "Example Records",
"genres": ["Hip-Hop", "R&B"],
"entity": {
"legalName": "Example Records LLC",
"type": "LLC",
"verified": true
},
"artists": [
{ "name": "Artist Name", "genres": ["Hip-Hop"], "releaseCount": 12 }
],
"syncCatalog": [
{
"title": "Song Title",
"type": "SINGLE",
"artists": ["Artist Name"],
"isrc": "USRC12345678",
"upc": "012345678901",
"ownership": 100,
"territory": "Worldwide",
"clearanceContact": {
"name": "Jane Smith",
"email": "sync@examplerecords.com"
},
"exclusions": null,
"ddexCompliant": true,
"splitsVerified": true,
"releaseDate": "2025-06-01T00:00:00.000Z"
}
],
"profileUrl": "https://recordlabelregistry.com/registry/example-records"
}
],
"queriedAt": "2026-06-26T12:00:00.000Z"
}Error Responses
| Status Code | Description |
|---|---|
| 401 | Missing or invalid Authorization header |
| 403 | API key is invalid or expired |
| 500 | Internal server error |
5. Aggregated Stats API
/api/v1/stats/{registryId}PUBLICReturns cross-platform streaming and audience statistics for every artist on a label's roster. Pulls live data from Spotify, YouTube, Deezer, and Last.fm. Responses are cached for 1 hour.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| registryId | string | Yes | The label's Registry ID (e.g., "RLR-2026-00001") |
Example Request
curl "https://recordlabelregistry.com/api/v1/stats/RLR-2026-00001"Response (200 OK)
{
"labelName": "Example Records",
"registryId": "RLR-2026-00001",
"artistCount": 3,
"platforms": [
{ "platform": "spotify", "configured": true, "available": true },
{ "platform": "youtube", "configured": true, "available": true },
{ "platform": "deezer", "configured": true, "available": true },
{ "platform": "lastfm", "configured": true, "available": true }
],
"artists": [
{
"name": "Artist Name",
"spotifyId": "4Z8W4fKeB5YxbusRsdQVPb",
"platforms": {
"spotify": {
"followers": 245000,
"popularity": 72,
"genres": ["hip hop", "rap"],
"topTracks": [{ "name": "Hit Song", "popularity": 85 }]
},
"youtube": {
"subscribers": 180000,
"totalViews": 45000000,
"videoCount": 42
},
"deezer": { "fans": 95000, "albumCount": 5 },
"lastfm": {
"playCount": 12500000,
"listenerCount": 320000,
"tags": ["hip-hop", "rap"]
}
},
"totals": {
"totalReach": 840000,
"platformCount": 4,
"topGenres": ["hip hop", "rap"]
}
}
],
"totals": {
"totalReach": 840000,
"spotifyFollowers": 245000,
"youtubeSubscribers": 180000,
"youtubeTotalViews": 45000000,
"deezerFans": 95000,
"lastfmListeners": 320000,
"lastfmPlayCount": 12500000
},
"generatedAt": "2026-06-26T12:00:00.000Z"
}Error Responses
| Status Code | Description |
|---|---|
| 404 | Label not found or has no artists on roster |
| 500 | Internal server error |
Note: This endpoint is public and does not require authentication. Platform availability depends on configured API credentials (Spotify, YouTube, Last.fm). Deezer always works without credentials. Stats are cached for 1 hour.
Rate Limits & CORS
All API endpoints support CORS with Access-Control-Allow-Origin: * for browser-based integrations.
API usage is logged per key. Excessive usage may be throttled. Contact api@recordlabelregistry.com for enterprise rate limit increases.
The AI Opt-Out Ledger endpoint is cached with a 1-hour TTL. The Sync Search endpoint is cached for 5 minutes.
Getting an API Key
- Register or log in to your label account.
- Navigate to Settings in your dashboard.
- Generate a new API key under the API Keys section.
- Copy and store the key securely. It is only shown once.
API keys start with rlr_live_ and are 76 characters long. Keys can be revoked at any time from your settings page.
Need help with integration?
Contact api@recordlabelregistry.com for technical support, enterprise access, or partnership inquiries.