Objekte
Die oben referenzierten Formen, Feld für Feld. Typen sind informell: string[] ist ein Array von Zeichenketten, A | null kann fehlen.
Umschlag
Bei jedem Ereignis vorhanden, auf dem Stream, in GET /v1/events und in Webhook-Zustellungen.
| Feld | Typ | Bedeutung |
|---|---|---|
v | int | Umschlagversion. Heute 1 |
t | string | Ereignistyp, aus der Tabelle unten |
op | create | update | delete | create, update (Anreicherung derselben ID) oder delete |
id | string | Stabile Identität. Hierauf deduplizieren |
ts | int (ms) | Wann es auf X geschah, ms seit der Epoche. X nennt keinen Zeitpunkt für Profiländerungen, Folgen und Entfolgen, neue verifizierte Follower und gelöschte Beiträge: Bei diesen Ereignissen ist es der Zeitpunkt unserer Erkennung |
sid | string | Stream-Position für das Replay; vorhanden auf dem Stream und in der Historie |
target.id | string | Numerische X-ID des überwachten Kontos (bei search.match: des Beitragsautors) |
target.screen_name | string | Handle des überwachten Kontos |
target.name | string | Der Anzeigename des Kontos |
d | object | Typspezifische Nutzlast |
Tweet-Nutzlast
Das d von tweet.create, tweet.reply, tweet.retweet und tweet.quote sowie die Basis von search.match.
| Feld | Typ | Bedeutung |
|---|---|---|
tweet_id | string | Die ID des Beitrags, als Zeichenkette |
kind | tweet | reply | retweet | quote | Welche Art von Beitrag es ist |
text | string | Volltext (auch bei langen Beiträgen) |
lang | string | null | Von X erkannte Sprache |
author | User | Das Konto, das es veröffentlicht hat, als vollständiger User – dasselbe Objekt wie der Autor eines search.match: Handle, Name, Bio, Avatar, Banner, Zähler, Verifizierung, Ort, Link und Beitrittsdatum. Auf einem schlanken ersten Frame das Konto wie zuletzt gelesen; das update trägt es so, wie es mit dem Beitrag gelesen wurde |
reply_to | Brief+ | null | Bei Antworten: der beantwortete Beitrag – ein Brief plus screen_name, tweet_id und user_id seines Autors |
retweet_of | Brief | null | Bei Reposts: der Originalbeitrag |
quoted | Brief | null | Bei Zitaten: der zitierte Beitrag |
media | string[] | Einfache Bild-URLs, eine je Medienelement |
media_items | Media[] | Jedes Medienelement mit Typ, Videovarianten und Abmessungen |
urls | string[] | Aufgelöste Links im Beitrag |
article | Article | null | Bei Beiträgen, die auf einen X-Artikel verlinken: der Artikel |
counts | {reply, rt, like, quote, bookmark} | Antwort-, Repost-, Like-, Zitat- und Lesezeichen-Zähler zum Zeitpunkt unseres Lesens |
views | int | null | Aufrufzähler, wenn X ihn preisgibt |
url | string | Kanonischer Link zum Beitrag |
full | bool | false bei einem ersten, schlanken create-Frame; true, sobald das Ereignis den ganzen Beitrag trägt |
kind_final | bool | true, wenn kind feststeht. false nur auf einem schlanken ersten Frame, dessen kind tweet ist: Der Beitrag kann sich noch als Zitat herausstellen, das folgende update mit derselben id klärt es |
kind_was | tweet | null (update only) | Nur im update, das die Art eines Beitrags festlegt, und nur, wenn der erste Frame etwas anderes sagte: die Art, die dieser Frame hatte (tweet bei einem Beitrag, der sich als Zitat herausstellte) |
edit_of | Brief | null | Bei tweet.edit: die Fassung, die diese ersetzt (ihre ID, sowie Text und Autor, wenn wir sie hatten) |
Brief
Ein kompakter Beitrag, eingebettet in ein anderes Ereignis: das Original eines Reposts, der zitierte Beitrag, der beantwortete Beitrag oder ein angepinnter Beitrag.
| Feld | Typ | Bedeutung |
|---|---|---|
id | string | Beitrags-ID |
user | string | Handle des Autors |
name | string | Anzeigename des Autors |
user_id | string | Numerische ID des Autors |
text | string | Volltext |
media | string[] | Einfache Bild-URLs |
media_items | Media[] | Medienelemente mit Typ und Videovarianten |
created_ms | int | Wann er gepostet wurde, ms seit der Epoche |
url | string | Link zum Beitrag |
Medien
Ein Bild, Video oder GIF. Videos tragen das MP4 mit der höchsten Bitrate, das wir finden konnten; url ist das Vorschaubild.
| Feld | Typ | Bedeutung |
|---|---|---|
type | photo | video | animated_gif | Art des Mediums |
url | string | Bild-URL oder das Vorschaubild eines Videos |
expanded_url | string | Die Medienseite des Beitrags auf X |
video_url | string (video) | MP4-URL, höchste verfügbare Bitrate |
bitrate | int (video) | Bitrate dieses MP4 |
duration_ms | int (video) | Videolänge |
width | int | Originalbreite in Pixeln |
height | int | Originalhöhe in Pixeln |
Artikel
Ein X-Artikel (Langform-Beitrag), auf den ein Beitrag verlinkt. Der erste Frame enthält title und preview; text ist null, bis das update mit derselben id den vollständigen Artikel liefert.
| Feld | Typ | Bedeutung |
|---|---|---|
id | string | Artikel-ID |
title | string | Titel |
preview | string | Die ersten Zeilen des Artikels |
text | string | null | Volltext, Absätze durch Leerzeilen getrennt; im ersten Frame null |
cover | string | null | URL des Titelbilds |
images | string[] | Bilder im Artikel |
url | string | Link zum Artikel auf X |
Lösch-Nutzlast
Das d von tweet.delete. Wird nur für einen Beitrag gesendet, den wir gesehen hatten und der jetzt weg ist. Sein ts ist der Zeitpunkt, zu dem die Löschung erkannt wurde; die Zeit des Beitrags selbst steht in seinem früheren create-Frame.
| Feld | Typ | Bedeutung |
|---|---|---|
tweet_id | string | Die ID des gelöschten Beitrags |
url | string | Wo er früher war |
Profiländerungs-Nutzlast
Das d jedes profile.*-Ereignisses. op ist hier update.
| Feld | Typ | Bedeutung |
|---|---|---|
field | string | Welches Profilfeld sich geändert hat; dasselbe Wort wie nach profile. im Typ |
old | any | Der vorherige Wert |
new | any | Der neue Wert |
tweet | Brief (pinned only) | Bei profile.pinned: der neu angepinnte Beitrag |
old_tweet | Brief (pinned only) | Bei profile.pinned: der zuvor angepinnte Beitrag, falls wir ihn hatten |
Folgt-Nutzlast
Das d von follow.add, follow.remove und followers.verified.add.
| Feld | Typ | Bedeutung |
|---|---|---|
user | User | Das andere Konto, als vollständiger User |
Kontostatus-Nutzlast
Das d von account.status. Ein Status ist active, protected (Beiträge nur für bestätigte Follower sichtbar), suspended (von X gesperrt) oder unavailable (deaktiviert, gelöscht oder aus anderem Grund nicht sichtbar). ts ist der Zeitpunkt, zu dem wir die Änderung erkannt haben.
| Feld | Typ | Bedeutung |
|---|---|---|
old | active | protected | suspended | unavailable | Der Status vorher |
new | active | protected | suspended | unavailable | Der Status jetzt |
reason | string | null | Der Wortlaut von X, falls vorhanden (zum Beispiel Suspended) |
User
Ein vollständiges Kontoprofil, wie es in Folgt-Ereignissen und in search.match eingebettet ist.
| Feld | Typ | Bedeutung |
|---|---|---|
id | string | Numerische ID |
screen_name | string | Handle |
name | string | Anzeigename |
bio | string | Bio-Text |
avatar | string | Avatar-Bild-URL |
banner | string | null | Banner-Bild-URL |
followers | int | Follower-Anzahl |
following | int | Anzahl gefolgter Konten |
tweets | int | Beitragsanzahl |
location | string | Standort als Freitext |
url | string | null | Aufgelöster Profil-Link |
verified | bool | Hat ein Verifizierungsabzeichen |
verified_type | string | null | blue, business, government oder null |
protected | bool | Beiträge sind nur für bestätigte Follower sichtbar |
created_at | string (ISO-8601) | Wann das Konto erstellt wurde |
category | string | null | Berufliche Kategorie, falls das Konto eine gesetzt hat |
Suchtreffer-Nutzlast
Das d von search.match: eine Tweet-Nutzlast plus drei Felder zum Treffer. Das target des Umschlags ist der Autor des Beitrags, der keines Ihrer Ziele sein muss.
| Feld | Typ | Bedeutung |
|---|---|---|
keyword.id | int | ID des passenden Stichworts |
keyword.query | string | Seine Suchanfrage |
keyword.label | string | null | Sein Label, falls Sie eines gesetzt haben |
author | User | Das vollständige Profil des Autors |
author_is_target | bool | true, wenn der Autor zugleich ein auf diesem System überwachtes Konto ist |
… | TweetPayload | Jedes Feld der Tweet-Nutzlast |
Ziel
Ein von Ihnen überwachtes Konto, wie dieser Schlüssel es sieht.
| Feld | Typ | Bedeutung |
|---|---|---|
id | string | Numerische X-ID. Sie ändert sich nie: Schlüsseln Sie Ihre Daten danach |
screen_name | string | Das aktuelle Handle. Es kann sich ändern; profile.screen_name meldet es |
name | string | Anzeigename |
previous_screen_names | string[] | Frühere Handles des Kontos, das jüngste zuerst. Jedes bezeichnet es weiterhin in /v1/monitor/targets/{target} |
push_ready | bool | Alle Ereignistypen, die Sie für dieses Konto abonniert haben, werden in Echtzeit erfasst. false hält nichts zurück: Das Konto wird ab dem Moment des Abonnierens überwacht, und seine Ereignisse werden zugestellt, sobald sie erfasst sind; warten Sie also nicht auf dieses Flag, bevor Sie sie verarbeiten |
last_push_at | datetime | null | Wann zuletzt ein Echtzeit-Ereignis dafür eintraf |
last_poll_at | datetime | null | Wann seine Timeline zuletzt gelesen wurde |
state | "subscribed" | Hier immer subscribed; ausstehende Auflösungen haben ihre eigene Form |
event_types | string[] | Die für dieses Konto zugestellten Ereignistypen; leer heißt alle, die Ihr Schlüssel erlaubt |
event_types_all | bool | true, wenn event_types leer ist |
Ausstehendes Ziel
Was GET /v1/monitor/targets/{target} zurückgibt, solange ein angefragtes Konto noch aufgelöst wird.
| Feld | Typ | Bedeutung |
|---|---|---|
screen_name | string | null | Das Handle, nach dem Sie gefragt haben, wenn per Handle |
user_id | string | null | Die Nutzer-ID, nach der Sie gefragt haben, wenn per ID |
state | "queued" | Immer queued |
queued_at | int (unix s) | Wann Sie gefragt haben |
event_types | string[] | Die dafür gewählten Ereignistypen, wirksam sobald es aufgelöst ist |
event_types_all | bool | true, wenn event_types leer ist |
Stichwort
Eine Suchanfrage, die Sie über die X-Suche beobachten.
| Feld | Typ | Bedeutung |
|---|---|---|
id | int | Numerische ID; zum Löschen verwenden |
query | string | Die Suchanfrage, in X-Suchsyntax |
label | string | null | Ihr Label, in jedem Treffer zurückgegeben |
active | bool | false, wenn der Betreiber es pausiert hat |
hits | int | Bisher gelieferte Treffer |
last_hit_at | datetime | null | Letzter Treffer |
last_run_at | datetime | null | Letzte Suche |
Konto
Was GET /v1/account über den verwendeten Schlüssel zurückgibt.
| Feld | Typ | Bedeutung |
|---|---|---|
name | string | Der Name des Schlüssels, wie ausgestellt |
plan | string | Tarif-Voreinstellung |
key_id | string | Kurze ID des Schlüssels, in Support-Anfragen gefahrlos nennbar |
scopes | string[] | Berechtigungen, die der Schlüssel hält |
event_types | string[] | Schlüsselweite Positivliste der Ereignistypen, von uns verwaltet; leer bedeutet alle |
event_types_all | bool | true, wenn der Filter leer ist |
limits.max_targets | int | Obergrenze überwachter Konten |
limits.max_conns | int | Obergrenze gleichzeitiger WebSockets |
limits.max_keywords | int | Obergrenze für Stichwörter |
limits.requests_per_minute | int | Anfragebudget pro Minute |
usage.targets | int | Derzeit überwachte Konten |
usage.keywords | int | Derzeit beobachtete Stichwörter |
Webhook
Was GET /v1/account/webhook zurückgibt.
| Feld | Typ | Bedeutung |
|---|---|---|
url | string | null | Der registrierte Endpunkt |
stats | {ok, http_…} | Zustellzähler: ok und je ein http_<code> pro gesehenem Fehlerstatus |
Meta
Seiteninformationen neben jeder Liste.
| Feld | Typ | Bedeutung |
|---|---|---|
count | int | Elemente auf dieser Seite |
has_more | bool | Ob eine weitere Seite existiert |
next_cursor | string | null | Als ?cursor= zurückgeben; null am Ende |
Batch-Ergebnis
Ein Eintrag je an POST /v1/monitor/targets:batch gesendetem Element, in derselben Reihenfolge.
| Feld | Typ | Bedeutung |
|---|---|---|
index | int | Position des Elements in Ihrer Anfrage |
status | int | Der HTTP-Status, den der Einzel-Endpunkt zurückgegeben hätte |
data | object (on success) | Der Antwort-Body des Einzel-Endpunkts, bei Erfolg |
error | {code, message, details?} (on failure) | Das übliche Fehlerobjekt, bei Misserfolg |
Profil (Lesen)
Was GET /v1/users/{screen_name}, /v1/users/by-id/{user_id} und /v1/users/batch je Konto zurückgeben.
| Feld | Typ | Bedeutung |
|---|---|---|
id | string | Numerische ID |
name | string | Anzeigename |
screen_name | string | Handle |
bio | string | Bio-Text |
location | string | Standort als Freitext |
url | string | null | Profil-Link |
avatar | string | Avatar-Bild-URL |
banner | string | null | Banner-Bild-URL |
pinned | string | null | ID des angepinnten Beitrags |
verified | bool | Hat ein Verifizierungsabzeichen |
protected | bool | Beiträge nur für bestätigte Follower sichtbar |
followers | int | Follower-Anzahl |
following | int | Anzahl gefolgter Konten |
tweets | int | Beitragsanzahl |
Tweet (Lesen)
Ein Beitrag, wie ihn die Lese-Endpunkte zurückgeben. Dieselben Informationen wie die Tweet-Nutzlast, in der flacheren Form, die unser Parser erzeugt.
| Feld | Typ | Bedeutung |
|---|---|---|
id | int | Beitrags-ID, numerisch |
created_ms | int | Wann er gepostet wurde, ms seit der Epoche |
user_id | int | Numerische ID des Autors |
user | string | Handle des Autors |
name | string | Anzeigename des Autors |
text | string | Volltext |
lang | string | null | Von X erkannte Sprache |
reply_to | string | null | Handle, dem geantwortet wird |
reply_to_status_id | string | null | ID des beantworteten Beitrags |
reply_to_user_id | string | null | ID des Kontos, dem geantwortet wird |
conversation_id | string | ID des Wurzelbeitrags des Threads |
is_rt | bool | Es ist ein Repost |
rt_of | Brief | null | Das Original, bei Reposts |
is_quote | bool | Es zitiert einen anderen Beitrag |
quoted | Brief | null | Der zitierte Beitrag |
media | string[] | Einfache Bild-URLs |
media_items | Media[] | Medienelemente mit Typ und Videovarianten |
urls | string[] | Aufgelöste Links |
views | int | null | Aufrufzähler |
counts | {reply, rt, like, quote, bookmark} | Antwort-, Repost-, Like-, Zitat- und Lesezeichen-Zähler |
article | Article | null | Der X-Artikel, auf den der Beitrag verweist, falls vorhanden (Titel, Vorschau, Titelbild, Bilder; der volle Text steht unter GET /v1/tweets/{tweet_id}/article) |
edit_of | int | null | Bei einer bearbeiteten Fassung: die ID der ersten Fassung, sonst null |
edit_ids | int[] | Die IDs aller Fassungen, die älteste zuerst; ein nie bearbeiteter Beitrag nennt nur sich selbst |
source | string | null | Der Client, mit dem gepostet wurde, so wie X ihn liefert (ein HTML-Link, zum Beispiel Twitter for iPhone) |
User-Referenz
Die kompakte Form, die in Folgt-Listen-Lesezugriffen verwendet wird.
| Feld | Typ | Bedeutung |
|---|---|---|
id | string | Numerische ID |
screen_name | string | Handle |
name | string | Anzeigename |