Public APIs
Compress Video API favicon

Compress Video API

Video

Compress video files through an asynchronous workflow, a practical API for large-scale or long-duration videos / tasks.

Compress Video API's website screenshot

About Compress Video API

Compress Video API is a hosted service from ApyHub that compresses video files asynchronously. Requests are submitted either as a direct multipart file upload or as a source video URL, with an optional compression_percentage parameter (0-100, defaulting to 50) that maps to an FFmpeg CRF value. Both submission methods return a job ID immediately rather than the processed file.

Job status is checked through a separate polling endpoint that reports pending, successful, or failed, and returns a URL to the compressed output video once the job succeeds; failed or pending jobs include a human-readable message. File uploads are capped at 100MB per request, with the URL-based endpoint suggested as an alternative for larger source files.

The API is intended for upload pipelines, media libraries, and other workflows that need to reduce video file size before storage or delivery, such as for reducing bandwidth use, speeding up playback, or preparing assets for further processing.

Key features

  • Compresses video files asynchronously via a job ID you poll for the result
  • Accepts a source video as a multipart file upload or as an HTTP(S) URL
  • Adjustable compression_percentage (0-100, defaults to 50) mapped to FFmpeg CRF
  • Poll endpoint reports pending, successful, or failed status with a result URL on success
  • Supports persistent jobs via an optional query parameter
  • File upload capped at 100MB total per request

Frequently asked questions

How do I compress a video with this API?

Submit a video file via POST /file-to-json or a video URL via POST /url-to-json to get a job_id, then poll GET /jobs/:job_id until the status is successful and read the returned output URL.

What is the maximum file size for uploads?

File uploads are capped at 100MB total per request; larger videos should use the URL-based submit endpoint instead.

How does the compression_percentage parameter work?

It accepts an integer from 0 to 100 (defaulting to 50 if omitted) and maps to an FFmpeg CRF value of 30 + (percentage / 4); invalid or out-of-range values return a 400 error.

How often should I poll the job status endpoint?

Poll at most once per second, since faster polling counts against your rate limit without finishing the job sooner.

Who is this API designed for?

It's aimed at upload pipelines, media libraries, and workflows that need smaller video files for storage or delivery, such as reducing bandwidth or speeding up playback.

Advertise here

Featured products

  • SerpApi - Search API favicon
  • Screenshot Scout favicon
  • TalorData favicon
  • CoreClaw favicon

Show your product to thousands of developers

· 100k monthly pageviews
· 7k newsletter subscribers

Advertise your product