# Facebook Video — Zapi reference > Resolve downloadable video URLs from Facebook video posts. **Base URL:** `https://api.zpi.web.id` **Auth:** Send `x-api-key: YOUR_KEY` header on every request. Get a free key at https://zpi.web.id/dashboard/keys. **Response envelope:** `{ status, message, content }` **Rate limit:** 60 req/min on free tier. **Related:** - Detail page: https://zpi.web.id/api/downloader/fdown - Endpoint catalog: https://zpi.web.id/category/downloader - Concise index: https://zpi.web.id/llms.txt - Full reference: https://zpi.web.id/llms-full.txt --- ## 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" } ``` --- _Generated: 2026-08-02T14:26:20.242Z_