# Downloader — Zapi reference > Every Downloader endpoint on Zapi, with parameters, request shape and an example response. **Base URL:** `https://api.zpi.web.id` **Auth:** Send `x-api-key: YOUR_KEY` header on every request. Get a key at https://zpi.web.id/dashboard/keys (free tier — 2,000 req/mo, no credit card). **Response envelope:** `{ status: "success" | "error", message: string, content: }` **Rate limit:** 60 req/min (free tier). Per-endpoint cache TTL is documented below. **Errors:** standard HTTP codes (`401` invalid key, `429` rate limited, `5xx` upstream). Body always has `{ status: "error", message, errors? }`. ```bash curl "https://api.zpi.web.id/v1/CATEGORY:SCRAPER/ENDPOINT?param=value" \ -H "x-api-key: $ZAPI_KEY" ``` **Category page:** https://zpi.web.id/category/downloader **Full catalog:** https://zpi.web.id/apis · **Index:** https://zpi.web.id/llms-full.txt --- ## Bilibili Downloader **Category:** downloader · **Slug:** `bilibili` **Detail page:** https://zpi.web.id/api/downloader/bilibili Stream URL video dari bilibili.tv — mendukung berbagai kualitas (240P hingga 1080P). URL video + audio terpisah yang bisa diunduh langsung. **Tags:** bilibili, stream, download ### Get Video - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:bilibili/download` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | URL video bilibili.tv | | `quality` | enum(240P|360P|480P|720P|1080P) | query | no | Kualitas video yang diinginkan. Default 480P | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:bilibili/download?url=https%3A%2F%2Fwww.bilibili.tv%2Fid%2Fvideo%2F4799525516221440&quality=240P" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:bilibili/download?url=https%3A%2F%2Fwww.bilibili.tv%2Fid%2Fvideo%2F4799525516221440&quality=240P", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:bilibili/download?url=https%3A%2F%2Fwww.bilibili.tv%2Fid%2Fvideo%2F4799525516221440&quality=240P", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "aid": "4799876706343424", "like": "54", "type": "video/mp4", "cover": "https://p.bstarstatic.com/ugc/471adedf7cd6438fb64f71037b34f9d8.jpg?x-oss-process=image%2Fresize%2Cw_600%2Fcrop%2Cmid%2Cw_600%2Ch_315%2Fformat%2Cwebp%2Fquality%2CQ_90%2Fwatermark%2Cimage_bWFuYWdlbWVudC80ZmVhODYxNzM0OGZmNDIzMDg0ZmRiNjE5MTJkZWEyZC5wbmc_eC1vc3MtcHJvY2Vzcz1pbWFnZS9yZXNpemUsUF8yMA%2Cshadow_70%2Cg_ne%2Cx_22%2Cy_16%2Fwatermark%2Cimage_bWFuYWdlbWVudC8yM2FkMzc5ODYxNjZhMGQwY2Y5NjAwZDI1NWE4OWNmNC5wbmc_eC1vc3MtcHJvY2Vzcz1pbWFnZS9yZXNpemUsUF8yMA%2Cg_center", "title": "\"New\" Stay Low Profile, Sect Chief Episode 01 - 03 Sub Indo", "views": "3.6K", "quality": "480P", "audioUrl": "https://upos-sz-mirrorcosbstar1.bilivideo.com/iupxcodeboss/a6/gb/n260613ad1t83p83bzk7ww1ts9x0gba6-1-1d1301000022.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&oi=1275924703&trid=227d27e93f294a23aa16203c2832468bi&mid=0&platform=pc&uipk=5&nbs=1&deadline=1782053463&gen=playurlv3&os=cosbstar1bv&upsig=b6bf83c2b0bb7755f796a5b702f48413&uparams=e,oi,trid,mid,platform,uipk,nbs,deadline,gen,os&bvc=vod&orderid=0,2&logo=00000000&f=i_0_0", "inputUrl": "https://www.bilibili.tv/id/video/4799876706343424", "videoUrl": "https://upos-sz-mirrorcosbstar1.bilivideo.com/iupxcodeboss/a6/gb/n260613ad1t83p83bzk7ww1ts9x0gba6-1-131210110000.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&mid=0&platform=pc&nbs=1&deadline=1782053463&os=cosbstar1bv&oi=1275924703&uipk=5&gen=playurlv3&trid=227d27e93f294a23aa16203c2832468bi&upsig=2a2b2cf2fac336ee0c02b63692fb2e78&uparams=e,mid,platform,nbs,deadline,os,oi,uipk,gen,trid&bvc=vod&orderid=0,2&logo=00000000&f=i_0_0", "description": " ", "availableQualities": [ "1080P(HD)", "1080P", "720P", "480P", "360P", "240P", "144P" ] } ``` --- ## Dailymotion Downloader **Category:** downloader · **Slug:** `dailymotion` **Detail page:** https://zpi.web.id/api/downloader/dailymotion Download video dari Dailymotion — kualitas hingga 1080p. Tempel URL video. **Tags:** dailymotion, downloader, video ### Download Download media dari Dailymotion. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:dailymotion/download` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | Dailymotion media URL (video or post). Query params are fine. | | `quality` | enum(144|240|360|480|720|1080|max) | query | no | Max video quality — `max` = best available. Ignored when audioOnly=true. | | `audioOnly` | enum(true|false) | query | no | Set `true` to fetch audio only. Default `false` (video). | | `audioFormat` | enum(mp3|opus|ogg|wav) | query | no | Audio container when audioOnly=true. Default mp3. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:dailymotion/download?url=https%3A%2F%2Fwww.dailymotion.com%2Fvideo%2Fxadq8hi&quality=1080&audioOnly=false&audioFormat=mp3" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:dailymotion/download?url=https%3A%2F%2Fwww.dailymotion.com%2Fvideo%2Fxadq8hi&quality=1080&audioOnly=false&audioFormat=mp3", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:dailymotion/download?url=https%3A%2F%2Fwww.dailymotion.com%2Fvideo%2Fxadq8hi&quality=1080&audioOnly=false&audioFormat=mp3", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "url": "https://cbt.zpi.web.id/tunnel?id=KbL_ms41YlECZLcUyYeRu&exp=1782046171667&sig=...&sec=...&iv=...", "type": "video", "filename": "You Have My Heart 2026 Episode 1 | English Sub - CrimsonSceneArchive (544p).mp4", "provider": "dailymotion", "originalUrl": "https://www.dailymotion.com/video/xaggx0q" } ``` --- ## Facebook Downloader **Category:** downloader · **Slug:** `facebook` **Detail page:** https://zpi.web.id/api/downloader/facebook Download video & Reels dari Facebook. Tempel URL video/watch/reel publik. **Tags:** facebook, downloader, video ### Download Download media dari Facebook. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:facebook/download` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | Facebook media URL (video or post). Query params are fine. | | `quality` | enum(144|240|360|480|720|1080|max) | query | no | Max video quality — `max` = best available. Ignored when audioOnly=true. | | `audioOnly` | enum(true|false) | query | no | Set `true` to fetch audio only. Default `false` (video). | | `audioFormat` | enum(mp3|opus|ogg|wav) | query | no | Audio container when audioOnly=true. Default mp3. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:facebook/download?url=https%3A%2F%2Fwww.facebook.com%2Fwatch%2F%3Fv%3D10153231379946729&quality=1080&audioOnly=false&audioFormat=mp3" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:facebook/download?url=https%3A%2F%2Fwww.facebook.com%2Fwatch%2F%3Fv%3D10153231379946729&quality=1080&audioOnly=false&audioFormat=mp3", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:facebook/download?url=https%3A%2F%2Fwww.facebook.com%2Fwatch%2F%3Fv%3D10153231379946729&quality=1080&audioOnly=false&audioFormat=mp3", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "url": "https://video-cgk2-2.xx.fbcdn.net/o1/v/t2/f2/m412/AQO00w7gkHtBwvAKd2SCYhroaNCqSwBQ52S2KsO2Hwmoh.mp4?ccb=17-1&_nc_zt=28&oh=00_Af_KpRpXItQ&oe=6A3D971D&bitrate=580000&tag=hd", "type": "video", "filename": "facebook_10153231379946729.mp4", "provider": "facebook", "originalUrl": "https://www.facebook.com/watch/?v=10153231379946729" } ``` --- ## Facebook Video **Category:** downloader · **Slug:** `fdown` **Detail page:** https://zpi.web.id/api/downloader/fdown Resolve downloadable video URLs from Facebook video posts. **Tags:** downloader, video ### Download Extract direct video links from a Facebook video URL. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:fdown/download` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | Facebook video URL (watch, reel, /videos/, fb.watch or permalink). | | `quality` | enum(144|240|360|480|720|1080|max) | query | no | Max video quality — `max` = best available. Ignored when audioOnly=true. | | `audioOnly` | enum(true|false) | query | no | Kalau `true`, ambil audio saja. Default `false` (video). | | `audioFormat` | enum(mp3|opus|ogg|wav) | query | no | Audio container when audioOnly=true. Default mp3. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:fdown/download?url=https%3A%2F%2Fwww.facebook.com%2Fwatch%3Fv%3D494095816865756&quality=1080&audioOnly=false&audioFormat=mp3" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:fdown/download?url=https%3A%2F%2Fwww.facebook.com%2Fwatch%3Fv%3D494095816865756&quality=1080&audioOnly=false&audioFormat=mp3", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:fdown/download?url=https%3A%2F%2Fwww.facebook.com%2Fwatch%3Fv%3D494095816865756&quality=1080&audioOnly=false&audioFormat=mp3", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "url": "https://video-cgk2-1.xx.fbcdn.net/o1/v/t2/f2/m412/AQOyqevZi5YEaiPASLgYlq1i3g5Q9SU-fFTFAKNf0XMEt-YyjC4TY62PgDjF6fIJY7IvfMwv6WOuhsd2gAulqrhL.mp4?_nc_cat=104&_nc_sid=5e9851&_nc_ht=video-cgk2-1.xx.fbcdn.net&_nc_ohc=lSmD_hYWHEgQ7kNvwFedTCo&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5GQUNFQk9PSy4uQzMuNzIwLmRhc2hfaGlnaF8xX3YxIiwieHB2X2Fzc2V0X2lkIjo0NjQwMzk2ODk0NTMxODAsImFzc2V0X2FnZV9kYXlzIjo3NTksInZpX3VzZWNhc2VfaWQiOjEwMTM5LCJkdXJhdGlvbl9zIjozMCwidXJsZ2VuX3NvdXJjZSI6Ind3dyJ9&ccb=17-1&vs=c5fcea7534cb10c7&_nc_vs=HBksFQIYNWZiX3Blcm1hbmVudC8xNjIyNzQwMjE4NTE1NTg1XzczMDM0MjU1NjY4ODU0NDMxNDUubXA0FQACyAESABUCGDVmYl9wZXJtYW5lbnQvMTUyMTEyOTE3NTUwNTA0OF8yNDQ3OTI2Mzk3MDcxMTQzNTYxLm1wNBUCAsgBEgAoABgAGwKIB3VzZV9vaWwBMRJwcm9ncmVzc2l2ZV9yZWNpcGUBMRUAACb4-c-N1YLTARUCKAJDMywXQD4AAAAAAAAYDmRhc2hfaGlnaF8xX3YxEQB1AmW2ngEA&_nc_gid=K3wlCKamSMGZqbYtGuQuTQ&_nc_ss=70289&_nc_zt=28&oh=00_Af9fr5fEgbh3wP2ODGlEcp1VpeCbEur9HIj7xs7xDSRR9Q&oe=6A3DB9C9&bitrate=463176&tag=dash_high_1_v1", "type": "video", "filename": "facebook_494095816865756.mp4", "provider": "facebook", "originalUrl": "https://www.facebook.com/watch?v=494095816865756" } ``` --- ## FuckingFast Downloader **Category:** downloader · **Slug:** `fuckingfast` **Detail page:** https://zpi.web.id/api/downloader/fuckingfast Direct download URL dari fuckingfast.co — mendukung input full URL / ID file. CDN link tanpa referer dan range request. **Tags:** download, file, cdn ### Download - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:fuckingfast/download` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | fuckingfast.co file URL or bare file ID | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:fuckingfast/download?url=https%3A%2F%2Ffuckingfast.co%2Fwajys77edcwh" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:fuckingfast/download?url=https%3A%2F%2Ffuckingfast.co%2Fwajys77edcwh", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:fuckingfast/download?url=https%3A%2F%2Ffuckingfast.co%2Fwajys77edcwh", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "fileId": "ruh9kvhe7kl5", "fileName": "Farm_Manager_World_--_fitgirl-repacks.site_--_.part2.rar", "downloads": 281, "sizeBytes": 2147483648, "sizeHuman": "2.0GB", "viewerUrl": "https://fuckingfast.co/ruh9kvhe7kl5", "downloadUrl": "https://dl.fuckingfast.co/dl/jIIZPsnYfokMsiI3XTuImVUhREBQ72Uy6NgEYuZSvTtrteZFzXUEj44vWB9mpRLknA1UAvuZenOLOm67ZVw4sQ7lcwfJ7durqOc1PFEpr1qVnBMmYD1qt2jo_10f_L9SSonkD5kh4Jv0OhePwMeiIuAY6VIOP8tgDSOXyg" } ``` --- ## Google Drive Downloader **Category:** downloader · **Slug:** `google-drive` **Detail page:** https://zpi.web.id/api/downloader/google-drive Direct download URL. Support file besar dengan virus scan warning. **Tags:** google, drive, download ### Download - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:google-drive/download` - **Cache TTL:** 360s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | URL atau ID file/folder Google Drive | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:google-drive/download?url=https%3A%2F%2Fdrive.google.com%2Ffile%2Fd%2F1CaJig7lPfOqKGtsv34jWophJ1Q1LLhJC%2Fview%3Fusp%3Dsharing" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:google-drive/download?url=https%3A%2F%2Fdrive.google.com%2Ffile%2Fd%2F1CaJig7lPfOqKGtsv34jWophJ1Q1LLhJC%2Fview%3Fusp%3Dsharing", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:google-drive/download?url=https%3A%2F%2Fdrive.google.com%2Ffile%2Fd%2F1CaJig7lPfOqKGtsv34jWophJ1Q1LLhJC%2Fview%3Fusp%3Dsharing", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "id": "1CaJig7lPfOqKGtsv34jWophJ1Q1LLhJC", "name": "image.jpeg", "size": "237.61 KB", "type": "file", "viewUrl": "https://drive.google.com/file/d/1CaJig7lPfOqKGtsv34jWophJ1Q1LLhJC/view", "mimeType": "image/jpeg", "downloadUrl": "https://drive.usercontent.google.com/download?id=1CaJig7lPfOqKGtsv34jWophJ1Q1LLhJC&export=download&authuser=0" } ``` --- ## Instagram Downloader **Category:** downloader · **Slug:** `instagram` **Detail page:** https://zpi.web.id/api/downloader/instagram Download Reels, video, & foto dari Instagram. Carousel multi-media didukung. Tempel URL post/reel. **Tags:** instagram, downloader, video, reels ### Download Download media dari Instagram. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:instagram/download` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | Instagram media URL (video or post). Query params are fine. | | `quality` | enum(144|240|360|480|720|1080|max) | query | no | Max video quality — `max` = best available. Ignored when audioOnly=true. | | `audioOnly` | enum(true|false) | query | no | Set `true` to fetch audio only. Default `false` (video). | | `audioFormat` | enum(mp3|opus|ogg|wav) | query | no | Audio container when audioOnly=true. Default mp3. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:instagram/download?url=https%3A%2F%2Fwww.instagram.com%2Freel%2FDZRfl_gB9B1%2F&quality=1080&audioOnly=false&audioFormat=mp3" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:instagram/download?url=https%3A%2F%2Fwww.instagram.com%2Freel%2FDZRfl_gB9B1%2F&quality=1080&audioOnly=false&audioFormat=mp3", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:instagram/download?url=https%3A%2F%2Fwww.instagram.com%2Freel%2FDZRfl_gB9B1%2F&quality=1080&audioOnly=false&audioFormat=mp3", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "url": "https://scontent-cgk2-1.cdninstagram.com/o1/v/t2/f2/m86/AQOfeJCKfRYo7h4qfHrAqAeF2LBDH08QIJgWaxy_ZWPGV2rVFBLfnvTRf4zgz7RQB9Y2KpQy_1DgNHQiYY3C-jwmLMz-zM7RE3uIBg0.mp4?_nc_cat=103&_nc_sid=5e9851&_nc_ht=scontent-cgk2-1.cdninstagram.com&_nc_ohc=1VRQoJhRXFEQ7kNvwHKC49I&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uQ0xJUFMuQzMuNzIwLmRhc2hfYmFzZWxpbmVfMV92MSIsInhwdl9hc3NldF9pZCI6MTY3NzAyMjEwMzcyNjQ5NSwiYXNzZXRfYWdlX2RheXMiOjE5NCwidmlfdXNlY2FzZV9pZCI6MTAwOTksImR1cmF0aW9uX3MiOjYyLCJ1cmxnZW5fc291cmNlIjoid3d3In0%3D&ccb=17-1&vs=cbbe07e88d5bed6d&_nc_vs=HBksFQIYUmlnX3hwdl9yZWVsc19wZXJtYW5lbnRfc3JfcHJvZC81NjQ1RDcwMDg2NTlGMzkwOTU5MzM1NDI0MDE0MDM5OV92aWRlb19kYXNoaW5pdC5tcDQVAALIARIAFQIYR2lnX3hwdl9yZWVsc19wZXJtYW5lbnRfc3JfcHJvZC8xNTQ2ODk1OTg2MzU3NzgzXzIyNzQ0MzU5MDczMjMyNjgxODUubXA0FQICyAESACgAGAAbAogHdXNlX29pbAExEnByb2dyZXNzaXZlX3JlY2lwZQExFQAAJr6mr6zEz_oFFQIoAkMzLBdATzdsi0OVgRgSZGFzaF9iYXNlbGluZV8xX3YxEQB1_gdl5p0BAA&_nc_gid=8Obi9uONjfAu6rKRb_6iJQ&_nc_ss=70689&_nc_zt=28&oh=00_AQCh7QiA1dwfw5vu7T_XAF4FNfDi2B1fHZ-UdL-nt9eccQ&oe=6A61135C", "type": "video", "filename": "instagram_DTPPJbZETtf.mp4", "provider": "instagram", "originalUrl": "https://www.instagram.com/reel/DTPPJbZETtf/" } ``` --- ## Loom Downloader **Category:** downloader · **Slug:** `loom` **Detail page:** https://zpi.web.id/api/downloader/loom Download video rekaman dari Loom. Tempel URL share publik. **Tags:** loom, downloader, video ### Download Download media dari Loom. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:loom/download` **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | Loom media URL (video or post). Query params are fine. | | `quality` | enum(144|240|360|480|720|1080|max) | query | no | Max video quality — `max` = best available. Ignored when audioOnly=true. | | `audioOnly` | enum(true|false) | query | no | Set `true` to fetch audio only. Default `false` (video). | | `audioFormat` | enum(mp3|opus|ogg|wav) | query | no | Audio container when audioOnly=true. Default mp3. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:loom/download?url=https%3A%2F%2Fwww.loom.com%2Fshare%2Fc43a642f815f4378b6f80a889bb73d8d&quality=1080&audioOnly=false&audioFormat=mp3" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:loom/download?url=https%3A%2F%2Fwww.loom.com%2Fshare%2Fc43a642f815f4378b6f80a889bb73d8d&quality=1080&audioOnly=false&audioFormat=mp3", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:loom/download?url=https%3A%2F%2Fwww.loom.com%2Fshare%2Fc43a642f815f4378b6f80a889bb73d8d&quality=1080&audioOnly=false&audioFormat=mp3", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "url": "https://cdn.loom.com/sessions/transcoded/c43a642f815f4378b6f80a889bb73d8d.mp4?Policy=...&Key-Pair-Id=KQOSYIR44AIC0&Signature=...", "type": "video", "filename": "loom_c43a642f815f4378b6f80a889bb73d8d.mp4", "provider": "loom", "originalUrl": "https://www.loom.com/share/c43a642f815f4378b6f80a889bb73d8d" } ``` --- ## MangaDex **Category:** downloader · **Slug:** `mangadex` **Detail page:** https://zpi.web.id/api/downloader/mangadex Search manga titles and fetch chapter page images for offline reading. **Tags:** downloader, manga ### Chapter Return page image URLs for a given manga chapter. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:mangadex/chapter/:chapterId` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `chapterId` | string | path | yes | Chapter UUID (8-4-4-4-12 hex) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:mangadex/chapter/:chapterId" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:mangadex/chapter/:chapterId", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:mangadex/chapter/:chapterId", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "hash": "2895e9889c6fae6a6ba845d3d359a028", "pages": [ { "idx": 0, "url": "https://cmdxd98sb0x3yprd.mangadex.network/data/2895e9889c6fae6a6ba845d3d359a028/1-f174f57196f4482dccbe8ba1940302dce209c7d560bdf52ae9d21840b9b15828.png" }, { "idx": 1, "url": "https://cmdxd98sb0x3yprd.mangadex.network/data/2895e9889c6fae6a6ba845d3d359a028/2-8b4e0f3b0eab1a34092e1043d70d15760e6864f28b4b3b3d2ba378a5de6493af.png" }, { "idx": 2, "url": "https://cmdxd98sb0x3yprd.mangadex.network/data/2895e9889c6fae6a6ba845d3d359a028/3-f830bf17745cde239a9802529f4c2c960d505db8118202ce9d7729a0429edb34.png" }, { "idx": 3, "url": "https://cmdxd98sb0x3yprd.mangadex.network/data/2895e9889c6fae6a6ba845d3d359a028/4-769605d5789328d8add840c495c96f186073d4fdd3f2a4f518700a2bd6be6c93.png" }, { "idx": 4, "url": "https://cmdxd98sb0x3yprd.mangadex.network/data/2895e9889c6fae6a6ba845d3d359a028/5-566c2109e80273bade94646a9e8cb7359274edbd63ad8b7fd5a3984f56b79ff5.png" }, { "idx": 5, "url": "https://cmdxd98sb0x3yprd.mangadex.network/data/2895e9889c6fae6a6ba845d3d359a028/6-655cebeae39a3e3f375ccabd80710b7758b92529162a896c10bfd3268a94d6a3.png" }, { "idx": 6, "url": "https://cmdxd98sb0x3yprd.mangadex.network/data/2895e9889c6fae6a6ba845d3d359a028/7-d35c64e6d3916f1c2c30a0241839d838d83f8ec1bf0d928e7a90d1da155c847e.png" }, { "idx": 7, "url": "https://cmdxd98sb0x3yprd.mangadex.network/data/2895e9889c6fae6a6ba845d3d359a028/8-3469dd9b9f5b495816db0ce680d31f0ffe648ab496f781422f8c9bf41dc44556.png" } ], "total": 19, "chapterId": "1e11c8b5-bd2d-4bd0-8c12-431a69d6736e" } ``` --- ### Search Search manga titles and return matching results with metadata. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:mangadex/search` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `title` | string | query | yes | Manga title (partial match) | | `limit` | number | query | no | Result limit. Default 10, max 50 | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:mangadex/search?title=Berserk&limit=10" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:mangadex/search?title=Berserk&limit=10", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:mangadex/search?title=Berserk&limit=10", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "query": "one piece", "total": 5, "results": [ { "id": "a1c7c817-4e59-43b7-9365-09675a149a6f", "year": 1997, "title": "One Piece", "status": "ongoing", "altTitles": [ "ワンピース", "Ван Піс", "One Piece. Большой куш", "Ван Пис", "وان پیس" ], "description": "Gol D. Roger, a man referred to as the \"Pirate King,\" is set to be executed by the World Government. But just before his demise, he confirms the existence of a great treasure, One Piece, located somewhere within the vast ocean known as the Grand Line. Announcing that One Piece can be claimed by anyone worthy enough to reach it, the Pirate King is executed and the Great Age of Pirates begins. \n \nTwenty-two years later, a young man by the name of Monkey D. Luffy is ready to embark on his own adv", "lastChapter": "", "contentRating": "suggestive", "originalLanguage": "ja" }, { "id": "a0b49136-9f4d-46d4-b5dd-d5393e015009", "year": 2014, "title": "One Piece Party", "status": "completed", "altTitles": [ "ワンピースパーティー" ], "description": "Spin-off of One Piece, which takes place post-timeskip, showing the cast in SD/chibi form and features their hilarious antics around various islands while out in the sea.", "lastChapter": "34", "contentRating": "safe", "originalLanguage": "ja" }, { "id": "b70113a5-32a3-44e8-a28f-0e88392808ba", "year": 2019, "title": "One Piece Academy", "status": "ongoing", "altTitles": [ "ONE PIECE学園", "One Piece Gakuen", "One Piece School", "One Piece Akademisi", "Học Viện One Piece" ], "description": "A spin off where the One Piece cast goes to a big academy & lives modern lives.", "lastChapter": "", "contentRating": "safe", "originalLanguage": "ja" }, { "id": "470ac1ec-c3dd-4dc2-9e5d-0104600ed1a5", "year": 2020, "title": "One Piece: Ace’s Story—The Manga", "status": "completed", "altTitles": [ "One Piece Episode Ace", "ワンピース エピソード A", "ワンピース エピソード エース", "Roronoa Zoro, Umi ni Chiru", "ロロノア・ゾロ海に散る" ], "description": "Washed up on the shores of a deserted island at the edge of the East Blue Sea, two men from different backgrounds unite in their shared thirst for adventure. One of them, Portgaz D. Ace, will follow in his infamous father’s footsteps as the fearless captain of a pirate crew. The other, Masked Deuce, becomes the reluctant first member of Ace’s Spade Pirates. Survival is not enough for these seafaring buccaneers, as together they seek treasure, excitement, and a route to the New World.\n\n---\n**Note", "lastChapter": "4", "contentRating": "safe", "originalLanguage": "ja" }, { "id": "a2c1d849-af05-4bbc-b2a7-866ebb10331f", "year": 2012, "title": "One Piece (Official Colored)", "status": "ongoing", "altTitles": [ "Ван Пис", "ون پیس", "海贼王", "원피스", "ONE PIECE カラー版" ], "description": "Gol D. Roger, a man referred to as the \"Pirate King,\" is set to be executed by the World Government. But just before his demise, he confirms the existence of a great treasure, One Piece, located somewhere within the vast ocean known as the Grand Line. \n\nAnnouncing that One Piece can be claimed by anyone worthy enough to reach it, the Pirate King is executed and the Great Age of Pirates begins. \n \nTwenty years later, a young man by the name of Monkey D. Luffy is ready to embark on his own adven", "lastChapter": "", "contentRating": "suggestive", "originalLanguage": "ja" } ] } ``` --- ## MediaFire Downloader **Category:** downloader · **Slug:** `mediafire` **Detail page:** https://zpi.web.id/api/downloader/mediafire MediaFire file downloader — retrieve direct download link, file metadata, and size info from any public MediaFire share URL. **Tags:** downloader, file, storage ### Download - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:mediafire/download` - **Cache TTL:** 360s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | URL halaman MediaFire (bukan link download langsung) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:mediafire/download?url=https%3A%2F%2Fwww.mediafire.com%2Ffile%2Frutx9o67641wjm9%2FMediaFire_-_Getting_Started.pdf%2Ffile" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:mediafire/download?url=https%3A%2F%2Fwww.mediafire.com%2Ffile%2Frutx9o67641wjm9%2FMediaFire_-_Getting_Started.pdf%2Ffile", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:mediafire/download?url=https%3A%2F%2Fwww.mediafire.com%2Ffile%2Frutx9o67641wjm9%2FMediaFire_-_Getting_Started.pdf%2Ffile", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "fileId": "rutx9o67641wjm9", "fileName": "MediaFire+-+Getting+Started.pdf", "fileSize": "372.37KB", "fileType": "application/pdf", "thumbnail": "https://static.mediafire.com/images/filetype/download/pdf.jpg", "downloadUrl": "https://download2389.mediafire.com/do04ru3p1loghjdnGs4W9K2W0ef_N_CpzbMTzfG_fkDFJ0KmoMIVAJ2NoMr-Uj2Mr1ho9n05iwVGxQVwypSk2pcySKAGWcPKBI9dlGisI1OuYYridrDNVWvBgMg8Pk2W1qLWai1Y1I7Trwqahi9REtn2GO556a97eR9IpzTNIYvb/rutx9o67641wjm9/MediaFire+-+Getting+Started.pdf" } ``` --- ## Mega.nz Downloader **Category:** downloader · **Slug:** `mega-nz` **Detail page:** https://zpi.web.id/api/downloader/mega-nz Mega.nz file downloader — retrieve direct download link and file metadata from any public Mega.nz share URL. **Tags:** downloader, file, storage ### Download - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:mega-nz/download` - **Cache TTL:** 360s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | URL file Mega.nz (format /file/ atau /#!) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:mega-nz/download?url=https%3A%2F%2Fmega.nz%2Ffile%2FEntxADbJ%23UCXeVEZbEo0ci9xKBFJzgMPol39MfFecwoB-TXfp1yc" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:mega-nz/download?url=https%3A%2F%2Fmega.nz%2Ffile%2FEntxADbJ%23UCXeVEZbEo0ci9xKBFJzgMPol39MfFecwoB-TXfp1yc", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:mega-nz/download?url=https%3A%2F%2Fmega.nz%2Ffile%2FEntxADbJ%23UCXeVEZbEo0ci9xKBFJzgMPol39MfFecwoB-TXfp1yc", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "fileId": "8soDySiQ", "fileName": "libvirt-4.5.0.tar.xz", "fileSize": "14.06 MB", "mimeType": "application/x-xz", "downloadUrl": "https://gfs270n367.userstorage.mega.co.nz/dl/rATNmAse8-iWVgJqXUC330yO-h_7s3ZfWMlbHu4zWYYMQeQvyUFnVfqNryw-CXAgNAGIK2N2glJTHGkLYUWFzzDd-wNovqhwCNc7EH0ricRyMPRkNyXa5pAKB5JzjA", "fileSizeBytes": 14743956, "downloadUrlMirrors": [ "https://gfs270n367.userstorage.mega.co.nz/dl/rATNmAse8-iWVgJqXUC330yO-h_7s3ZfWMlbHu4zWYYMQeQvyUFnVfqNryw-CXAgNAGIK2N2glJTHGkLYUWFzzDd-wNovqhwCNc7EH0ricRyMPRkNyXa5pAKB5JzjA", "https://gfs262n301.userstorage.mega.co.nz/dl/t_vX0tOikzh58QKRZb4HTsbyEOb3ntE8Jz5mVHOd1hERYJuxF2BJrj4jmj2ughRx23nhSV6i6EO2Sa5n0NCGqcXG7J4Cdq07rmi5-gw0Pl6LWE9TznkcfKVodNKp3A", "https://gfs214n109.userstorage.mega.co.nz/dl/dhGvvPFZvim0hQKw4Lo_FFii6TRWEB5Pp0l6R13it0zQTrhxTxrJS_cybtLgwga4tdXcYr8lxioOxonBj5OGsUReejLeShYJNVeGIEOt9tjrbX8cVGpwIx9rI5m-Pw", "https://gfs204n119.userstorage.mega.co.nz/dl/a4MWwx_nV-GteAL-j5c2gVD40Djupd6IpKy3sCBd6YmFPVS6PUlhxsjJby2uTXliQFyj7Up1EW_1zuckMlgemRljDEUNYtVBHAvySCryVHOqHdSaxH579Pb8Dd9UuQ", "https://gfs208n109.userstorage.mega.co.nz/dl/7gFSbMtTTIC2dAI6KmxSfdPfwXQMX2VR7QDkNld799fNvKS8M0BATl-IQh2Z305iynV7-2fX1KAzMCf2HPKKq8rm66WIkMOaIoxA96MwbtoUEQEIKDkl4-dzx_MThQ", "https://gfs302n109.userstorage.mega.co.nz/dl/FP3ZcaXE13wdrgJms0kP-CJVzJWxzT9o8x1FsqUfEGX3bKDecZW8lubZx37jwJ0bYZsLi3YwjuCWMz09GuMHW_vOqP1CpxrzNCGdJE9ajq8-miXtgZtpr_vcp72oxQ" ] } ``` --- ## OK.ru Downloader **Category:** downloader · **Slug:** `okru` **Detail page:** https://zpi.web.id/api/downloader/okru Download video dari OK.ru (Odnoklassniki) — hingga 1080p. Tempel URL video. **Tags:** okru, downloader, video ### Download Download media dari OK.ru. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:okru/download` **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | OK.ru media URL (video or post). Query params are fine. | | `quality` | enum(144|240|360|480|720|1080|max) | query | no | Max video quality — `max` = best available. Ignored when audioOnly=true. | | `audioOnly` | enum(true|false) | query | no | Set `true` to fetch audio only. Default `false` (video). | | `audioFormat` | enum(mp3|opus|ogg|wav) | query | no | Audio container when audioOnly=true. Default mp3. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:okru/download?url=https%3A%2F%2Fok.ru%2Fvideo%2F14418516314862&quality=1080&audioOnly=false&audioFormat=mp3" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:okru/download?url=https%3A%2F%2Fok.ru%2Fvideo%2F14418516314862&quality=1080&audioOnly=false&audioFormat=mp3", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:okru/download?url=https%3A%2F%2Fok.ru%2Fvideo%2F14418516314862&quality=1080&audioOnly=false&audioFormat=mp3", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "url": "https://cbt.zpi.web.id/tunnel?id=n7C2q9YOjxxN-6bgX_S5R&exp=1782046357925&sig=4d6H_IsYeF8rbVO33krRBIJ1h6W4q-UkhePDlEQzRhg&sec=Ty7PTXBQ_0jY76Qbj16f1KDLmifGRBMKX8uknkMd1Qo&iv=MekIZU3PeXCWkcME03JFGw", "type": "video", "filename": "Ко дню рождения А.С.Пушкина! - ОК Видео (1080p).mp4", "provider": "okru", "originalUrl": "https://ok.ru/video/14418516314862" } ``` --- ## Pinterest Downloader **Category:** downloader · **Slug:** `pinterest` **Detail page:** https://zpi.web.id/api/downloader/pinterest Download video & gambar dari Pinterest. Tempel URL pin. **Tags:** pinterest, downloader, video, image ### Download Download media dari Pinterest. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:pinterest/download` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | Pinterest media URL (video or post). Query params are fine. | | `quality` | enum(144|240|360|480|720|1080|max) | query | no | Max video quality — `max` = best available. Ignored when audioOnly=true. | | `audioOnly` | enum(true|false) | query | no | Set `true` to fetch audio only. Default `false` (video). | | `audioFormat` | enum(mp3|opus|ogg|wav) | query | no | Audio container when audioOnly=true. Default mp3. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:pinterest/download?url=https%3A%2F%2Fwww.pinterest.com%2Fpin%2F901212575419320219%2F&quality=1080&audioOnly=false&audioFormat=mp3" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:pinterest/download?url=https%3A%2F%2Fwww.pinterest.com%2Fpin%2F901212575419320219%2F&quality=1080&audioOnly=false&audioFormat=mp3", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:pinterest/download?url=https%3A%2F%2Fwww.pinterest.com%2Fpin%2F901212575419320219%2F&quality=1080&audioOnly=false&audioFormat=mp3", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "url": "https://v1.pinimg.com/videos/mc/720p/0b/62/71/0b6271d4b1295244d6a319949d7a1e5f.mp4", "type": "video", "filename": "pinterest_901212575419320219.mp4", "provider": "pinterest", "originalUrl": "https://www.pinterest.com/pin/901212575419320219/" } ``` --- ## Pixeldrain Downloader **Category:** downloader · **Slug:** `pixeldrain` **Detail page:** https://zpi.web.id/api/downloader/pixeldrain Pixeldrain file info & downloader — retrieve metadata, direct download link, and availability status from any public Pixeldrain file. **Tags:** downloader, file, storage ### Download - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:pixeldrain/download` - **Cache TTL:** 360s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | URL halaman Pixeldrain (/u/) atau ID file saja (mis. 5UZcgpfV) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:pixeldrain/download?url=https%3A%2F%2Fpixeldrain.com%2Fu%2F5UZcgpfV" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:pixeldrain/download?url=https%3A%2F%2Fpixeldrain.com%2Fu%2F5UZcgpfV", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:pixeldrain/download?url=https%3A%2F%2Fpixeldrain.com%2Fu%2F5UZcgpfV", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "views": 452, "fileId": "5UZcgpfV", "sha256": "d004d510c52de2389e515eb4e3b96cfdb90c006b0af53c7e22b773b7e9f771b7", "showAds": true, "fileName": "APPR2622win-yasir252.rar", "mimeType": "application/x-rar-compressed", "abuseType": "", "downloads": 553, "sizeBytes": 4419530686, "sizeHuman": "4.12 GB", "viewerUrl": "https://pixeldrain.com/u/5UZcgpfV", "uploadedAt": "2026-05-10T17:38:00.677Z", "canDownload": true, "downloadUrl": "https://pixeldrain.com/api/file/5UZcgpfV?download", "lastViewedAt": "2026-06-20T12:53:32.79Z", "thumbnailUrl": "https://pixeldrain.com/file/5UZcgpfV/thumbnail", "abuseReporter": "", "bandwidthUsed": 1682540608132, "deleteAfterDate": "0001-01-01T00:00:00Z", "allowVideoPlayer": true, "downloadSpeedLimit": 0, "deleteAfterDownloads": 0 } ``` --- ## Reddit Video Downloader **Category:** downloader · **Slug:** `redditsave` **Detail page:** https://zpi.web.id/api/downloader/redditsave Resolve Reddit post URLs to downloadable video files with audio merged. **Tags:** downloader, video ### Download Return downloadable video and audio links for a Reddit post URL. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:redditsave/download` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | URL post Reddit berisi video (v.redd.it). | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:redditsave/download?url=https%3A%2F%2Fwww.reddit.com%2Fr%2Ffunny%2Fcomments%2Fiakyuq%2Fwho_said_chivalry_is_dead%2F" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:redditsave/download?url=https%3A%2F%2Fwww.reddit.com%2Fr%2Ffunny%2Fcomments%2Fiakyuq%2Fwho_said_chivalry_is_dead%2F", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:redditsave/download?url=https%3A%2F%2Fwww.reddit.com%2Fr%2Ffunny%2Fcomments%2Fiakyuq%2Fwho_said_chivalry_is_dead%2F", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "audio": "https://v.redd.it/bc7l2gra4ah51/DASH_audio.mp4", "mediaId": "bc7l2gra4ah51", "variants": [ { "url": "https://v.redd.it/bc7l2gra4ah51/DASH_480.mp4", "quality": "480p" }, { "url": "https://v.redd.it/bc7l2gra4ah51/DASH_360.mp4", "quality": "360p" }, { "url": "https://v.redd.it/bc7l2gra4ah51/DASH_240.mp4", "quality": "240p" } ], "videoOnly": true, "originalUrl": "https://www.reddit.com/r/funny/comments/iakyuq/who_said_chivalry_is_dead/", "requiresMux": true } ``` --- ## Rutube Downloader **Category:** downloader · **Slug:** `rutube` **Detail page:** https://zpi.web.id/api/downloader/rutube Download video dari Rutube — hingga 1080p. Tempel URL video. **Tags:** rutube, downloader, video ### Download Download media dari Rutube. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:rutube/download` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | Rutube media URL (video or post). Query params are fine. | | `quality` | enum(144|240|360|480|720|1080|max) | query | no | Max video quality — `max` = best available. Ignored when audioOnly=true. | | `audioOnly` | enum(true|false) | query | no | Set `true` to fetch audio only. Default `false` (video). | | `audioFormat` | enum(mp3|opus|ogg|wav) | query | no | Audio container when audioOnly=true. Default mp3. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:rutube/download?url=https%3A%2F%2Frutube.ru%2Fvideo%2Fdf566fac28e4853bbf4e6389a6d08cda%2F&quality=1080&audioOnly=false&audioFormat=mp3" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:rutube/download?url=https%3A%2F%2Frutube.ru%2Fvideo%2Fdf566fac28e4853bbf4e6389a6d08cda%2F&quality=1080&audioOnly=false&audioFormat=mp3", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:rutube/download?url=https%3A%2F%2Frutube.ru%2Fvideo%2Fdf566fac28e4853bbf4e6389a6d08cda%2F&quality=1080&audioOnly=false&audioFormat=mp3", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "url": "https://cbt.zpi.web.id/tunnel?id=pZmQQY-ArYRewo1S-RpOU&exp=1782046355255&sig=v1_gDEiIYNMuyaiK3g3LN4Eugqc-K6A9EbWET4VyMX0&sec=FwO5OZsQcwZE8xieo2gAPVh5H80qutxU5fbUK-VVun8&iv=iQu2y6SzSqBQf-rlKI5jQg", "type": "video", "filename": "Жертва и странное решение соперника. Шахматы рапид - Шахматы Олег Соломаха (1080p).mp4", "provider": "rutube", "originalUrl": "https://rutube.ru/video/2239a49871ae52770b4fd7093c46bb7f/" } ``` --- ## Send.now Downloader **Category:** downloader · **Slug:** `send-now` **Detail page:** https://zpi.web.id/api/downloader/send-now Send.now file & folder downloader — resolve direct CDN download links from any public Send.now share URL, including multi-file folders. **Tags:** downloader, file, storage ### Download - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:send-now/download` - **Cache TTL:** 360s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | URL Send.now — folder (/s//) atau file tunggal (/fileCode atau kode saja) | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:send-now/download?url=https%3A%2F%2Fsend.now%2Fs%2FAbCdEf%2Ffolder-name" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:send-now/download?url=https%3A%2F%2Fsend.now%2Fs%2FAbCdEf%2Ffolder-name", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:send-now/download?url=https%3A%2F%2Fsend.now%2Fs%2FAbCdEf%2Ffolder-name", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "type": "folder", "files": [ { "fileCode": "m45w7aol4sy5", "fileName": "Demo.rar", "viewerUrl": "https://send.now/m45w7aol4sy5", "downloadUrl": "https://u3143.send.now/d/uvyxt2ng6gosj4l43j7f7fnu3ggcxgkd6nvq5pmcf2ewk2gzsfh3bhqsincrn3zacd4yfamy/Demo.rar", "fileSizeHuman": "353 KB" }, { "fileCode": "ydrpgm830h86", "fileName": "Demo.jpg", "viewerUrl": "https://send.now/ydrpgm830h86", "downloadUrl": "https://u3143.send.now/d/uvyxx2ng6gosj4l43j7ftanxyliq5z7imbmptaucjm2c4pllbocspvk7ufrbtgfu4s23cruj/Demo.jpg", "fileSizeHuman": "300 KB" }, { "fileCode": "f084i4iin8d8", "fileName": "Demo.docx", "viewerUrl": "https://send.now/f084i4iin8d8", "downloadUrl": "https://u3143.send.now/d/uvywl2ng6gosj4l43j7ffd7l2b27nwip5utrsruu2fxb7neul2cwe2qx4jrrqzvmmz4j7wav/Demo.docx", "fileSizeHuman": "7 KB" }, { "fileCode": "79oylhpuegca", "fileName": "Demo.pdf", "viewerUrl": "https://send.now/79oylhpuegca", "downloadUrl": "https://u3143.send.now/d/uvywp2ng6gosj4l43j7ejev22eirxw3w6vowbjuyqwveoxwk2fezqjfnzfocsbkhwbmojami/Demo.pdf", "fileSizeHuman": "22 KB" }, { "fileCode": "g8onnkygphbh", "fileName": "Demo.mp3", "viewerUrl": "https://send.now/g8onnkygphbh", "downloadUrl": "https://u3143.send.now/d/uvywd2ng6gosj4l43j7efc5gqz5ielj6kftbmpkvulo7lixz2hmwocvxupry3fbgvrtl2jse/Demo.mp3", "fileSizeHuman": "3.7 MB" }, { "fileCode": "e7k5bh3vd5sv", "fileName": "Demo.zip", "viewerUrl": "https://send.now/e7k5bh3vd5sv", "downloadUrl": "https://dl8218.usercdn.com/d/rryw32ng6gosj4l43j7fhhnfqg64dn2ayvbrwmstuuyb6vaishvsibrhwtufiwonhq7g5emx/Demo.zip", "fileSizeHuman": "20.1 MB" }, { "fileCode": "5s95bgvirrcy", "fileName": "Password Protected.zip", "viewerUrl": "https://send.now/5s95bgvirrcy", "downloadUrl": "https://dl8218.usercdn.com/d/rryw72ng6gosj4l43j7alepcyp6xwng3fe5jhwu3yrlkvkuq5ng54mef2spnkb54kfxfwsmg/Password Protected.zip", "fileSizeHuman": "210.3 MB" } ], "fileCount": 7, "folderName": "" } ``` --- ## Snapchat Downloader **Category:** downloader · **Slug:** `snapchat` **Detail page:** https://zpi.web.id/api/downloader/snapchat Download video Spotlight/Stories dari Snapchat. Tempel URL. **Tags:** snapchat, downloader, video ### Download Download media dari Snapchat. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:snapchat/download` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | Snapchat media URL (video or post). Query params are fine. | | `quality` | enum(144|240|360|480|720|1080|max) | query | no | Max video quality — `max` = best available. Ignored when audioOnly=true. | | `audioOnly` | enum(true|false) | query | no | Set `true` to fetch audio only. Default `false` (video). | | `audioFormat` | enum(mp3|opus|ogg|wav) | query | no | Audio container when audioOnly=true. Default mp3. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:snapchat/download?url=https%3A%2F%2Fwww.snapchat.com%2Fspotlight%2FW7_EDlXWTBiXAEEniNoMPwAAYenJ&quality=1080&audioOnly=false&audioFormat=mp3" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:snapchat/download?url=https%3A%2F%2Fwww.snapchat.com%2Fspotlight%2FW7_EDlXWTBiXAEEniNoMPwAAYenJ&quality=1080&audioOnly=false&audioFormat=mp3", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:snapchat/download?url=https%3A%2F%2Fwww.snapchat.com%2Fspotlight%2FW7_EDlXWTBiXAEEniNoMPwAAYenJ&quality=1080&audioOnly=false&audioFormat=mp3", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "url": "https://cf-st.sc-cdn.net/d/cbG3RVBhvWG13HACSV1RM.1034.IRZXSOY?uc=46", "type": "video", "filename": "snapchat_W7_EDlXWTBiXAEEniNoMPwAAYamV1bm16YWd4AZGR5HVKAZGR5HU2AAAAAQ.mp4", "provider": "snapchat", "originalUrl": "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYamV1bm16YWd4AZGR5HVKAZGR5HU2AAAAAQ" } ``` --- ## Threads **Category:** downloader · **Slug:** `threads` **Detail page:** https://zpi.web.id/api/downloader/threads Download media (foto, video, carousel) dari post Threads (Meta). Tinggal kirim URL post — balikin direct URL gambar/video kualitas tinggi + caption & author. **Tags:** threads, meta, downloader, video, image, carousel, social ### Download Download media (foto/video/carousel) dari URL post Threads. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:threads/download` - **Cache TTL:** 300s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | Threads post URL (threads.com / threads.net). Image, video and carousel supported. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:threads/download?url=https%3A%2F%2Fwww.threads.com%2F%40zuck%2Fpost%2FDaKI6_uHU3T" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:threads/download?url=https%3A%2F%2Fwww.threads.com%2F%40zuck%2Fpost%2FDaKI6_uHU3T", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:threads/download?url=https%3A%2F%2Fwww.threads.com%2F%40zuck%2Fpost%2FDaKI6_uHU3T", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "pk": "3929992863355325907", "url": "https://www.threads.com/@dans24_/post/DaKI6_uHU3T", "code": "DaKI6_uHU3T", "type": "carousel", "count": 3, "media": [ { "pk": "3929991103301313916", "code": "DaKIhYiuGV8", "type": "image", "image": "https://scontent-cgk2-1.cdninstagram.com/v/t51.82787-15/730695117_17975230353109359_3601795552815075606_n.webp?_nc_cat=103&ig_cache_key=MzkyOTk5MTEwMzMwMTMxMzkxNg%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNBUk9VU0VMX0lURU0ueHBpZHMuMjI5Ni5zZHIucmVndWxhcl9waG90by5DMyJ9&_nc_ohc=xIUH8A6Z3L8Q7kNvwFz-oOA&_nc_oc=Adp18OPF7gvnD6pfAI5fZb8Zy7r0J406JpN_4F_TwUJglblj3MnA8BE8EC04DTafcMA&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-cgk2-1.cdninstagram.com&_nc_gid=_Qarltqy2u5Dm3RyA4UWKw&_nc_ss=7a22e&oh=00_Af8G5mboevN-nsFq5FdoMyS1XrnKrKuC3Ryidu5kqT7EIw&oe=6A485F66", "video": null, "width": 2296, "height": 4080 }, { "pk": "3929991104626701637", "code": "DaKIhZxuDVF", "type": "image", "image": "https://scontent-cgk2-2.cdninstagram.com/v/t51.82787-15/731068021_17975230344109359_6060072929748116430_n.webp?_nc_cat=100&ig_cache_key=MzkyOTk5MTEwNDYyNjcwMTYzNw%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNBUk9VU0VMX0lURU0ueHBpZHMuMjI5Ni5zZHIucmVndWxhcl9waG90by5DMyJ9&_nc_ohc=Ks1jhiQ6YosQ7kNvwHmZAFH&_nc_oc=AdokeruDLz5IGSsWHJBU9RLspC77wuw3Y7bRt-no00Dl0Gslj1G6fnju2hWr0I8nuXE&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-cgk2-2.cdninstagram.com&_nc_gid=_Qarltqy2u5Dm3RyA4UWKw&_nc_ss=7a22e&oh=00_Af9ismKyboLhu3jxjh9qdfOUTsY_dvoCbLhIz5m1yeLawQ&oe=6A4853AB", "video": null, "width": 2296, "height": 4080 }, { "pk": "3929991179525877477", "code": "DaKIifiDu7l", "type": "video", "image": "https://scontent-cgk2-2.cdninstagram.com/v/t51.71878-15/730112080_1451799150048794_8333954212127261250_n.jpg?stp=dst-jpg_e15_tt6&_nc_cat=100&ig_cache_key=MzkyOTk5MTE3OTUyNTg3NzQ3Nw%3D%3D.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNBUk9VU0VMX0lURU0ueHBpZHMuNjQwLnNkci52aWRlb19kZWZhdWx0X2NvdmVyX2ZyYW1lLkMzIn0%3D&_nc_ohc=qB9N806WloAQ7kNvwGwgLQU&_nc_oc=AdpjlKG2gBe3bWnYMi5fugXeAVsJDWgtmu-1tgQVWq5Z3gmqKJVnKizrKG2AwxOmQkk&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-cgk2-2.cdninstagram.com&_nc_gid=_Qarltqy2u5Dm3RyA4UWKw&_nc_ss=7a22e&oh=00_Af8r9CdC_L_fDpPbmaCO10oRs08ypw9iegccA4oqz-su3w&oe=6A4863C1", "video": "https://scontent-cgk1-2.cdninstagram.com/o1/v/t16/f2/m84/AQNAR3w8HLwzbH4T2XmSasMY_cUZ0Q2eqwfNgYxMjd5CPJZCfDHB0eFSdE7xtJCxt7PS32t97ob8FUY40UrIVk_A5hg5y7AbceQWTE8.mp4?_nc_cat=111&_nc_sid=5e9851&_nc_ht=scontent-cgk1-2.cdninstagram.com&_nc_ohc=CQ_uXoWd-cgQ7kNvwGV7nE-&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uQ0FST1VTRUxfSVRFTS5DMy43MjAuZGFzaF9iYXNlbGluZV8xX3YxIiwieHB2X2Fzc2V0X2lkIjoxNzk3NTIzMDQwNzEwOTM1OSwiYXNzZXRfYWdlX2RheXMiOjAsInZpX3VzZWNhc2VfaWQiOjEwMTY0LCJkdXJhdGlvbl9zIjoxNSwidXJsZ2VuX3NvdXJjZSI6Ind3dyJ9&ccb=17-1&vs=f28c6f5c63d9cf88&_nc_vs=HBksFQIYTGlnX2JhY2tmaWxsX3RpbWVsaW5lX3ZvZC81QzRENkVGODVBODEzQ0FENEI3N0JBQjU5ODA4MzE5NF92aWRlb19kYXNoaW5pdC5tcDQVAALIARIAFQIYUWlnX3hwdl9wbGFjZW1lbnRfcGVybWFuZW50X3YyL0IwNDdBMDcxRjgzMzFCNzQxRjY5NTEwNjlFRDg1ODgyX2F1ZGlvX2Rhc2hpbml0Lm1wNBUCAsgBEgAoABgAGwKIB3VzZV9vaWwBMRJwcm9ncmVzc2l2ZV9yZWNpcGUBMRUAACbeq9_yjpjuPxUCKAJDMywXQC652yLQ5WAYEmRhc2hfYmFzZWxpbmVfMV92MREAde4HZeieAQA&_nc_gid=_Qarltqy2u5Dm3RyA4UWKw&_nc_zt=28&_nc_ss=7a22e&oh=00_Af8yKECGj4FkfKe9speYqSbY8qxK-6tIkk4VdfWj-cj18A&oe=6A4471FD", "width": 640, "height": 1136 } ], "author": { "avatar": "https://scontent-cgk2-1.cdninstagram.com/v/t51.2885-19/379108318_1465226674019394_3807620004504065825_n.jpg?stp=dst-jpg_s150x150_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLmRqYW5nby4xMDgwLmMyIn0&_nc_ht=scontent-cgk2-1.cdninstagram.com&_nc_cat=106&_nc_oc=Q6cZ2gE_2CBwqdsWLrsijoDYEQaV7CE719kPmALYHlhT9bsv3_HMoF0EAKO_gq8ZL_cgljU&_nc_ohc=ixV0srzrgEIQ7kNvwF8xpws&_nc_gid=_Qarltqy2u5Dm3RyA4UWKw&edm=APs17CUBAAAA&ccb=7-5&oh=00_Af8oloaWtmh0muZpWj-ERkACs_RyTzdtVcE51Ao1eQfH9g&oe=6A4874E8&_nc_sid=10d13b", "fullName": "ardann", "username": "dans24_", "isVerified": false }, "caption": "Siang2 dibikin panik sama complain customer, udah deg2an pas buka chatnya \"OALAAHHH COOOKK SI OYEN\" 😭😂", "takenAt": 1782711678, "likeCount": 5813, "isCarousel": true, "takenAtIso": "2026-06-29T05:41:18.000Z" } ``` --- ## Tumblr Downloader **Category:** downloader · **Slug:** `tumblr` **Detail page:** https://zpi.web.id/api/downloader/tumblr Download video & audio dari Tumblr. Tempel URL post. **Tags:** tumblr, downloader, video ### Download Download media dari Tumblr. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:tumblr/download` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | Tumblr media URL (video or post). Query params are fine. | | `quality` | enum(144|240|360|480|720|1080|max) | query | no | Max video quality — `max` = best available. Ignored when audioOnly=true. | | `audioOnly` | enum(true|false) | query | no | Set `true` to fetch audio only. Default `false` (video). | | `audioFormat` | enum(mp3|opus|ogg|wav) | query | no | Audio container when audioOnly=true. Default mp3. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:tumblr/download?url=https%3A%2F%2Fanimationdesk.tumblr.com%2Fpost%2F190775859037&quality=1080&audioOnly=false&audioFormat=mp3" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:tumblr/download?url=https%3A%2F%2Fanimationdesk.tumblr.com%2Fpost%2F190775859037&quality=1080&audioOnly=false&audioFormat=mp3", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:tumblr/download?url=https%3A%2F%2Fanimationdesk.tumblr.com%2Fpost%2F190775859037&quality=1080&audioOnly=false&audioFormat=mp3", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "url": "https://va.media.tumblr.com/tumblr_nmpxmpTMlb1r0094t.mp4", "type": "video", "filename": "tumblr_190775859037.mp4", "provider": "tumblr", "originalUrl": "https://animationdesk.tumblr.com/post/190775859037" } ``` --- ## Twitter / X Downloader **Category:** downloader · **Slug:** `twitter` **Detail page:** https://zpi.web.id/api/downloader/twitter Download video dari Twitter / X. Tempel URL tweet yang berisi video. **Tags:** twitter, x, downloader, video ### Download Download media dari Twitter / X. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:twitter/download` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | Twitter / X media URL (video or post). Query params are fine. | | `quality` | enum(144|240|360|480|720|1080|max) | query | no | Max video quality — `max` = best available. Ignored when audioOnly=true. | | `audioOnly` | enum(true|false) | query | no | Set `true` to fetch audio only. Default `false` (video). | | `audioFormat` | enum(mp3|opus|ogg|wav) | query | no | Audio container when audioOnly=true. Default mp3. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:twitter/download?url=https%3A%2F%2Fx.com%2FSpaceX%2Fstatus%2F1732824684683784516&quality=1080&audioOnly=false&audioFormat=mp3" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:twitter/download?url=https%3A%2F%2Fx.com%2FSpaceX%2Fstatus%2F1732824684683784516&quality=1080&audioOnly=false&audioFormat=mp3", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:twitter/download?url=https%3A%2F%2Fx.com%2FSpaceX%2Fstatus%2F1732824684683784516&quality=1080&audioOnly=false&audioFormat=mp3", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "url": "https://video.twimg.com/ext_tw_video/1732820284301058052/pu/vid/avc1/1920x1080/K2NITCly19drRgED.mp4", "type": "video", "filename": "twitter_1732824684683784516.mp4", "provider": "twitter", "originalUrl": "https://x.com/SpaceX/status/1732824684683784516" } ``` --- ## VK Downloader **Category:** downloader · **Slug:** `vk` **Detail page:** https://zpi.web.id/api/downloader/vk Download video dari VK (VKontakte). Tempel URL video. **Tags:** vk, downloader, video ### Download Download media dari VK. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:vk/download` **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | VK media URL (video or post). Query params are fine. | | `quality` | enum(144|240|360|480|720|1080|max) | query | no | Max video quality — `max` = best available. Ignored when audioOnly=true. | | `audioOnly` | enum(true|false) | query | no | Set `true` to fetch audio only. Default `false` (video). | | `audioFormat` | enum(mp3|opus|ogg|wav) | query | no | Audio container when audioOnly=true. Default mp3. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:vk/download?url=https%3A%2F%2Fvk.com%2Fvideo-22822305_456241864&quality=1080&audioOnly=false&audioFormat=mp3" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:vk/download?url=https%3A%2F%2Fvk.com%2Fvideo-22822305_456241864&quality=1080&audioOnly=false&audioFormat=mp3", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:vk/download?url=https%3A%2F%2Fvk.com%2Fvideo-22822305_456241864&quality=1080&audioOnly=false&audioFormat=mp3", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "url": "https://cbt.zpi.web.id/tunnel?id=83cw82eT4fWR4f-TnX9-p&exp=1782046359506&sig=vKkmfm6NyofDj06uY_0JHtrtE22xlyseX6xMbZWs10c&sec=MPrhmpH8m1ur5pGODSDg1lj5RRFWIr6HTFbHemuHE7g&iv=BcftIkJCA1S0zZl6RHfj-A", "type": "video", "filename": "VK Звонки (1080p).mp4", "provider": "vk", "originalUrl": "https://vk.com/video-22822305_456241864" } ``` --- ## YouTube Downloader **Category:** downloader · **Slug:** `youtube` **Detail page:** https://zpi.web.id/api/downloader/youtube Download video & audio dari YouTube — kualitas hingga 1080p, mode audio-only (mp3). Tempel URL, dapat link unduhan langsung. **Tags:** youtube, downloader, video, audio ### Download Download media dari YouTube. - **Method:** `GET` - **Endpoint:** `https://api.zpi.web.id/v1/downloader:youtube/download` - **Cache TTL:** 3600s **Parameters:** | Name | Type | Location | Required | Description | |------|------|----------|----------|-------------| | `url` | string | query | yes | YouTube media URL (video or post). Query params are fine. | | `quality` | enum(144|240|360|480|720|1080|max) | query | no | Max video quality — `max` = best available. Ignored when audioOnly=true. | | `audioOnly` | enum(true|false) | query | no | Set `true` to fetch audio only. Default `false` (video). | | `audioFormat` | enum(mp3|opus|ogg|wav) | query | no | Audio container when audioOnly=true. Default mp3. | **cURL:** ```bash curl "https://api.zpi.web.id/v1/downloader:youtube/download?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ&quality=1080&audioOnly=false&audioFormat=mp3" \ -H "x-api-key: YOUR_API_KEY" ``` **JavaScript / TypeScript:** ```javascript const res = await fetch("https://api.zpi.web.id/v1/downloader:youtube/download?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ&quality=1080&audioOnly=false&audioFormat=mp3", { headers: { "x-api-key": process.env.ZAPI_KEY } }); const data = await res.json(); ``` **Python:** ```python import requests r = requests.get("https://api.zpi.web.id/v1/downloader:youtube/download?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ&quality=1080&audioOnly=false&audioFormat=mp3", headers={"x-api-key": "YOUR_API_KEY"}) data = r.json() ``` **Example response:** ```json { "ok": true, "url": "https://cbt.zpi.web.id/tunnel?id=y-P2cCDN_hF6zS4a00vt6&exp=1780841297533&sig=x3g8WJXSELziFWWLiD4sGq2jtq6JCbcv3X-sQ7N8B0Y&sec=Jcpn4xBFKNTcpX4RQwI1ttYbFKbbPwiJmkZKl-dIQ_4&iv=OGshggWPx11q-BL4xwu7Rw", "type": "audio", "filename": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster) - Rick Astley.mp3", "provider": "youtube", "originalUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" } ``` ---