API Documentation

Complete reference for all FFmpeg API endpoints

Base URL & Authentication

https://droidapps.one
Required Header
X-API-Key: your_api_key
ElevenLabs Header
X-ElevenLabs-Key: your_key
Async Task Flow

Every endpoint except /healthz returns HTTP 202 with a typed task object. Poll links.self, or provide callback_url for webhook events (task.completed / task.failed). The legacy status_url field is still included for backward compatibility.

HTTP/1.1 202 Accepted
Location: https://droidapps.one/task/task_1748200000000_abc123xyz
Retry-After: 5

{
  "object": "task",
  "id": "task_1748200000000_abc123xyz",
  "status": "queued",
  "endpoint": "/cut",
  "created_at": "2026-05-25T12:00:00+00:00",
  "error": null,
  "links": {
    "self": "https://droidapps.one/task/task_1748200000000_abc123xyz",
    "download": null
  },
  "status_url": "https://droidapps.one/task/task_1748200000000_abc123xyz"
}
Webhook Payload
POST to your callback_url when the task completes or fails:
{
  "object": "event",
  "id": "evt_1748200000000_abc123xyz",
  "type": "task.completed",
  "created_at": "2026-05-25T12:00:05+00:00",
  "data": {
    "object": {
      "object": "task",
      "id": "task_abc123def456",
      "status": "completed",
      "endpoint": "/cut",
      "created_at": "2025-01-01T00:00:00+00:00",
      "completed_at": "2025-01-01T00:00:05+00:00",
      "error": null,
      "links": {
        "self": "https://droidapps.one/task/task_abc123def456",
        "download": "https://droidapps.one/task/task_abc123def456/download"
      },
      "output": {
        "file_url": "https://droidapps.one/task/task_abc123def456/download",
        "file_name": "cut_abc123def456.mp4",
        "file_size": 1234567,
        "duration": 10.5,
        "media_type": "video/mp4"
      }
    }
  }
}

Important Notes

  • Authentication: All requests require X-API-Key header with your API key
  • Input Requirements: Send application/json with public HTTPS URLs (video_url, photo_url, urls). Multipart uploads are not supported.
  • Results: Outputs are stored automatically. Poll the task, then download from /task/{id}/download. Do not send a download field in requests.
  • ElevenLabs Integration: TTS and voice conversion require ElevenLabs API key in X-ElevenLabs-Key header or eleven_api_key parameter
  • Background Audio Processing:
    • keep: Preserves original audio track
    • external: Uses provided Music & Effects file
    • centerremove: FFmpeg-based vocal removal
    • separate: AI-powered vocal separation (requires Demucs)
  • Quality Controls: Use match_source=1 to preserve original bitrates, or customize with v_crf, v_preset, and a_bitrate parameters
  • Async Tasks: Every endpoint except /healthz returns HTTP 202 with a task ID. Poll status_url or use callback_url for webhooks. Download files from /task/{id}/download
  • Visualization Style Defaults: Each visualization style has optimized default values for viz_h, viz_h_pct, thickness, and viz_gain_db. These are automatically applied if not specified.
  • Wave Viewport Feature: Use crop_x, crop_y, crop_w, and crop_h parameters to render wide waveforms (e.g., 2500px) but display only a viewport window (e.g., 1080px). Perfect for slow-moving horizontal waveform animations.
  • Wave Mode Compatibility: The 'cline' wave mode only works with direction='both'. When using direction='up' or 'down', the mode automatically switches to 'line' for compatibility.