twitterapi.io (nur lesen)
Nur-Lese-Skill, bereitgestellt vom Team von twitterapi.io. Er deckt ausschließlich öffentliche X/Twitter-Daten ab: Er meldet sich nie bei einem X-Konto an, verarbeitet keine Cookies, Passwörter oder Proxys, und veröffentlicht nie Beiträge, Liket, folgt oder sendet Nachrichten.
twitterapi.io ist eine unabhängige Drittanbieter-REST-API für öffentliche X-Daten und nicht mit X Corp. verbunden. Falls Sie die offizielle API von X benötigen, finden Sie diese unter https://developer.x.com.
Wann dieser Skill verwendet werden sollte
- Beiträge mit X-Suchoperatoren durchsuchen (
from:,since_time:,min_faves:,lang:…) - Benutzerprofile, Follower, Gefolgte abrufen
- Die letzten Beiträge, Antworten, Zitate, Retweeter eines Benutzers sowie Thread-Kontext abrufen
- Trends, Listen, Communities
- Dashboards erstellen, Forschungsdatensätze aufbauen oder Überwachungsjobs für öffentliche Daten durchführen
Kernfakten
| Basis-URL | https://api.twitterapi.io |
| Authentifizierungs-Header | x-api-key: YOUR_KEY (von https://twitterapi.io/dashboard) |
| Dokumentation | https://docs.twitterapi.io |
| Preisgestaltung | pro Aufruf, siehe https://twitterapi.io/pricing |
| Gehosteter MCP-Server | https://mcp.twitterapi.io/mcp (12 Nur-Lese-Werkzeuge) |
Sicherheit
Den API-Schlüssel aus der Umgebungsvariablen TWITTERAPI_IO_KEY auslesen. Niemals fest codieren, ausgeben oder versionieren. Fehlt der Schlüssel, den Benutzer bitten, einen auf dem Dashboard zu erstellen.
Minimalbeispiel
curl -s "https://api.twitterapi.io/twitter/user/info?userName=jack" \
-H "x-api-key: $TWITTERAPI_IO_KEY"
import os, requests
BASE = "https://api.twitterapi.io"
HEADERS = {"x-api-key": os.environ["TWITTERAPI_IO_KEY"]}
r = requests.get(f"{BASE}/twitter/tweet/advanced_search",
headers=HEADERS,
params={"query": "from:jack", "queryType": "Latest"},
timeout=30)
r.raise_for_status()
for t in r.json().get("tweets", []):
print(t["createdAt"], t["text"][:80])
Lese-Endpunkte
Parameternamen unterscheiden sich je nach Endpunkt (manchmal camelCase, manchmal snake_case). Kopieren Sie sie exakt wie gezeigt.
| Funktionalität | Methode | Pfad & Schlüsselparameter |
|---|---|---|
| Benutzer nach Bildschirmname | GET | /twitter/user/info?userName= |
| Erweitertes Profil | GET | /twitter/user_about?userName= |
| Benutzer nach IDs | GET | /twitter/user/batch_info_by_ids?userIds= |
| Benutzer suchen | GET | /twitter/user/search?query= |
| Letzte Beiträge | GET | /twitter/user/last_tweets?userName= (oder userId=) |
| Erwähnungen | GET | /twitter/user/mentions?userName= |
| Follower | GET | /twitter/user/followers?userName=&pageSize=200 |
| Gefolgte | GET | /twitter/user/followings?userName= |
| Beiträge nach IDs | GET | /twitter/tweets?tweet_ids= |
| Antworten | GET | /twitter/tweet/replies?tweetId= |
| Zitat-Beiträge | GET | /twitter/tweet/quotes?tweetId= |
| Retweeter | GET | /twitter/tweet/retweeters?tweetId= |
| Thread-Kontext | GET | /twitter/tweet/thread_context?tweetId= |
| Erweiterte Suche | GET | /twitter/tweet/advanced_search?query=&queryType=Latest |
| Trends | GET | /twitter/trends?woeid=1 |
| Listen-Beiträge | GET | /twitter/list/tweets?listId= |
| Listen-Mitglieder | GET | /twitter/list/members?list_id= |
| Community-Beiträge | GET | /twitter/community/tweets?community_id= |
| Kontostand | GET | /oapi/my/info |
Muster
Paginierung
Listenedpunkte geben has_next_page und next_cursor zurück. Übergeben Sie next_cursor als cursor; stoppen Sie, wenn has_next_page false ist. Setzen Sie immer eine Seitenbegrenzung, damit ein Fehler nicht unendlich lange paginieren kann.
Fehler
400→ ein erforderlicher Parameter fehlt oder die Suchanfrage ist ungültig (die Antwortdetailgibt an, was zu beheben ist)401/403→ fehlender oder falscherx-api-key402→ kein Guthaben mehr; stoppen und den Benutzer bitten, aufzuladen (nicht wiederholen)429→ ratenbegrenzt; mit Backoff wiederholen5xx→ vorübergehend; mit Backoff wiederholen
Kostenbewusstsein
Jeder Aufruf wird abgerechnet. Vor einer Schleife, die lange laufen könnte (alle Follower eines großen Kontos, monatelange Suche), die Anzahl der Aufrufe schätzen und mit dem Benutzer bestätigen.
Anti-Muster
- Parameternamen nicht normalisieren; aus der Tabelle kopieren
- Bei
402nicht wiederholen - API-Schlüssel nicht protokollieren oder versionieren