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
- Log in to beta dashboard
- Navigate to Settings → API Keys
- Click "Generate New Key"
- Copy and securely store your key
- 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.
- Navigate to Settings → Webhooks
- Add your webhook endpoint URL
- Select event types to subscribe to
- 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