Video ingest, transcoding and delivery over HTTP.
Upload a source file, get adaptive-bitrate renditions and signed playback URLs. No encoding infrastructure to run, no queue to babysit.
Start with one request
Create a job from a source URL. The response comes back immediately; progress arrives on your webhook.
# create a transcoding job curl -X POST https://api.huimpompoi.ru/v2/jobs \ -H "Authorization: Bearer $KADR_KEY" \ -H "Content-Type: application/json" \ -d '{ "source": "https://example.com/master.mov", "profile": "abr-h264-1080p", "webhook": "https://example.com/hooks/kadr" }' # => 202 Accepted # { "id": "job_7f4c21", "state": "queued", "eta_sec": 240 }
Endpoints
Everything is JSON over HTTPS. Rendition bytes are served from the delivery hosts.
| Method | Path | Description |
|---|---|---|
| POST | /v2/jobs | Create a transcoding job from a source URL or upload ticket. |
| GET | /v2/jobs/{id} | Job state, per-rendition progress and error detail. |
| GET | /v2/assets/{id} | Metadata, thumbnails and available renditions. |
| POST | /v2/assets/{id}/sign | Issue a short-lived signed URL for a rendition. |
| GET | /video/download | Progressive download endpoint for signed rendition URLs. |
| GET | /v2/usage | Encoded minutes and egress for the current period. |
What you get
The parts that are tedious to build once and painful to maintain afterwards.
Adaptive ladders
Rendition sets are derived from the source resolution and bitrate, so a 480p upload never gets upscaled into four useless variants.
Signed delivery
Playback and download URLs expire on a schedule you set, with optional IP and referrer pinning.
Webhooks that retry
State changes are delivered with exponential backoff for 24 hours and signed with your endpoint secret.
Limits
Defaults per project. Raise them from the console or ask support.
| Limit | Default | Notes |
|---|---|---|
| Source file size | 40 GB | Larger sources on request. |
| Concurrent jobs | 8 | Queued beyond the limit, not rejected. |
| API requests | 120 / min | Burst of 300, then 429. |
| Signed URL lifetime | 15 min | Configurable from 1 min to 7 days. |
| Asset retention | Unlimited | Deleted assets purge from edge within 10 min. |
Client libraries
Thin wrappers over the same HTTP API. Nothing is hidden from you.
npm install @kadr/node pip install kadr go get github.com/kadr/kadr-go