API Documentation

Complete API reference, authentication, and security guide for integrating RIXL's media optimization platform

The RIXL API puts professional content delivery at your fingertips. Whether you're building a social platform, e-commerce site, or mobile app, our RESTful API makes it easy to upload, process, and deliver media at scale.

Quick Actions

Ready to integrate?

First, grab your API keys and set up a project. Then you're just a few lines of code away from optimized media delivery.

API Fundamentals

Authentication

X-API-Key header with project key

Format

JSON requests and responses

Rate Limits

1000 requests/minute per key

Authentication Every request needs your project API key in the header:

X-API-Key: YOUR_PROJECT_API_KEY_HERE

What You Can Build

Smart Media Uploads

Drop any video or image into RIXL and get back multiple formats, perfect for any device or connection.

Dynamic Content Feeds

Create social-style feeds that automatically update as you add content. Perfect for user-generated content platforms.

Real-time Processing

Track upload progress, monitor transcoding status, and get notified when your media is ready for delivery.

Global Media Delivery

Access your optimized assets through our global CDN with automatic edge caching and real-time transformations.

Web Applications

Direct media uploads, real-time processing status, and CDN delivery integration for seamless user experiences.

Mobile Apps

Secure backend integration for user-generated content and automatic media optimization on any device.

Getting Started

  1. Authentication - Generate an API key from your project settings
  2. Upload Media - Use the upload endpoints to add videos and images
  3. Monitor Processing - Track processing status for uploaded content
  4. Retrieve Assets - Access processed media through CDN URLs
  5. Create Feeds - Organize content into structured feeds for delivery

Quick Start Examples

# Initialize a video upload
curl -X POST https://api.rixl.com/videos/upload/init \
-H "X-API-Key: YOUR_PROJECT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"file_name": "my-video.mp4",
"video_quality": "shorts",
"image_format": "jpg"
}'

# Get all videos in your project
curl -X GET https://api.rixl.com/videos \
-H "X-API-Key: YOUR_PROJECT_API_KEY" \
-G \
-d "limit=25" \
-d "offset=0"
// Initialize a video upload
const initResponse = await fetch('https://api.rixl.com/videos/upload/init', {
method: 'POST',
headers: {
'X-API-Key': 'YOUR_PROJECT_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
file_name: 'my-video.mp4',
video_quality: 'shorts',
image_format: 'jpg'
})
});

const uploadData = await initResponse.json();
console.log(uploadData);
import requests

# Initialize a video upload
response = requests.post(
'https://api.rixl.com/videos/upload/init',
headers={
'X-API-Key': 'YOUR_PROJECT_API_KEY',
'Content-Type': 'application/json'
},
json={
'file_name': 'my-video.mp4',
'video_quality': 'shorts',
'image_format': 'jpg'
}
)

upload_data = response.json()
print(upload_data)

Response Format

All API responses use JSON format with consistent structure:

{
  "status": "success",
  "data": { /* response data */ },
  "message": "Operation completed successfully"
}

Video Upload Init Response:

{
  "video_id": "VI9VXQxWXQ",
  "video_presigned_url": "https://videos.rixl.com/...",
  "poster_id": "PS5IMKoFLm", 
  "poster_presigned_url": "https://images.rixl.com/...",
  "upload_expires": 1640995200
}

Paginated Response (List Videos):

{
  "data": [
    {
      "id": "VI9VXQxWXQ",
      "duration": 30.5,
      "width": 1920,
      "height": 1080,
      "file": {
        "id": "FpvLwyDMqu",
        "name": "original.mp4",
        "size": 1048576,
        "url": "https://videos.rixl.com/Bq4y3QB38S/FpvLwyDMqu",
        "status": "ready"
      }
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 100
  }
}

For complete API documentation with interactive testing, visit our Interactive API Reference.