Video Download API documentation

EasyDown REST API platform guide

Twitter Download API for X Videos and Media

Both x.com and twitter.com status links enter the same REST workflow. Large status IDs stay strings and all returned media variants are preserved for backend selection.

Parse public x.com and twitter.com status URLs with the EasyDown Twitter Download API and receive every available video bitrate, post image, thumbnail, and metadata candidate.

Twitter video download API · X video download API

Production REST endpoint

POST https://api.easydown.org/api/v1/parse

Supported public URL formats

x.com/{user}/status/{id}twitter.com/{user}/status/{id}x.com/i/status/{id}

Real request example

https://x.com/Taozhishuishui/status/2041638397358260556/video/1

curl -X POST https://api.easydown.org/api/v1/parse \
  -H "Authorization: Bearer ed_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://x.com/Taozhishuishui/status/2041638397358260556/video/1"}'

Platform response example

The shared envelope stays stable while this platform determines which media arrays and attributes are populated.

Media behavior

Video posts can return multiple bitrate and dimension variants. Image posts keep every post image; thumbnails are not substituted for full post media.

{
  "status": 200,
  "data": {
    "platform": "twitter",
    "title": "Example twitter public post",
    "thumbnail": "https://cdn.example.com/thumbnail.jpg",
    "duration": 24,
    "images": [
      {
        "url": "https://cdn.example.com/content-image.jpg",
        "width": 1080,
        "height": 1350
      }
    ],
    "videos": [
      {
        "url": "https://cdn.example.com/video.mp4",
        "quality": "HD",
        "mimeType": "video/mp4",
        "width": 1080,
        "height": 1920,
        "hasAudio": true,
        "source": "direct"
      }
    ],
    "audios": []
  },
  "msg": "success"
}

Download and proxy rules

Fetch selected media from your backend with Referer: https://x.com/ and a browser User-Agent. Forward Range for large files and re-parse if a selected variant expires.

Recommended backend request headers

User-Agent: Mozilla/5.0 Referer: https://x.com/ Range: bytes=0-

Unsupported or unavailable content

Profiles, search pages, Spaces, Communities, Broadcast URLs, private posts, deleted posts, and direct CDN URLs are unsupported.

Only process public media you have the right to use. EasyDown does not bypass privacy controls, DRM, deleted content, or platform access restrictions.

Platform-specific troubleshooting

Submit a status URL containing one post ID.

Choose a videos[] variant by quality and dimensions instead of array position alone.

Re-parse the original status when a media variant stops responding.

REST integration workflow

  1. 1

    Create a private API token and allow this platform in its permissions.

  2. 2

    POST one complete public post URL to the shared endpoint.

  3. 3

    Select and proxy the required items from images, videos, and audios.

Download API questions

Which Twitter / X URLs does the download API support?

Supported public single-post formats include x.com/{user}/status/{id}, twitter.com/{user}/status/{id}, x.com/i/status/{id}. Profiles, search pages, Spaces, Communities, Broadcast URLs, private posts, deleted posts, and direct CDN URLs are unsupported.

What media does the Twitter / X Download API return?

Video posts can return multiple bitrate and dimension variants. Image posts keep every post image; thumbnails are not substituted for full post media.

How should my application download returned Twitter / X media URLs?

Fetch selected media from your backend with Referer: https://x.com/ and a browser User-Agent. Forward Range for large files and re-parse if a selected variant expires.

How is a successful Twitter / X API request billed?

A response containing at least one image, video, or audio URL costs 1 credit. Failed, unsupported, authentication, and empty-media results do not consume credits.