API Integration

Developer guide for programmatic access to AI detection and fraud analysis

Beta API Notice

API access will be available in Open Beta (Week 10). Current beta testers can request early API access via [email protected]

API Overview

The CopyrightChains v9.3 API provides programmatic access to AI detection and playlist intelligence features.

Base URL: https://api.copyrightchains.com/v9.3

Authentication: API Key (Bearer token)

Rate Limit: 100 requests/minute (Enterprise: 1000/minute)

Response Format: JSON

Pricing: $0.01 per verification (bulk discounts available)

Authentication

Getting Your API Key

  1. Log in to beta dashboard
  2. Navigate to Settings → API Keys
  3. Click "Generate New Key"
  4. Copy and securely store your key
  5. Never commit API keys to version control

Authentication Header

Include your API key in the Authorization header:

Authorization: Bearer cc93_your_api_key_here

API Endpoints

POST /verify/track

Verify if a track was AI-generated.

Request:

{
  "track_name": "Song Title",
  "artist_name": "Artist Name",
  "include_audio_analysis": true,
  "include_metadata": true
}

Response:

{
  "status": "success",
  "track_id": "123456",
  "platform_detection": {
    "suno": 15.2,
    "udio": 12.8,
    "human": 68.5,
    "confidence": 72.3
  },
  "risk_assessment": {
    "copyright": 8,
    "legal": 7,
    "ownership": 6,
    "market": 5
  },
  "audio_features": {...},
  "metadata": {...}
}

POST /verify/playlist

Analyze playlist for fraud (Coming in Phase 3).

Request:

{
  "playlist_url": "https://open.spotify.com/playlist/...",
  "include_track_analysis": false,
  "depth": "full"
}

Response:

{
  "status": "success",
  "playlist_id": "spotify:playlist:...",
  "fraud_score": 34,
  "curator_tier": 3,
  "engagement_metrics": {...},
  "recommendations": [...]
}

GET /track/{track_id}

Retrieve previously verified track results.

Response:

{
  "status": "success",
  "track_id": "123456",
  "verified_at": "2025-10-15T14:32:00Z",
  "results": {...}
}

POST /batch/verify

Verify multiple tracks in single request (Enterprise only).

Request:

{
  "tracks": [
    {"track_name": "Song 1", "artist_name": "Artist 1"},
    {"track_name": "Song 2", "artist_name": "Artist 2"}
  ],
  "options": {
    "include_audio_analysis": false
  }
}

Limit: 100 tracks per request

Webhooks (Enterprise)

Configure Webhooks

Receive real-time notifications when verifications complete.

  1. Navigate to Settings → Webhooks
  2. Add your webhook endpoint URL
  3. Select event types to subscribe to
  4. Save and test connection

Webhook Payload

{
  "event": "verification.completed",
  "timestamp": "2025-10-15T14:32:00Z",
  "track_id": "123456",
  "results": {...},
  "signature": "sha256_hmac_signature"
}

Security: Verify HMAC signature using your webhook secret

Code Examples

Python Example

import requests

API_KEY = "cc93_your_api_key"
BASE_URL = "https://api.copyrightchains.com/v9.3"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

payload = {
    "track_name": "Flowers",
    "artist_name": "Miley Cyrus",
    "include_audio_analysis": True
}

response = requests.post(
    f"{BASE_URL}/verify/track",
    headers=headers,
    json=payload
)

if response.status_code == 200:
    results = response.json()
    print(f"Human likelihood: {results['platform_detection']['human']}%")
else:
    print(f"Error: {response.status_code}")

Node.js Example

const axios = require('axios');

const API_KEY = 'cc93_your_api_key';
const BASE_URL = 'https://api.copyrightchains.com/v9.3';

async function verifyTrack(trackName, artistName) {
  try {
    const response = await axios.post(
      `${BASE_URL}/verify/track`,
      {
        track_name: trackName,
        artist_name: artistName,
        include_audio_analysis: true
      },
      {
        headers: {
          'Authorization': `Bearer ${API_KEY}`,
          'Content-Type': 'application/json'
        }
      }
    );

    return response.data;
  } catch (error) {
    console.error('Verification failed:', error.message);
    throw error;
  }
}

verifyTrack('Flowers', 'Miley Cyrus')
  .then(results => console.log(results))
  .catch(err => console.error(err));

cURL Example

curl -X POST https://api.copyrightchains.com/v9.3/verify/track \
  -H "Authorization: Bearer cc93_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "track_name": "Flowers",
    "artist_name": "Miley Cyrus",
    "include_audio_analysis": true
  }'

Rate Limiting

Rate Limits by Tier:

  • Free: 10 requests/day
  • Premium: 100 requests/minute (144,000/day)
  • Enterprise: 1,000 requests/minute (1.44M/day)

Rate Limit Headers

Every API response includes rate limit information:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1697385600

429 Response (Rate Limit Exceeded)

{
  "error": "rate_limit_exceeded",
  "message": "API rate limit exceeded. Retry after 45 seconds.",
  "retry_after": 45
}

Error Handling

400 Bad Request

Invalid request parameters or format

401 Unauthorized

Missing or invalid API key

404 Not Found

Track or playlist not found in database

429 Too Many Requests

Rate limit exceeded

500 Internal Server Error

Server error, retry with exponential backoff

503 Service Unavailable

Temporary service outage

Best Practices

API Best Practices

  • Store API keys securely (environment variables, secret managers)
  • Implement exponential backoff for retries
  • Cache results to reduce API calls
  • Monitor rate limit headers
  • Use batch endpoints for multiple tracks
  • Validate webhook signatures
  • Handle errors gracefully
  • Log API usage for debugging

API Pricing

Pay-As-You-Go

  • Track Verification: $0.01 per verification
  • Playlist Analysis: $0.05 per playlist
  • Batch Discount: 20% off for >10,000 verifications/month
  • No Monthly Minimum

Enterprise Plans

  • $999/month: Unlimited verifications, 1000 req/min
  • Custom Pricing: For >1M verifications/month
  • Includes: Webhooks, priority support, SLA

Related Topics