X video download API
Resolve public X / Twitter posts into available MP4 downloads.
Last updated: 2026-11-02
Resolve a post
POST https://xvideodownloader.pro/api/v1/resolve
Send Content-Type: application/json. Authentication is optional. To use a key, add Authorization: Bearer YOUR_API_KEY.
curl https://xvideodownloader.pro/api/v1/resolve \
-H 'Content-Type: application/json' \
--data '{"url":"https://x.com/USERNAME/status/POST_ID"}'
Replace the placeholder with an actual public post link. A successful response has code: 0, message: "OK", and data containing:
| Field | Meaning |
|---|---|
request_id | Diagnostic identifier |
post_id, canonical_post_url | Normalized source identity |
provider | x-public-embed or fxembed |
videos[] | One entry per supported video |
videos[].variants[] | Actual available MP4 sources |
width, height, bitrate | Source metadata, or null when unknown |
has_audio, size_bytes | Null when unverified; animated GIF audio is false |
download_url | Opaque temporary download URL |
ticket_expires_at | Download ticket expiry, 15 minutes after resolution |
source_expires_at | Null: upstream expiry is unknown |
Save a file
Send GET to a returned download_url. The response streams video/mp4 with Content-Disposition: attachment. Single byte ranges (bytes=0-1023 or bytes=1024-) and HEAD are supported. HEAD and retries consume download request limits. Keep the opaque URL private; anyone holding it can use it before expiry within service limits.
Errors
Errors return a non-2xx HTTP status, code, message, request_id, error, and retryable.
| Code | HTTP | Action |
|---|---|---|
INVALID_URL | 400 / 413 / 415 | Correct the link, body size, or JSON content type |
NO_VIDEO | 422 | Try a post with native video |
NOT_ACCESSIBLE | 422 | Check that the post is public and exists |
UNSUPPORTED_MEDIA | 422 / 413 | Try supported MP4 media under 250 MB |
UNAUTHORIZED | 401 / 403 | Correct or revoke the key / origin |
RATE_LIMITED | 429 | Wait for Retry-After |
UPSTREAM_UNAVAILABLE | 502 / 503 | Retry later |
DOWNLOAD_EXPIRED | 410 | Resolve the post again |
Keys and limits
Create a key after signing in. Copy it immediately: the full key cannot be retrieved later. Revoke unused keys. Revocation stops new authenticated resolutions; already-issued download links remain valid until expiry. Limits and provider details. Cross-origin browser integrations are not enabled; use your server or a compatible MCP client.