Twitter/X Media Downloader
Rate Limit: 20 requests per minute.
Exceeding this limit will block your IP for 5 minutes.
API Documentation
Rate Limits:
- 20 requests per minute per IP
- Exceeding limit blocks IP for 5 minutes
- Rate limit headers included in responses:
* X-RateLimit-Limit: Maximum requests allowed
* X-RateLimit-Remaining: Remaining requests in current window
* X-RateLimit-Reset: Unix timestamp when limit resets
Endpoints:
1. /api/download
Method: GET or POST
Description: Download media from a Twitter/X post
Parameters:
- url: Tweet URL (required)
- type: Media type (optional): video, gif, or image
If not specified, auto-detects best available
If gif not found, falls back to video
- download: Set to "1" to force download (optional)
Example GET:
/api/download?url=https://x.com/username/status/1234567890
Example with type:
/api/download?url=https://x.com/username/status/1234567890&type=gif&download=1
Example POST:
POST /api/download
Content-Type: application/json
{
"url": "https://x.com/username/status/1234567890",
"type": "video",
"download": true
}
2. /api/info
Method: GET or POST
Description: Get media information without downloading
Parameters:
- url: Tweet URL (required)
Example GET:
/api/info?url=https://x.com/username/status/1234567890
Response format:
{
"success": true,
"data": {
"images": [...],
"videos": [...],
"gifs": [...],
"tweetInfo": {
"id": "1234567890",
"text": "Tweet text",
"created_at": "...",
"user": {
"name": "User Name",
"screen_name": "username"
}
}
}
}
Rate Limit Error Response (429):
{
"success": false,
"error": "Rate limit exceeded. Please try again in X seconds.",
"blocked": true,
"remainingTime": 300
}
Note: This service uses server-side authentication.
No tokens required from users!