DEVELOPER API

X / Twitter medyasını programatik indir.

Tek satır curl ile tweet metaverisini ve indirilebilir medyayı al. JSON yanıt, Bearer auth, tier tabanlı rate limit. 99.99% uptime SLA.

Key oluşturÖrnekleri gör

Authentication

Tüm /api/v1/* endpointleri Bearer authentication ister. Key'i /profile/api-keys üzerinden oluştur ve Authorization header'ında geçir:

Authorization: Bearer xva_abc123def456...

Key formatı: xva_ + 32 byte base64url (toplam ~50 karakter). Sunucumuzda SHA-256 hash olarak saklanır — düz metin asla loglanmaz veya yedeklenmez. Key'i kaybedersen yenisini oluşturman gerekir.

Endpoints

GET/api/v1/tweet

Tweet metaverisini ve indirilebilir tüm medya URL'lerini döner.

Query parametreleri

AdTipAçıklama
urlstringTweet URL'i (x.com veya twitter.com). Status ID otomatik tespit edilir.

Yanıt: 200 OK

{
  "id": "1789234567890",
  "text": "Tweet metni...",
  "authorName": "Elon Musk",
  "authorScreenName": "elonmusk",
  "authorAvatarUrl": "https://pbs.twimg.com/...",
  "createdAt": "2026-04-27T08:00:00.000Z",
  "durationSec": 84,
  "posterUrl": "https://...",
  "width": 1920,
  "height": 1080,
  "videoVariants": [
    {
      "qualityLabel": "1080p",
      "url": "https://video.twimg.com/...",
      "contentType": "video/mp4",
      "bitrate": 2176000
    },
    { "qualityLabel": "720p", "url": "...", ... }
  ],
  "imageUrls": ["https://pbs.twimg.com/..."],
  "isAnimatedGif": false
}
GET/api/v1/download

Bir medya URL'ini doğru Content-Disposition başlığıyla proxy'ler. CORS atlanır, dosya stream halinde gelir, sunucumuzda iz kalmaz.

Query parametreleri

AdTipAçıklama
urlstringvideo.twimg.com / pbs.twimg.com / ton.twimg.com kaynaklı medya URL'i.
filenamestringÖnerilen dosya adı. Sanitize edilir.

Yanıt: 200 OK

Binary stream — dosya içeriği. Header'lar:

Content-Type: video/mp4
Content-Disposition: attachment; filename="tweet-1080p.mp4"
Content-Length: 14523847
X-RateLimit-Limit: 10000
X-RateLimit-Remaining: 9847
X-RateLimit-Tier: PRO

Rate Limits

Her isteğin apiKeyId'ye göre 24 saatlik kayar pencere içinde sayılır.

TierGünlük istekBurstTipik kullanım
FREE100kısıtlıKişisel script, deneme
PRO10.000ortaBot, küçük ölçek otomasyon
GOLD100.000genişB2B, yüksek hacim

Limit aşıldığında 429 Too Many Requests dönülür. Her yanıtta X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Tier header'ları bulunur.

Kod örnekleri

curl

# Tweet metadata
curl -H "Authorization: Bearer xva_..." \
  "https://demo.huntvideos.co/api/v1/tweet?url=https://x.com/elonmusk/status/123"

# 1080p video indir
curl -H "Authorization: Bearer xva_..." \
  "https://demo.huntvideos.co/api/v1/download?url=https://video.twimg.com/...&filename=tweet.mp4" \
  -o tweet.mp4

JavaScript / Node.js

const res = await fetch(
  "https://demo.huntvideos.co/api/v1/tweet?url=" + encodeURIComponent(tweetUrl),
  { headers: { Authorization: "Bearer xva_..." } }
);
if (!res.ok) throw new Error(`API ${res.status}: ${await res.text()}`);
const tweet = await res.json();
console.log(tweet.videoVariants[0].url);

Python

import requests

r = requests.get(
    "https://demo.huntvideos.co/api/v1/tweet",
    params={"url": "https://x.com/user/status/123"},
    headers={"Authorization": "Bearer xva_..."},
    timeout=30,
)
r.raise_for_status()
tweet = r.json()
print(tweet["videoVariants"][0]["url"])

PHP

$ch = curl_init();
curl_setopt_array($ch, [
  CURLOPT_URL => "https://demo.huntvideos.co/api/v1/tweet?url=" . urlencode($tweetUrl),
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => ["Authorization: Bearer xva_..."],
]);
$response = json_decode(curl_exec($ch), true);

Hata kodları

StatusAnlamıÇözüm
400Bad Request — eksik/hatalı parametreurl doğru formatta mı?
401Unauthorized — key yok veya geçersizAuthorization: Bearer xva_... başlığını kontrol et.
403Forbidden — key pasif, süresi dolmuş veya host izinli değil/profile/api-keys'den durumu gör.
404Tweet bulunamadı (silinmiş ya da korumalı)Sadece herkese açık tweet'ler kapsam içi.
429Rate limit aşıldıTier'ını yükselt ya da pencerenin kapanmasını bekle.
502Upstream hatası — X / Twitter geçici sorunBirkaç saniye sonra yeniden dene.

Webhooks

Çok yakında. Toplu thread arşivleme tamamlandığında veya zamanlanmış indirme bittiğinde sana POST callback gönderecek. İlgileniyorsan iletişime geç.

Sürüm notları

  • v1.0.0 — Bearer auth, /api/v1/tweet ve /api/v1/download endpoint'leri, tier-based rate limits.

Hazırsan, key oluştur ve başla.

FREE tier'da günde 100 istek hakkın var. Üye olmadan 0 istek.

API Key oluşturPro'ya geç