Documentation

TwitterDown API v1

Use a single POST /twitter endpoint to resolve Twitter/X video assets. Responses are JSON-first and include explicit rate-limit headers.

Overview

TwitterDown API gives developers programmatic access to Twitter/X video extraction for automation, media archiving, content workflows, and internal tooling.

  • Base URL: https://twitterdown.com/api/v1
  • Authentication: Bearer token (API key)
  • Response format: application/json

Authentication

Every request must include a valid API key in the Authorization header. Keys are tied to your account and can be revoked at any time from the dashboard.

Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxx

API Key

  1. Sign in to TwitterDown and activate an API-enabled plan.
  2. Open Dashboard > API Keys.
  3. Create a key with a label that matches your app or environment.

API keys are only shown once. Store them in a proper secret manager before leaving the page.

Core endpoints

POST /twitter

POST /twitter resolves a public tweet URL and returns thumbnails, video variants, text, username, and status identifiers.

POST https://twitterdown.com/api/v1/twitter
Content-Type: application/json
Authorization: Bearer sk-xxxx

{
  "url": "https://x.com/username/status/1234567890123456789"
}

Successful response (200):

{
  "code": 0,
  "message": "ok",
  "data": {
    "thumbnail": "https://pbs.twimg.com/...jpg",
    "videos": [
      { "resolution": "720p", "quality": "HD", "url": "https://video.twimg.com/..." },
      { "resolution": "360p", "quality": "SD", "url": "https://video.twimg.com/..." }
    ],
    "text": "Tweet text",
    "username": "username",
    "statusId": "1234567890123456789",
    "processed_at": "2024-01-01T12:00:00.000Z"
  }
}

GET /twitter

Returns endpoint metadata for integrations, SDK bootstrapping, or operational health checks.

Rate limits

  • 60 requests / minute
  • 1,000 requests / hour
  • 10,000 requests / day

Read X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset on every response. When you exceed quota, the API returns HTTP 429 with Retry-After.

Error handling

All failures return JSON with a numeric code and a human-readable message.

{
  "code": -1,
  "message": "Readable error message"
}
StatusMeaning
400Missing or malformed request payload
401Missing or invalid API key
403Plan does not allow the requested operation
422Tweet URL could not be resolved
429Rate limit exceeded
500Unexpected server-side failure

Examples

Use the snippets below as a starting point for backend integrations, automation scripts, or internal developer tooling.

JavaScript (fetch)

const res = await fetch("https://twitterdown.com/api/v1/twitter", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer sk-xxxx"
  },
  body: JSON.stringify({ url })
});
const data = await res.json();

Python (requests)

resp = requests.post(
  "https://twitterdown.com/api/v1/twitter",
  headers={
    "Authorization": "Bearer sk-xxxx",
    "Content-Type": "application/json",
  },
  json={"url": tweet_url},
)
print(resp.json())

Need more implementation ideas? Browse API guides in the blog for integration patterns, launch notes, and workflow examples.

API

Next steps

Move from reference docs to a live request, or create an API key and wire the endpoint into your application.