Skip to main content
T.A
An official registry of THRY ARCHIVE LLC

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

  1. DSP Verification API : Verify a label by Registry ID
  2. Stamp Verification API : Validate a Digital Identity Stamp
  3. AI Opt-Out Ledger API : Query AI training opt-out declarations
  4. Sync Licensing Search API - Search sync-ready catalog
  5. 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_here

The AI Opt-Out Ledger and Stamp Verification endpoints are public and do not require authentication.


1. DSP Verification API

GET/api/v1/verify/{registryId}AUTH REQUIRED

Retrieve 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

ParameterTypeRequiredDescription
registryIdstringYesThe 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-00001

Response (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 CodeDescription
401Missing or invalid Authorization header
403API key is invalid or expired
404Label not found or suspended
500Internal server error

2. Stamp Verification API

GET/api/v1/stamp/{stampId}PUBLIC

Validate 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

ParameterTypeRequiredDescription
stampIdstringYesThe Digital Identity Stamp ID (e.g., RLR-STAMP-...)

Example Request

curl https://recordlabelregistry.com/api/v1/stamp/RLR-STAMP-abc123

Response (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 CodeDescription
404Stamp not found
500Internal server error

3. AI Opt-Out Ledger API

GET/api/v1/ai-opt-outPUBLIC

Query 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

ParameterTypeRequiredDescription
pageintegerNoPage number (default: 1)
limitintegerNoResults per page, max 100 (default: 50)

Example Request

curl https://recordlabelregistry.com/api/v1/ai-opt-out?page=1&limit=25

Response (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"
}


5. Aggregated Stats API

GET/api/v1/stats/{registryId}PUBLIC

Returns 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

ParameterTypeRequiredDescription
registryIdstringYesThe 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 CodeDescription
404Label not found or has no artists on roster
500Internal 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

  1. Register or log in to your label account.
  2. Navigate to Settings in your dashboard.
  3. Generate a new API key under the API Keys section.
  4. 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.