ForHosting KIT · Video

Compress a video

A video that's technically fine but too heavy is still a problem — slow pages, bounced uploads, storage bills that creep up for no visual gain. This endpoint compresses a video down to a size that actually suits where it's going, trading invisible bytes for a file that loads and plays the way it should.

● StablePer request + per minute$0.077
Use it from WebAPIEmailApp soonTelegram soon

Run this on our servers with your account. Free tools run in your browser; this one bills your KIT balance per the price above.

Where the extra weight comes from

Cameras and phones tend to record at settings tuned for capture quality, not for delivery: high bitrates, minimal compression, sometimes formats meant for editing rather than playback. None of that is wrong at the point of recording, but shipping that same file straight to a website, an app, or an email attachment means paying — in load time, in bandwidth, in storage cost — for quality margins nobody watching on a phone screen will ever perceive.

What the endpoint does with the file

Send the video to POST /video/compress and a task_id comes back while the job queues. The service re-encodes the video to reduce its file size, balancing bitrate and encoding settings against visual quality so the result stays clearly watchable while dropping the weight that delivery doesn't need. Once it's done, you're notified and the compressed file is ready to fetch.

Compression is a trade-off, not a trick

Video compression works by discarding information a viewer is statistically unlikely to notice — subtle color gradients, motion between frames that can be predicted rather than stored outright — a principle that's been refined since the earliest broadcast-era codecs and is why modern formats can shrink files dramatically without an obvious loss in perceived sharpness. Push it too far and the trade becomes visible as blocking or blur; the point of a dedicated compression step is landing in the range where the file is small but the drop in quality isn't something a viewer would flag.

Who actually needs this, routinely

This isn't a one-time fix — it's a recurring need for anyone with a pipeline that ends on the web: a CMS accepting user-uploaded video that must not balloon storage costs, an app with upload size limits that raw camera footage blows past, an email marketing tool that can't attach anything heavy, a site whose load time directly affects how it ranks. Each of those is the same underlying task repeated at scale, which is exactly what an API endpoint is for.

Honest status update

This endpoint is completing its final deployment phase. The path, the pricing, and the behavior described here are the final version; once open, failed compressions are retried automatically and never billed if they still don't succeed.

User-generated video on a CMS or app

A platform accepting video uploads from users compresses each file automatically on arrival, keeping storage and bandwidth costs predictable regardless of what device recorded the original.

Faster-loading marketing and landing pages

A web team compresses hero and product videos before publishing so page load times stay fast, directly supporting both user experience and search ranking.

Email and messaging attachments

A sales or support team compresses recorded demo videos so they fit within email and messaging attachment size limits without switching to a separate file-sharing link.

Archive and backup storage costs

A company compresses older recorded footage before long-term archival storage, cutting storage costs on assets that are kept for reference rather than active editing.

How much smaller does the compress video API make a file?

It depends on the source: footage recorded at a high, uncompressed bitrate typically shrinks the most, while an already-compressed file has less room to reduce further without visible quality loss.

Will compression make my video look worse?

Compression targets bytes that are unlikely to be visually missed, so a well-compressed file stays clearly watchable; pushed too aggressively, any codec starts to show blur or blocking, which is why balanced settings matter.

Is there a free tier for the compress video API?

There's no free tier — free tiers get abused and slow everyone down. Access runs on a prepaid ForHosting KIT balance: top up from $10.00 (it never expires) and each request is charged at its published price, so a call with no balance returns HTTP 402. No subscription, no tokens, no invented credits, and a failed task is never charged.

How do I get the compressed file back?

Via a signed webhook when the job completes, or a signed link that stays valid for 24 hours after compression finishes.

Can I compress a large batch of videos in one workflow?

Yes, each compression request is an independent async task with its own task_id, so processing an entire library is a matter of looping the call, not a special bulk mode.

What happens if compression fails on a file?

The task is retried automatically up to three times, and if it still fails you receive a clear error with no charge for that attempt.

Does compressing change the video format?

Compression reduces file size within the existing format; if you also need a different container or codec, pair this with the video converter endpoint.

Is this endpoint accepting jobs yet?

It's in final deployment; the endpoint, price and behavior documented here are final and it will open for requests shortly.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/video/compress

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, and soon from our app, email and Telegram.

curl -X POST https://api.kit.forhosting.com/video/compress \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"audio":"https://ejemplo.com/audio.mp3"}'
{
  "audio": "https://ejemplo.com/audio.mp3"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "video.compress",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.077
Per minute$0.0045

Published price — no tokens, no invented credits. A failed task is never charged.

max_mb500
max_minutes60
max_megapixels3.9
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →