api
Video download API
The API behind the app: no key, no signup. Works with YouTube, Instagram, X / Twitter, TikTok, Bluesky. Full spec: /openapi.json (OpenAPI 3.1).
Download in three calls
# 1. start: quality 1080 | 720 | 480 | 360 | audio (MP3) $ curl -X POST https://gimmeclip.com/api/jobs \ -H 'content-type: application/json' \ -d '{"url":"https://youtu.be/jNQXAC9IVRw","quality":"720"}' {"id":"1c0ffee…"} # 2. poll about once a second until state is done (or error) $ curl https://gimmeclip.com/api/jobs/1c0ffee… {"state":"downloading","phase":"download","percent":42.5,"bytes":2175381,"speed":949007} {"state":"done","percent":100,"name":"Me at the zoo.mp4","size":629172,"type":"video/mp4"} # 3. fetch the file (Range supported; dl=1 → attachment) $ curl -OJ 'https://gimmeclip.com/api/jobs/1c0ffee…/file?dl=1'
Files are MP4 (H.264 + AAC) or MP3 (192 kbps) and are deleted 15 minutes after the last request.
Multi-video posts take "item": n (1-based) — see items below.
Video details
GET /api/info?url=<video link>
{
"url": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
"site": "YouTube",
"title": "Me at the zoo",
"uploader": "jawed",
"duration": 19,
"thumbnail": "https://i.ytimg.com/vi/jNQXAC9IVRw/hqdefault.jpg…",
"items": [
{ "title": "Me at the zoo", "duration": 19, "thumbnail": "…", "qualities": [360], "audio": true }
],
"cached": false
} url is the canonical link (tracking parameters removed, short links expanded). qualities lists
the resolution caps that exist for that video, best first; an empty list means unknown — ask for 1080 to get the best.
Results are cached for 6 hours.
Share links
https://gimmeclip.com/<video link> https://gimmeclip.com/x.com/i/status/1600009574919962625
Opens the web app with the video loaded. Chat apps and social sites get the video’s title and thumbnail as the link preview. The scheme is optional; query strings are kept.
Limits & errors
| Limit | Value |
|---|---|
| Downloads | 40 per IP per day; 6 per minute |
| Detail lookups | 20 per minute (cached lookups too) |
| Video | Public only; up to 2 hours, 1 GB, 1080p |
| Refused | Playlists, channels, profiles, stories, live streams |
Errors are {"error":"…"} with a 4xx/5xx status; messages are written for people and safe to show.
429 means a limit was hit.