API Documentation

Integrate Soreel's powerful video enhancement and watermark removal capabilities directly into your applications

Quick Start

  1. Generate your API key from your dashboard
  2. Include your API key in the X-API-Key header
  3. Make requests to our API endpoints
  4. Poll the job status endpoint to check progress and download videos

Authentication

All API requests must include your API key in the X-API-Key header:

X-API-Key: sr_live_your_api_key_here

Security: Never expose your API key in client-side code or public repositories. Always make API calls from your backend server.

Base URL

https://sora2.soreel.app/functions/v1

Endpoints

POST/process-video-files

Process multiple video files with individual settings for each video

Request

Content-Type: multipart/form-data

Form Fields

upscaler_type

Optional · string (default: "soreel-2") · Upscaler to use: "soreel-1" or "soreel-2"

video0, video1, video2, ...

Required · Video files (MP4 format, max 16 MB each)

video0_upscale

New · Optional · boolean (default: true) · Enable video upscaling (+1 credit)

video0_audio_enhancement

New · Optional · boolean (default: true) · Enable audio enhancement (+1 credit)

video0_watermark_removal

New · Optional · boolean (default: true) · Enable watermark removal (+1 credit)

video0_enhancements

New · Optional · string · Set to "all" to enable all enhancements for this video

video0_enable_upscale

Deprecated · Optional · boolean (default: true) · Use video0_upscale instead (still supported)

video0_enable_audio_enhancement

Deprecated · Optional · boolean (default: true) · Use video0_audio_enhancement instead (still supported)

video0_enable_watermark_removal

Deprecated · Optional · boolean (default: true) · Use video0_watermark_removal instead (still supported)

Example Request

curl -X POST \
  https://sora2.soreel.app/functions/v1/process-video-files \
  -H "X-API-Key: sr_live_your_api_key_here" \
  -F "upscaler_type=soreel-2" \
  -F "video0=@/path/to/video1.mp4" \
  -F "video0_upscale=true" \
  -F "video0_audio_enhancement=true" \
  -F "video0_watermark_removal=true" \
  -F "video1=@/path/to/video2.mp4" \
  -F "video1_upscale=false" \
  -F "video1_audio_enhancement=true" \
  -F "video1_watermark_removal=true"

Tip: Use video0_enhancements=all to enable all enhancements for a video:

-F "video0_enhancements=all"

Response

{
  "success": true,
  "message": "Videos queued for processing",
  "total": 2,
  "jobs": [
    {
      "jobId": "123e4567-e89b-12d3-a456-426614174000",
      "videoName": "video1.mp4",
      "status": "pending"
    },
    {
      "jobId": "123e4567-e89b-12d3-a456-426614174001",
      "videoName": "video2.mp4",
      "status": "pending"
    }
  ]
}

Error Codes

CodeDescription
200Success - Request processed successfully
400Bad Request - Invalid parameters or missing required fields
401Unauthorized - Invalid or missing API key
402Payment Required - Insufficient credits
403Forbidden - Job does not belong to your account
404Not Found - Job does not exist
405Method Not Allowed - Invalid HTTP method for endpoint
500Internal Server Error - Something went wrong on our end

Error Response Format

{
  "error": "Error type",
  "details": "Detailed error message"
}

Credit Usage

Credits are consumed based on the features you enable for each video:

Video Upscaling: 1 credit

Enhance video quality and resolution

Audio Enhancement: 1 credit

Improve audio quality and clarity

Watermark Removal: 1 credit

Remove watermarks from videos (FREE for Sora URLs)

Metadata Removal: FREE

When other features are enabled. 1 credit if used alone.

Rate Limits

Current rate limits per API key:

  • • Maximum file size: 16 MB per video
  • • Maximum concurrent jobs: Based on your subscription tier
  • • Rate limiting is applied based on available credits

Best Practices

Store API Keys Securely

Never expose your API key in client-side code or version control

Handle Errors Gracefully

Implement proper error handling and retry logic in your application

Monitor Credit Usage

Keep track of your credit usage to avoid service interruptions

Validate Input

Validate video files and URLs before sending them to the API

Poll for Status

Poll the job status endpoint periodically to check when processing is complete

Support

Need help integrating the Soreel API? We're here to help!