๐ Quick Navigation
#1 โ Authentication
#2 โ Python SDK
#3 โ Node.js SDK
#4 โ Go SDK
#5 โ cURL Examples
#6 โ Webhooks
#7 โ Rate Limits
๐ Authentication
All API requests require an API key. Include it in the X-API-Key header
or as a ?api_key= query parameter.
curl -H "X-API-Key: YOUR_API_KEY" \
https://api.cdn.luxhdr.top/v1/assets
curl https://api.cdn.luxhdr.top/v1/assets?api_key=YOUR_API_KEY
๐
Header Authentication
X-API-Key: your-key
๐
Query Parameter
?api_key=your-key
๐
Rotate Keys
Regenerate keys from dashboard
๐ Python SDK
Install the official LUXHDR Python SDK and start integrating in minutes.
Installation
pip install luxhdr-sdk
Basic Usage
from luxhdr import LUXHDRClient
client = LUXHDRClient(api_key="YOUR_API_KEY")
assets = client.assets.list(
search="brand",
format="hdr10",
platform="social",
limit=10
)
for asset in assets.results:
print(f"{asset.name} โ {asset.description}")
asset = client.assets.get("brand_reel_4k")
print(f"Latest version: {asset.version}")
print(f"CDN URL: {asset.url}")
stats = client.stats.get()
print(f"Assets available: {stats.assets}")
print(f"24h deliveries: {stats.delivered_24h}")
Error Handling
from luxhdr.errors import LUXHDRError, NotFoundError
try:
asset = client.assets.get("nonexistent_asset")
except NotFoundError as e:
print(f"Asset not found: {e}")
except LUXHDRError as e:
print(f"API error: {e}")
๐ข Node.js SDK
The LUXHDR Node.js SDK provides full TypeScript support and async/await API.
Installation
npm install luxhdr-sdk
yarn add luxhdr-sdk
Basic Usage
import { LUXHDRClient } from 'luxhdr-sdk';
const client = new LUXHDRClient({
apiKey: 'YOUR_API_KEY'
});
const assets = await client.assets.list({
search: 'brand',
format: 'hdr10',
platform: 'social',
limit: 10
});
assets.results.forEach(asset => {
console.log(`${asset.name} โ ${asset.description}`);
});
const asset = await client.assets.get('brand_reel_4k');
console.log(`Latest version: ${asset.version}`);
console.log(`CDN URL: ${asset.url}`);
const stats = await client.stats.get();
console.log(`Assets available: ${stats.assets}`);
console.log(`24h deliveries: ${stats.delivered_24h}`);
Error Handling
import { LUXHDRError, NotFoundError } from 'luxhdr-sdk';
try {
const asset = await client.assets.get('nonexistent_asset');
} catch (error) {
if (error instanceof NotFoundError) {
console.error('Asset not found');
} else if (error instanceof LUXHDRError) {
console.error(`API error: ${error.message}`);
}
}
๐น Go SDK
The LUXHDR Go SDK is lightweight, performant, and follows Go best practices.
Installation
go get github.com/luxhdr/sdk-go
Basic Usage
package main
import (
"fmt"
"log"
"github.com/luxhdr/sdk-go"
)
func main() {
client := luxhdr.NewClient("YOUR_API_KEY")
assets, err := client.Assets.List(&luxhdr.ListOptions{
Search: "brand",
Format: "hdr10",
Platform: "social",
Limit: 10,
})
if err != nil {
log.Fatal(err)
}
for _, asset := range assets.Results {
fmt.Printf("%s โ %s\n", asset.Name, asset.Description)
}
asset, err := client.Assets.Get("brand_reel_4k")
if err != nil {
log.Fatal(err)
}
fmt.Printf("Latest version: %s\n", asset.Version)
fmt.Printf("CDN URL: %s\n", asset.URL)
stats, err := client.Stats.Get()
if err != nil {
log.Fatal(err)
}
fmt.Printf("Assets available: %d\n", stats.Assets)
fmt.Printf("24h deliveries: %d\n", stats.Delivered24h)
}
๐ง cURL Examples
Test the LUXHDR API directly from your terminal with these cURL examples.
Browse Assets
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.cdn.luxhdr.top/v1/assets?search=brand&limit=5"
Get Asset Details
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.cdn.luxhdr.top/v1/assets/brand_reel_4k"
Get Version Details
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.cdn.luxhdr.top/v1/assets/brand_reel_4k/2.1.0"
Get Delivery Statistics
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.cdn.luxhdr.top/v1/stats"
Get Platform Status
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.cdn.luxhdr.top/v1/status"
Pretty Print JSON Output
curl -H "X-API-Key: YOUR_API_KEY" \
"https://api.cdn.luxhdr.top/v1/assets?output=human"
๐ก Webhooks
Receive real-time notifications for asset delivery events, processing completions, and platform status changes.
Register a Webhook
curl -X POST "https://api.cdn.luxhdr.top/v1/webhooks" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-service.com/webhooks/luxhdr",
"events": ["asset.delivered", "asset.processing", "platform.status"],
"secret": "your_webhook_secret"
}'
Webhook Payload Example
{
"event": "asset.delivered",
"timestamp": "2026-08-25T14:32:18Z",
"data": {
"asset": "brand_reel_4k",
"version": "2.1.0",
"platform": "social",
"region": "US-EAST",
"delivery_time_ms": 247,
"status": "success"
}
}
โ
asset.delivered
Asset successfully delivered
โณ
asset.processing
Asset processing started
๐
platform.status
Platform status changed
โ ๏ธ
asset.failed
Asset delivery failed
๐ฆ Rate Limits
The LUXHDR API implements rate limiting to ensure fair usage for all clients.
Rate limit headers are included in every response.
๐
Free Tier
100 requests per hour
๐
Pro Tier
1,000 requests per hour
๐ข
Enterprise
10,000+ requests per hour
Rate Limit Headers
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1692986400
Rate Limit Exceeded Response
{
"error": true,
"status": 429,
"message": "Rate limit exceeded. Please wait 60 seconds."
}