API Integration

Integrate LUXHDR's premium HDR delivery pipeline into your workflow. RESTful API with SDKs for Python, Node.js, and Go.

https://api.cdn.luxhdr.top/v1

๐Ÿ“‘ 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.

# Using header (recommended) curl -H "X-API-Key: YOUR_API_KEY" \ https://api.cdn.luxhdr.top/v1/assets # Using query parameter 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 # Initialize the client client = LUXHDRClient(api_key="YOUR_API_KEY") # Browse assets assets = client.assets.list( search="brand", format="hdr10", platform="social", limit=10 ) for asset in assets.results: print(f"{asset.name} โ€” {asset.description}") # Get asset details asset = client.assets.get("brand_reel_4k") print(f"Latest version: {asset.version}") print(f"CDN URL: {asset.url}") # Get delivery statistics 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 # or yarn add luxhdr-sdk
Basic Usage
import { LUXHDRClient } from 'luxhdr-sdk'; // Initialize the client const client = new LUXHDRClient({ apiKey: 'YOUR_API_KEY' }); // Browse assets const assets = await client.assets.list({ search: 'brand', format: 'hdr10', platform: 'social', limit: 10 }); assets.results.forEach(asset => { console.log(`${asset.name} โ€” ${asset.description}`); }); // Get asset details const asset = await client.assets.get('brand_reel_4k'); console.log(`Latest version: ${asset.version}`); console.log(`CDN URL: ${asset.url}`); // Get delivery statistics 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() { // Initialize the client client := luxhdr.NewClient("YOUR_API_KEY") // Browse assets 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) } // Get asset details 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) // Get delivery statistics 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." }