Zum Hauptinhalt springen
Werfen Sie einen Blick auf unsere Vergleichsleitfäden:

X API: Enterprise-Datenwörterbuch

Einführung

Enterprise Posts sind die grundlegenden, atomaren Bausteine von allem auf X. Alle X APIs, die Posts zurückgeben, liefern diese data im JavaScript Object Notation (JSON)-Format. JSON basiert auf Schlüssel-Wert-Paaren mit benannten Attributen und zugehörigen Werten. Über die API abgerufene Post-Objekte umfassen das „Status-Update“ eines X Nutzers; auch Retweets, Antworten und zitierte Tweets sind Post-Objekte. Ist ein Post mit einem anderen Post verknüpft – etwa als Retweet, Antwort oder zitierter Tweet –, wird dies jeweils kenntlich gemacht oder im Post-Objekt eingebettet. Selbst der einfachste Post im nativen X Datenformat enthält verschachtelte JSON-Objekte, um weitere Attribute eines Posts darzustellen, wie den Autor, erwähnte Nutzer, den markierten Ort, Hashtags, Cashtag-Symbole, Medien oder URL-Links. Beim Arbeiten mit X data ist dies ein wichtiges Konzept. Das Format der Post-Daten, die Sie von der X API erhalten, hängt vom Typ des empfangenen Posts, der verwendeten X API und den Formateinstellungen ab. Enterprise endpoints, die Post-Objekte zurückgeben, wurden aktualisiert, um die benötigte metadata bereitzustellen, damit die Bearbeitungshistorie des Posts nachvollzogen werden kann. Weitere Informationen zu diesen metadata finden Sie auf der Seite “Posts bearbeiten” – Grundlagen.
Im nativen X-Format enthält die JSON-Payload Attribute auf der obersten Ebene sowie verschachtelte JSON-Objekte (die hier mit der {}-Notation dargestellt werden):
{
	"created_at": "Fri Feb 14 19:00:55 +0000 2020",
	"id_str": "1228393702244134912",
	"text": "Was hat der Entwickler in seine Valentinstagskarte geschrieben?\n  \nwhile(true) {\n    I = Love(You);  \n}",
	"entities": {
		"hashtags": [],
		"symbols": [],
		"user_mentions": [],
		"urls": []
	},
	"user": {
		"entities": {
			"url": {}
		}
	},
	"place": {}
}

Verfügbare Datenformate

Bitte beachten: Es wird dringend empfohlen, für Enterprise-Daten-APIs das Format Enriched Native zu verwenden.
  • Das Enriched-Native-Format enthält alle seit 2017 hinzugekommenen Metadaten, wie z. B. Poll-Metadaten, sowie zusätzliche metrics wie reply_count und quote_count.
  • Das Activity-Streams-Format wurde seit dem Zeichen-Update im Jahr 2017 nicht mehr mit neuen Metadaten oder Enrichments aktualisiert.
Enterprise-Daten-APIs liefern Daten in zwei Formaten. Das Enterprise-Format, das dem Standard-v1.1-Native-Format am nächsten kommt, ist Enriched Native. Das ältere Enterprise-Datenformat ist Activity Streams, ursprünglich von Gnip als normalisiertes Format für X und andere Social-Media-Datenanbieter implementiert und verwendet. Obwohl dieses Format weiterhin verfügbar ist, hat X seit 2017 neue Funktionen und Weiterentwicklungen ausschließlich im Enriched-Native-Format umgesetzt. Das Enriched-Native-Format ist genau das, was der Name vermuten lässt: Es enthält native X-Objekte sowie zusätzliche Enrichments, die für Enterprise-Datenprodukte verfügbar sind, wie z. B. URL-Unwinding-Metadaten, Profile Geo, Poll-Metadaten und zusätzliche Engagement-metrics.

Objektvergleich nach Datenformat

Unabhängig von Ihrem X-Anwendungsfall ist es entscheidend, zu verstehen, was diese JSON-codierten Post-Objekte und Attribute darstellen, um die für Sie relevanten Datensignale zu finden. Zur Unterstützung gibt es eine Reihe von Seiten, die jedem Objekt in jedem Datenformat gewidmet sind. Entsprechend der oben dargestellten JSON-Hierarchie finden Sie hier Links zu den jeweiligen Objekten:
Native EnrichedActivity Streams
Link Post-ObjektLink Aktivitätsobjekt
Link User-ObjektLink Actor-Objekt
Link Entities-ObjektLink X-Entities-Objekt
Link Extended-Entities-ObjektLink X-Extended-Entities-Objekt
Link Geo-ObjektLink Location-Objekt
n/aLink Gnip-Objekt

Best Practices für das Parsen

  • X JSON wird mit UTF-8-Zeichen kodiert.
  • Parser sollten Unterschiede in der Reihenfolge der fields problemlos tolerieren. Es ist davon auszugehen, dass Post JSON als ungeordneter hash von data bereitgestellt wird.
  • Parser sollten die Hinzufügung „neuer“ fields tolerieren.
  • JSON-Parser müssen mit „fehlenden“ fields umgehen können, da nicht alle fields in allen Kontexten vorkommen.
  • Es ist generell unbedenklich, ein auf null gesetztes field, eine leere Menge und das Fehlen eines field als gleichwertig zu betrachten.

Enterprise Native Enriched data-Objekte

Native Enriched Tweet-Objekt

Interessieren Sie sich dafür, wie das Native Enriched-Datenformat dem X API v2-Format entspricht? Lesen Sie unseren Vergleichsleitfaden: Native Enriched im Vergleich zu X API v2

Post-Objekt

Bei der Nutzung von Enterprise-Datenprodukten werden Sie feststellen, dass ein Großteil des Datenwörterbuchs dem nativen Format der Post-Daten ähnelt, ergänzt um zusätzliche angereicherte Metadaten. Die Basisebene des nativen angereicherten Formats verwendet viele der gleichen Objektnamen wie das X API v1.1 data format. Das Post-Objekt weist eine lange Liste von Attributen auf oberster Ebene auf, darunter grundlegende Attribute wie id, created_at und text. Post-Objekte enthalten außerdem verschachtelte Objekte wie user, entities und extended_entities. Post-Objekte enthalten zudem andere verschachtelte Post-Objekte wie retweeted_status, quoted_status und extended_tweet. Das native angereicherte Format enthält zusätzlich ein matching_rules-Objekt.
X-Datenwörterbuch
Im Folgenden finden Sie das Datenwörterbuch für diese „Root-Level“-Attribute sowie Links zu Datenwörterbüchern der untergeordneten Objekte.
Zusätzliche Post-Attribute
X APIs, die Posts bereitstellen (z. B. das GET-Endpoint statuses/lookup), können diese zusätzlichen Post-Attribute enthalten:
AttributeTypBeschreibung
current_user_retweetObjektPerspektivisch. Wird nur bei Methoden ausgegeben, die den Parameter include_my_retweet unterstützen, wenn dieser auf true gesetzt ist. Enthält die Post-ID des eigenen Retweets des Nutzers (falls vorhanden) zu diesem Post. Beispiel:

“current_user_retweet”: <br/> “id”: 6253282,
“id_str”: “6253282”
}
scopesObjektEine Menge von Schlüssel-Wert-Paaren, die die beabsichtigte kontextuelle Auslieferung des enthaltenen Posts angeben. Wird derzeit von X Promoted Products verwendet. Beispiel:

“scopes”:{“followers”:false}
withheld_copyrightBooleanWenn vorhanden und auf „true“ gesetzt, gibt dies an, dass dieser Inhalt aufgrund einer DMCA-Beschwerde zurückgehalten wurde. Beispiel:

“withheld_copyright”: true
withheld_in_countriesArray of StringWenn vorhanden, gibt dies eine Liste von zweibuchstabigen Ländercodes in Großbuchstaben an, vor denen dieser Inhalt zurückgehalten wird. X unterstützt für dieses Feld die folgenden Nicht-Länderwerte:

„XX“ – Inhalt wird in allen Ländern zurückgehalten; „XY“ – Inhalt wird aufgrund einer DMCA-Anfrage zurückgehalten.

Beispiel:

“withheld_in_countries”: [“GR”, “HK”, “MY”]
withheld_scopeStringWenn vorhanden, gibt dies an, ob der zurückgehaltene Inhalt ein „status“ oder ein „user“ ist.

Beispiel:

“withheld_scope”: “status”
Veraltete Attribute
FeldtypeBeschreibung
geoObjektVeraltet. Nullable. Verwenden Sie stattdessen das Feld coordinates. Dieses veraltete Attribut gibt seine Koordinaten als [lat, long] an, während alle anderen Post-Geodaten als [long, lat] angegeben werden.

Verschachtelte Post-Objekte

In mehreren Fällen enthält ein Post-Objekt weitere verschachtelte Objekte. Wenn Sie mit verschachtelten Objekten arbeiten, enthält diese JSON-Nutzlast mehrere Post-Objekte, und jedes Post-Objekt kann wiederum eigene Objekte enthalten. Das Objekt auf Root-Ebene enthält Informationen über die Art der ausgeführten Aktion, also ob es sich um einen Retweet oder einen Quote Tweet handelt, und kann auch ein Objekt enthalten, das den „ursprünglichen“ Post beschreibt, der geteilt wird. Extended Posts enthalten ein verschachteltes Extended-Objekt, das über 140 Zeichen hinausgeht; dies wurde verwendet, um Breaking Changes zu vermeiden, als die Aktualisierung 2017 vorgenommen wurde. Jedes verschachtelte Objektwörterbuch wird unten beschrieben. Retweets Retweets enthalten immer zwei Post-Objekte. Der „ursprüngliche“ Post, der retweetet wird, wird in einem “retweeted_status”-Objekt bereitgestellt. Das Objekt auf Root-Ebene kapselt den Retweet selbst, einschließlich eines User-Objekts für das Konto, das die Retweet-Aktion ausführt, und der Uhrzeit des Retweets. Retweeten ist eine Aktion, um einen Post mit Ihren Followern zu teilen, und es kann kein weiterer neuer Inhalt hinzugefügt werden. Außerdem kann bei einem Retweet kein (neuer) Standort angegeben werden. Während der „ursprüngliche“ Post möglicherweise geo-getaggt wurde, sind die “geo”- und “place”-Objekte des Retweets stets null. Schon vor der Einführung von Extended Posts war das “entities”-Objekt auf Root-Ebene in einigen Fällen gekürzt und unvollständig, da die Zeichenfolge “RT @username ” an die retweetete Post-Nachricht angehängt wurde. Beachten Sie, dass, wenn ein Retweet erneut retweetet wird, der “retweeted_status” weiterhin auf den ursprünglichen Post verweist, was bedeutet, dass der dazwischenliegende Retweet nicht enthalten ist. Ein ähnliches Verhalten ist zu beobachten, wenn x.com verwendet wird, um einen Retweet „anzuzeigen“. Wenn Sie die eindeutige Post-ID kopieren, die der Retweet-„Aktion“ zugewiesen ist, wird der ursprüngliche Post angezeigt. Unten steht eine Beispielstruktur für einen Retweet. Auch hier ist es beim Parsen von Retweets entscheidend, das “retweeted_status”-Objekt zu parsen, um die vollständige (ursprüngliche) Post-Nachricht und die Entity-Metadaten zu erhalten.
{
	"tweet": {
		"text": "RT @author ursprüngliche Nachricht",
		"user": {
			"screen_name": "Retweeter"
		},
		"retweeted_status": {
			"text": "ursprüngliche Nachricht",
			"user": {
				"screen_name": "OriginalTweeter"
			},
			"place": {},
			"entities": {},
			"extended_entities": {}
		}
	},
	"entities": {},
	"extended_entities": {}
}
Zitierte Tweets
Zitierte Tweets ähneln Retweets, enthalten jedoch eine neue Post-Nachricht. Diese neuen Nachrichten können eigene Hashtags, Links und andere „entities“-Metadaten enthalten. Zitierte Tweets können auch vom Nutzer, der den zitierten Tweet postet, freigegebene Standortinformationen sowie Medien wie GIFs, Videos und Fotos enthalten. Zitierte Tweets enthalten mindestens zwei Post-Objekte und in manchen Fällen drei. Der zitierte Post, der selbst ein zitierter Tweet sein kann, wird in einem „quoted_status“-Objekt bereitgestellt. Das Objekt auf Root-Ebene umfasst den zitierten Tweet selbst, einschließlich eines User-Objekts für das Konto, das die Freigabeaktion ausführt, sowie den Zeitpunkt des zitierten Tweets. Beachten Sie, dass zitierte Tweets jetzt Fotos, GIFs oder Videos enthalten können, die über die „Post“-Benutzeroberfläche hinzugefügt werden. Wenn Links zu extern gehosterten Medien in der Nachricht des zitierten Tweets enthalten sind, beschreibt das Root-Level-„entities.urls“ diese. Medien, die zitierten Tweets angehängt sind, erscheinen in den Root-Level-„extended_entities“-Metadaten. Als zitierte Tweets erstmals eingeführt wurden, wurde ein verkürzter Link (t.co-URL) an die „ursprüngliche“ Post-Nachricht angehängt und im Root-Level-„text“-Feld bereitgestellt. Zusätzlich wurden Metadaten für diese t.co-URL im Root-Level-„entities.urls“-Array bereitgestellt. Im Mai 2018 haben wir dies geändert, sodass die verkürzte t.co-URL zum zitierten Tweet nicht mehr im Root-Level-„text“-Feld enthalten ist. Zweitens werden die Metadaten für den zitierten Tweet nicht mehr in den „entities.urls“-Metadaten enthalten sein. Stattdessen befinden sich die URL-Metadaten für den zitierten Tweet in einem neuen „quoted_status_permalink“-Objekt auf Root-Level (oder Top-Level), also auf derselben Ebene wie das „quoted_status“-Objekt. Unten finden Sie eine Beispielstruktur für einen zitierten Tweet unter Verwendung dieses ursprünglichen Formats.
{
	"created_at": "Tue Feb 14 19:30:06 +0000 2017",
	"id_str": "831586333415976960",
	"text": "Definitiv zitierenswert! https:\/\/t.co\/J1LKrbHpWR",
	"user": {
		"screen_name": "happycamper"
	},
	"quoted_status_id_str": "831569219296882688",
	"quoted_status": {
		"created_at": "Tue Feb 14 18:22:06 +0000 2017",
		"id_str": "831569219296882688",
		"text": "Dies ist ein Test des Tweet-Systems \ud83d\ude0e zur Aktualisierung von #supportdocs @twitterboulder hier: https:\/\/t.co\/NRq9UrSzm0",
		"user": {
			"screen_name": "furiouscamper",
		},
		"place": {
			"id": "9a974dfc8efb32a0",
		},
		"entities": {
			"hashtags": [{
				"text": "supportdocs",
			}],
			"urls": [{
			}],
			"user_mentions": [{	}],
			"symbols": []
		},
	},
	"is_quote_status": true,
	"entities": {},
	"matching_rules": [{}]
}
{
	"created_at": "Fri Jan 04 18:47:16 +0000 2019",
	"id_str": "1081260794069671936",
	"text": "Zitat-Test https://t.co/CE4m1qs3NJ",
	"user": {
		"screen_name": "furiouscamper"
	},
	"place": null,
	"quoted_status_id_str": "1079578364904648705",
	"quoted_status": {
		"created_at": "Mon Dec 31 03:21:54 +0000 2018",
		"id_str": "1079578364904648705",
		"text": "AHHHHH",
		"user": {
			"screen_name": "infinite_scream"
		},
		"place": null,
		"is_quote_status": false,
		"quote_count": 1,
		"reply_count": 0,
		"retweet_count": 3,
		"favorite_count": 6,
		"entities": {
			"hashtags": [],
			"urls": [],
			"user_mentions": [],
			"symbols": []
		}
	},
	"quoted_status_permalink": {
		"url": "https://t.co/CE4m1qs3NJ",
		"expanded": "https://x.com/infinite_scream/status/1079578364904648705",
		"display": "x.com/infinite_screa…"
	},
	"is_quote_status": true,
	"quote_count": 0,
	"reply_count": 0,
	"retweet_count": 0,
	"favorite_count": 1,
	"entities": {}
}
Erweiterte Posts
JSON, das „Extended Posts“ beschreibt, wurde eingeführt, als im November 2017 Posts mit 280 Zeichen eingeführt wurden. Das Post-JSON wurde erweitert, um diese längeren Nachrichten zu kapseln, ohne die Tausenden von Apps zu beeinträchtigen, die diese grundlegenden X-Objekte parsen. Um vollständige Abwärtskompatibilität zu gewährleisten, wurden das ursprüngliche 140-Zeichen-Feld “text” und die daraus geparsten Entity-Objekte beibehalten. Bei Posts mit mehr als 140 Zeichen ist dieses Root-Level-Feld “text” abgeschnitten und damit unvollständig. Da die Root-Level-Objekte “entities” Arrays mit wichtigen Metadaten enthalten, die aus der “text”-Nachricht geparst werden – etwa enthaltene Hashtags und Links –, sind diese Sammlungen unvollständig. Wenn beispielsweise eine Post-Nachricht 200 Zeichen lang ist und am Ende ein Hashtag enthält, würde das Legacy-Root-Level-Array “entities.hashtags” dieses nicht enthalten. Ein neues Feld “extended_tweet” wurde eingeführt, um längere Post-Nachrichten und vollständige Entity-Metadaten aufzunehmen. Das “extended_tweet”-Objekt stellt das Feld “full_text” bereit, das die vollständige, nicht abgeschnittene Post-Nachricht enthält, wenn sie länger als 140 Zeichen ist. Das “extended_tweet”-Objekt enthält außerdem ein “entities”-Objekt mit vollständigen Arrays von Hashtags, Links, Erwähnungen usw. Erweiterte Posts werden durch ein Root-Level-Boolean “truncated” identifiziert. Wenn true (“truncated”: true) ist, sollten die “extended_tweet”-Felder anstelle der Root-Level-Felder geparst werden. Beachten Sie im JSON-Beispiel unten, dass das Root-Level-Feld “text” abgeschnitten ist und das Root-Level-Array “entities.hashtags” leer ist, obwohl die Post-Nachricht drei Hashtags enthält. Da es sich um einen Extended Post handelt, ist das Feld “truncated” auf true gesetzt, und das Objekt “extended_tweet” liefert vollständige “full_text”- und “entities”-Post-Metadaten.
{
	"created_at": "Thu May 10 17:41:57 +0000 2018",
	"id_str": "994633657141813248",
	"text": "Nur ein weiterer Extended Tweet mit mehr als 140 Zeichen, als Dokumentationsbeispiel erstellt, der zeigt, dass [\"tru… https://t.co/U7Se4NM7Eu",
	"display_text_range": [0, 140],
	"truncated": true,
	"user": {
		"id_str": "944480690",
		"screen_name": "FloodSocial"
	},
	"extended_tweet": {
		"full_text": "Nur ein weiterer Extended Tweet mit mehr als 140 Zeichen, als Dokumentationsbeispiel erstellt, der zeigt, dass [\"truncated\": true] und das Vorhandensein eines \"extended_tweet\"-Objekts mit vollständigem Text und \"entities\" #documentation #parsingJSON #GeoTagged https://t.co/e9yhQTJSIA",
		"display_text_range": [0, 249],
		"entities": {
			"hashtags": [{
				"text": "documentation",
				"indices": [211, 225]
			}, {
				"text": "parsingJSON",
				"indices": [226, 238]
			}, {
				"text": "GeoTagged",
				"indices": [239, 249]
			}]
		}

	},
	"entities": {
		"hashtags": []
	}
}

Nativ angereichertes User-Objekt

Das User-Objekt enthält X User-Konto-Metadaten, die den referenzierten X User beschreiben. 

Datenwörterbuch für Benutzer

AttributTypBeschreibung
idInt64Die ganzzahlige Darstellung der eindeutigen Kennung für diesen Nutzer. Diese Zahl ist größer als 53 Bits und einige Programmiersprachen können Schwierigkeiten/stille Defekte bei der Interpretation haben. Die Verwendung einer vorzeichenbehafteten 64-Bit-Ganzzahl zur Speicherung dieser Kennung ist sicher. Verwenden Sie id_str, um die Kennung sicher abzurufen. Siehe X IDs für weitere Informationen. Beispiel:

“id”: 6253282
id_strStringDie String-Darstellung der eindeutigen Kennung für diesen Nutzer. Implementierungen sollten diese anstelle der großen, möglicherweise nicht verarbeitbaren Ganzzahl in id verwenden. Beispiel:

“id_str”: “6253282”
nameStringDer Name des Nutzers, wie er ihn definiert hat. Nicht notwendigerweise der Name einer Person. Typischerweise auf 50 Zeichen begrenzt, aber Änderungen vorbehalten. Beispiel:

“name”: “API”
screen_nameStringDer Bildschirmname, Handle oder Alias, mit dem sich dieser Nutzer identifiziert. screen_names sind eindeutig, können sich aber ändern. Verwenden Sie id_str als Nutzerkennung, wann immer möglich. Typischerweise maximal 15 Zeichen lang, aber einige historische Konten können mit längeren Namen existieren. Beispiel:

“screen_name”: “api”
locationStringNullable . Der benutzerdefinierte Standort für das Profil dieses Kontos. Nicht notwendigerweise ein Standort und auch nicht maschinenlesbar. Dieses Feld wird gelegentlich vom Suchdienst unscharf interpretiert. Beispiel:

“location”: “San Francisco, CA”
derivedArrays of Enrichment ObjectsNur Enterprise APIs Sammlung von Enrichment-Metadaten, die für den Nutzer abgeleitet wurden. Stellt die Profile Geo Enrichment-Metadaten bereit. Siehe referenzierte Dokumentation für weitere Informationen, einschließlich JSON-Datenwörterbücher. Beispiel:

“derived”:“locations”: [“country”:“United States”,“country_code”:“US”,“locality”:“Denver”]
urlStringNullable . Eine URL, die der Nutzer in Verbindung mit seinem Profil bereitgestellt hat. Beispiel:

“url”: “https://developer.x.com
descriptionStringNullable . Die benutzerdefinierte UTF-8-Zeichenkette, die das Konto beschreibt. Beispiel:

“description”: “The Real X API.”
protectedBooleanWenn true, zeigt an, dass dieser Nutzer gewählt hat, seine Posts zu schützen. Siehe About Public and Protected Posts . Beispiel:

“protected”: true
verifiedBooleanWenn true, zeigt an, dass der Nutzer ein verifiziertes Konto hat. Siehe Verified Accounts . Beispiel:

“verified”: false
followers_countIntDie Anzahl der Follower, die dieses Konto derzeit hat. Unter bestimmten Belastungsbedingungen zeigt dieses Feld vorübergehend „0” an. Beispiel:

“followers_count”: 21
friends_countIntDie Anzahl der Nutzer, denen dieses Konto folgt (auch bekannt als ihre „Followings”). Unter bestimmten Belastungsbedingungen zeigt dieses Feld vorübergehend „0” an. Beispiel:

“friends_count”: 32
listed_countIntDie Anzahl der öffentlichen Listen, in denen dieser Nutzer Mitglied ist. Beispiel:

“listed_count”: 9274
favourites_countIntDie Anzahl der Posts, die dieser Nutzer in der Lebensdauer des Kontos geliked hat. Britische Schreibweise im Feldnamen aus historischen Gründen verwendet. Beispiel:

“favourites_count”: 13
statuses_countIntDie Anzahl der Posts (einschließlich Retweets), die vom Nutzer veröffentlicht wurden. Beispiel:

“statuses_count”: 42
created_atStringDie UTC-Datum-Zeit, zu der das Nutzerkonto auf X erstellt wurde. Beispiel:

“created_at”: “Mon Nov 29 21:18:15 +0000 2010”
profile_banner_urlStringDie HTTPS-basierte URL, die auf die standardmäßige Web-Darstellung des hochgeladenen Profilbanners des Nutzers zeigt. Durch Hinzufügen eines abschließenden Pfadelements der URL ist es möglich, verschiedene Bildgrößen zu erhalten, die für spezifische Anzeigen optimiert sind. Für Größenvarianten siehe bitte User Profile Images and Banners .

Beispiel:

“profile_banner_url”: “https://si0.twimg.com/profile&#95;banners/819797/1348102824
profile_image_url_httpsStringEine HTTPS-basierte URL, die auf das Profilbild des Nutzers zeigt. Beispiel:

“profile_image_url_https”:
https://abs.twimg.com/sticky/default&#95;profile&#95;images/default&#95;profile&#95;normal.png
default_profileBooleanWenn true, zeigt an, dass der Nutzer das Design oder den Hintergrund seines Nutzerprofils nicht verändert hat. Beispiel:

“default_profile”: false
default_profile_imageBooleanWenn true, zeigt an, dass der Nutzer kein eigenes Profilbild hochgeladen hat und stattdessen ein Standardbild verwendet wird. Beispiel:

“default_profile_image”: false

Nicht mehr unterstützte (deprecated) Attribute

FeldTypBeschreibung
utc_offsetnullWert wird auf null gesetzt. Weiterhin verfügbar über GET account/settings
time_zonenullWert wird auf null gesetzt. Weiterhin verfügbar über GET account/settings als tzinfo_name
langnullWert wird auf null gesetzt. Weiterhin verfügbar über GET account/settings als language
geo_enablednullWert wird auf null gesetzt. Weiterhin verfügbar über GET account/settings. Dieses Feld muss true sein, damit der aktuelle Nutzer beim Verwenden von POST statuses/update Geodaten anhängen kann.
followingnullWert wird auf null gesetzt. Weiterhin verfügbar über GET friendships/lookup
follow_request_sentnullWert wird auf null gesetzt. Weiterhin verfügbar über GET friendships/lookup
has_extended_profilenullDeprecated. Wert wird auf null gesetzt.
notificationsnullDeprecated. Wert wird auf null gesetzt.
profile_locationnullDeprecated. Wert wird auf null gesetzt.
contributors_enablednullDeprecated. Wert wird auf null gesetzt.
profile_image_urlnullDeprecated. Wert wird auf null gesetzt. HINWEIS: Profilbilder sind nur über das Feld profile_image_url_https verfügbar.
profile_background_colornullDeprecated. Wert wird auf null gesetzt.
profile_background_image_urlnullDeprecated. Wert wird auf null gesetzt.
profile_background_image_url_httpsnullDeprecated. Wert wird auf null gesetzt.
profile_background_tilenullDeprecated. Wert wird auf null gesetzt.
profile_link_colornullDeprecated. Wert wird auf null gesetzt.
profile_sidebar_border_colornullDeprecated. Wert wird auf null gesetzt.
profile_sidebar_fill_colornullDeprecated. Wert wird auf null gesetzt.
profile_text_colornullDeprecated. Wert wird auf null gesetzt.
profile_use_background_imagenullDeprecated. Wert wird auf null gesetzt.
is_translatornullDeprecated. Wert wird auf null gesetzt.
is_translation_enablednullDeprecated. Wert wird auf null gesetzt.
translator_typenullDeprecated. Wert wird auf null gesetzt.

Beispiel-User-Objekt:

"user": {
		"id": 2244994945,
		"id_str": "2244994945",
		"name": "X Dev",
		"screen_name": "XDevelopers",
		"location": "127.0.0.1",
		"url": "https://developer.x.com/en/community",
		"description": "Die Stimme des #XDevelopers-Teams und Ihre offizielle Quelle für Updates, News und Events rund um die #XAPI.",
		"translator_type": "regular",
		"protected": false,
		"verified": true,
		"followers_count": 512292,
		"friends_count": 2038,
		"listed_count": 1666,
		"favourites_count": 2147,
		"statuses_count": 3634,
		"created_at": "Sat Dec 14 04:35:55 +0000 2013",
		"utc_offset": null,
		"time_zone": null,
		"geo_enabled": true,
		"lang": null,
		"contributors_enabled": false,
		"is_translator": false,
		"profile_background_color": "FFFFFF",
		"profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
		"profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
		"profile_background_tile": false,
		"profile_link_color": "0084B4",
		"profile_sidebar_border_color": "FFFFFF",
		"profile_sidebar_fill_color": "DDEEF6",
		"profile_text_color": "333333",
		"profile_use_background_image": false,
		"profile_image_url": "http://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"profile_image_url_https": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"profile_banner_url": "https://pbs.twimg.com/profile_banners/2244994945/1594913664",
		"default_profile": false,
		"default_profile_image": false,
		"following": null,
		"follow_request_sent": null,
		"notifications": null
	}

Native angereicherte Geo-Objekte

Posts können mit einem Standort verknüpft werden, wodurch ein Post „geotaggt“ wird. Standorte können über die X‑Benutzeroberfläche zugewiesen werden oder beim Veröffentlichen eines Posts per API. Post-Standorte können entweder ein exakter „Punkt“-Standort sein oder ein X Place mit einer „Bounding Box“, die ein größeres Gebiet beschreibt – von einem Veranstaltungsort bis hin zu einer gesamten Region. Es gibt drei „Root-Level“-JSON-Objekte, die den mit einem Post verknüpften Standort beschreiben: place, geo und coordinates. Zusätzlich enthält das native angereicherte Format innerhalb des User-Objekts die abgeleitete Position der Profil-Geo-Anreicherung. Das Objekt place ist immer vorhanden, wenn ein Post mit einem Place geotaggt ist. Places sind spezifische, benannte Standorte mit entsprechenden Geokoordinaten. Wenn Nutzer einem Post einen Standort zuweisen, wird ihnen eine Liste mit möglichen X Places angezeigt. Bei Verwendung der API kann ein X Place angehängt werden, indem beim Posten eine place_id angegeben wird. Posts, die mit Places verknüpft sind, stammen nicht zwingend von diesem Standort, sondern können sich auch auf diesen Standort beziehen. Die Objekte geo und coordinates sind nur vorhanden (nicht null), wenn dem Post ein exakter Standort zugewiesen ist. Wenn ein exakter Standort angegeben wird, liefert das Objekt coordinates ein [long, lat]-Array mit den geografischen Koordinaten, und ein X Place, der diesem Standort entspricht, wird zugewiesen.

Datenwörterbuch für Orte

FeldTypBeschreibung
idStringID, die diesen Ort darstellt. Beachten Sie, dass sie als String und nicht als Integer vorliegt. Beispiel:

“id”:“01a9a39529b27f36”
urlStringURL mit dem Verweis auf zusätzliche Orts-Metadaten zu diesem Ort. Beispiel:

“url”:“https://api.x.com/1.1/geo/id/01a9a39529b27f36.json
place_typeStringDer Typ des Orts, der durch diesen Eintrag dargestellt wird. Beispiel:

“place_type”:“city”
nameStringKurze, menschenlesbare Darstellung des Ortsnamens. Beispiel:

“name”:“Manhattan”
full_nameStringVollständige, menschenlesbare Darstellung des Ortsnamens. Beispiel:

“full_name”:“Manhattan, NY”
country_codeStringAbgekürzter Ländercode des Landes, in dem sich dieser Ort befindet. Beispiel:

“country_code”:“US”
countryStringName des Landes, in dem sich dieser Ort befindet. Beispiel:

“country”:“United States”
bounding_boxObjectEine Koordinaten-Begrenzungsbox, die diesen Ort umschließt. Beispiel:


“bounding_box”:
“coordinates”: [
[
[
-74.026675,
40.683935
],
[
-74.026675,
40.877483
],
[
-73.910408,
40.877483
],
[
-73.910408,
40.3935
]
]
],
“type”: “Polygon”

attributesObjectBei Verwendung von PowerTrack, den 30‑Day‑ und Full‑Archive‑Search‑APIs sowie Volume Streams ist dieser hash null. Beispiel:

“attributes”:

Begrenzungsrahmen

FeldTypBeschreibung
coordinatesArray von Array von Array von FloatEine Reihe von Längen- und Breitengradpunkten, die einen Rahmen definieren, der die Place-Entität umfasst, auf die sich dieser Begrenzungsrahmen bezieht. Jeder Punkt ist ein Array in der Form [longitude, latitude]. Punkte werden pro Begrenzungsrahmen zu einem Array gruppiert. Die Arrays der Begrenzungsrahmen werden in ein zusätzliches Array eingebettet, um mit der Polygon-Notation kompatibel zu sein. Beispiel:


“coordinates”: [
[
[
-74.026675,
40.683935
],
[
-74.026675,
40.877483
],
[
-73.910408,
40.877483
],
[
-73.910408,
40.3935
]
]
]
typeStringDer Typ der in der Eigenschaft coordinates codierten Daten. Für Begrenzungsrahmen ist dies “Polygon” und für Posts mit exakten Koordinaten “Point”. Beispiel:

“type”:“Polygon”

Datenwörterbuch für Geo-Objekt

FeldTypBeschreibung
coordinatesSammlung von FloatDer Längen- und Breitengrad des Standorts des Post, als Sammlung in der Form [latitude, longitude]. Beispiel:

**  “geo”:

“type”:** “Point”,

**    “coordinates”: [

54.27784
,

-0.41068

    ]

  **
typeStringDer Typ der in der Eigenschaft coordinates codierten Daten. Für Koordinatenfelder eines Post ist dies „Point“. Beispiel:

“type”: “Point”
Datenwörterbuch für Coordinates-Objekt
FeldTypBeschreibung
coordinatesSammlung von FloatDer Längen- und Breitengrad des Standorts des Post, als Sammlung in der Form [longitude, latitude]. Beispiel:

**  “coordinates”:

“type”:** “Point”,

**    “coordinates”: [

-0.41068
,

54.27784

    ]

  **
typeStringDer Typ der in der Eigenschaft coordinates codierten Daten. Für Koordinatenfelder eines Post ist dies „Point“. Beispiel:

“type”: “Point”

Abgeleitete Standorte

FeldTypBeschreibung
derivedlocations objectAbgeleiteter Standort aus der Geo-Anreicherung des Profils

“derived”:

      “locations”: [


**       

“country”:** “United Kingdom”,

“country_code”: “GB”,

“locality”: “Yorkshire”,

“region”: “England”,

“full_name”: “Yorkshire, England, United Kingdom”,

**          “geo”:

            “coordinates”: [

-1.5
,

54

            ],

“type”:** “point”

**         

       

      ]

    **

Beispiele:

{
  "geo": null,
  "coordinates": null,
  "place": {
    "id": "07d9db48bc083000",
    "url": "https://api.x.com/1.1/geo/id/07d9db48bc083000.json",
    "place_type": "poi",
    "name": "McIntosh Lake",
    "full_name": "McIntosh Lake",
    "country_code": "US",
    "country": "Vereinigte Staaten",
    "bounding_box": {
      "type": "Polygon",
      "coordinates": [
        [
          [
            -105.14544,
            40.192138
          ],
          [
            -105.14544,
            40.192138
          ],
          [
            -105.14544,
            40.192138
          ],
          [
            -105.14544,
            40.192138
          ]
        ]
      ]
    },
    "attributes": {

    }
  }
}
{
  "geo": {
    "type": "Point",
    "coordinates": [
      40.74118764,
      -73.9998279
    ]
  },
  "coordinates": {
    "type": "Point",
    "coordinates": [
      -73.9998279,
      40.74118764
    ]
  },
  "place": {
    "id": "01a9a39529b27f36",
    "url": "https://api.x.com/1.1/geo/id/01a9a39529b27f36.json",
    "place_type": "city",
    "name": "Manhattan",
    "full_name": "Manhattan, NY",
    "country_code": "US",
    "country": "Vereinigte Staaten",
    "bounding_box": {
      "type": "Polygon",
      "coordinates": [
        [
          [
            -74.026675,
            40.683935
          ],
          [
            -74.026675,
            40.877483
          ],
          [
            -73.910408,
            40.877483
          ],
          [
            -73.910408,
            40.683935
          ]
        ]
      ]
    },
    "attributes": {

    }
  }
}
Datenwörterbuch: Enterprise

X-Entities  

Zu diesem Abschnitt springen Einführung Entities-Objekt   - Hashtag-Objekt   - Media-Objekt   - Media-Größenobjekt   - URL-Objekt   - User-Mention-Objekt   - Symbol-Objekt   - Umfrage-Objekt Details zu Retweets und Quote Tweets Entities in User-Objekten Entities in Direct Messages Nächste Schritte

Einführung

Entitäten liefern Metadaten und zusätzliche kontextuelle Informationen zu Inhalten, die auf X veröffentlicht werden. Der Abschnitt entities enthält Arrays gängiger Elemente, die in Posts vorkommen: Hashtags, Benutzererwähnungen, Links, Aktiensymbole (Ticker), X-Umfragen und angehängte Medien. Diese Arrays sind für Entwickler praktisch, wenn sie Posts verarbeiten, da X den Textkörper im Wesentlichen bereits vorverarbeitet bzw. geparst hat. Anstatt diese Entitäten explizit im Post-Text suchen zu müssen, kann Ihr Parser direkt zu diesem JSON-Abschnitt springen – dort sind sie bereits aufbereitet. Über diese Parsing-Erleichterungen hinaus liefert der Abschnitt entities auch nützliche Metadaten mit „Mehrwert“. Wenn Sie beispielsweise die Enhanced URLs Enrichment verwenden, enthalten die URL-Metadaten vollständig expandierte URLs sowie zugehörige Website-Titel und -Beschreibungen. Ein weiteres Beispiel: Bei Benutzererwähnungen enthalten die Entities-Metadaten die numerische Benutzer-id, was bei Anfragen an viele X APIs nützlich ist. Jede Post-JSON-Payload enthält einen Abschnitt entities mit dem minimalen Satz der Attribute hashtags, urls, user_mentions und symbols, selbst wenn keine dieser Entitäten Teil des Post-Texts ist. Wenn Sie beispielsweise das JSON für einen Post mit dem Text „Hello World!“ und ohne angehängte Medien untersuchen, enthält das JSON des Posts den folgenden Inhalt mit Entity-Arrays, die null Elemente enthalten:
"entities": {
        "hashtags": [
        ],
        "urls": [
        ],
        "user_mentions": [
        ],
        "symbols": [
        ]
      }
Hinweise:
  • Die Entitäten media und polls erscheinen nur, wenn dieser Inhaltstyp Teil des Posts ist.
  • Wenn Sie mit nativen Medien (Fotos, Videos oder GIFs) arbeiten, ist das Extended Entities-Objekt der richtige Weg.

Entities-Objekt

Die Abschnitte entities und extended_entities bestehen beide aus Arrays von Entity-Objekten. Unten finden Sie Beschreibungen für jedes dieser Objekte, einschließlich Datenwörterbüchern, die die Namen der Objektattribute, deren Typen und eine kurze Beschreibung aufführen. Wir geben außerdem an, welche PowerTrack-Operatoren auf diese Attribute matchen, und fügen einige Beispiel-JSON-Payloads bei. Eine Sammlung gängiger Entities, die in Posts vorkommen, darunter Hashtags, Links und Benutzererwähnungen. Dieses entities-Objekt enthält ein media-Attribut, dessen Implementierung im Abschnitt entities jedoch nur für Posts mit einem einzelnen Foto vollständig zutreffend ist. Für alle Posts mit mehr als einem Foto, mit Video oder animiertem GIF verweisen wir auf den Abschnitt extended_entities.

Datenwörterbuch für Entities

Das Objekt entities enthält Arrays weiterer Entity-Teilobjekte. Nach der Darstellung der entities‑Struktur folgen Datenwörterbücher für diese Teilobjekte sowie die dazu passenden Operatoren.
FeldTypBeschreibung
hashtagsArray von Hashtag ObjectsStellt Hashtags dar, die aus dem Post-Text geparst wurden. Beispiel:


“hashtags”: [

“indices”: [
32,
38
],
“text”: “nodejs”

]
mediaArray von Media ObjectsStellt Medienelemente dar, die mit dem Post hochgeladen wurden. Beispiel:


“media”: [

“display_url”: “pic.x.com/5J1WJSRCy9”,
“expanded_url”: “https://x.com/nolan_test/status/930077847535812610/photo/1”,
“id”: 9.300778475358126e17,
“id_str”: “930077847535812610”,
“indices”: [
13,
36
],
“media_url”: “http://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg”,
“media_url_https”: “https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg
“sizes”:
“thumb”:
“h”: 150,
“resize”: “crop”,
“w”: 150
,
“large”:
“h”: 1366,
“resize”: “fit”,
“w”: 2048
,
“medium”:
“h”: 800,
“resize”: “fit”,
“w”: 1200
,
“small”:
“h”: 454,
“resize”: “fit”,
“w”: 680

,
“type”: “photo”,
“url”: “https://t.co/5J1WJSRCy9”,

]
urlsArray von URL ObjectsStellt URLs dar, die im Text eines Posts enthalten sind.

Beispiel (ohne aktivierte Enhanced URLs-Anreicherung):


“urls”: [

“indices”: [
32,
52
],
“url”: “http://t.co/IOwBrTZR”,
“display_url”: “youtube.com/watch?v=oHg5SJ…”,
“expanded_url”: “http://www.youtube.com/watch?v=oHg5SJYRHA0

]


Beispiel (mit aktivierter Enhanced URLs-Anreicherung):

“urls”: [

“url”: “https://t.co/D0n7a53c2l”,
“expanded_url”: “http://bit.ly/18gECvy”,
“display_url”: “bit.ly/18gECvy”,
“unwound”:
“url”: “https://www.youtube.com/watch?v=oHg5SJYRHA0”,
“status”: 200,
“title”: “RickRoll’D”,
“description”: “http://www.facebook.com/rickroll548 As long as trolls are still trolling, the Rick will never stop rolling.”
,
“indices”: [
62,
85
]

]
user_mentionsArray von User Mention ObjectsStellt andere X-Nutzer dar, die im Text des Posts erwähnt werden. Beispiel:


“user_mentions”: [

“name”: “X API”,
“indices”: [
4,
15
],
“screen_name”: “xapi”,
“id”: 6253282,
“id_str”: “6253282”

]
symbolsArray von Symbol ObjectsStellt Symbole dar, d. h. $cashtags, die im Text des Posts enthalten sind. Beispiel:


“symbols”: [

“indices”: [
12,
17
],
“text”: “twtr”

]
pollsArray von Poll ObjectsStellt X-Umfragen dar, die im Post enthalten sind. Beispiel:

“polls”: [

“options”: [

“position”: 1,
“text”: “I read documentation once.”
,

“position”: 2,
“text”: “I read documentation twice.”
},

“position”: 3,
“text”: “I read documentation over and over again.”
}
],
“end_datetime”: “Thu May 25 22:20:27 +0000 2017”,
“duration_minutes”: 60

]

Hashtag-Objekt  

Der Abschnitt entities enthält ein hashtags-Array mit einem Objekt für jedes im Post-Text enthaltene Hashtag und ein leeres Array, wenn keine Hashtags vorhanden sind. Der PowerTrack-Operator # wird verwendet, um mit dem Attribut text abzugleichen. Der Operator has:hashtags liefert einen Treffer, wenn sich mindestens ein Element im Array befindet.
FeldTypBeschreibung
indicesArray aus IntEin Array von Ganzzahlen, das die Offsets innerhalb des Post-Texts angibt, an denen das Hashtag beginnt und endet. Die erste Ganzzahl gibt die Position des Zeichens „#“ im Post-Text-String an. Die zweite Ganzzahl gibt die Position des ersten Zeichens nach dem Hashtag an. Die Differenz zwischen den beiden Zahlen entspricht somit der Länge des Hashtag-Namens plus eins (für das Zeichen „#“). Beispiel:

“indices”:[32,38]
textStringName des Hashtags ohne das führende Zeichen „#“. Beispiel:

“text”:“nodejs”

Medienobjekt  

Der Abschnitt entities enthält ein media-Array mit einem einzelnen Medienobjekt, wenn ein Medienobjekt an den Post „angehängt“ wurde. Wenn kein natives Medium angehängt wurde, gibt es in den entities kein media-Array. Aus den folgenden Gründen sollte der Abschnitt extended_entities zur Verarbeitung nativer Post-Medien verwendet werden:
  • Das Feld type des Mediums gibt immer „photo“ an, selbst wenn ein Video oder GIF an den Post angehängt ist.
  • Obwohl bis zu vier Fotos angehängt werden können, wird im Abschnitt entities nur das erste aufgeführt.
Der Operator has:media liefert einen Treffer, wenn dieses Array befüllt ist.
FeldTypBeschreibung
display_urlStringURL der Medien, die Clients angezeigt werden soll. Beispiel:

“display_url”:“pic.x.com/rJC5Pxsu”
expanded_urlStringEine erweiterte Version von display_url. Verweist auf die Medien-Anzeigeseite. Beispiel:

“expanded_url”: “http://x.com/yunorno/status/114080493036773378/photo/1
idInt64ID der Medien als 64-Bit-Integer. Beispiel:

“id”:114080493040967680
id_strStringID der Medien als String. Beispiel:

“id_str”:“114080493040967680”
indicesArray of IntEin Array von Integern, das die Offsets innerhalb des Post-Textes angibt, wo die URL beginnt und endet. Der erste Integer gibt die Position des ersten Zeichens der URL im Post-Text an. Der zweite Integer gibt die Position des ersten Nicht-URL-Zeichens nach der URL an (oder das Ende des Strings, wenn die URL der letzte Teil des Post-Textes ist). Beispiel:

“indices”:[15,35]
media_urlStringEine http:// URL, die direkt auf die hochgeladene Mediendatei verweist. Beispiel:

“media_url”:“http://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg

Für Medien in Direct Messages ist media_url dieselbe https-URL wie media_url_https und muss durch Signierung einer Anfrage mit dem Access Token des Benutzers unter Verwendung von OAuth 1.0a aufgerufen werden.

Es ist nicht möglich, auf Bilder über eine authentifizierte x.com-Sitzung zuzugreifen. Besuchen Sie bitte diese Seite, um zu erfahren, wie Sie diese kürzlichen Änderungen berücksichtigen können.

Sie können diese Bilder nicht direkt in eine Webseite einbetten.

Siehe Photo Media URL-Formatierung für die Formatierung einer Foto-URL, wie media_url_https, basierend auf den verfügbaren sizes.
media_url_httpsStringEine https:// URL, die direkt auf die hochgeladene Mediendatei verweist, zum Einbetten auf https-Seiten. Beispiel:

“media_url_https”:“https://p.twimg.com/AZVLmp-CIAAbkyy.jpg

Für Medien in Direct Messages muss media_url_https durch Signierung einer Anfrage mit dem Access Token des Benutzers unter Verwendung von OAuth 1.0a aufgerufen werden.

Es ist nicht möglich, auf Bilder über eine authentifizierte x.com-Sitzung zuzugreifen. Besuchen Sie bitte diese Seite, um zu erfahren, wie Sie diese kürzlichen Änderungen berücksichtigen können.

Sie können diese Bilder nicht direkt in eine Webseite einbetten.

Siehe Photo Media URL-Formatierung für die Formatierung einer Foto-URL, wie media_url_https, basierend auf den verfügbaren sizes.
sizesSize ObjectEin Objekt, das verfügbare Größen für die Mediendatei anzeigt. Beispiel:


“sizes”:
“thumb”:
“h”: 150,
“resize”: “crop”,
“w”: 150
},
“large”:
“h”: 1366,
“resize”: “fit”,
“w”: 2048
},
“medium”:
“h”: 800,
“resize”: “fit”,
“w”: 1200
},
“small”:
“h”: 454,
“resize”: “fit”,
“w”: 680
}
}
}

Siehe Photo Media URL-Formatierung für die Formatierung einer Foto-URL, wie media_url_https, basierend auf den verfügbaren sizes.
source_status_idInt64Nullable. Für Posts, die Medien enthalten, die ursprünglich mit einem anderen Post verknüpft waren, verweist diese ID auf den ursprünglichen Post. Beispiel:

“source_status_id”: 205282515685081088
source_status_id_strInt64Nullable. Für Posts, die Medien enthalten, die ursprünglich mit einem anderen Post verknüpft waren, verweist diese string-basierte ID auf den ursprünglichen Post. Beispiel:

“source_status_id_str”: “205282515685081088”
typeStringTyp der hochgeladenen Medien. Mögliche Typen sind photo, video und animated_gif. Beispiel:

“type”:“photo”
urlStringGekapselte URL für den Medienlink. Dies entspricht der URL, die direkt in den rohen Post-Text eingebettet ist, und den Werten für den indices-Parameter. Beispiel:

“url”:“http://t.co/rJC5Pxsu

Mediengrößenobjekte

Alle Posts mit nativen Medien (Fotos, Videos und GIFs) enthalten eine Reihe von „thumb“-, „small“-, „medium“- und „large“-Größen mit Pixelmaßen für Höhe und Breite. Für Fotos und Vorschau‑Bildmedien‑URLs erläutert Photo Media URL formatting, wie unterschiedliche URLs zum Laden verschieden großer Fotomedien erstellt werden.

Größenobjekt 

FeldTypBeschreibung
thumbGrößenobjektInformationen zu einer Version des Mediums in Miniaturgröße. Beispiel:

“thumb”:“h”:150, “resize”:“crop”, “w”:150}

Fotos in Miniaturgröße werden so skaliert, dass sie einen Rahmen von 150×150 ausfüllen (fill) und dabei beschnitten.
largeGrößenobjektInformationen zu einer Version des Mediums in großer Größe. Beispiel:

“large”:“h”:454, “resize”:“fit”, “w”:680}

Kleine Foto-Versionen werden so skaliert, dass sie in einen Rahmen von 680×680 passen (fit).
mediumGrößenobjektInformationen zu einer Version des Mediums in mittlerer Größe. Beispiel:

“medium”:“h”:800, “resize”:“fit”, “w”:1200}

Mittlere Foto-Versionen werden so skaliert, dass sie in einen Rahmen von 1200×1200 passen (fit).
smallGrößenobjektInformationen zu einer Version des Mediums in kleiner Größe. Beispiel:

“small”:“h”:1366, “resize”:“fit”, “w”:2048}

Große Foto-Versionen werden so skaliert, dass sie in einen Rahmen von 2048×2048 passen (fit).

Size-Objekt 

FeldTypBeschreibung
wIntBreite dieses Formats in Pixeln. Beispiel:

“w”:150
hIntHöhe dieses Formats in Pixeln. Beispiel:

“h”:150
resizeStringVerwendete Skalierungsmethode, um dieses Format zu erhalten. Ein Wert von fit bedeutet, dass das Medium so skaliert wurde, dass es in eine Dimension passt, wobei das ursprüngliche Seitenverhältnis beibehalten wird. Ein Wert von crop bedeutet, dass das Medium zugeschnitten wurde, um eine bestimmte Auflösung zu erreichen. Beispiel:

“resize”:“crop”

Formatierung von Foto-Media-URLs

Foto-Medien auf X können in unterschiedlichen Größen geladen werden. Es ist am besten, die kleinste Bildgröße zu laden, die groß genug ist, um in einen bestimmten Bild-Viewport zu passen. Um verschiedene Größen zu laden, müssen das Size Object und media_url (oder media_url_https) in einem bestimmten Format kombiniert werden. Wir verwenden das bereits bereitgestellte Beispielobjekt der media entity für unser Beispiel zur Konstruktion einer Foto-Media-URL. Die media_url oder media_url_https können auch allein geladen werden; dadurch wird standardmäßig die Variante medium geladen. Es ist jedoch vorzuziehen, nach Möglichkeit eine vollständig formatierte Foto-Media-URL anzugeben. Eine Foto-Media-URL besteht aus drei Teilen:
Base URLDie Basis-URL ist die Media-URL ohne Dateierweiterung.

Zum Beispiel:

“media_url_https”: “https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg”,

Die Basis-URL ist dann:

https://pbs.twimg.com/media/DOhM30VVwAEpIHq
FormatDas Format ist der Typ des Fotos, als der das Bild vorliegt. Mögliche Formate sind jpg oder png; sie erscheinen als Erweiterung der Media-URL.

Zum Beispiel:

“media_url_https”: “https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg”,

Das Format ist dann: jpg
NameDer Name ist der Feldname der zu ladenden Größe.

Zum Beispiel:


 “sizes”:
   “thumb”:
     “h”: 150,
     “resize”: “crop”,
     “w”: 150
   ,
   “large”:
     “h”: 1366,
     “resize”: “fit”,
     “w”: 2048
   },
   “medium”:
     “h”: 800,
     “resize”: “fit”,
     “w”: 1200
   },
   “small”:
     “h”: 454,
     “resize”: “fit”,
     “w”: 680
   }
 }
}

Der Name beim Laden des großformatigen Fotos wäre: large
Wir nehmen diese drei Teile (Basis-URL, Format und Name) und kombinieren sie zur zu ladenden Foto-Media-URL. Es gibt zwei Formate, um Bilder auf diese Weise zu laden: legacy und modern. Alle Bildaufrufe sollten das legacy-Format nicht mehr verwenden und stattdessen das modern-Format nutzen. Die Verwendung des modern-Formats führt zu einer höheren CDN-Trefferrate für den Aufrufer und verbessert damit die Ladezeiten, da Medien weniger häufig im Rechenzentrum generiert und geladen werden müssen.
Legacy formatDas Legacy-Format ist veraltet. Foto-Medienladevorgänge sollten vollständig auf das moderne Format umgestellt werden.

<base_url>.<format>:<name>

Zum Beispiel:

https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg:large
Modern formatDas moderne Format zum Laden von Fotos wurde 2015 bei X eingeführt und ist seit 2017 de facto Standard. Alle Foto-Medienladevorgänge sollten auf dieses Format umgestellt werden.

<base_url>?format=<format>&name=<name>

Zum Beispiel:

https://pbs.twimg.com/media/DOhM30VVwAEpIHq?format=jpg&amp;name=large


Hinweis: Die Items in der query-Zeichenfolge der Foto-Medien-URL sind alphabetisch sortiert. Falls beim Laden von Medien zusätzliche query-Items hinzugefügt werden, muss die alphabetische Sortierung beibehalten werden. Beispiel: Wenn es das hypothetische neue query-Item preferred_format gäbe, stünde es in der query-Zeichenfolge nach format und name.

URL-Objekt 

Der Abschnitt entities enthält ein Array urls mit einem Objekt für jeden Link, der im Post-Text enthalten ist, und enthält ein leeres Array, wenn keine Links vorhanden sind. Der Operator has:links trifft zu, wenn sich mindestens ein Element im Array befindet. Der Operator url: wird verwendet, um auf das Attribut expanded_url abzugleichen. Wenn Sie die Expanded URL Enrichment verwenden, wird der Operator url: verwendet, um auf das Attribut unwound.url (vollständig aufgelöste URL) abzugleichen. Wenn Sie die Enhanced URL Enrichment verwenden, werden die Operatoren url_title: und url_description: verwendet, um auf die Attribute unwound.title und unwound.description abzugleichen.
FieldTypeDescription
display_urlStringIn den Post eingefügte/eingetippte URL. Beispiel:

“display_url”:“bit.ly/2so49n2”
expanded_urlStringErweiterte Version von display_url. Beispiel:

“expanded_url”:“http://bit.ly/2so49n2
indicesArray of IntEin Array von Ganzzahlen, das Offsets innerhalb des Post-Texts angibt, an denen die URL beginnt und endet. Die erste Ganzzahl gibt die Position des ersten Zeichens der URL im Post-Text an. Die zweite Ganzzahl gibt die Position des ersten Nicht-URL-Zeichens nach dem Ende der URL an. Beispiel:

“indices”:[30,53]
urlStringUmhüllte URL, entsprechend dem Wert, der direkt im Rohtext des Posts eingebettet ist, sowie den Werten für den Parameter indices. Beispiel:

“url”:“https://t.co/yzocNFvJuL
Wenn Sie die Expanded- und/oder Enhanced-URL-Enrichments verwenden, sind die folgenden metadata unter dem Attribut unwound verfügbar:
FieldTypeDescription
urlStringDie vollständig aufgelöste Version des im Post enthaltenen Links. Beispiel:

“url”:“https://blog.x.com/en&#95;us/topics/insights/2016/using-twitter-as-a-go-to-communication-channel-during-severe-weather-events.html
statusIntFinaler HTTP-Status des Auflösungsprozesses; „200“ steht für Erfolg. Beispiel:

200
titleStringHTML-Titel des Links. Beispiel:

“title”:“Using X as a ‘go-to’ communication channel during severe weather”
descriptionStringHTML-Beschreibung des Links. Beispiel:

“description”:“Using X as a ‘go-to’ communication channel during severe weather”

Objekt für Benutzererwähnungen  

Der Abschnitt entities enthält ein Array user_mentions mit einem Objekt für jede im Post-Text enthaltene Benutzererwähnung und ein leeres Array, wenn keine Benutzererwähnung vorhanden ist. Der PowerTrack-Operator @ wird verwendet, um auf das Attribut screen_name zu matchen. Der Operator has:mentions matcht, wenn sich mindestens ein Element im Array befindet.
FeldTypBeschreibung
idInt64ID des erwähnten Benutzers als Integer. Beispiel:

“id”:6253282
id_strStringID des erwähnten Benutzers als Zeichenfolge. Beispiel:

“id_str”:“6253282”
indicesArray of IntEin Array von Ganzzahlen, das die Offsets innerhalb des Post-Texts angibt, an denen die Benutzerreferenz beginnt und endet. Die erste Ganzzahl gibt die Position des „@“-Zeichens der Benutzererwähnung an. Die zweite Ganzzahl gibt die Position des ersten Zeichens an, das nicht mehr zum screen_name gehört, und auf die Benutzererwähnung folgt. Beispiel:

“indices”:[4,15]
nameStringAnzeigename des referenzierten Benutzers. Beispiel:

“name”:“API”
screen_nameStringscreen_name des referenzierten Benutzers. Beispiel:

“screen_name”:“api”

Symbolobjekt  

Der Abschnitt entities enthält ein Array symbols mit einem Objekt für jedes im Post-Text enthaltene $cashtag und ein leeres Array, wenn kein Symbol vorhanden ist. Der PowerTrack-Operator $ wird verwendet, um auf das Attribut text zu matchen. Der Operator has:symbols trifft zu, wenn mindestens ein Element im Array vorhanden ist.
FeldtypeBeschreibung
indicesArray von IntEin Array von Ganzzahlen, das die Offsets innerhalb des Post-Textes angibt, an denen das Symbol/Cashtag beginnt und endet. Die erste Ganzzahl steht für die Position des ZeichensinderPostTextzeichenkette.DiezweiteGanzzahlstehtfu¨rdiePositiondeserstenZeichensnachdemCashtag.DaherentsprichtdieDifferenzderbeidenZahlenderLa¨ngedesCashtagNamenspluseins(fu¨rdas-Zeichens in der Post-Textzeichenkette. Die zweite Ganzzahl steht für die Position des ersten Zeichens nach dem Cashtag. Daher entspricht die Differenz der beiden Zahlen der Länge des Cashtag-Namens plus eins (für das „“-Zeichen). Beispiel:

“indices”:[12,17]
textStringName des Cashtags ohne das führende „$“-Zeichen. Beispiel:

“text”:“twtr”

Poll-Objekt

Der Abschnitt entities enthält ein polls-Array mit genau einem poll-Objekt, wenn der Post eine Umfrage enthält. Wenn keine Umfrage enthalten ist, gibt es im Abschnitt entities kein polls-Array. Beachten Sie, dass diese Poll-Metadaten nur mit den folgenden Enterprise-APIs verfügbar sind:
FeldTypBeschreibung
optionsArray von Option-ObjektenEin Array von Optionen, jeweils mit einer Position in der Umfrage und dem Text für diese Position. Beispiel:

“options”: [

“position”: 1,
“text”: “I read documentation once.”
}
]
}
end_datetimeStringZeitstempel (UTC), zu dem die Umfrage endet. Beispiel:

“end_datetime”: “Thu May 25 22:20:27 +0000 2017”
duration_minutesStringDauer der Umfrage in Minuten. Beispiel:

“duration_minutes”: 60

Details zu Retweets und Quote Tweets

Aus Sicht der X API sind Retweets und Quote Tweets besondere Arten von Posts, die den ursprünglichen Post als eingebettetes Objekt enthalten. Retweet- und Quote-Tweet-Objekte sind also Eltern eines untergeordneten „originalen“ Posts (und sind damit doppelt so groß). Retweets haben ein Top-Level-Objekt “retweeted_status”, und Quote Tweets haben ein “quoted_status”-Objekt. Der Konsistenz halber haben diese Retweet- und Quote-Tweet-Objekte auf oberster Ebene ebenfalls eine text-Eigenschaft und zugehörige entities. Allerdings können sich die entities auf oberster Ebene von den entities unterscheiden, die durch die eingebetteten „originalen“ entities bereitgestellt werden. Bei Retweets wird dem ursprünglichen Post-Text neuer Text vorangestellt. Bei Quote Posts wird neuer Text an den Post-Text angehängt. Im Allgemeinen ist es Best Practice, den Text, die entities, den ursprünglichen Autor und das Datum aus dem ursprünglichen Post in retweeted_status abzurufen, sofern dieser vorhanden ist. Eine Ausnahme bildet das Abrufen von X-entities, die Teil des zusätzlichen Zitats sind. Weitere Details und Tipps siehe unten.

Retweets

Ein wichtiges Detail bei Retweets ist, dass dem Post keine zusätzlichen X-Entities hinzugefügt werden können. Nutzer können beim Retweeten keine Hashtags, URLs oder andere Details ergänzen. Allerdings setzt sich das Retweet-Attribut (Top-Level) text aus dem ursprünglichen Post-Text zusammen, dem „RT @username: “ vorangestellt wird.   In einigen Fällen, insbesondere bei Accounts mit langen Nutzernamen, kann die Kombination aus diesen zusätzlichen Zeichen und dem ursprünglichen Post-Text leicht die ursprüngliche Zeichenbegrenzung von 140 Zeichen für den Post-Text überschreiten. Um die Unterstützung für Anzeige und Speicherung auf Basis von 140 Zeichen beizubehalten, kürzt der Top-Level-Text das Ende des Post-Texts und fügt eine Auslassung („…“) hinzu. Folglich können einige Top-Level-Entities, die am Ende des ursprünglichen Posts positioniert sind, falsch oder nicht vorhanden sein, beispielsweise bei einem gekürzten Hashtag oder einer gekürzten URL. Dieser Post, https://x.com/FloodSocial/status/907974220298125312, hat folgenden Post-Text:                Just another test Post that needs to be exactly 140 characters with trailing URL and hashtag
http://wapo.st/2w8iwPQ #Testing
Im obigen Beispiel waren sowohl die URL als auch der Hashtag betroffen. Da der Hashtag vollständig und die URL teilweise gekürzt wurde, fehlen diese in den Top-Level-Entities. Außerdem fällt die zusätzliche Top-Level-Entity user_mentions auf, die aus dem Präfix „RT @floodsocial: “ im Feld text stammt. Der Post-Text und die Entities in retweeted_status spiegeln jedoch den ursprünglichen Post ohne Kürzung oder fehlerhafte Entities perfekt wider. Daher empfehlen wir, sich bei Retweets auf das verschachtelte Objekt retweeted_status zu verlassen.

Quote Tweets

Quote Tweets wurden 2016 eingeführt und unterscheiden sich von Retweets dadurch, dass Sie beim „Zitieren“ eines Posts neue Inhalte „oben auf“ einen geteilten Post setzen. Diese neuen Inhalte können nahezu alles umfassen, was ein Original-Post enthalten kann, einschließlich neuem Text, Hashtags, Erwähnungen und URLs. Quote Tweets können native Medien (Fotos, Videos und GIFs) enthalten und erscheinen unter dem entities-Objekt. Da X-Entities hinzugefügt werden können, unterscheiden sich die Quote-Entities wahrscheinlich von den ursprünglichen Entities. In diesem Beispiel wurden am Ende des Quote Tweets eine neue URL und ein Hashtag hinzugefügt. Dieser Post, https://x.com/FloodSocial/status/907983973225160704, hat den folgenden Post-Text:                   strange and equally tragic when islands flood… trans-atlantic testing of quote tweets | @thisuser @thatuserhttp://bit.ly/2vMMDuu #testing In diesem Fall spiegeln die Top-Level-Entities die Quote-Details nicht wider.  Der Post-Text und die Entities in extended_tweet hingegen geben den Quote Tweet exakt wieder, ohne Trunkierung oder fehlerhafte Entities. Daher empfehlen wir, sich bei Quote Tweets auf das verschachtelte extended_tweet-Objekt zu stützen.

Entitäten für das User-Objekt

Entitäten für User-Objekte beschreiben URLs, die in den vom Nutzer definierten Profilfeldern url und description erscheinen. Sie beschreiben keine hashtags oder user_mentions. Anders als Post-Entitäten können User-Entitäten auf mehrere Felder innerhalb ihres übergeordneten Objekts angewendet werden — zur eindeutigen Zuordnung finden Sie übergeordnete Knoten mit den Namen url und description, die angeben, welches Feld die entifizierte URL enthält. In diesem Beispiel enthält das Feld user url einen t.co-Link, der im Knoten entities/url/urls[0] der Antwort vollständig expandiert ist. Der Nutzer hat keine umschlossene URL in seiner Beschreibung.

JSON-Beispiel

{
  "id": 6253282,
  "id_str": "6253282",
  "name": "X API",
  "screen_name": "xapi",
  "location": "San Francisco, CA",
  "description": "Die echte X API. Ich tweete über API-Änderungen, Service-Probleme und beantworte gerne Fragen zu X und unserer API. Keine Antwort bekommen? Sie steht auf meiner Website.",
  "url": "http:\/\/t.co\/78pYTvWfJd",
  "entities": {
    "url": {
      "urls": [
        {
          "url": "http:\/\/t.co\/78pYTvWfJd",
          "expanded_url": "http:\/\/dev.x.com",
          "display_url": "dev.x.com",
          "indices": [
            0,
            22
          ]
        }
      ]
    },
    "description": {
      "urls": [

      ]
    }
  }
}

Erweiterte X-Entities 

Direkt zu auf dieser Seite Einführung „Extended Entities“-Objekt Beispiel-Tweets und JSON-Payloads   - Tweet mit vier nativen Fotos   - Tweet mit nativem Video   - Tweet mit einem animierten GIF Nächste Schritte

Einführung

Wenn ein Post native Medien enthält (über die Post-Benutzeroberfläche geteilt, statt per Link auf eine externe Quelle), gibt es außerdem einen Abschnitt extended_entities. Bei nativen Medien (Foto, Video oder GIF) sind die extended_entities aus mehreren Gründen die bevorzugte Metadatenquelle. Derzeit können bis zu vier Fotos an einen Post angehängt werden. Die entities-Metadaten enthalten nur das erste Foto (bis 2014 konnte nur ein Foto enthalten sein), während der Abschnitt extended_entities alle angehängten Fotos enthält. Ein weiterer Nachteil der entities.media-Metadaten bei nativen Medien besteht darin, dass der Medientyp immer „photo“ lautet, selbst in Fällen, in denen es sich bei den angehängten Medien um ein Video oder ein animiertes GIF handelt. Der tatsächliche Medientyp wird im Attribut extended_entities.media[].type angegeben und ist entweder auf „photo“, „video“ oder „animated_gif“ gesetzt. Aus diesen Gründen sind die extended_entities-Metadaten die richtige Wahl, wenn Sie mit nativen Medien arbeiten. Alle Posts mit angehängten Fotos, Videos und animierten GIFs enthalten ein extended_entities-JSON-Objekt. Das Objekt extended_entities enthält ein einzelnes media-Array von media-Objekten (siehe den Abschnitt entities für das zugehörige Datenwörterbuch). Keine anderen Entitätstypen, wie Hashtags und Links, sind im Abschnitt extended_entities enthalten. Das media-Objekt im Abschnitt extended_entities ist in seiner Struktur identisch mit dem im Abschnitt entities. An einem Post kann immer nur ein Medientyp angehängt sein. Bei Fotos können bis zu vier Fotos angehängt werden. Bei Videos und GIFs jeweils eines. Da die type-Metadaten im Abschnitt extended_entities den Medientyp korrekt angeben („photo“, „video“ oder „animated_gif“) und bis zu 4 Fotos unterstützen, sind sie die bevorzugte Metadatenquelle für native Medien.
{
      "extended_entities": {
        "media": [

        ]
      }
    }

Beispiel-Posts und JSON-Payloads

Unten finden Sie einige Beispiel-Posts und die zugehörigen Entities-Metadaten. Post mit vier nativen Fotos Post mit Hashtag, Benutzererwähnung, Cashtag, URL und vier nativen Fotos:
Hier ist der Abschnitt entities für diesen Post:
{
      "entities": {
        "hashtags": [
          {
            "text": "hashtag",
            "indices": [
              59,
              67
            ]
          }
        ],
        "urls": [
          {
            "url": "https://t.co/RzmrQ6wAzD",
            "expanded_url": "http://bit.ly/2pUk4be",
            "display_url": "bit.ly/2pUk4be",
            "unwound": {
              "url": "https://blog.gnip.com/tweeting-in-the-rain/",
              "status": 200,
              "title": "Tweeting in the Rain, Teil 1 - Gnip Blog - Social Data und Data Science Blog",
              "description": "Wenn Sie mir vor ein paar Jahren gesagt hätten, dass ich eines Tages Niederschlags- und Social-Media-Zeitreihendaten vergleichen würde, hätte ich angenommen, dass Sie scherzen. 13 Jahre lang bei OneRain half ich bei der Entwicklung von Software und Überwachung … Weiterlesen →"
            },
            "indices": [
              35,
              58
            ]
          }
        ],
        "user_mentions": [
          {
            "screen_name": "MentionThis",
            "name": "Nur Ich",
            "id": 50247739,
            "id_str": "50247739",
            "indices": [
              16,
              28
            ]
          }
        ],
        "symbols": [
          {
            "text": "twtr",
            "indices": [
              29,
              34
            ]
          }
        ],
        "media": [
          {
            "id": 861627472244162561,
            "id_str": "861627472244162561",
            "indices": [
              68,
              91
            ],
            "media_url": "http://pbs.twimg.com/media/C_UdnvPUwAE3Dnn.jpg",
            "media_url_https": "https://pbs.twimg.com/media/C_UdnvPUwAE3Dnn.jpg",
            "url": "https://t.co/9r69akA484",
            "display_url": "pic.x.com/9r69akA484",
            "expanded_url": "https://x.com/FloodSocial/status/861627479294746624/photo/1",
            "type": "photo",
            "sizes": {
              "medium": {
                "w": 1200,
                "h": 900,
                "resize": "fit"
              },
              "small": {
                "w": 680,
                "h": 510,
                "resize": "fit"
              },
              "thumb": {
                "w": 150,
                "h": 150,
                "resize": "crop"
              },
              "large": {
                "w": 2048,
                "h": 1536,
                "resize": "fit"
              }
            }
          }
        ]
      }
    }
Nur im folgenden „erweiterten“ Payload finden Sie die vier (maximal) nativen Fotos. Beachten Sie, dass das erste Foto im Array mit dem einzelnen Foto identisch ist, das im nicht erweiterten X-entities-Abschnitt enthalten ist. Die media-metadata-Struktur für Fotos ist in den Abschnitten entities und extended_entities identisch. Hier ist der Abschnitt extended_entities für diesen Post:
{
    "extended_entities": {
        "media": [
          {
            "id": 861627472244162561,
            "id_str": "861627472244162561",
            "indices": [
              68,
              91
            ],
            "media_url": "http://pbs.twimg.com/media/C_UdnvPUwAE3Dnn.jpg",
            "media_url_https": "https://pbs.twimg.com/media/C_UdnvPUwAE3Dnn.jpg",
            "url": "https://t.co/9r69akA484",
            "display_url": "pic.x.com/9r69akA484",
            "expanded_url": "https://x.com/FloodSocial/status/861627479294746624/photo/1",
            "type": "photo",
            "sizes": {
              "medium": {
                "w": 1200,
                "h": 900,
                "resize": "fit"
              },
              "small": {
                "w": 680,
                "h": 510,
                "resize": "fit"
              },
              "thumb": {
                "w": 150,
                "h": 150,
                "resize": "crop"
              },
              "large": {
                "w": 2048,
                "h": 1536,
                "resize": "fit"
              }
            }
          },
          {
            "id": 861627472244203520,
            "id_str": "861627472244203520",
            "indices": [
              68,
              91
            ],
            "media_url": "http://pbs.twimg.com/media/C_UdnvPVYAAZbEs.jpg",
            "media_url_https": "https://pbs.twimg.com/media/C_UdnvPVYAAZbEs.jpg",
            "url": "https://t.co/9r69akA484",
            "display_url": "pic.x.com/9r69akA484",
            "expanded_url": "https://x.com/FloodSocial/status/861627479294746624/photo/1",
            "type": "photo",
            "sizes": {
              "small": {
                "w": 680,
                "h": 680,
                "resize": "fit"
              },
              "thumb": {
                "w": 150,
                "h": 150,
                "resize": "crop"
              },
              "medium": {
                "w": 1200,
                "h": 1200,
                "resize": "fit"
              },
              "large": {
                "w": 2048,
                "h": 2048,
                "resize": "fit"
              }
            }
          },
          {
            "id": 861627474144149504,
            "id_str": "861627474144149504",
            "indices": [
              68,
              91
            ],
            "media_url": "http://pbs.twimg.com/media/C_Udn2UUQAADZIS.jpg",
            "media_url_https": "https://pbs.twimg.com/media/C_Udn2UUQAADZIS.jpg",
            "url": "https://t.co/9r69akA484",
            "display_url": "pic.x.com/9r69akA484",
            "expanded_url": "https://x.com/FloodSocial/status/861627479294746624/photo/1",
            "type": "photo",
            "sizes": {
              "medium": {
                "w": 1200,
                "h": 900,
                "resize": "fit"
              },
              "small": {
                "w": 680,
                "h": 510,
                "resize": "fit"
              },
              "thumb": {
                "w": 150,
                "h": 150,
                "resize": "crop"
              },
              "large": {
                "w": 2048,
                "h": 1536,
                "resize": "fit"
              }
            }
          },
          {
            "id": 861627474760708096,
            "id_str": "861627474760708096",
            "indices": [
              68,
              91
            ],
            "media_url": "http://pbs.twimg.com/media/C_Udn4nUMAAgcIa.jpg",
            "media_url_https": "https://pbs.twimg.com/media/C_Udn4nUMAAgcIa.jpg",
            "url": "https://t.co/9r69akA484",
            "display_url": "pic.x.com/9r69akA484",
            "expanded_url": "https://x.com/FloodSocial/status/861627479294746624/photo/1",
            "type": "photo",
            "sizes": {
              "small": {
                "w": 680,
                "h": 680,
                "resize": "fit"
              },
              "thumb": {
                "w": 150,
                "h": 150,
                "resize": "crop"
              },
              "medium": {
                "w": 1200,
                "h": 1200,
                "resize": "fit"
              },
              "large": {
                "w": 2048,
                "h": 2048,
                "resize": "fit"
              }
            }
          }
        ]
      }
    }

Post mit nativem Video

Nachfolgend finden Sie die erweiterten Entities-Metadaten für diesen Post mit Video:
{
      "extended_entities": {
        "media": [
          {
            "id": 869317980307415040,
            "id_str": "869317980307415040",
            "indices": [
              31,
              54
            ],
            "media_url": "http://pbs.twimg.com/ext_tw_video_thumb/869317980307415040/pu/img/t_E6wyADk_PvxuzF.jpg",
            "media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/869317980307415040/pu/img/t_E6wyADk_PvxuzF.jpg",
            "url": "https://t.co/TLSTTOvvmP",
            "display_url": "pic.x.com/TLSTTOvvmP",
            "expanded_url": "https://x.com/FloodSocial/status/869318041078820864/video/1",
            "type": "video",
            "sizes": {
              "small": {
                "w": 340,
                "h": 604,
                "resize": "fit"
              },
              "large": {
                "w": 720,
                "h": 1280,
                "resize": "fit"
              },
              "thumb": {
                "w": 150,
                "h": 150,
                "resize": "crop"
              },
              "medium": {
                "w": 600,
                "h": 1067,
                "resize": "fit"
              }
            },
            "video_info": {
              "aspect_ratio": [
                9,
                16
              ],
              "duration_millis": 10704,
              "variants": [
                {
                  "bitrate": 320000,
                  "content_type": "video/mp4",
                  "url": "https://video.twimg.com/ext_tw_video/869317980307415040/pu/vid/180x320/FMei8yCw7yc_Z7e-.mp4"
                },
                {
                  "bitrate": 2176000,
                  "content_type": "video/mp4",
                  "url": "https://video.twimg.com/ext_tw_video/869317980307415040/pu/vid/720x1280/octt5pFbISkef8RB.mp4"
                },
                {
                  "bitrate": 832000,
                  "content_type": "video/mp4",
                  "url": "https://video.twimg.com/ext_tw_video/869317980307415040/pu/vid/360x640/2OmqK74SQ9jNX8mZ.mp4"
                },
                {
                  "content_type": "application/x-mpegURL",
                  "url": "https://video.twimg.com/ext_tw_video/869317980307415040/pu/pl/wcJQJ2nxiFU4ZZng.m3u8"
                }
              ]
            }
          }
        ]
      }
    }
Wenn ein Werbetreibender die Videowiedergabe auf ausschließlich von X betriebene Plattformen beschränkt, wird das Objekt video_info durch ein Objekt additional_media_info ersetzt. Das Objekt additional_media_info enthält zusätzliche vom Publisher bereitgestellte Medieninformationen, z. B. title, description und das embeddable-Flag. Videoinhalte sind nur für offizielle X‑Clients verfügbar, wenn embeddable=false ist. In diesem Fall sind alle im Payload bereitgestellten Video-URLs X-basiert, sodass die Nutzer das Video in einer von X betriebenen Eigenschaft öffnen können, indem sie auf den Link klicken. Hier ist ein Beispiel dafür, wie das Extended-Entities-Objekt in dieser Situation aussieht:
{
      "extended_entities": {
        "media": [
          {
            "id": 924685332347469824,
            "id_str": "924685332347469824",
            "indices": [
              49,
              72
            ],
            "media_url": "http://pbs.twimg.com/media/DNUkdLMVwAEzj8K.jpg",
            "media_url_https": "https://pbs.twimg.com/media/DNUkdLMVwAEzj8K.jpg",
            "url": "https://t.co/90xOJqKMox",
            "display_url": "pic.x.com/90xOJqKMox",
            "expanded_url": "https://x.com/nyjets/status/924685391524798464/video/1",
            "type": "photo",
            "sizes": {
              "small": {
                "w": 680,
                "h": 383,
                "resize": "fit"
              },
              "medium": {
                "w": 1200,
                "h": 675,
                "resize": "fit"
              },
              "large": {
                "w": 1280,
                "h": 720,
                "resize": "fit"
              },
              "thumb": {
                "w": 150,
                "h": 150,
                "resize": "crop"
              }
            },
            "additional_media_info": {
              "title": "#ATLvsNYJ: Tomlinson TD von McCown",
              "description": "NFL",
              "embeddable": false,
              "monetizable": true
            }
          }
        ]
      }
    }
Wie oben besprochen, hier der Abschnitt entities, in dem type fälschlicherweise auf „photo“ gesetzt ist. Der Abschnitt extended_entities ist für alle nativen Medientypen vorzuziehen, einschließlich „video“ und „animated_gif“.
    {
    "entities": {
        "hashtags": [

        ],
        "urls": [

        ],
        "user_mentions": [

        ],
        "symbols": [

        ],
        "media": [
          {
            "id": 869317980307415040,
            "id_str": "869317980307415040",
            "indices": [
              31,
              54
            ],
            "media_url": "http://pbs.twimg.com/ext_tw_video_thumb/869317980307415040/pu/img/t_E6wyADk_PvxuzF.jpg",
            "media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/869317980307415040/pu/img/t_E6wyADk_PvxuzF.jpg",
            "url": "https://t.co/TLSTTOvvmP",
            "display_url": "pic.x.com/TLSTTOvvmP",
            "expanded_url": "https://x.com/FloodSocial/status/869318041078820864/video/1",
            "type": "photo",
            "sizes": {
              "small": {
                "w": 340,
                "h": 604,
                "resize": "fit"
              },
              "large": {
                "w": 720,
                "h": 1280,
                "resize": "fit"
              },
              "thumb": {
                "w": 150,
                "h": 150,
                "resize": "crop"
              },
              "medium": {
                "w": 600,
                "h": 1067,
                "resize": "fit"
              }
            }
          }
        ]
      }

    }

Post mit einem animierten GIF

Unten finden Sie die erweiterten Extended-Entities‑Metadaten für diesen Post mit einem animierten GIF:
{
      "extended_entities": {
        "media": [
          {
            "id": 870042654213459968,
            "id_str": "870042654213459968",
            "indices": [
              29,
              52
            ],
            "media_url": "http://pbs.twimg.com/tweet_video_thumb/DBMDLy_U0AAqUWP.jpg",
            "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DBMDLy_U0AAqUWP.jpg",
            "url": "https://t.co/nD6G4bWSKb",
            "display_url": "pic.x.com/nD6G4bWSKb",
            "expanded_url": "https://x.com/FloodSocial/status/870042717589340160/photo/1",
            "type": "animated_gif",
            "sizes": {
              "medium": {
                "w": 350,
                "h": 262,
                "resize": "fit"
              },
              "small": {
                "w": 340,
                "h": 255,
                "resize": "fit"
              },
              "thumb": {
                "w": 150,
                "h": 150,
                "resize": "crop"
              },
              "large": {
                "w": 350,
                "h": 262,
                "resize": "fit"
              }
            },
            "video_info": {
              "aspect_ratio": [
                175,
                131
              ],
              "variants": [
                {
                  "bitrate": 0,
                  "content_type": "video/mp4",
                  "url": "https://video.twimg.com/tweet_video/DBMDLy_U0AAqUWP.mp4"
                }
              ]
            }
          }
        ]
      }
    }

Native Enriched-Beispielpayloads

Post

{
	"created_at": "Fri Sep 18 18:36:15 +0000 2020",
	"id": 1307025659294675000,
	"id_str": "1307025659294674945",
	"text": "Hier ist ein Artikel, der die Neuerungen in der neuen Tweet-Payload v2 beleuchtet https://t.co/oeF3ZHeKQQ",
	"source": "<a href=\"https://mobile.x.com\" rel=\"nofollow\">X Web App</a>",
	"truncated": false,
	"in_reply_to_status_id": 1304102743196356600,
	"in_reply_to_status_id_str": "1304102743196356610",
	"in_reply_to_user_id": 2244994945,
	"in_reply_to_user_id_str": "2244994945",
	"in_reply_to_screen_name": "XDevelopers",
	"user": {
		"id": 2244994945,
		"id_str": "2244994945",
		"name": "X Dev",
		"screen_name": "XDevelopers",
		"location": "127.0.0.1",
		"url": "https://developer.x.com/en/community",
		"description": "Die Stimme des #XDevelopers-Teams und Ihre offizielle Quelle für Updates, Neuigkeiten und Events rund um die #XAPI.",
		"translator_type": "regular",
		"protected": false,
		"verified": true,
		"followers_count": 512292,
		"friends_count": 2038,
		"listed_count": 1666,
		"favourites_count": 2147,
		"statuses_count": 3634,
		"created_at": "Sat Dec 14 04:35:55 +0000 2013",
		"utc_offset": null,
		"time_zone": null,
		"geo_enabled": true,
		"lang": null,
		"contributors_enabled": false,
		"is_translator": false,
		"profile_background_color": "FFFFFF",
		"profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
		"profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
		"profile_background_tile": false,
		"profile_link_color": "0084B4",
		"profile_sidebar_border_color": "FFFFFF",
		"profile_sidebar_fill_color": "DDEEF6",
		"profile_text_color": "333333",
		"profile_use_background_image": false,
		"profile_image_url": "http://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"profile_image_url_https": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"profile_banner_url": "https://pbs.twimg.com/profile_banners/2244994945/1594913664",
		"default_profile": false,
		"default_profile_image": false,
		"following": null,
		"follow_request_sent": null,
		"notifications": null
	},
	"geo": null,
	"coordinates": null,
	"place": null,
	"contributors": null,
	"is_quote_status": false,
	"quote_count": 1,
	"reply_count": 2,
	"retweet_count": 11,
	"favorite_count": 70,
	"entities": {
		"hashtags": [],
		"urls": [{
			"url": "https://t.co/oeF3ZHeKQQ",
			"expanded_url": "https://dev.to/twitterdev/understanding-the-new-tweet-payload-in-the-twitter-api-v2-1fg5",
			"display_url": "dev.to/twitterdev/und…",
			"unwound": {
				"url": "https://dev.to/twitterdev/understanding-the-new-tweet-payload-in-the-twitter-api-v2-1fg5",
				"status": 200,
				"title": "Die neue Tweet-Payload in der X API v2 verstehen",
				"description": "X hat kürzlich die neue X API v2 angekündigt, die von Grund auf neu entwickelt wurde, um neue Features bereitzustellen..."
			},
			"indices": [
				74,
				97
			]
		}],
		"user_mentions": [],
		"symbols": []
	},
	"favorited": false,
	"retweeted": false,
	"possibly_sensitive": false,
	"filter_level": "low",
	"lang": "en",
	"matching_rules": [{
		"tag": null
	}]
}

Antwort auf Post

{
	"created_at": "Fri Aug 21 19:10:05 +0000 2020",
	"id": 1296887316556980200,
	"id_str": "1296887316556980230",
	"text": "Sehen Sie, wie @PennMedCDH X-Daten nutzt, um die COVID-19-Gesundheitskrise zu verstehen 📊\n\nhttps://t.co/1tdA8uDWes",
	"source": "<a href=\"https://mobile.x.com\" rel=\"nofollow\">X Web App</a>",
	"truncated": false,
	"in_reply_to_status_id": 1296887091901718500,
	"in_reply_to_status_id_str": "1296887091901718529",
	"in_reply_to_user_id": 2244994945,
	"in_reply_to_user_id_str": "2244994945",
	"in_reply_to_screen_name": "XDevelopers",
	"user": {
		"id": 2244994945,
		"id_str": "2244994945",
		"name": "X Dev",
		"screen_name": "XDevelopers",
		"location": "127.0.0.1",
		"url": "https://developer.x.com/en/community",
		"description": "Die Stimme des #XDevelopers-Teams und Ihre offizielle Quelle für Updates, Nachrichten und Veranstaltungen rund um die #XAPI.",
		"translator_type": "regular",
		"protected": false,
		"verified": true,
		"followers_count": 512292,
		"friends_count": 2038,
		"listed_count": 1666,
		"favourites_count": 2147,
		"statuses_count": 3634,
		"created_at": "Sat Dec 14 04:35:55 +0000 2013",
		"utc_offset": null,
		"time_zone": null,
		"geo_enabled": true,
		"lang": null,
		"contributors_enabled": false,
		"is_translator": false,
		"profile_background_color": "FFFFFF",
		"profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
		"profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
		"profile_background_tile": false,
		"profile_link_color": "0084B4",
		"profile_sidebar_border_color": "FFFFFF",
		"profile_sidebar_fill_color": "DDEEF6",
		"profile_text_color": "333333",
		"profile_use_background_image": false,
		"profile_image_url": "http://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"profile_image_url_https": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"profile_banner_url": "https://pbs.twimg.com/profile_banners/2244994945/1594913664",
		"default_profile": false,
		"default_profile_image": false,
		"following": null,
		"follow_request_sent": null,
		"notifications": null
	},
	"geo": null,
	"coordinates": null,
	"place": null,
	"contributors": null,
	"is_quote_status": false,
	"quote_count": 2,
	"reply_count": 3,
	"retweet_count": 9,
	"favorite_count": 26,
	"entities": {
		"hashtags": [],
		"urls": [{
			"url": "https://t.co/1tdA8uDWes",
			"expanded_url": "https://developer.x.com/en/use-cases/success-stories/penn",
			"display_url": "developer.x.com/en/use-cases/s…",
			"unwound": {
				"url": "https://developer.x.com/en/use-cases/success-stories/penn",
				"status": 200,
				"title": "Penn Medicine Center for Digital Health",
				"description": "Das Penn Med Center for Digital Health hat eine COVID-19-X-Karte erstellt, die Diagramme mit Stimmungsanalysen, gemeldeten Symptomen, bundesstaatsspezifischen Datenauswertungen und Grenzdaten zum COVID-19-Ausbruch enthält. Darüber hinaus nutzt ihre Penn Med With You-Initiative aggregierte regionale Informationen von X, um ihre Website und ihren SMS-Service zu unterstützen. Der Service nutzt diese Informationen zur Verbreitung relevanter und aktueller Ressourcen."
			},
			"indices": [
				87,
				110
			]
		}],
		"user_mentions": [{
			"screen_name": "PennMedCDH",
			"name": "Penn Med CDH",
			"id": 1615654896,
			"id_str": "1615654896",
			"indices": [
				8,
				19
			]
		}],
		"symbols": []
	},
	"favorited": false,
	"retweeted": false,
	"possibly_sensitive": false,
	"filter_level": "low",
	"lang": "en",
	"matching_rules": [{
		"tag": null
	}]
}

Erweiterter Post

{
	"created_at": "Wed Aug 19 16:26:16 +0000 2020",
	"id": 1296121314218897400,
	"id_str": "1296121314218897408",
	"text": "Der Hide-Replies-endpoint wird heute eingeführt! \n\nEntwickler können Antworten auf Tweets ausblenden - ein wichtiger Weg, mit dem Entwickler… https://t.co/VyfXs1RTXn",
	"source": "<a href=\"https://mobile.x.com\" rel=\"nofollow\">X Web App</a>",
	"truncated": true,
	"in_reply_to_status_id": null,
	"in_reply_to_status_id_str": null,
	"in_reply_to_user_id": null,
	"in_reply_to_user_id_str": null,
	"in_reply_to_screen_name": null,
	"user": {
		"id": 2244994945,
		"id_str": "2244994945",
		"name": "X Dev",
		"screen_name": "XDevelopers",
		"location": "127.0.0.1",
		"url": "https://developer.x.com/en/community",
		"description": "Die Stimme des #XDevelopers-Teams und Ihre offizielle Quelle für Updates, Neuigkeiten und Veranstaltungen rund um die #XAPI.",
		"translator_type": "regular",
		"protected": false,
		"verified": true,
		"followers_count": 512292,
		"friends_count": 2038,
		"listed_count": 1666,
		"favourites_count": 2147,
		"statuses_count": 3634,
		"created_at": "Sat Dec 14 04:35:55 +0000 2013",
		"utc_offset": null,
		"time_zone": null,
		"geo_enabled": true,
		"lang": null,
		"contributors_enabled": false,
		"is_translator": false,
		"profile_background_color": "FFFFFF",
		"profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
		"profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
		"profile_background_tile": false,
		"profile_link_color": "0084B4",
		"profile_sidebar_border_color": "FFFFFF",
		"profile_sidebar_fill_color": "DDEEF6",
		"profile_text_color": "333333",
		"profile_use_background_image": false,
		"profile_image_url": "http://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"profile_image_url_https": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"profile_banner_url": "https://pbs.twimg.com/profile_banners/2244994945/1594913664",
		"default_profile": false,
		"default_profile_image": false,
		"following": null,
		"follow_request_sent": null,
		"notifications": null
	},
	"geo": null,
	"coordinates": null,
	"place": null,
	"contributors": null,
	"is_quote_status": false,
	"extended_tweet": {
		"full_text": "Der Hide-Replies-endpoint wird heute eingeführt! \n\nEntwickler können Antworten auf Tweets ausblenden - ein wichtiger Weg, mit dem Entwickler zur Verbesserung der Qualität öffentlicher Diskussionen über die #XAPI beitragen können.\n\nhttps://t.co/khXhTurm9x",
		"display_text_range": [
			0,
			215
		],
		"entities": {
			"hashtags": [{
				"text": "XAPI",
				"indices": [
					178,
					189
				]
			}],
			"urls": [{
				"url": "https://t.co/khXhTurm9x",
				"expanded_url": "https://devcommunity.x.com/t/hide-replies-now-available-in-the-new-twitter-api/140996",
				"display_url": "devcommunity.com/t/hide-replies…",
				"unwound": {
					"url": "https://devcommunity.x.com/t/hide-replies-now-available-in-the-new-twitter-api/140996",
					"status": 200,
					"title": "Hide-Replies jetzt in der neuen X API verfügbar",
					"description": "Heute freuen wir uns, die allgemeine Verfügbarkeit des Hide-Replies-endpoints in der neuen X API bekannt zu geben. Der Hide-Replies-endpoint ermöglicht es Ihnen, Tools zu erstellen, die Menschen dabei helfen, Antworten auf ihre Tweets auszublenden oder wieder einzublenden. Menschen verwalten ihre Antworten aus verschiedenen Gründen, unter anderem um weniger Aufmerksamkeit auf Kommentare zu lenken, die missbräuchlich, ablenkend oder irreführend sind, oder um Diskussionen ansprechender zu gestalten. Über diesen endpoint können Sie Tools erstellen, die Menschen auf X dabei helfen, Antworten schneller und effektiver..."
				},
				"indices": [
					192,
					215
				]
			}],
			"user_mentions": [],
			"symbols": []
		}
	},
	"quote_count": 23,
	"reply_count": 9,
	"retweet_count": 54,
	"favorite_count": 172,
	"entities": {
		"hashtags": [],
		"urls": [{
			"url": "https://t.co/VyfXs1RTXn",
			"expanded_url": "https://x.com/i/web/status/1296121314218897408",
			"display_url": "x.com/i/web/status/1…",
			"indices": [
				117,
				140
			]
		}],
		"user_mentions": [],
		"symbols": []
	},
	"favorited": false,
	"retweeted": false,
	"possibly_sensitive": false,
	"filter_level": "low",
	"lang": "en",
	"matching_rules": [{
		"tag": null
	}]
}

Post mit extended_entities

{
	"created_at": "Wed Aug 12 17:01:42 +0000 2020",
	"id": 1293593516040269800,
	"id_str": "1293593516040269825",
	"text": "Es ist endlich da! 🥁 Sagt hallo zur neuen #XAPI.\n\nWir bauen die X API v2 von Grund auf neu, um b… https://t.co/UeCndQGMjx",
	"display_text_range": [
		0,
		140
	],
	"source": "<a href=\"https://mobile.x.com\" rel=\"nofollow\">X Web App</a>",
	"truncated": true,
	"in_reply_to_status_id": null,
	"in_reply_to_status_id_str": null,
	"in_reply_to_user_id": null,
	"in_reply_to_user_id_str": null,
	"in_reply_to_screen_name": null,
	"user": {
		"id": 2244994945,
		"id_str": "2244994945",
	"name": "X Dev",
		"screen_name": "XDevelopers",
		"location": "127.0.0.1",
		"url": "https://developer.x.com/en/community",
	"description": "Die Stimme des #XDevelopers-Teams und Ihre offizielle Quelle für Updates, Neuigkeiten und Veranstaltungen rund um die #XAPI.",
		"translator_type": "regular",
		"protected": false,
		"verified": true,
		"followers_count": 512292,
		"friends_count": 2038,
		"listed_count": 1666,
		"favourites_count": 2147,
		"statuses_count": 3634,
		"created_at": "Sat Dec 14 04:35:55 +0000 2013",
		"utc_offset": null,
		"time_zone": null,
		"geo_enabled": true,
		"lang": null,
		"contributors_enabled": false,
		"is_translator": false,
		"profile_background_color": "FFFFFF",
		"profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
		"profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
		"profile_background_tile": false,
		"profile_link_color": "0084B4",
		"profile_sidebar_border_color": "FFFFFF",
		"profile_sidebar_fill_color": "DDEEF6",
		"profile_text_color": "333333",
		"profile_use_background_image": false,
		"profile_image_url": "http://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"profile_image_url_https": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"profile_banner_url": "https://pbs.twimg.com/profile_banners/2244994945/1594913664",
		"default_profile": false,
		"default_profile_image": false,
		"following": null,
		"follow_request_sent": null,
		"notifications": null
	},
	"geo": null,
	"coordinates": null,
	"place": null,
	"contributors": null,
	"is_quote_status": false,
	"extended_tweet": {
		"full_text": "Es ist endlich da! 🥁 Sagt hallo zur neuen #XAPI.\n\nWir bauen die X API v2 von Grund auf neu, um unsere Entwicklergemeinschaft besser zu unterstützen. Und der heutige Launch ist nur der Anfang.\n\nhttps://t.co/32VrwpGaJw https://t.co/KaFSbjWUA8",
		"display_text_range": [
			0,
			218
		],
		"entities": {
			"hashtags": [{
				"text": "XAPI",
				"indices": [
					42,
					53
				]
			}],
			"urls": [{
				"url": "https://t.co/32VrwpGaJw",
				"expanded_url": "https://blog.x.com/developer/en_us/topics/tools/2020/introducing_new_twitter_api.html",
				"display_url": "blog.x.com/developer/en_u…",
				"unwound": {
					"url": "https://blog.x.com/developer/en_us/topics/tools/2020/introducing_new_twitter_api.html",
					"status": 200,
					"title": "Einführung einer neuen und verbesserten X API",
					"description": "Einführung der neuen X API - von Grund auf neu entwickelt, um neue Features schneller bereitzustellen, damit Entwickler der Welt dabei helfen können, sich mit der öffentlichen Konversation auf X zu verbinden."
				},
				"indices": [
					195,
					218
				]
			}],
			"user_mentions": [],
			"symbols": [],
			"media": [{
				"id": 1293565706408038400,
				"id_str": "1293565706408038401",
				"indices": [
					219,
					242
				],
				"additional_media_info": {
					"monetizable": false
				},
				"media_url": "http://pbs.twimg.com/ext_tw_video_thumb/1293565706408038401/pu/img/66P2dvbU4a02jYbV.jpg",
				"media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/1293565706408038401/pu/img/66P2dvbU4a02jYbV.jpg",
				"url": "https://t.co/KaFSbjWUA8",
				"display_url": "pic.x.com/KaFSbjWUA8",
				"expanded_url": "https://x.com/XDevelopers/status/1293593516040269825/video/1",
				"type": "video",
				"video_info": {
					"aspect_ratio": [
						16,
						9
					],
					"duration_millis": 34875,
					"variants": [{
							"bitrate": 256000,
							"content_type": "video/mp4",
							"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/vid/480x270/Fg9lnGGsITO0uq2K.mp4?tag=10"
						},
						{
							"bitrate": 832000,
							"content_type": "video/mp4",
							"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/vid/640x360/-crbtZE4y8vKN_uF.mp4?tag=10"
						},
						{
							"content_type": "application/x-mpegURL",
							"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/pl/OvIqQojosF6sMIHR.m3u8?tag=10"
						},
						{
							"bitrate": 2176000,
							"content_type": "video/mp4",
							"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/vid/1280x720/xkxyb-VPVY4OI0j9.mp4?tag=10"
						}
					]
				},
				"sizes": {
					"thumb": {
						"w": 150,
						"h": 150,
						"resize": "crop"
					},
					"medium": {
						"w": 1200,
						"h": 675,
						"resize": "fit"
					},
					"small": {
						"w": 680,
						"h": 383,
						"resize": "fit"
					},
					"large": {
						"w": 1280,
						"h": 720,
						"resize": "fit"
					}
				}
			}]
		},
		"extended_entities": {
			"media": [{
				"id": 1293565706408038400,
				"id_str": "1293565706408038401",
				"indices": [
					219,
					242
				],
				"additional_media_info": {
					"monetizable": false
				},
				"media_url": "http://pbs.twimg.com/ext_tw_video_thumb/1293565706408038401/pu/img/66P2dvbU4a02jYbV.jpg",
				"media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/1293565706408038401/pu/img/66P2dvbU4a02jYbV.jpg",
				"url": "https://t.co/KaFSbjWUA8",
				"display_url": "pic.x.com/KaFSbjWUA8",
				"expanded_url": "https://x.com/XDevelopers/status/1293593516040269825/video/1",
				"type": "video",
				"video_info": {
					"aspect_ratio": [
						16,
						9
					],
					"duration_millis": 34875,
					"variants": [{
							"bitrate": 256000,
							"content_type": "video/mp4",
							"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/vid/480x270/Fg9lnGGsITO0uq2K.mp4?tag=10"
						},
						{
							"bitrate": 832000,
							"content_type": "video/mp4",
							"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/vid/640x360/-crbtZE4y8vKN_uF.mp4?tag=10"
						},
						{
							"content_type": "application/x-mpegURL",
							"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/pl/OvIqQojosF6sMIHR.m3u8?tag=10"
						},
						{
							"bitrate": 2176000,
							"content_type": "video/mp4",
							"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/vid/1280x720/xkxyb-VPVY4OI0j9.mp4?tag=10"
						}
					]
				},
				"sizes": {
					"thumb": {
						"w": 150,
						"h": 150,
						"resize": "crop"
					},
					"medium": {
						"w": 1200,
						"h": 675,
						"resize": "fit"
					},
					"small": {
						"w": 680,
						"h": 383,
						"resize": "fit"
					},
					"large": {
						"w": 1280,
						"h": 720,
						"resize": "fit"
					}
				}
			}]
		}
	},
	"quote_count": 332,
	"reply_count": 172,
	"retweet_count": 958,
	"favorite_count": 2844,
	"entities": {
		"hashtags": [{
			"text": "XAPI",
			"indices": [
				42,
				53
			]
		}],
		"urls": [{
			"url": "https://t.co/UeCndQGMjx",
			"expanded_url": "https://x.com/i/web/status/1293593516040269825",
			"display_url": "x.com/i/web/status/1…",
			"indices": [
				117,
				140
			]
		}],
		"user_mentions": [],
		"symbols": []
	},
	"favorited": false,
	"retweeted": false,
	"possibly_sensitive": false,
	"filter_level": "low",
	"lang": "en",
	"matching_rules": [{
		"tag": null
	}]
}

Retweet

{
	"created_at": "Tue Feb 18 19:33:59 +0000 2020",
	"id": 1229851574555508700,
	"id_str": "1229851574555508737",
	"text": "RT @suhemparack: Ich habe einen Alexa Skill für X mit APL entwickelt, mit dem man Tweets und Trends auf dem Echo Show anzeigen kann!\n\nSchaut es euch hier an…",
	"source": "<a href=\"https://mobile.x.com\" rel=\"nofollow\">X Web App</a>",
	"truncated": false,
	"in_reply_to_status_id": null,
	"in_reply_to_status_id_str": null,
	"in_reply_to_user_id": null,
	"in_reply_to_user_id_str": null,
	"in_reply_to_screen_name": null,
	"user": {
		"id": 2244994945,
		"id_str": "2244994945",
		"name": "X Dev",
		"screen_name": "X Developers",
		"location": "127.0.0.1",
		"url": "https://developer.x.com/en/community",
		"description": "Die Stimme des #XDevelopers-Teams und eure offizielle Quelle für Updates, Neuigkeiten und Events rund um die #XAPI.",
		"translator_type": "regular",
		"protected": false,
		"verified": true,
		"followers_count": 512292,
		"friends_count": 2038,
		"listed_count": 1666,
		"favourites_count": 2147,
		"statuses_count": 3634,
		"created_at": "Sat Dec 14 04:35:55 +0000 2013",
		"utc_offset": null,
		"time_zone": null,
		"geo_enabled": true,
		"lang": null,
		"contributors_enabled": false,
		"is_translator": false,
		"profile_background_color": "FFFFFF",
		"profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
		"profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
		"profile_background_tile": false,
		"profile_link_color": "0084B4",
		"profile_sidebar_border_color": "FFFFFF",
		"profile_sidebar_fill_color": "DDEEF6",
		"profile_text_color": "333333",
		"profile_use_background_image": false,
		"profile_image_url": "http://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"profile_image_url_https": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"profile_banner_url": "https://pbs.twimg.com/profile_banners/2244994945/1594913664",
		"default_profile": false,
		"default_profile_image": false,
		"following": null,
		"follow_request_sent": null,
		"notifications": null
	},
	"geo": null,
	"coordinates": null,
	"place": null,
	"contributors": null,
	"retweeted_status": {
		"created_at": "Tue Feb 18 19:01:58 +0000 2020",
		"id": 1229843515603144700,
		"id_str": "1229843515603144704",
		"text": "Ich habe einen Alexa Skill für X mit APL entwickelt, mit dem man Tweets und Trends auf dem Echo Show anzeigen kann!\n\nSchaut es euch an… https://t.co/RP9NgltX7i",
		"source": "<a href=\"https://mobile.x.com\" rel=\"nofollow\">X Web App</a>",
		"truncated": true,
		"in_reply_to_status_id": null,
		"in_reply_to_status_id_str": null,
		"in_reply_to_user_id": null,
		"in_reply_to_user_id_str": null,
		"in_reply_to_screen_name": null,
		"user": {
			"id": 857699969263964200,
			"id_str": "857699969263964161",
			"name": "Suhem Parack",
			"screen_name": "suhemparack",
			"location": "Seattle, WA",
			"url": "https://developer.x.com",
			"description": "Developer Relations für Academic Research @X. Sprecht mich gerne auf Forschung mit X-Daten an. Zuvor: Amazon Alexa. Meinungen sind meine eigenen",
			"translator_type": "none",
			"protected": false,
			"verified": false,
			"followers_count": 732,
			"friends_count": 501,
			"listed_count": 12,
			"favourites_count": 358,
			"statuses_count": 458,
			"created_at": "Thu Apr 27 20:56:22 +0000 2017",
			"utc_offset": null,
			"time_zone": null,
			"geo_enabled": false,
			"lang": null,
			"contributors_enabled": false,
			"is_translator": false,
			"profile_background_color": "F5F8FA",
			"profile_background_image_url": "",
			"profile_background_image_url_https": "",
			"profile_background_tile": false,
			"profile_link_color": "1DA1F2",
			"profile_sidebar_border_color": "C0DEED",
			"profile_sidebar_fill_color": "DDEEF6",
			"profile_text_color": "333333",
			"profile_use_background_image": true,
			"profile_image_url": "http://pbs.twimg.com/profile_images/1230703695051935747/TbQKe91L_normal.jpg",
			"profile_image_url_https": "https://pbs.twimg.com/profile_images/1230703695051935747/TbQKe91L_normal.jpg",
			"profile_banner_url": "https://pbs.twimg.com/profile_banners/857699969263964161/1593055939",
			"default_profile": true,
			"default_profile_image": false,
			"following": null,
			"follow_request_sent": null,
			"notifications": null
		},
		"geo": null,
		"coordinates": null,
		"place": null,
		"contributors": null,
		"is_quote_status": false,
		"extended_tweet": {
			"full_text": "Ich habe einen Alexa Skill für X mit APL entwickelt, mit dem man Tweets und Trends auf dem Echo Show anzeigen kann!\n\nSchaut es euch hier an 👇\n\nhttps://t.co/l5J8wq748G",
			"display_text_range": [
				0,
				150
			],
			"entities": {
				"hashtags": [],
				"urls": [{
					"url": "https://t.co/l5J8wq748G",
					"expanded_url": "https://dev.to/twitterdev/building-an-alexa-skill-for-twitter-using-alexa-presentation-language-1aj0",
					"display_url": "dev.to/twitterdev/bui…",
					"unwound": {
						"url": "https://dev.to/twitterdev/building-an-alexa-skill-for-twitter-using-alexa-presentation-language-1aj0",
						"status": 200,
						"title": null,
						"description": null
					},
					"indices": [
						127,
						150
					]
				}],
				"user_mentions": [],
				"symbols": []
			}
		},
		"quote_count": 6,
		"reply_count": 1,
		"retweet_count": 19,
		"favorite_count": 71,
		"entities": {
			"hashtags": [],
			"urls": [{
				"url": "https://t.co/RP9NgltX7i",
				"expanded_url": "https://x.com/i/web/status/1229843515603144704",
				"display_url": "x.com/i/web/status/1…",
				"indices": [
					116,
					139
				]
			}],
			"user_mentions": [],
			"symbols": []
		},
		"favorited": false,
		"retweeted": false,
		"possibly_sensitive": false,
		"filter_level": "low",
		"lang": "en"
	},
	"is_quote_status": false,
	"quote_count": 0,
	"reply_count": 0,
	"retweet_count": 0,
	"favorite_count": 0,
	"entities": {
		"hashtags": [],
		"urls": [],
		"user_mentions": [{
			"screen_name": "suhemparack",
			"name": "Suhem Parack",
			"id": 857699969263964200,
			"id_str": "857699969263964161",
			"indices": [
				3,
				15
			]
		}],
		"symbols": []
	},
	"favorited": false,
	"retweeted": false,
	"filter_level": "low",
	"lang": "en",
	"matching_rules": [{
		"tag": null
	}]
}

Zitieren-Tweet

{
	"created_at": "Mon Nov 16 18:09:36 +0000 2020",
	"id": 1328399838128468000,
	"id_str": "1328399838128467969",
	"text": "Wie geplant wurden die unten referenzierten Labs v2 endpoints nun eingestellt. Bitte lassen Sie uns in den Foren wissen, falls Sie h… https://t.co/ahQvTYaOcZ",
	"display_text_range": [
		0,
		140
	],
	"source": "<a href=\"https://mobile.x.com\" rel=\"nofollow\">X Web App</a>",
	"truncated": true,
	"in_reply_to_status_id": null,
	"in_reply_to_status_id_str": null,
	"in_reply_to_user_id": null,
	"in_reply_to_user_id_str": null,
	"in_reply_to_screen_name": null,
	"user": {
		"id": 2244994945,
		"id_str": "2244994945",
		"name": "X Dev",
		"screen_name": "XDevelopers",
		"location": "127.0.0.1",
		"url": "https://developer.x.com/en/community",
		"description": "Die Stimme des #XDevelopers-Teams und Ihre offizielle Quelle für Updates, Neuigkeiten und Veranstaltungen rund um die #XAPI.",
		"translator_type": "regular",
		"protected": false,
		"verified": true,
		"followers_count": 512292,
		"friends_count": 2038,
		"listed_count": 1666,
		"favourites_count": 2147,
		"statuses_count": 3634,
		"created_at": "Sat Dec 14 04:35:55 +0000 2013",
		"utc_offset": null,
		"time_zone": null,
		"geo_enabled": true,
		"lang": null,
		"contributors_enabled": false,
		"is_translator": false,
		"profile_background_color": "FFFFFF",
		"profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
		"profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
		"profile_background_tile": false,
		"profile_link_color": "0084B4",
		"profile_sidebar_border_color": "FFFFFF",
		"profile_sidebar_fill_color": "DDEEF6",
		"profile_text_color": "333333",
		"profile_use_background_image": false,
		"profile_image_url": "http://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"profile_image_url_https": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"profile_banner_url": "https://pbs.twimg.com/profile_banners/2244994945/1594913664",
		"default_profile": false,
		"default_profile_image": false,
		"following": null,
		"follow_request_sent": null,
		"notifications": null
	},
	"geo": null,
	"coordinates": null,
	"place": null,
	"contributors": null,
	"quoted_status_id": 1327011423252144000,
	"quoted_status_id_str": "1327011423252144128",
	"quoted_status": {
		"created_at": "Thu Nov 12 22:12:32 +0000 2020",
		"id": 1327011423252144000,
		"id_str": "1327011423252144128",
		"text": "👋 Freundliche Erinnerung, dass X Developer Labs v2 hide replies und recent search am nächsten Montag, Nove… https://t.co/EEWN2Q9aXh eingestellt werden",
		"source": "<a href=\"https://mobile.x.com\" rel=\"nofollow\">X Web App</a>",
		"truncated": true,
		"in_reply_to_status_id": null,
		"in_reply_to_status_id_str": null,
		"in_reply_to_user_id": null,
		"in_reply_to_user_id_str": null,
		"in_reply_to_screen_name": null,
		"user": {
			"id": 2244994945,
			"id_str": "2244994945",
			"name": "X Dev",
			"screen_name": "XDevelopers",
			"location": "127.0.0.1",
			"url": "https://developer.x.com/en/community",
			"description": "Die Stimme des #XDevelopers-Teams und Ihre offizielle Quelle für Updates, Neuigkeiten und Veranstaltungen rund um die #XAPI.",
			"translator_type": "regular",
			"protected": false,
			"verified": true,
			"followers_count": 512292,
			"friends_count": 2038,
			"listed_count": 1666,
			"favourites_count": 2147,
			"statuses_count": 3634,
			"created_at": "Sat Dec 14 04:35:55 +0000 2013",
			"utc_offset": null,
			"time_zone": null,
			"geo_enabled": true,
			"lang": null,
			"contributors_enabled": false,
			"is_translator": false,
			"profile_background_color": "FFFFFF",
			"profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
			"profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
			"profile_background_tile": false,
			"profile_link_color": "0084B4",
			"profile_sidebar_border_color": "FFFFFF",
			"profile_sidebar_fill_color": "DDEEF6",
			"profile_text_color": "333333",
			"profile_use_background_image": false,
			"profile_image_url": "http://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
			"profile_image_url_https": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
			"profile_banner_url": "https://pbs.twimg.com/profile_banners/2244994945/1594913664",
			"default_profile": false,
			"default_profile_image": false,
			"following": null,
			"follow_request_sent": null,
			"notifications": null
		},
		"geo": null,
		"coordinates": null,
		"place": null,
		"contributors": null,
		"is_quote_status": false,
		"extended_tweet": {
			"full_text": "👋 Freundliche Erinnerung, dass X Developer Labs v2 hide replies und recent search am nächsten Montag, 16. November, eingestellt werden! Wir empfehlen Ihnen, jetzt zu den neuen hide replies und recent search endpoints zu migrieren, die nun in der v2 #XAPI verfügbar sind. Details: https://t.co/r6z6CI7kEy",
			"display_text_range": [
				0,
				273
			],
			"entities": {
				"hashtags": [{
					"text": "XAPI",
					"indices": [
						228,
						239
					]
				}],
				"urls": [{
					"url": "https://t.co/r6z6CI7kEy",
					"expanded_url": "https://devcommunity.x.com/t/retiring-labs-v2-recent-search-and-hide-replies/145795",
					"display_url": "devcommunity.com/t/retiring-lab…",
					"unwound": {
						"url": "https://devcommunity.x.com/t/retiring-labs-v2-recent-search-and-hide-replies/145795",
						"status": 200,
						"title": "Einstellung von Labs v2 recent search und hide replies",
						"description": "Wie wir in unseren Early Access- und hide replies-Ankündigungen mitgeteilt haben, werden die folgenden X Developer Labs v2 endpoints am 16. November eingestellt. Labs v2 recent search Labs v2 hide replies Bei Aufruf werden diese endpoints mit einem HTTP 410-Status antworten und keine Daten zurückgeben. Basierend auf Ihrem Feedback aus Labs haben wir entsprechende Funktionalität in die X API v2 integriert. Die relevante Dokumentation finden Sie über die unten stehenden Links. Klicken Sie hier, um sich für v2-Zugang zu registrieren, falls Sie dies noch nicht getan haben..."
					},
					"indices": [
						250,
						273
					]
				}],
				"user_mentions": [],
				"symbols": []
			}
		},
		"quote_count": 4,
		"reply_count": 2,
		"retweet_count": 8,
		"favorite_count": 33,
		"entities": {
			"hashtags": [],
			"urls": [{
				"url": "https://t.co/EEWN2Q9aXh",
				"expanded_url": "https://x.com/i/web/status/1327011423252144128",
				"display_url": "x.com/i/web/status/1…",
				"indices": [
					117,
					140
				]
			}],
			"user_mentions": [],
			"symbols": []
		},
		"favorited": false,
		"retweeted": false,
		"possibly_sensitive": false,
		"filter_level": "low",
		"lang": "en"
	},
	"quoted_status_permalink": {
		"url": "https://t.co/JaxttUMmjX",
		"expanded": "https://x.com/XDevelopers/status/1327011423252144128",
		"display": "x.com/XDevelopers/sta…"
	},
	"is_quote_status": true,
	"extended_tweet": {
		"full_text": "Wie geplant wurden die unten referenzierten Labs v2 Endpoints nun eingestellt. Bitte lassen Sie uns in den Foren wissen, falls Sie Fragen haben oder Hilfe mit der X API v2 benötigen! https://t.co/JaxttUMmjX",
		"display_text_range": [
			0,
			166
		],
		"entities": {
			"hashtags": [],
			"urls": [{
				"url": "https://t.co/JaxttUMmjX",
				"expanded_url": "https://x.com/XDevelopers/status/1327011423252144128",
				"display_url": "x.com/XDevelopers/sta…",
				"indices": [
					167,
					190
				]
			}],
			"user_mentions": [],
			"symbols": []
		}
	},
	"quote_count": 1,
	"reply_count": 4,
	"retweet_count": 7,
	"favorite_count": 29,
	"entities": {
		"hashtags": [],
		"urls": [{
			"url": "https://t.co/ahQvTYaOcZ",
			"expanded_url": "https://x.com/i/web/status/1328399838128467969",
			"display_url": "x.com/i/web/status/1…",
			"indices": [
				117,
				140
			]
		}],
		"user_mentions": [],
		"symbols": []
	},
	"favorited": false,
	"retweeted": false,
	"possibly_sensitive": false,
	"filter_level": "low",
	"lang": "en",
	"matching_rules": [{
		"tag": null
	}]
}

Retweeteter Zitier-Tweet

{
 	"created_at": "Thu Feb 06 17:26:44 +0000 2020",
 	"id": 1225470895902412800,
 	"id_str": "1225470895902412800",
 	"text": "RT @AureliaSpecker: 📣 Falls Ihnen das London-Pendler-Tutorial gefallen hat, das ich im November letzten Jahres geschrieben habe, schauen Sie sich die überarbeitete Version an, die…",
 	"source": "<a href=\"http://x.com/download/iphone\" rel=\"nofollow\">X für iPhone</a>",
 	"truncated": false,
 	"in_reply_to_status_id": null,
 	"in_reply_to_status_id_str": null,
 	"in_reply_to_user_id": null,
 	"in_reply_to_user_id_str": null,
 	"in_reply_to_screen_name": null,
 	"user": {
 		"id": 2244994945,
 		"id_str": "2244994945",
 		"name": "X Dev",
 		"screen_name": "XDevelopers",
 		"location": "127.0.0.1",
 		"url": "https://developer.x.com/en/community",
 		"description": "Die Stimme des #XDevelopers-Teams und Ihre offizielle Quelle für Updates, Neuigkeiten und Veranstaltungen rund um die #XAPI.",
 		"translator_type": "regular",
 		"protected": false,
 		"verified": true,
 		"followers_count": 512292,
 		"friends_count": 2038,
 		"listed_count": 1666,
 		"favourites_count": 2147,
 		"statuses_count": 3634,
 		"created_at": "Sat Dec 14 04:35:55 +0000 2013",
 		"utc_offset": null,
 		"time_zone": null,
 		"geo_enabled": true,
 		"lang": null,
 		"contributors_enabled": false,
 		"is_translator": false,
 		"profile_background_color": "FFFFFF",
 		"profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
 		"profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
 		"profile_background_tile": false,
 		"profile_link_color": "0084B4",
 		"profile_sidebar_border_color": "FFFFFF",
 		"profile_sidebar_fill_color": "DDEEF6",
 		"profile_text_color": "333333",
 		"profile_use_background_image": false,
 		"profile_image_url": "http://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
 		"profile_image_url_https": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
 		"profile_banner_url": "https://pbs.twimg.com/profile_banners/2244994945/1594913664",
 		"default_profile": false,
 		"default_profile_image": false,
 		"following": null,
 		"follow_request_sent": null,
 		"notifications": null
 	},
 	"geo": null,
 	"coordinates": null,
 	"place": null,
 	"contributors": null,
 	"retweeted_status": {
 		"created_at": "Tue Feb 04 15:01:25 +0000 2020",
 		"id": 1224709550214873000,
 		"id_str": "1224709550214873090",
 		"text": "📣 Falls Ihnen das London-Pendler-Tutorial gefallen hat, das ich im November letzten Jahres geschrieben habe, schauen Sie sich die überarbeitete Version an, die… https://t.co/cAepHunkFp",
 		"display_text_range": [
 			0,
 			140
 		],
 		"source": "<a href=\"https://mobile.x.com\" rel=\"nofollow\">X Web App</a>",
 		"truncated": true,
 		"in_reply_to_status_id": null,
 		"in_reply_to_status_id_str": null,
 		"in_reply_to_user_id": null,
 		"in_reply_to_user_id_str": null,
 		"in_reply_to_screen_name": null,
 		"user": {
 			"id": 1102321381,
 			"id_str": "1102321381",
 			"name": "Aurelia Specker",
 			"screen_name": "AureliaSpecker",
 			"location": "London, UK",
 			"url": null,
 			"description": "devrel @TwitterUK • Schweizerin in London • Zimmerpflanzen-Mama • persönliche Friseurin von @_dormrod",
 			"translator_type": "none",
 			"protected": false,
 			"verified": false,
 			"followers_count": 1032,
 			"friends_count": 1331,
 			"listed_count": 26,
 			"favourites_count": 4979,
 			"statuses_count": 854,
 			"created_at": "Fri Jan 18 23:45:43 +0000 2013",
 			"utc_offset": null,
 			"time_zone": null,
 			"geo_enabled": true,
 			"lang": null,
 			"contributors_enabled": false,
 			"is_translator": false,
 			"profile_background_color": "8B542B",
 			"profile_background_image_url": "http://abs.twimg.com/images/themes/theme8/bg.gif",
 			"profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme8/bg.gif",
 			"profile_background_tile": false,
 			"profile_link_color": "5E341C",
 			"profile_sidebar_border_color": "D9B17E",
 			"profile_sidebar_fill_color": "EADEAA",
 			"profile_text_color": "333333",
 			"profile_use_background_image": true,
 			"profile_image_url": "http://pbs.twimg.com/profile_images/1137517534104772608/8FBYgc6G_normal.jpg",
 			"profile_image_url_https": "https://pbs.twimg.com/profile_images/1137517534104772608/8FBYgc6G_normal.jpg",
 			"profile_banner_url": "https://pbs.twimg.com/profile_banners/1102321381/1587552672",
 			"default_profile": false,
 			"default_profile_image": false,
 			"following": null,
 			"follow_request_sent": null,
 			"notifications": null
 		},
 		"geo": null,
 		"coordinates": null,
 		"place": null,
 		"contributors": null,
 		"quoted_status_id": 1195000047089389600,
 		"quoted_status_id_str": "1195000047089389573",
 		"quoted_status": {
 			"created_at": "Thu Nov 14 15:26:27 +0000 2019",
 			"id": 1195000047089389600,
 			"id_str": "1195000047089389573",
 			"text": "Ich habe ein Tutorial geschrieben, wie man individuelle Pendelinformationen mit der X API abruft🚇\n\n#DEVcommunity #Pythontutorial… https://t.co/pL0qJ4vhtE",
 			"source": "<a href=\"https://mobile.x.com\" rel=\"nofollow\">X Web App</a>",
 			"truncated": true,
 			"in_reply_to_status_id": null,
 			"in_reply_to_status_id_str": null,
 			"in_reply_to_user_id": null,
 			"in_reply_to_user_id_str": null,
 			"in_reply_to_screen_name": null,
 			"user": {
 				"id": 1102321381,
 				"id_str": "1102321381",
 				"name": "Aurelia Specker",
 				"screen_name": "AureliaSpecker",
 				"location": "London, UK",
 				"url": null,
 				"description": "devrel @TwitterUK • Schweizerin in London • Zimmerpflanzen-Mama • persönliche Friseurin von @_dormrod",
 				"translator_type": "none",
 				"protected": false,
 				"verified": false,
 				"followers_count": 1032,
 				"friends_count": 1331,
 				"listed_count": 26,
 				"favourites_count": 4979,
 				"statuses_count": 854,
 				"created_at": "Fri Jan 18 23:45:43 +0000 2013",
 				"utc_offset": null,
 				"time_zone": null,
 				"geo_enabled": true,
 				"lang": null,
 				"contributors_enabled": false,
 				"is_translator": false,
 				"profile_background_color": "8B542B",
 				"profile_background_image_url": "http://abs.twimg.com/images/themes/theme8/bg.gif",
 				"profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme8/bg.gif",
 				"profile_background_tile": false,
 				"profile_link_color": "5E341C",
 				"profile_sidebar_border_color": "D9B17E",
 				"profile_sidebar_fill_color": "EADEAA",
 				"profile_text_color": "333333",
 				"profile_use_background_image": true,
 				"profile_image_url": "http://pbs.twimg.com/profile_images/1137517534104772608/8FBYgc6G_normal.jpg",
 				"profile_image_url_https": "https://pbs.twimg.com/profile_images/1137517534104772608/8FBYgc6G_normal.jpg",
 				"profile_banner_url": "https://pbs.twimg.com/profile_banners/1102321381/1587552672",
 				"default_profile": false,
 				"default_profile_image": false,
 				"following": null,
 				"follow_request_sent": null,
 				"notifications": null
 			},
 			"geo": null,
 			"coordinates": null,
 			"place": null,
 			"contributors": null,
 			"is_quote_status": false,
 			"extended_tweet": {
 				"full_text": "Ich habe ein Tutorial darüber geschrieben, wie man individuelle Pendlerinformationen mit der X API erhält🚇\n\n#DEVcommunity #Pythontutorial \n\nSchaut es euch hier an 👇\nhttps://t.co/sOjXW4YhbN",
 				"display_text_range": [
 					0,
 					160
 				],
 				"entities": {
 					"hashtags": [{
 							"text": "DEVcommunity",
 							"indices": [
 								85,
 								98
 							]
 						},
 						{
 							"text": "Pythontutorial",
 							"indices": [
 								99,
 								114
 							]
 						}
 					],
 					"urls": [{
 						"url": "https://t.co/sOjXW4YhbN",
 						"expanded_url": "https://dev.to/twitterdev/using-the-twitter-api-to-make-your-commute-easier-3od0",
 						"display_url": "dev.to/twitterdev/usi…",
 						"unwound": {
 							"url": "https://dev.to/twitterdev/using-the-twitter-api-to-make-your-commute-easier-3od0",
 							"status": 200,
 							"title": null,
 							"description": null
 						},
 						"indices": [
 							137,
 							160
 						]
 					}],
 					"user_mentions": [],
 					"symbols": []
 				}
 			},
 			"quote_count": 4,
 			"reply_count": 5,
 			"retweet_count": 31,
 			"favorite_count": 123,
 			"entities": {
 				"hashtags": [{
 						"text": "DEVcommunity",
 						"indices": [
 							85,
 							98
 						]
 					},
 					{
 						"text": "Pythontutorial",
 						"indices": [
 							99,
 							114
 						]
 					}
 				],
 				"urls": [{
 					"url": "https://t.co/pL0qJ4vhtE",
 					"expanded_url": "https://x.com/i/web/status/1195000047089389573",
 					"display_url": "x.com/i/web/status/1…",
 					"indices": [
 						116,
 						139
 					]
 				}],
 				"user_mentions": [],
 				"symbols": []
 			},
 			"favorited": false,
 			"retweeted": false,
 			"possibly_sensitive": false,
 			"filter_level": "low",
 			"lang": "en"
 		},
 		"quoted_status_permalink": {
 			"url": "https://t.co/dXrJYvn3hY",
 			"expanded": "https://x.com/AureliaSpecker/status/1195000047089389573",
 			"display": "x.com/AureliaSpecker…"
 		},
 		"is_quote_status": true,
 		"extended_tweet": {
 			"full_text": "📣 Falls euch das London-Pendler-Tutorial gefallen hat, das ich im November letzten Jahres geschrieben habe, schaut euch die überarbeitete Version an, die X's neuen Such-Endpoint verwendet 🚇 https://t.co/87XIPZmZBJ\n\n#DEVcommunity #Pythontutorial @XDev @XAPI https://t.co/dXrJYvn3hY",
 			"display_text_range": [
 				0,
 				229
 			],
 			"entities": {
 				"hashtags": [{
 						"text": "DEVcommunity",
 						"indices": [
 							176,
 							189
 						]
 					},
 					{
 						"text": "Pythontutorial",
 						"indices": [
 							190,
 							205
 						]
 					}
 				],
 				"urls": [{
 						"url": "https://t.co/87XIPZmZBJ",
 						"expanded_url": "https://bit.ly/2OrnrCC",
 						"display_url": "bit.ly/2OrnrCC",
 						"unwound": {
 							"url": "https://dev.to/twitterdev/migrate-to-twitter-s-newly-released-labs-recent-search-endpoint-3npe",
 							"status": 200,
 							"title": null,
 							"description": null
 						},
 						"indices": [
 							151,
 							174
 						]
 					},
 					{
 						"url": "https://t.co/dXrJYvn3hY",
 						"expanded_url": "https://x.com/AureliaSpecker/status/1195000047089389573",
 						"display_url": "x.com/AureliaSpecker…",
 						"indices": [
 							230,
 							253
 						]
 					}
 				],
 				"user_mentions": [{
 						"screen_name": "XDev",
 						"name": "X Dev",
 						"id": 2244994945,
 						"id_str": "2244994945",
 						"indices": [
 							206,
 							217
 						]
 					},
 					{
 						"screen_name": "XAPI",
 						"name": "X API",
 						"id": 6253282,
 						"id_str": "6253282",
 						"indices": [
 							218,
 							229
 						]
 					}
 				],
 				"symbols": []
 			}
 		},
 		"quote_count": 2,
 		"reply_count": 0,
 		"retweet_count": 12,
 		"favorite_count": 43,
 		"entities": {
 			"hashtags": [],
 			"urls": [{
 				"url": "https://t.co/cAepHunkFp",
 				"expanded_url": "https://x.com/i/web/status/1224709550214873090",
 				"display_url": "x.com/i/web/status/1…",
 				"indices": [
 					117,
 					140
 				]
 			}],
 			"user_mentions": [],
 			"symbols": []
 		},
 		"favorited": false,
 		"retweeted": false,
 		"possibly_sensitive": false,
 		"filter_level": "low",
 		"lang": "en"
 	},
 	"quoted_status_id": 1195000047089389600,
 	"quoted_status_id_str": "1195000047089389573",
 	"quoted_status": {
 		"created_at": "Thu Nov 14 15:26:27 +0000 2019",
 		"id": 1195000047089389600,
 		"id_str": "1195000047089389573",
 		"text": "Ich habe ein Tutorial darüber geschrieben, wie man individuelle Pendlerinformationen mit der X API erhält🚇\n\n#DEVcommunity #Pythontutorial… https://t.co/pL0qJ4vhtE",
 		"source": "<a href=\"https://mobile.x.com\" rel=\"nofollow\">X Web App</a>",
 		"truncated": true,
 		"in_reply_to_status_id": null,
 		"in_reply_to_status_id_str": null,
 		"in_reply_to_user_id": null,
 		"in_reply_to_user_id_str": null,
 		"in_reply_to_screen_name": null,
 		"user": {
 			"id": 1102321381,
 			"id_str": "1102321381",
 			"name": "Aurelia Specker",
 			"screen_name": "AureliaSpecker",
 			"location": "London, UK",
 			"url": null,
 			"description": "devrel @TwitterUK • Schweizerin in London • Mutter von Zimmerpflanzen • persönliche Friseurin für @_dormrod",
 			"translator_type": "none",
 			"protected": false,
 			"verified": false,
 			"followers_count": 1032,
 			"friends_count": 1331,
 			"listed_count": 26,
 			"favourites_count": 4979,
 			"statuses_count": 854,
 			"created_at": "Fri Jan 18 23:45:43 +0000 2013",
 			"utc_offset": null,
 			"time_zone": null,
 			"geo_enabled": true,
 			"lang": null,
 			"contributors_enabled": false,
 			"is_translator": false,
 			"profile_background_color": "8B542B",
 			"profile_background_image_url": "http://abs.twimg.com/images/themes/theme8/bg.gif",
 			"profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme8/bg.gif",
 			"profile_background_tile": false,
 			"profile_link_color": "5E341C",
 			"profile_sidebar_border_color": "D9B17E",
 			"profile_sidebar_fill_color": "EADEAA",
 			"profile_text_color": "333333",
 			"profile_use_background_image": true,
 			"profile_image_url": "http://pbs.twimg.com/profile_images/1137517534104772608/8FBYgc6G_normal.jpg",
 			"profile_image_url_https": "https://pbs.twimg.com/profile_images/1137517534104772608/8FBYgc6G_normal.jpg",
 			"profile_banner_url": "https://pbs.twimg.com/profile_banners/1102321381/1587552672",
 			"default_profile": false,
 			"default_profile_image": false,
 			"following": null,
 			"follow_request_sent": null,
 			"notifications": null
 		},
 		"geo": null,
 		"coordinates": null,
 		"place": null,
 		"contributors": null,
 		"is_quote_status": false,
 		"extended_tweet": {
			"full_text": "Ich habe ein Tutorial darüber geschrieben, wie man individuelle Pendlerinformationen mit der X API erhält🚇\n\n#DEVcommunity #Pythontutorial \n\nSchaut es euch hier an 👇\nhttps://t.co/sOjXW4YhbN",
 			"display_text_range": [
 				0,
 				160
 			],
 			"entities": {
 				"hashtags": [{
 						"text": "DEVcommunity",
 						"indices": [
 							85,
 							98
 						]
 					},
 					{
 						"text": "Pythontutorial",
 						"indices": [
 							99,
 							114
 						]
 					}
 				],
 				"urls": [{
 					"url": "https://t.co/sOjXW4YhbN",
 					"expanded_url": "https://dev.to/twitterdev/using-the-twitter-api-to-make-your-commute-easier-3od0",
 					"display_url": "dev.to/twitterdev/usi…",
 					"unwound": {
 						"url": "https://dev.to/twitterdev/using-the-twitter-api-to-make-your-commute-easier-3od0",
 						"status": 200,
 						"title": null,
 						"description": null
 					},
 					"indices": [
 						137,
 						160
 					]
 				}],
 				"user_mentions": [],
 				"symbols": []
 			}
 		},
 		"quote_count": 4,
 		"reply_count": 5,
 		"retweet_count": 31,
 		"favorite_count": 123,
 		"entities": {
 			"hashtags": [{
 					"text": "DEVcommunity",
 					"indices": [
 						85,
 						98
 					]
 				},
 				{
 					"text": "Pythontutorial",
 					"indices": [
 						99,
 						114
 					]
 				}
 			],
 			"urls": [{
 				"url": "https://t.co/pL0qJ4vhtE",
 				"expanded_url": "https://x.com/i/web/status/1195000047089389573",
 				"display_url": "x.com/i/web/status/1…",
 				"indices": [
 					116,
 					139
 				]
 			}],
 			"user_mentions": [],
 			"symbols": []
 		},
 		"favorited": false,
 		"retweeted": false,
 		"possibly_sensitive": false,
 		"filter_level": "low",
 		"lang": "en"
 	},
 	"quoted_status_permalink": {
 		"url": "https://t.co/dXrJYvn3hY",
 		"expanded": "https://x.com/AureliaSpecker/status/1195000047089389573",
 		"display": "x.com/AureliaSpecker…"
 	},
 	"is_quote_status": true,
 	"quote_count": 0,
 	"reply_count": 0,
 	"retweet_count": 0,
 	"favorite_count": 0,
 	"entities": {
 		"hashtags": [],
 		"urls": [],
 		"user_mentions": [{
 			"screen_name": "AureliaSpecker",
 			"name": "Aurelia Specker",
 			"id": 1102321381,
 			"id_str": "1102321381",
 			"indices": [
 				3,
 				18
 			]
 		}],
 		"symbols": []
 	},
 	"favorited": false,
 	"retweeted": false,
 	"filter_level": "low",
 	"lang": "en",
 	"matching_rules": [{
 		"tag": null
 	}]
 }

Enterprise Activity Streams-Datenobjekte

Möchten Sie mehr darüber erfahren, wie das Activity-Streams-Datenformat auf das X API v2-Format abgebildet wird?
Sehen Sie sich unseren Vergleichsleitfaden an: Activity Streams im Vergleich zur X API v2
Bitte beachten: Für Enterprise-Daten-APIs wird dringend empfohlen, das Format Enriched Native zu verwenden. 
  • Das Enriched-Native-Format umfasst alle seit 2017 hinzugekommenen Metadaten, etwa poll metadata, sowie zusätzliche metrics wie reply_count und quote_count.
  • Das Activity-Streams-Format wurde seit dem Zeichen-Update im Jahr 2017 nicht mehr um neue Metadaten oder Enrichments erweitert.

Aktivitätsobjekt

Activity Streams ist eine Übersetzung des Objektschemas von X’ ursprünglichem Datenformat, erstellt von Gnip, um das Format von Post-Daten und anderen Social-Media-Daten mithilfe des Drittanbieter-Activity Base Schema (hier beschrieben) zu normalisieren. Posts werden in das Activity-Streams-Schema überführt, einschließlich der Objekttypen note, person, place und service als geschachtelte Objekte. Posts können weitere geschachtelte Post-Aktivitätsobjekte für Retweets oder andere enthalten, darunter twitter_quoted_status und long_object. Der Basisobjekttyp „activity“ ähnelt dem Post-Basisobjekt des nativen angereicherten Formats. Beispiel-Payloads im Activity-Streams-Format finden Sie hier.

Datenwörterbuch

Unten finden Sie das Datenwörterbuch für diese „root-level“-Attribute von „activity“ sowie Links zu Datenwörterbüchern der untergeordneten Objekte.
AttributTypBeschreibung
idstringEine eindeutige IRI für den Post. Im Detail ist „tag” das Schema, „search.x.com” repräsentiert die Domain für das Schema, und 2005 ist das Jahr, in dem das Schema abgeleitet wurde.
Beim Speichern von Posts sollte dies als eindeutiger Identifikator oder Primärschlüssel verwendet werden.
„id”: „tag:search.x.com,2005:1050118621198921728”
objectTypestringTyp des Objekts, immer auf „activity” gesetzt
„objectType”: „activity”
objectobjectEin Objekt, das den Post repräsentiert, der gepostet oder geteilt wird.
Für Retweets enthält dies eine vollständige „activity” mit den relevanten Feldern, die in diesem Schema beschrieben sind.
Für ursprüngliche Posts enthält dies ein „note”-Objekt mit den hier beschriebenen Feldern.
„object”:
„object”:
„objectType”: „note”,
„id”: „object:search.x.com,2005:1050118621198921728”,
„summary”: „To make room for more expression, we will now count all emojis as equal—including those with gender‍‍‍ ‍‍and skin t… https://t.co/MkGjXf9aXm”,
„link”: „http://x.com/API/statuses/1050118621198921728”,
„postedTime”: „2018-10-10T20:19:24.000Z”
long_objectobjectEin Objekt, das den vollständigen Textinhalt repräsentiert, wenn der Post-Text über 140 Zeichen hinausgeht.


„long_object”:
„body”: „To make room for more expression, we will now count all emojis as equal—including those with gender‍‍‍ ‍‍and skin tone modifiers 👍🏻👍🏽👍🏿. This is now reflected in Twitter-Text, our Open Source library. \n\nUsing Twitter-Text? See the forum post for detail: https://t.co/Nx1XZmRCXA”,
„display_text_range”: [
0,
277
],
„twitter_entities”:
„hashtags”: [],
„urls”: [

„url”: „https://t.co/Nx1XZmRCXA”,
„expanded_url”: „https://devcommunity.x.com/t/new-update-to-the-twitter-text-library-emoji-character-count/114607”,
„display_url”: „devcommunity.com/t/new-update-t…”,
„indices”: [
254,
277
]

],
„user_mentions”: [],
„symbols”: []

display_text_rangearrayWird verwendet, wenn der Post-Text über 140 Zeichen hinausgeht.


„display_text_range”: [
0,
142
]
verbstringDer Typ der Aktion, die vom Benutzer ausgeführt wird.
Posts: „post”
Retweets: „share”
Gelöschte Posts: „delete”
Das Verb ist die korrekte Methode, um zwischen einem Tweet und einem echten Retweet zu unterscheiden. Dies gilt jedoch nur für echte Retweets und nicht für modifizierte oder zitierte Tweets, die nicht die X Retweet-Funktionalität verwenden. Für eine Beschreibung der AS-Verben
klicken Sie hier.
Bei Löschungen beachten Sie, dass nur eine begrenzte Anzahl von Feldern enthalten ist, wie im Beispiel-Payload unten gezeigt.
„verb”: „post”
postedTimedate (ISO 8601)Die Zeit, zu der die Aktion stattfand, z. B. die Zeit, zu der der Post gepostet wurde.


„postedTime”: „2018-10-10T20:19:24.000Z”
generatorobjectEin Objekt, das das Dienstprogramm repräsentiert, das zum Posten des Posts verwendet wurde. Dies enthält den Namen („displayName”) und einen Link („link”) für die Quellanwendung, die den Post generiert.
„generator”:
„displayName”: „X Web Client”,
„link”: „http://x.com
providerobjectEin JSON-Objekt, das den Anbieter der Aktivität repräsentiert. Dies enthält einen objectType („service”), den Namen des Anbieters („displayName”) und einen Link zur Website des Anbieters („link”).
„provider”:

„objectType”: „service”,
„displayName”: „X”,
„link”: „http://www.x.com
linkstringEin Permalink für den Post.
„link”: „http://x.com/API/statuses/1050118621198921728
bodystringDer Post-Text.

Bei Retweets beachten Sie, dass X den Wert des body auf der Root-Ebene modifiziert, indem „RT @username” am Anfang hinzugefügt und der ursprüngliche Text gekürzt und am Ende mit Auslassungspunkten versehen wird. Daher sollte Ihre App bei Retweets den object.body betrachten, um sicherzustellen, dass sie den unmodifizierten Text des ursprünglichen Posts (der retweetet wird) extrahiert.
„body”: „With Cardiff, Crystal Palace, and Hull City joining the EPL from the Championship it will be a great relegation battle at the end.”
display_text_rangearrayBeschreibt den Bereich der Zeichen innerhalb des body-Texts, der den angezeigten Post angibt. Posts mit führenden @-Erwähnungen beginnen bei mehr als 0 und Posts mit angehängten Medien oder die über 140 Zeichen hinausgehen, zeigen die display_text_range im long_object an.

„display_text_range”: [
14,
42
]
oder
„long_object”:
„display_text_range”: [
0,
277
]…
actorobjectEin Objekt, das den X-Benutzer repräsentiert, der gepostet hat. Das Actor-Objekt bezieht sich auf einen X-Benutzer und enthält alle Metadaten, die für diesen Benutzer relevant sind.
Siehe
Details zum Actor-Objekt
inReplyToobjectEin JSON-Objekt, das sich auf den Post bezieht, auf den geantwortet wird, falls zutreffend. Enthält einen Link zum Post.
„inReplyTo”:

„link”: „http://x.com/GOP/statuses/349573991561838593
locationobjectEin JSON-Objekt, das den X „Place” repräsentiert, wo der Post erstellt wurde. Dies ist ein Objekt, das von der X-Plattform weitergegeben wird.

Siehe
Location-Objekt
twitter_entitiesobjectDas entities-Objekt aus X’s Datenformat, das Listen von URLs, Erwähnungen und Hashtags enthält. Bitte beziehen Sie sich auf die X-Dokumentation zu Entities hier. Beachten Sie, dass X bei Retweets die Werte von entities, die auf der Root-Ebene extrahiert werden, möglicherweise kürzt. Daher sollte Ihre App bei Retweets object.twitter_entities betrachten, um sicherzustellen, dass Sie ungekürzte Werte verwenden.

Siehe Details zum twitter_entities-Objekt
twitter_extended_entitiesobjectEin Objekt aus X’s nativem Datenformat, das „media” enthält. Dies ist für jeden Post vorhanden, bei dem das twitter_entities-Objekt Daten im „media”-Feld enthält, und schließt mehrere Fotos ein, falls im Post vorhanden. Beachten Sie, dass dies der korrekte Ort ist, um Medieninformationen für Posts mit mehreren Fotos abzurufen.

Mehrere Fotos werden durch kommagetrennte JSON-Objekte innerhalb des „media”-Arrays dargestellt.

Siehe Details zum twitter_extended_entities-Objekt
gnipobjectEin Objekt, das zur Activity-Payload hinzugefügt wird, um die übereinstimmenden Regeln anzuzeigen und angereicherte Daten basierend auf aktiven Anreicherungen im Stream oder Produkt hinzuzufügen.

Siehe Details zum gnip-Objekt
edit_historyObjectEindeutige Kennungen, die alle Versionen eines Posts anzeigen. Für Posts ohne Bearbeitungen gibt es eine ID. Für Posts mit Bearbeitungsverlauf gibt es mehrere IDs, die in aufsteigender Reihenfolge angeordnet sind und die Reihenfolge der Bearbeitungen widerspiegeln, wobei die neueste Version an der letzten Position des Arrays steht.

Die Post-IDs können verwendet werden, um frühere Versionen eines Posts abzurufen und anzuzeigen.

Beispiel:

edit_history”:
“initial_tweet_id”: “1283764123”
“edit_tweet_ids”: [“1283764123”, “1394263866”]
edit_controlsObjectWenn vorhanden, zeigt an, wie lange ein Post noch bearbeitbar ist und die Anzahl der verbleibenden Bearbeitungen. Posts sind nur in den ersten 30 Minuten nach der Erstellung bearbeitbar und können bis zu fünfmal bearbeitet werden.

Die Post-IDs können verwendet werden, um frühere Versionen eines Posts abzurufen und anzuzeigen.

Beispiel:

“edit_controls”:
“editable_until_ms”: 123
“edits_remaining”: 3
editableBooleanWenn vorhanden, zeigt an, ob ein Post bei der Veröffentlichung zur Bearbeitung berechtigt war. Dieses Feld ist nicht dynamisch und wechselt nicht von True zu False, wenn ein Post sein bearbeitbares Zeitlimit oder die maximale Anzahl von Bearbeitungen erreicht. Die folgenden Post-Features führen dazu, dass dieses Feld false ist:

_ Post ist beworben
_ Post hat eine Umfrage
_ Post ist eine Nicht-Selbst-Thread-Antwort
_ Post ist ein Retweet (beachten Sie, dass Quote Tweets zur Bearbeitung berechtigt sind)
_ Post ist nullcast
_ Community-Post
_ Superfollow-Post
_ Kollaborativer Post

Zusätzliche Post-Attribute

AttributtypeBeschreibung
twitter_langstring
favoritesCountintNullable. Gibt ungefähr an, wie oft dieser Post von X Nutzern mit like markiert wurde.

“favoritesCount”:298
retweetCountintAnzahl der Retweets dieses Posts. Beispiel:

“retweetCount”:153

Veraltete Attribute

FeldtypeBeschreibung
geoobjectPunktgenauer Standort, an dem der Post erstellt wurde.
twitter_filter_levelstringVeraltetes Feld, beibehalten, um keine Breaking Changes zu verursachen

Verschachtelte Post-Aktivitätsobjekte

In mehreren Fällen enthält ein Post-Objekt weitere verschachtelte Posts. Wenn Sie mit verschachtelten Objekten arbeiten, enthält diese JSON-Nutzlast mehrere Objekte, und jedes Post-Objekt kann eigene Objekte enthalten. Das Objekt auf Root-Ebene enthält Informationen über die Art der ausgeführten Aktion, d. h. ob es sich um einen Retweet oder einen Quote Tweet handelt, und kann auch ein Objekt enthalten, das den „originalen“ geteilten Post beschreibt. Erweiterte Posts enthalten ein verschachteltes, erweitertes Objekt, das über 140 Zeichen hinausgeht; dies wurde verwendet, um Breaking Changes zu vermeiden, als die Aktualisierung 2017 vorgenommen wurde. Jedes verschachtelte Objektdictionary wird unten beschrieben. Retweets Das Activity-Streams-Format von Retweets enthält ein verschachteltes Objekt mit dem type “activity” und dem verb “note”, um den ursprünglichen Post darzustellen, der retweetet wird.
{
	"id": "tag:search.x.com,2005:222222222222",
	"objectType": "activity",
	"verb": "share",
	"body": "RT @TheOriginalTweeter: Kaffee und Kunst ☕️",
	"actor": {
		"displayName": "TheRetweeter"
	},
	"object": {
		"id": "tag:search.x.com,2005:11111111111",
		"objectType": "activity",
		"verb": "post",
		"body": "Kaffee und Kunst ☕️",
		"actor": {
			"displayName": "TheOriginalTweeter"
		},
		"object": {
			"objectType": "note",
			"id": "object:search.x.com,2005:11111111111",
			"summary": "Kaffee und Kunst ☕️",
			"link": "http://x.com/originaltweeter/statuses/11111111111",
			"postedTime": "2020-12-04T11:00:01.000Z"
		},
		"twitter_entities": {},
		"twitter_extended_entities": {}
	},
	"twitter_entities": {},
	"twitter_extended_entities": {},
	"gnip": {}
}
Zitierter X-Status Das Activity-Streams-Format bettet zitierte Tweets ein { "id": "tag:search.x.com,2005:222222222222", "objectType": "activity", "verb": "post", "body": "Quoting a Tweet: https://t.co/mxiFJ59FlB", "actor": { "displayName": "TheQuoter2" }, "object": { "objectType": "note", "id": "object:search.x.com,2005:111111111", "summary": "https://t.co/mxiFJ59FlB" }, "twitter_entities": {}, "twitter_extended_entities": {}, "gnip": {}, "twitter_quoted_status": { "id": "tag:search.x.com,2005:111111111", "objectType": "activity", "verb": "post", "body": "console.log('Happy birthday, JavaScript!');", "actor": { "displayName": "TheOriginalTweeter" }, "object": { "objectType": "note", "id": "object:search.x.com,2005:111111111" }, "twitter_entities": {} } } Retweeteter zitierter Tweet:
    {
    	"id": "tag:search.x.com,2005:1293612267087384577",
    	"objectType": "activity",
    	"verb": "share",
    	"postedTime": "2020-08-12T18:16:13.000Z",
    	"generator": {},
    	"provider": {},
    	"link": "http://x.com/XDevelopers/statuses/1293612267087384577",
    	"body": "RT @compston: So aufgeregt, diese ersten endpoints verfügbar zu machen - viele weitere werden folgen, bevor wir fertig sind. Das @XDevelopers #DevRel Team…",
    	"actor": {},
    	"object": {},
    	"favoritesCount": 0,
    	"twitter_entities": {},
    	"twitter_lang": "en",
    	"retweetCount": 13,
    	"gnip": {},
    	"twitter_filter_level": "low",
    	"twitter_quoted_status": {}
    }

Long-Objekt

Activity-Streams-Format von extended_tweet
{
  "id": "tag:search.x.com,2005:1050118621198921728",
  "objectType": "activity",
  "verb": "post",
  "postedTime": "2018-10-10T20:19:24.000Z",
  "generator": {
    "displayName": "X Web Client",
    "link": "http://x.com"
  },
  "provider": {
    "objectType": "service",
    "displayName": "X",
    "link": "http://www.x.com"
  },
  "link": "http://x.com/API/statuses/1050118621198921728",
  "body": "Um mehr Ausdrucksmöglichkeiten zu schaffen, zählen wir ab sofort alle Emojis gleich—einschließlich derer mit Geschlecht‍‍‍ ‍‍und Haut… https://t.co/MkGjXf9aXm",
  "long_object": {
    "body": "Um mehr Ausdrucksmöglichkeiten zu schaffen, zählen wir ab sofort alle Emojis gleich—einschließlich derer mit Geschlecht‍‍‍ ‍‍und Hautton-Modifikatoren 👍🏻👍🏽👍🏿. Dies ist nun in Twitter-Text, unserer Open-Source-Bibliothek, umgesetzt. \n\nNutzen Sie Twitter-Text? Details finden Sie im Forumsbeitrag: https://t.co/Nx1XZmRCXA",
    "display_text_range": [
      0,
      277
    ],
    "twitter_entities": {siehe twitter_entities-Objekt},
  "actor": {siehe actor-Objekt},
  "object": {
    "objectType": "note",
    "id": "object:search.x.com,2005:1050118621198921728",
    "summary": "Um mehr Ausdrucksmöglichkeiten zu schaffen, zählen wir ab sofort alle Emojis gleich—einschließlich derer mit Geschlecht‍‍‍ ‍‍und Haut… https://t.co/MkGjXf9aXm",
    "link": "http://x.com/API/statuses/1050118621198921728",
    "postedTime": "2018-10-10T20:19:24.000Z"
  },
  "favoritesCount": 298,
  "twitter_entities": {siehe twitter_entities-Objekt},
  "twitter_lang": "en",
  "retweetCount": 153,
  "gnip": {siehe gnip-Objekt},
  "twitter_filter_level": "low"
}

Actor-Objekt

Das Actor-Objekt enthält Metadaten zum X-Nutzerkonto, die den X-Nutzer beschreiben, der die Aktivität erstellt hat.

Datenwörterbuch

AttributTypBeschreibung
objectTypestring”objectType”: “person”
idstringDie Zeichenkettendarstellung des eindeutigen Bezeichners für diesen Autor. Beispiel:

“id:x.com:2244994945”
linkhttp://www.x.com/XDeveloeprs
displayNamestringDer vom Nutzer festgelegte Name. Nicht zwingend der Name einer Person. In der Regel auf 50 Zeichen begrenzt, kann sich jedoch ändern. Beispiel:

“displayName”: “XDevelopers”
preferredUsernamestringDer Bildschirmname, das Handle oder der Alias, mit dem sich dieser Nutzer identifiziert. Einzigartig, kann sich jedoch ändern. Verwenden Sie nach Möglichkeit id als Nutzerbezeichner. Typischerweise maximal 15 Zeichen lang, aber einige historische Konten können längere Namen haben. Beispiel:

“preferredUsername”: “XDevelopers”
locationobject**        “location”:

“objectType”:** “place”,

“displayName”: “127.0.0.1”

**        }**
linksarrayNullable. Eine vom Nutzer im Zusammenhang mit seinem Profil angegebene URL. Beispiel:

**       “links”: [

          {

“href”:** “https://developer.x.com/en/community,

“rel”: “me”

**          }

        ]**
summarystringNullable. Die vom Nutzer definierte UTF-8-Zeichenkette, die sein Konto beschreibt. Beispiel:

“summary”: “The voice of the #XDevelopers team…“
protectedBooleanWenn true, zeigt an, dass dieser Nutzer seine Posts geschützt hat. Siehe About Public and Protected Posts. Beispiel:

“protected”: true
verifiedBooleanWenn true, zeigt an, dass der Nutzer ein verifiziertes Konto hat. Siehe Verified Accounts. Beispiel:

“verified”: false
followersCountIntDie Anzahl der Follower, die dieses Konto derzeit hat. Unter bestimmten Belastungsbedingungen zeigt dieses Feld vorübergehend „0“ an. Beispiel:

“followers_count”: 21
friendsCountIntDie Anzahl der Nutzer, denen dieses Konto folgt (auch „Followings“). Unter bestimmten Belastungsbedingungen zeigt dieses Feld vorübergehend „0“ an. Beispiel:

“friends_count”: 32
listedCountIntDie Anzahl der öffentlichen Lists, in denen dieser Nutzer Mitglied ist. Beispiel:

“listed_count”: 9274
favoritesCountIntDie Anzahl der Posts, die dieser Nutzer im Verlauf des Kontos geliked hat. Britische Schreibweise im Feldnamen aus historischen Gründen. Beispiel:

“favourites_count”: 13
statusesCountIntDie Anzahl der Posts (einschließlich Retweets), die vom Nutzer veröffentlicht wurden. Beispiel:

“statuses_count”: 42
postedTimedateDas UTC-Datum/-Uhrzeit, zu dem das Nutzerkonto auf X erstellt wurde. Beispiel:

“postedTime”: “2013-12-14T04:35:55.036Z”
imagestringEine HTTPS-basierte URL, die auf das Profilbild des Nutzers verweist. Beispiel:

“image”:https://pbs.twimg.com/profile&#95;images/1283786620521652229/lEODkLTh&#95;normal.jpg

Nicht mehr unterstützte (deprecated) Attribute

FeldTypBeschreibung
utcOffsetnullWert wird auf null gesetzt. Weiterhin verfügbar über GET account/settings
twitterTimeZonenullWert wird auf null gesetzt. Weiterhin verfügbar über GET account/settings als tzinfo_name
languagesnullWert wird auf null gesetzt. Weiterhin verfügbar über GET account/settings als language

Beispiele:

			"actor": {
        "objectType": "person",
        "id": "id:twitter.com:2244994945",
        "link": "http://www.x.com/XDevelopers",
        "displayName": "X Dev",
        "postedTime": "2013-12-14T04:35:55.036Z",
        "image": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "summary": "Die Stimme des #XDevelopers-Teams und Ihre offizielle Quelle für Updates, News und Events rund um die #XAPI.",
        "friendsCount": 2039,
        "followersCount": 512197,
        "listedCount": 1662,
        "statusesCount": 3632,
        "twitterTimeZone": null,
        "verified": true,
        "utcOffset": null,
        "preferredUsername": "XDevelopers",
        "languages": [],
        "links": [
          {
            "href": "https://developer.x.com/en/community",
            "rel": "me"
          }
        ],
        "location": {
          "objectType": "place",
          "displayName": "127.0.0.1"
        },
        "favoritesCount": 2147
      }
"actor": {
    "objectType": "person",
    "id": "id:twitter.com:6253282",
    "link": "http://www.x.com/API",
    "displayName": "X API",
    "postedTime": "2007-05-23T06:01:13.000Z",
    "image": "https://pbs.twimg.com/profile_images/942858479592554497/BbazLO9L_normal.jpg",
    "summary": "Tweets über Änderungen und Serviceprobleme. Folgen Sie @XDevelopers für weitere Informationen.",
    "friendsCount": 39,
    "followersCount": 6054164,
    "listedCount": 12285,
    "statusesCount": 3689,
    "twitterTimeZone": null,
    "verified": true,
    "utcOffset": null,
    "preferredUsername": "API",
    "languages": [

    ],
    "links": [
      {
        "href": "https://developer.x.com",
        "rel": "me"
      }
    ],
    "favoritesCount": 4
  }

Standortobjekt

Standortobjekte können entweder innerhalb des actor-Objekts auf Kontenebene von X oder innerhalb des profileLocations-Objekts des gnip-Objekts existieren. Standortobjekte besitzen den Objekttyp place und können einen Namen, eine Adresse oder Geokoordinaten enthalten. Standortobjekte ähneln Geo im nativen angereicherten Format.

Datenwörterbuch für Standortdaten

FeldTypBeschreibung
objectTypestringWeitere Details finden Sie hier. Beispiel:

“objectType”: “place”
displayNamestringDer vollständige Name des Standorts.

“displayName”: “United States”
namestringName des Standorts aus dem Place-JSON-Format von X.
linkstringEin Link zur vollständigen JSON-Repräsentation des Ortes auf X.

“link”:https://api.x.com/1.1/geo/id/27c45d804c777999.json
geoobjectDas Geokoordinaten-Objekt von X, entweder ein Polygon oder ein Punkt.

Siehe geo
countryCodeStringAbgekürzter Ländercode des Landes, in dem sich dieser Ort befindet. Beispiel:

“countryCode”: “US”
countryStringName des Landes, in dem sich dieser Ort befindet. Beispiel:

“country”: “United States”

aus profileLocations abgeleitete Objekte

FeldTypBeschreibung
addressobjectBestandteil des profileLocation location-Objekts innerhalb des gnip object. Adresse des Standorts, abgeleitet durch die profile geo enrichment. Der Detaillierungsgrad kann variieren.

“address”: {

**          “country”: “United States”,

          “countryCode”: “US”,

          “locality”: “Providence”,

          “region”: “Rhode Island”,

          “subRegion”: “Providence County”

        }**
geoobjectBestandteil des profileLocation location-Objekts innerhalb des gnip object. Schwerpunktkoordinaten des Standorts, abgeleitet durch die profile geo enrichment.

”geo”: {

**          “coordinates”: [

-98.5
,

39.76

          ],

          “type”: “point”

        }**
Beispiele
	"location": {
    "objectType": "place",
    "displayName": "Kansas, USA",
    "name": "Kansas",
    "country_code": "United States",
    "twitter_country_code": "US",
    "twitter_place_type": "admin",
    "link": "https://api.x.com/1.1/geo/id/27c45d804c777999.json",
    "geo": {
      "type": "Polygon",
      "coordinates": [
        [
          [
            -102.051769,
            36.99311
          ],
          [
            -102.051769,
            40.003282
          ],
          [
            -94.588081,
            40.003282
          ],
          [
            -94.588081,
            36.99311
          ]
        ]
      ]
    }
    "location": {
      "objectType": "place",
      "displayName": "Kalifornien, USA"
    }

X-Entities-Objekt

Für das Activity-Streams-Format hat das Feld twitter_entities dieselbe Struktur und dasselbe Datenwörterbuch wie im nativen angereicherten Format; siehe das Entities-Objekt hier.

Beispiel:

"twitter_entities": {
	"hashtags": [{
		"text": "API",
		"indices": [
			228,
			239
		]
	}],
	"urls": [{
		"url": "https://t.co/r6z6CI7kEy",
		"expanded_url": "https://devcommunity.x.com/t/retiring-labs-v2-recent-search-and-hide-replies/145795",
		"display_url": "devcommunity.com/t/retiring-lab…",
		"indices": [
			250,
			273
		]
	}],
	"user_mentions": [],
	"symbols": []
}

X Extended-Entities-Objekt

Für das Activity-Streams-Format hat twitter_extended_entities dasselbe Format und dasselbe Datenwörterbuch wie im nativen, angereicherten Format, siehe Extended-Entities-Objekt hier.

Beispiel:

"twitter_extended_entities":{
	"media": [{
		"id": 1293565706408038400,
		"id_str": "1293565706408038401",
		"indices": [
			219,
			242
		],
		"additional_media_info": {
			"monetizable": false
		},
		"media_url": "http://pbs.twimg.com/ext_tw_video_thumb/1293565706408038401/pu/img/66P2dvbU4a02jYbV.jpg",
		"media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/1293565706408038401/pu/img/66P2dvbU4a02jYbV.jpg",
		"url": "https://t.co/KaFSbjWUA8",
		"display_url": "pic.x.com/KaFSbjWUA8",
		"expanded_url": "https://x.com/XDevelopers/status/1293593516040269825/video/1",
		"type": "video",
		"video_info": {
			"aspect_ratio": [
				16,
				9
			],
			"duration_millis": 34875,
			"variants": [{
					"bitrate": 256000,
					"content_type": "video/mp4",
					"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/vid/480x270/Fg9lnGGsITO0uq2K.mp4?tag=10"
				},
				{
					"bitrate": 832000,
					"content_type": "video/mp4",
					"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/vid/640x360/-crbtZE4y8vKN_uF.mp4?tag=10"
				},
				{
					"content_type": "application/x-mpegURL",
					"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/pl/OvIqQojosF6sMIHR.m3u8?tag=10"
				},
				{
					"bitrate": 2176000,
					"content_type": "video/mp4",
					"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/vid/1280x720/xkxyb-VPVY4OI0j9.mp4?tag=10"
				}
			]
		},
		"sizes": {
			"thumb": {
				"w": 150,
				"h": 150,
				"resize": "crop"
			},
			"medium": {
				"w": 1200,
				"h": 675,
				"resize": "fit"
			},
			"small": {
				"w": 680,
				"h": 383,
				"resize": "fit"
			},
			"large": {
				"w": 1280,
				"h": 720,
				"resize": "fit"
			}
		}
	}]
}

Gnip-Objekt

Das gnip-Objekt im Activity-Streams-Format enthält die durch die aktiven Enrichments hinzugefügten metadata sowie Hinweise auf die übereinstimmenden Regeln für die Aktivität.

Datenwörterbuch

FeldTypBeschreibung
matching_rulesarrayEnthält ein Array von passenden Regelobjekten, die angeben, mit welcher Regel die Aktivität übereinstimmt.
“matching_rules”: [

**      {

        “tag”: null,

“id”:** 1026514022567358500**,

“id_str”:** “1026514022567358464”

**      }

    ]**
urlsarrayEnthält ein Array der in der Aktivität enthaltenen Links sowie erweiterte URL-Metadaten für die URL-Unwinding-Anreicherung.

**    “urls”: [

      {

“url”:** “https://t.co/tGQqNxxyhU,

“expanded_url”:https://www.youtube.com/channel/UCwUxW2CV2p5mzjMBqvqLzJA,

“expanded_status”: 200**,

“expanded_url_title”:** “Birdys Daughter”,

“expanded_url_description”: “Premium, single-origin, handpicked Jamaica Blue Mountain Coffee”

**      }

    ]**
profileLocationsarray of location objectsEnthält das abgeleitete Standortobjekt aus der Profile-Geo-Anreicherung.

**    “profileLocations”: [

      {

        “address”: {

“country”:** “Canada”,

“countryCode”: “CA”,

“locality”: “Toronto”,

“region”: “Ontario”

**        },

“displayName”:** “Toronto, Ontario, Canada”,

**        “geo”: {

          “coordinates”: [

-79.4163
,

43.70011

          ],

“type”:** “point”

**        },

“objectType”:** “place”

**      }

    ]

  }**

Beispiel:

	"gnip": {
    "matching_rules": [
      {
        "tag": null
      }
    ],
    "urls": [
      {
        "url": "https://t.co/Nx1XZmRCXA",
        "expanded_url": "https://devcommunity.x.com/t/new-update-to-the-twitter-text-library-emoji-character-count/114607",
        "expanded_status": 200,
        "expanded_url_title": null,
        "expanded_url_description": null
      }
    ]
  }

Beispiele für Payloads von Aktivitätsstreams

Post-Aktivität
{
	"id": "tag:search.x.com,2005:1307025659294674945",
	"objectType": "activity",
	"verb": "post",
	"postedTime": "2020-09-18T18:36:15.000Z",
	"generator": {
		"displayName": "X Web App",
		"link": "https://mobile.x.com"
	},
	"provider": {
		"objectType": "service",
		"displayName": "X",
		"link": "http://www.x.com"
	},
	"link": "http://x.com/XDevelopers/statuses/1307025659294674945",
	"body": "Hier ist ein Artikel, der die Aktualisierungen in der neuen Tweet-Payload v2 beleuchtet https://t.co/oeF3ZHeKQQ",
	"actor": {
		"objectType": "person",
		"id": "id:twitter.com:2244994945",
		"link": "http://www.x.com/XDevelopers",
		"displayName": "X Dev",
		"postedTime": "2013-12-14T04:35:55.036Z",
		"image": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"summary": "Die Stimme des #XDevelopers-Teams und Ihre offizielle Quelle für Updates, Neuigkeiten und Events rund um die #XAPI.",
		"friendsCount": 2038,
		"followersCount": 512292,
		"listedCount": 1666,
		"statusesCount": 3634,
		"twitterTimeZone": null,
		"verified": true,
		"utcOffset": null,
		"preferredUsername": "XDevelopers",
		"languages": [],
		"links": [{
			"href": "https://developer.x.com/en/community",
			"rel": "me"
		}],
		"location": {
			"objectType": "place",
			"displayName": "127.0.0.1"
		},
		"favoritesCount": 2147
	},
	"object": {
		"objectType": "note",
		"id": "object:search.x.com,2005:1307025659294674945",
		"summary": "Hier ist ein Artikel, der die Aktualisierungen in der neuen Tweet-Payload v2 beleuchtet https://t.co/oeF3ZHeKQQ",
		"link": "http://x.com/XDevelopers/statuses/1307025659294674945",
		"postedTime": "2020-09-18T18:36:15.000Z"
	},
	"inReplyTo": {
		"link": "http://x.com/XDevelopers/statuses/1304102743196356610"
	},
	"favoritesCount": 70,
	"twitter_entities": {
		"hashtags": [],
		"urls": [{
			"url": "https://t.co/oeF3ZHeKQQ",
			"expanded_url": "https://dev.to/twitterdev/understanding-the-new-tweet-payload-in-the-twitter-api-v2-1fg5",
			"display_url": "dev.to/twitterdev/und…",
			"indices": [
				74,
				97
			]
		}],
		"user_mentions": [],
		"symbols": []
	},
	"twitter_lang": "en",
	"retweetCount": 11,
	"gnip": {
		"matching_rules": [{
			"tag": null
		}],
		"urls": [{
			"url": "https://t.co/oeF3ZHeKQQ",
			"expanded_url": "https://dev.to/twitterdev/understanding-the-new-tweet-payload-in-the-twitter-api-v2-1fg5",
			"expanded_status": 200,
			"expanded_url_title": "Die neue Tweet-Payload in der X API v2 verstehen",
			"expanded_url_description": "X hat kürzlich die neue X API v2 angekündigt, die von Grund auf neu entwickelt wurde, um neue Features zu bieten..."
		}]
	},
	"twitter_filter_level": "low"
}
Aktivität zu Antwort-Posts
{
	"id": "tag:search.x.com,2005:1296887316556980230",
	"objectType": "activity",
	"verb": "post",
	"postedTime": "2020-08-21T19:10:05.000Z",
	"generator": {
		"displayName": "X Web App",
		"link": "https://mobile.x.com"
	},
	"provider": {
		"objectType": "service",
		"displayName": "X",
		"link": "http://www.x.com"
	},
	"link": "http://x.com/XDevelopers/statuses/1296887316556980230",
	"body": "Sehen Sie, wie @PennMedCDH X-Daten verwendet, um die COVID-19-Gesundheitskrise zu verstehen 📊\n\nhttps://t.co/1tdA8uDWes",
	"actor": {
		"objectType": "person",
		"id": "id:twitter.com:2244994945",
		"link": "http://www.x.com/XDevelopers",
		"displayName": "X Dev",
		"postedTime": "2013-12-14T04:35:55.036Z",
		"image": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"summary": "Die Stimme des #XDevelopers-Teams und Ihre offizielle Quelle für Updates, Neuigkeiten und Veranstaltungen rund um die #API.",
		"friendsCount": 2038,
		"followersCount": 512292,
		"listedCount": 1666,
		"statusesCount": 3634,
		"twitterTimeZone": null,
		"verified": true,
		"utcOffset": null,
		"preferredUsername": "XDevelopers",
		"languages": [],
		"links": [{
			"href": "https://developer.x.com/en/community",
			"rel": "me"
		}],
		"location": {
			"objectType": "place",
			"displayName": "127.0.0.1"
		},
		"favoritesCount": 2147
	},
	"object": {
		"objectType": "note",
		"id": "object:search.x.com,2005:1296887316556980230",
		"summary": "Sehen Sie, wie @PennMedCDH X-Daten verwendet, um die COVID-19-Gesundheitskrise zu verstehen 📊\n\nhttps://t.co/1tdA8uDWes",
		"link": "http://x.com/XDevelopers/statuses/1296887316556980230",
		"postedTime": "2020-08-21T19:10:05.000Z"
	},
	"inReplyTo": {
		"link": "http://x.com/XDevelopers/statuses/1296887091901718529"
	},
	"favoritesCount": 26,
	"twitter_entities": {
		"hashtags": [],
		"urls": [{
			"url": "https://t.co/1tdA8uDWes",
			"expanded_url": "https://developer.x.com/en/use-cases/success-stories/penn",
			"display_url": "developer.x.com/en/use-cases/s…",
			"indices": [
				87,
				110
			]
		}],
		"user_mentions": [{
			"screen_name": "PennMedCDH",
			"name": "Penn Med CDH",
			"id": 1615654896,
			"id_str": "1615654896",
			"indices": [
				8,
				19
			]
		}],
		"symbols": []
	},
	"twitter_lang": "en",
	"retweetCount": 9,
	"gnip": {
		"matching_rules": [{
			"tag": null
		}],
		"urls": [{
			"url": "https://t.co/1tdA8uDWes",
			"expanded_url": "https://developer.x.com/en/use-cases/success-stories/penn",
			"expanded_status": 200,
			"expanded_url_title": "Penn Medicine Center for Digital Health",
			"expanded_url_description": "Das Penn Med Center for Digital Health hat eine COVID-19 X-Karte erstellt, die Diagramme mit Stimmungsanalysen, gemeldeten Symptomen, bundesstaatsspezifischen Datenaufschlüsselungen und Grenzdaten zum COVID-19-Ausbruch enthält. Darüber hinaus nutzt ihre Penn Med With You-Initiative aggregierte regionale Informationen von X, um ihre Website und ihren SMS-Service zu informieren. Der Service nutzt diese Informationen zur Verbreitung relevanter und aktueller Ressourcen."
		}]
	},
	"twitter_filter_level": "low"
}
Post-Aktivität mit long_object
{
	"id": "tag:search.x.com,2005:1296121314218897408",
	"objectType": "activity",
	"verb": "post",
	"postedTime": "2020-08-19T16:26:16.000Z",
	"generator": {
		"displayName": "X Web App",
		"link": "https://mobile.x.com"
	},
	"provider": {
		"objectType": "service",
		"displayName": "X",
		"link": "http://www.x.com"
	},
	"link": "http://x.com/XDevelopers/statuses/1296121314218897408",
	"body": "Der Hide-Replies-Endpoint wird heute eingeführt! \n\nEntwickler können Antworten auf Tweets ausblenden – ein wichtiger Weg für Entwickler… https://t.co/VyfXs1RTXn",
	"long_object": {
		"body": "Der Hide-Replies-Endpoint wird heute eingeführt! \n\nEntwickler können Antworten auf Tweets ausblenden – ein wichtiger Weg für Entwickler, die Qualität der öffentlichen Konversation mit der #XAPI zu verbessern.\n\nhttps://t.co/khXhTurm9x",
		"display_text_range": [
			0,
			215
		],
		"twitter_entities": {
			"hashtags": [{
				"text": "API",
				"indices": [
					178,
					189
				]
			}],
			"urls": [{
				"url": "https://t.co/khXhTurm9x",
				"expanded_url": "https://devcommunity.x.com/t/hide-replies-now-available-in-the-new-twitter-api/140996",
				"display_url": "devcommunity.com/t/hide-replies…",
				"indices": [
					192,
					215
				]
			}],
			"user_mentions": [],
			"symbols": []
		}
	},
	"actor": {
		"objectType": "person",
		"id": "id:twitter.com:2244994945",
		"link": "http://www.x.com/XDevelopers",
		"displayName": "X Dev",
		"postedTime": "2013-12-14T04:35:55.036Z",
		"image": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"summary": "Die Stimme des #XDevelopers-Teams und Ihre offizielle Quelle für Updates, Neuigkeiten und Veranstaltungen rund um die #XAPI.",
		"friendsCount": 2038,
		"followersCount": 512292,
		"listedCount": 1666,
		"statusesCount": 3634,
		"twitterTimeZone": null,
		"verified": true,
		"utcOffset": null,
		"preferredUsername": "XDevelopers",
		"languages": [],
		"links": [{
			"href": "https://developer.x.com/en/community",
			"rel": "me"
		}],
		"location": {
			"objectType": "place",
			"displayName": "127.0.0.1"
		},
		"favoritesCount": 2147
	},
	"object": {
		"objectType": "note",
		"id": "object:search.x.com,2005:1296121314218897408",
		"summary": "Der Hide-Replies-Endpoint wird heute eingeführt! \n\nEntwickler können Antworten auf Tweets ausblenden – ein wichtiger Weg für Entwickler… https://t.co/VyfXs1RTXn",
		"link": "http://x.com/XDevelopers/statuses/1296121314218897408",
		"postedTime": "2020-08-19T16:26:16.000Z"
	},
	"favoritesCount": 172,
	"twitter_entities": {
		"hashtags": [],
		"urls": [{
			"url": "https://t.co/VyfXs1RTXn",
			"expanded_url": "https://x.com/i/web/status/1296121314218897408",
			"display_url": "x.com/i/web/status/1…",
			"indices": [
				117,
				140
			]
		}],
		"user_mentions": [],
		"symbols": []
	},
	"twitter_lang": "en",
	"retweetCount": 54,
	"gnip": {
		"matching_rules": [{
			"tag": null
		}],
		"urls": [{
			"url": "https://t.co/khXhTurm9x",
			"expanded_url": "https://devcommunity.x.com/t/hide-replies-now-available-in-the-new-twitter-api/140996",
			"expanded_status": 200,
			"expanded_url_title": "Hide-Replies jetzt in der neuen X API verfügbar",
			"expanded_url_description": "Heute freuen wir uns, die allgemeine Verfügbarkeit des Hide-Replies-Endpoints in der neuen X API bekannt zu geben. Der Hide-Replies-Endpoint ermöglicht es Ihnen, Tools zu erstellen, die Menschen dabei helfen, Antworten auf ihre Tweets auszublenden oder wieder einzublenden. Menschen verwalten ihre Antworten aus verschiedenen Gründen, unter anderem um weniger Aufmerksamkeit auf Kommentare zu lenken, die missbräuchlich, ablenkend oder irreführend sind, oder um Konversationen ansprechender zu gestalten. Über diesen Endpoint können Sie Tools erstellen, die Menschen auf X dabei helfen, Antworten schneller und einfacher..."
		}]
	},
	"twitter_filter_level": "low"
}
Post-Aktivität mit twitter_extended_entities
{
	"id": "tag:search.x.com,2005:1293593516040269825",
	"objectType": "activity",
	"verb": "post",
	"postedTime": "2020-08-12T17:01:42.000Z",
	"generator": {
		"displayName": "X Web App",
		"link": "https://mobile.x.com"
	},
	"provider": {
		"objectType": "service",
		"displayName": "X",
		"link": "http://www.x.com"
	},
	"link": "http://x.com/XDevelopers/statuses/1293593516040269825",
	"body": "Es ist endlich da! 🥁 Sagt hallo zur neuen #XAPI.\n\nWir bauen die X API v2 von Grund auf neu, um b… https://t.co/UeCndQGMjx",
	"long_object": {
		"body": "Es ist endlich da! 🥁 Sagt hallo zur neuen #XAPI.\n\nWir bauen die X API v2 von Grund auf neu, um unsere Entwickler-Community besser zu unterstützen. Und der heutige Launch ist nur der Anfang.\n\nhttps://t.co/32VrwpGaJw https://t.co/KaFSbjWUA8",
		"display_text_range": [
			0,
			218
		],
		"twitter_entities": {
			"hashtags": [{
				"text": "API",
				"indices": [
					42,
					53
				]
			}],
			"urls": [{
				"url": "https://t.co/32VrwpGaJw",
				"expanded_url": "https://blog.x.com/developer/en_us/topics/tools/2020/introducing_new_twitter_api.html",
				"display_url": "blog.x.com/developer/en_u…",
				"indices": [
					195,
					218
				]
			}],
			"user_mentions": [],
			"symbols": [],
			"media": [{
				"id": 1293565706408038400,
				"id_str": "1293565706408038401",
				"indices": [
					219,
					242
				],
				"additional_media_info": {
					"monetizable": false
				},
				"media_url": "http://pbs.twimg.com/ext_tw_video_thumb/1293565706408038401/pu/img/66P2dvbU4a02jYbV.jpg",
				"media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/1293565706408038401/pu/img/66P2dvbU4a02jYbV.jpg",
				"url": "https://t.co/KaFSbjWUA8",
				"display_url": "pic.x.com/KaFSbjWUA8",
				"expanded_url": "https://x.com/XDevelopers/status/1293593516040269825/video/1",
				"type": "video",
				"video_info": {
					"aspect_ratio": [
						16,
						9
					],
					"duration_millis": 34875,
					"variants": [{
							"bitrate": 256000,
							"content_type": "video/mp4",
							"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/vid/480x270/Fg9lnGGsITO0uq2K.mp4?tag=10"
						},
						{
							"bitrate": 832000,
							"content_type": "video/mp4",
							"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/vid/640x360/-crbtZE4y8vKN_uF.mp4?tag=10"
						},
						{
							"content_type": "application/x-mpegURL",
							"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/pl/OvIqQojosF6sMIHR.m3u8?tag=10"
						},
						{
							"bitrate": 2176000,
							"content_type": "video/mp4",
							"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/vid/1280x720/xkxyb-VPVY4OI0j9.mp4?tag=10"
						}
					]
				},
				"sizes": {
					"thumb": {
						"w": 150,
						"h": 150,
						"resize": "crop"
					},
					"medium": {
						"w": 1200,
						"h": 675,
						"resize": "fit"
					},
					"small": {
						"w": 680,
						"h": 383,
						"resize": "fit"
					},
					"large": {
						"w": 1280,
						"h": 720,
						"resize": "fit"
					}
				}
			}]
		},
		"twitter_extended_entities": {
			"media": [{
				"id": 1293565706408038400,
				"id_str": "1293565706408038401",
				"indices": [
					219,
					242
				],
				"additional_media_info": {
					"monetizable": false
				},
				"media_url": "http://pbs.twimg.com/ext_tw_video_thumb/1293565706408038401/pu/img/66P2dvbU4a02jYbV.jpg",
				"media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/1293565706408038401/pu/img/66P2dvbU4a02jYbV.jpg",
				"url": "https://t.co/KaFSbjWUA8",
				"display_url": "pic.x.com/KaFSbjWUA8",
				"expanded_url": "https://x.com/XDevelopers/status/1293593516040269825/video/1",
				"type": "video",
				"video_info": {
					"aspect_ratio": [
						16,
						9
					],
					"duration_millis": 34875,
					"variants": [{
							"bitrate": 256000,
							"content_type": "video/mp4",
							"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/vid/480x270/Fg9lnGGsITO0uq2K.mp4?tag=10"
						},
						{
							"bitrate": 832000,
							"content_type": "video/mp4",
							"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/vid/640x360/-crbtZE4y8vKN_uF.mp4?tag=10"
						},
						{
							"content_type": "application/x-mpegURL",
							"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/pl/OvIqQojosF6sMIHR.m3u8?tag=10"
						},
						{
							"bitrate": 2176000,
							"content_type": "video/mp4",
							"url": "https://video.twimg.com/ext_tw_video/1293565706408038401/pu/vid/1280x720/xkxyb-VPVY4OI0j9.mp4?tag=10"
						}
					]
				},
				"sizes": {
					"thumb": {
						"w": 150,
						"h": 156,
						"resize": "crop"
					},
					"medium": {
						"w": 1200,
						"h": 675,
						"resize": "fit"
					},
					"small": {
						"w": 680,
						"h": 383,
						"resize": "fit"
					},
					"large": {
						"w": 1280,
						"h": 720,
						"resize": "fit"
					}
				}
			}]
		}
	},
	"display_text_range": [
		0,
		140
	],
	"actor": {
		"objectType": "person",
		"id": "id:twitter.com:2244994945",
		"link": "http://www.x.com/XDevelopers",
		"displayName": "X Dev",
		"postedTime": "2013-12-14T04:35:55.036Z",
		"image": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"summary": "Die Stimme des #XDevelopers-Teams und Ihre offizielle Quelle für Updates, News und Events rund um die #TwitterAPI.",
		"friendsCount": 2038,
		"followersCount": 512292,
		"listedCount": 1666,
		"statusesCount": 3634,
		"twitterTimeZone": null,
		"verified": true,
		"utcOffset": null,
		"preferredUsername": "XDevelopers",
		"languages": [],
		"links": [{
			"href": "https://developer.x.com/en/community",
			"rel": "me"
		}],
		"location": {
			"objectType": "place",
			"displayName": "127.0.0.1"
		},
		"favoritesCount": 2147
	},
	"object": {
		"objectType": "note",
		"id": "object:search.x.com,2005:1293593516040269825",
		"summary": "Es ist endlich da! 🥁 Sagt hallo zur neuen #API.\n\nWir bauen die X API v2 von Grund auf neu auf, um b… https://t.co/UeCndQGMjx",
		"link": "http://x.com/XDevelopers/statuses/1293593516040269825",
		"postedTime": "2020-08-12T17:01:42.000Z"
	},
	"favoritesCount": 2844,
	"twitter_entities": {
		"hashtags": [{
			"text": "API",
			"indices": [
				42,
				53
			]
		}],
		"urls": [{
			"url": "https://t.co/UeCndQGMjx",
			"expanded_url": "https://x.com/i/web/status/1293593516040269825",
			"display_url": "x.com/i/web/status/1…",
			"indices": [
				117,
				140
			]
		}],
		"user_mentions": [],
		"symbols": []
	},
	"twitter_lang": "en",
	"retweetCount": 958,
	"gnip": {
		"matching_rules": [{
			"tag": null
		}],
		"urls": [{
			"url": "https://t.co/32VrwpGaJw",
			"expanded_url": "https://blog.x.com/developer/en_us/topics/tools/2020/introducing_new_twitter_api.html",
			"expanded_status": 200,
			"expanded_url_title": "Einführung einer neuen und verbesserten X API",
			"expanded_url_description": "Einführung der neuen X API - von Grund auf neu entwickelt, um neue Features schneller bereitzustellen, damit Entwickler der Welt dabei helfen können, sich mit der öffentlichen Konversation zu verbinden, die auf X stattfindet."
		}]
	},
	"twitter_filter_level": "low"
}
Retweet-Aktivitäten
{
	"id": "tag:search.x.com,2005:1229851574555508737",
	"objectType": "activity",
	"verb": "share",
	"postedTime": "2020-02-18T19:33:59.000Z",
	"generator": {
		"displayName": "X Web App",
		"link": "https://mobile.x.com"
	},
	"provider": {
		"objectType": "service",
		"displayName": "X",
		"link": "http://www.x.com"
	},
	"link": "http://x.com/XDevelopers/statuses/1229851574555508737",
	"body": "RT @suhemparack: Ich habe einen Alexa Skill für X mit APL entwickelt, mit dem man Tweets und Trends auf dem Echo Show anzeigen kann!\n\nSchau es dir hier an…",
	"actor": {
		"objectType": "person",
		"id": "id:twitter.com:2244994945",
		"link": "http://www.x.com/XDevelopers",
		"displayName": "X Dev",
		"postedTime": "2013-12-14T04:35:55.036Z",
		"image": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"summary": "Die Stimme des #XDevelopers-Teams und Ihre offizielle Quelle für Updates, Neuigkeiten und Veranstaltungen rund um die #XAPI.",
		"friendsCount": 2038,
		"followersCount": 512292,
		"listedCount": 1666,
		"statusesCount": 3634,
		"twitterTimeZone": null,
		"verified": true,
		"utcOffset": null,
		"preferredUsername": "XDevelopers",
		"languages": [],
		"links": [{
			"href": "https://developer.x.com/en/community",
			"rel": "me"
		}],
		"location": {
			"objectType": "place",
			"displayName": "127.0.0.1"
		},
		"favoritesCount": 2147
	},
	"object": {
		"id": "tag:search.x.com,2005:1229843515603144704",
		"objectType": "activity",
		"verb": "post",
		"postedTime": "2020-02-18T19:01:58.000Z",
		"generator": {
			"displayName": "X Web App",
			"link": "https://mobile.x.com"
		},
		"provider": {
			"objectType": "service",
			"displayName": "X",
			"link": "http://www.x.com"
		},
		"link": "http://x.com/suhemparack/statuses/1229843515603144704",
		"body": "Ich habe einen Alexa Skill für X mit APL entwickelt, mit dem man Tweets und Trends auf dem Echo Show anzeigen kann!\n\nSchau es dir an… https://t.co/RP9NgltX7i",
		"long_object": {
			"body": "Ich habe einen Alexa Skill für X mit APL entwickelt, mit dem man Tweets und Trends auf dem Echo Show anzeigen kann!\n\nSchau es dir hier an 👇\n\nhttps://t.co/l5J8wq748G",
			"display_text_range": [
				0,
				150
			],
			"twitter_entities": {
				"hashtags": [],
				"urls": [{
					"url": "https://t.co/l5J8wq748G",
					"expanded_url": "https://dev.to/XDevelopers/building-an-alexa-skill-for-twitter-using-alexa-presentation-language-1aj0",
					"display_url": "dev.to/twitterdev/bui…",
					"indices": [
						127,
						150
					]
				}],
				"user_mentions": [],
				"symbols": []
			}
		},
		"actor": {
			"objectType": "person",
			"id": "id:twitter.com:857699969263964161",
			"link": "http://www.x.com/suhemparack",
			"displayName": "Suhem Parack",
			"postedTime": "2017-04-27T20:56:22.883Z",
			"image": "https://pbs.twimg.com/profile_images/1230703695051935747/TbQKe91L_normal.jpg",
			"summary": "Developer Relations für akademische Forschung @X. Sprechen Sie mit mir über Forschung mit X-Daten. Zuvor: Amazon Alexa. Meinungen sind meine eigenen",
			"friendsCount": 501,
			"followersCount": 732,
			"listedCount": 12,
			"statusesCount": 458,
			"twitterTimeZone": null,
			"verified": false,
			"utcOffset": null,
			"preferredUsername": "suhemparack",
			"languages": [],
			"links": [{
				"href": "https://developer.x.com",
				"rel": "me"
			}],
			"location": {
				"objectType": "place",
				"displayName": "Seattle, WA"
			},
			"favoritesCount": 358
		},
		"object": {
			"objectType": "note",
			"id": "object:search.x.com,2005:1229843515603144704",
			"summary": "Ich habe einen Alexa Skill für X mit APL entwickelt, mit dem man Tweets und Trends auf dem Echo Show anzeigen kann!\n\nSchau es dir an… https://t.co/RP9NgltX7i",
			"link": "http://x.com/suhemparack/statuses/1229843515603144704",
			"postedTime": "2020-02-18T19:01:58.000Z"
		},
		"favoritesCount": 71,
		"twitter_entities": {
			"hashtags": [],
			"urls": [{
				"url": "https://t.co/RP9NgltX7i",
				"expanded_url": "https://x.com/i/web/status/1229843515603144704",
				"display_url": "x.com/i/web/status/1…",
				"indices": [
					116,
					139
				]
			}],
			"user_mentions": [],
			"symbols": []
		},
		"twitter_lang": "en",
		"twitter_filter_level": "low"
	},
	"favoritesCount": 0,
	"twitter_entities": {
		"hashtags": [],
		"urls": [],
		"user_mentions": [{
			"screen_name": "suhemparack",
			"name": "Suhem Parack",
			"id": 857699969263964200,
			"id_str": "857699969263964161",
			"indices": [
				3,
				15
			]
		}],
		"symbols": []
	},
	"twitter_lang": "en",
	"retweetCount": 19,
	"gnip": {
		"matching_rules": [{
			"tag": null
		}],
		"urls": [{
			"url": "https://t.co/l5J8wq748G",
			"expanded_url": "https://dev.to/twitterdev/building-an-alexa-skill-for-twitter-using-alexa-presentation-language-1aj0",
			"expanded_status": 200,
			"expanded_url_title": null,
			"expanded_url_description": null
		}]
	},
	"twitter_filter_level": "low"
}
Aktivität zu Zitaten von Tweets
{
 	"id": "tag:search.x.com,2005:1328399838128467969",
 	"objectType": "activity",
 	"verb": "post",
 	"postedTime": "2020-11-16T18:09:36.000Z",
 	"generator": {
 		"displayName": "X Web App",
 		"link": "https://mobile.x.com"
 	},
 	"provider": {
 		"objectType": "service",
 		"displayName": "X",
 		"link": "http://www.x.com"
 	},
 	"link": "http://x.com/XDevelopers/statuses/1328399838128467969",
 	"body": "Wie geplant wurden die unten referenzierten Labs v2 Endpoints nun eingestellt. Bitte lassen Sie uns in den Foren wissen, falls Sie h… https://t.co/ahQvTYaOcZ",
 	"long_object": {
 		"body": "Wie geplant wurden die unten referenzierten Labs v2 Endpoints nun eingestellt. Bitte lassen Sie uns in den Foren wissen, falls Sie Fragen haben oder Hilfe mit der X API v2 benötigen! https://t.co/JaxttUMmjX",
 		"display_text_range": [
 			0,
 			166
 		],
 		"twitter_entities": {
 			"hashtags": [],
 			"urls": [{
 				"url": "https://t.co/JaxttUMmjX",
 				"expanded_url": "https://x.com/XDevelopers/status/1327011423252144128",
 				"display_url": "x.com/XDevelopers/sta…",
 				"indices": [
 					167,
 					190
 				]
 			}],
 			"user_mentions": [],
 			"symbols": []
 		}
 	},
 	"display_text_range": [
 		0,
 		140
 	],
 	"actor": {
 		"objectType": "person",
 		"id": "id:twitter.com:2244994945",
 		"link": "http://www.x.com/XDevelopers",
 		"displayName": "X Dev",
 		"postedTime": "2013-12-14T04:35:55.036Z",
 		"image": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
 		"summary": "Die Stimme des #XDevelopers-Teams und Ihre offizielle Quelle für Updates, Neuigkeiten und Veranstaltungen rund um die #XAPI.",
 		"friendsCount": 2038,
 		"followersCount": 512292,
 		"listedCount": 1666,
 		"statusesCount": 3634,
 		"twitterTimeZone": null,
 		"verified": true,
 		"utcOffset": null,
 		"preferredUsername": "XDevelopers",
 		"languages": [],
 		"links": [{
 			"href": "https://developer.x.com/en/community",
 			"rel": "me"
 		}],
 		"location": {
 			"objectType": "place",
 			"displayName": "127.0.0.1"
 		},
 		"favoritesCount": 2147
 	},
 	"object": {
 		"objectType": "note",
 		"id": "object:search.x.com,2005:1328399838128467969",
 		"summary": "Wie geplant wurden die unten referenzierten Labs v2 Endpoints nun eingestellt. Bitte lassen Sie uns in den Foren wissen, falls Sie h… https://t.co/ahQvTYaOcZ",
 		"link": "http://x.com/XDevelopers/statuses/1328399838128467969",
 		"postedTime": "2020-11-16T18:09:36.000Z"
 	},
 	"favoritesCount": 29,
 	"twitter_entities": {
 		"hashtags": [],
 		"urls": [{
 			"url": "https://t.co/ahQvTYaOcZ",
 			"expanded_url": "https://x.com/i/web/status/1328399838128467969",
 			"display_url": "x.com/i/web/status/1…",
 			"indices": [
 				117,
 				140
 			]
 		}],
 		"user_mentions": [],
 		"symbols": []
 	},
 	"twitter_lang": "en",
 	"retweetCount": 7,
 	"gnip": {
 		"matching_rules": [{
 			"tag": null
 		}],
 		"urls": [{
 			"url": "https://t.co/r6z6CI7kEy",
 			"expanded_url": "https://devcommunity.x.com/t/retiring-labs-v2-recent-search-and-hide-replies/145795",
 			"expanded_status": 200,
 			"expanded_url_title": "Einstellung von Labs v2 Recent Search und Hide Replies",
 			"expanded_url_description": "Wie wir in unseren Early Access- und Hide Replies-Ankündigungen mitteilten, werden die folgenden X Developer Labs v2 Endpoints am 16. November eingestellt. Labs v2 Recent Search Labs v2 Hide Replies Bei Aufruf werden diese Endpoints mit einem HTTP 410-Status antworten und keine Daten zurückgeben. Basierend auf Ihrem Feedback aus Labs haben wir entsprechende Funktionalität in die X API v2 integriert. Die relevante Dokumentation finden Sie über die unten stehenden Links. Klicken Sie hier, um sich für v2-Zugang zu registrieren, falls Sie es noch nicht getan haben...",
 		}]
 	},
 	"twitter_filter_level": "low",
 	"twitter_quoted_status": {
 		"id": "tag:search.x.com,2005:1327011423252144128",
 		"objectType": "activity",
 		"verb": "post",
 		"postedTime": "2020-11-12T22:12:32.000Z",
 		"generator": {
 			"displayName": "X Web App",
 			"link": "https://mobile.x.com"
 		},
 		"provider": {
 			"objectType": "service",
 			"displayName": "X",
 			"link": "http://www.x.com"
 		},
 		"link": "http://x.com/XDevelopers/statuses/1327011423252144128",
 		"body": "👋 Freundliche Erinnerung, dass X Developer Labs v2 Hide Replies und Recent Search nächsten Montag, Nove… https://t.co/EEWN2Q9aXh",
 		"long_object": {
 			"body": "👋 Freundliche Erinnerung, dass X Developer Labs v2 Hide Replies und Recent Search nächsten Montag, 16. November, eingestellt werden! Wir empfehlen Ihnen, jetzt zu den neuen Hide Replies- und Recent Search-Endpoints zu migrieren, die nun in der v2 #XAPI verfügbar sind. Details: https://t.co/r6z6CI7kEy",
 			"display_text_range": [
 				0,
 				273
 			],
 			"twitter_entities": {
 				"hashtags": [{
 					"text": "API",
 					"indices": [
 						228,
 						239
 					]
 				}],
 				"urls": [{
 					"url": "https://t.co/r6z6CI7kEy",
 					"expanded_url": "https://devcommunity.x.com/t/retiring-labs-v2-recent-search-and-hide-replies/145795",
 					"display_url": "devcommunity.com/t/retiring-lab…",
 					"indices": [
 						250,
 						273
 					]
 				}],
 				"user_mentions": [],
 				"symbols": []
 			}
 		},
 		"actor": {
 			"objectType": "person",
 			"id": "id:twitter.com:2244994945",
 			"link": "http://www.x.com/XDevelopers",
 			"displayName": "X Dev",
 			"postedTime": "2013-12-14T04:35:55.036Z",
 			"image": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
 			"summary": "Die Stimme des #XDevelopers-Teams und Ihre offizielle Quelle für Updates, Neuigkeiten und Veranstaltungen rund um die #XAPI.",
 			"friendsCount": 2038,
 			"followersCount": 512292,
 			"listedCount": 1666,
 			"statusesCount": 3634,
 			"twitterTimeZone": null,
 			"verified": true,
 			"utcOffset": null,
 			"preferredUsername": "XDevelopers",
 			"languages": [],
 			"links": [{
 				"href": "https://developer.x.com/en/community",
 				"rel": "me"
 			}],
 			"location": {
 				"objectType": "place",
 				"displayName": "127.0.0.1"
 			},
 			"favoritesCount": 2147
 		},
 		"object": {
 			"objectType": "note",
 			"id": "object:search.x.com,2005:1327011423252144128",
 			"summary": "👋 Freundliche Erinnerung, dass X Developer Labs v2 Hide Replies und Recent Search nächsten Montag, Nove… https://t.co/EEWN2Q9aXh",
 			"link": "http://x.com/XDevelopers/statuses/1327011423252144128",
 			"postedTime": "2020-11-12T22:12:32.000Z"
 		},
 		"favoritesCount": 33,
 		"twitter_entities": {
 			"hashtags": [],
 			"urls": [{
 				"url": "https://t.co/EEWN2Q9aXh",
 				"expanded_url": "https://x.com/i/web/status/1327011423252144128",
 				"display_url": "x.com/i/web/status/1…",
 				"indices": [
 					117,
 					140
 				]
 			}],
 			"user_mentions": [],
 			"symbols": []
 		},
 		"twitter_lang": "en",
 		"twitter_filter_level": "low"
 	}
 }
Retweeted-Quote-Tweet-Aktivität
{
	"id": "tag:search.x.com,2005:1225470895902412800",
	"objectType": "activity",
	"verb": "share",
	"postedTime": "2020-02-06T17:26:44.000Z",
	"generator": {
		"displayName": "X für iPhone",
		"link": "http://x.com/download/iphone"
	},
	"provider": {
		"objectType": "service",
		"displayName": "X",
		"link": "http://www.x.com"
	},
	"link": "http://x.com/XDevelopers/statuses/1225470895902412800",
	"body": "RT @AureliaSpecker: 📣 Falls euch das London-Pendler-Tutorial gefallen hat, das ich im November letzten Jahres geschrieben habe, schaut euch die überarbeitete Version an, die…",
	"actor": {
		"objectType": "person",
		"id": "id:twitter.com:2244994945",
		"link": "http://www.x.com/XDevelopers",
		"displayName": "X Dev",
		"postedTime": "2013-12-14T04:35:55.036Z",
		"image": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
		"summary": "Die Stimme des #XDevelopers-Teams und eure offizielle Quelle für Updates, Neuigkeiten und Events rund um die #XAPI.",
		"friendsCount": 2038,
		"followersCount": 512292,
		"listedCount": 1666,
		"statusesCount": 3634,
		"twitterTimeZone": null,
		"verified": true,
		"utcOffset": null,
		"preferredUsername": "XDevelopers",
		"languages": [],
		"links": [{
			"href": "https://developer.x.com/en/community",
			"rel": "me"
		}],
		"location": {
			"objectType": "place",
			"displayName": "127.0.0.1"
		},
		"favoritesCount": 2147
	},
	"object": {
		"id": "tag:search.x.com,2005:1224709550214873090",
		"objectType": "activity",
		"verb": "post",
		"postedTime": "2020-02-04T15:01:25.000Z",
		"generator": {
			"displayName": "X Web App",
			"link": "https://mobile.x.com"
		},
		"provider": {
			"objectType": "service",
			"displayName": "X",
			"link": "http://www.x.com"
		},
		"link": "http://x.com/AureliaSpecker/statuses/1224709550214873090",
		"body": "📣 Falls euch das London-Pendler-Tutorial gefallen hat, das ich im November letzten Jahres geschrieben habe, schaut euch die überarbeitete Version an, die… https://t.co/cAepHunkFp",
		"long_object": {
			"body": "📣 Falls euch das London-Pendler-Tutorial gefallen hat, das ich im November letzten Jahres geschrieben habe, schaut euch die überarbeitete Version an, die X's neuen Such-Endpoint verwendet 🚇 https://t.co/87XIPZmZBJ\n\n#DEVcommunity #Pythontutorial @XDevelopers @API https://t.co/dXrJYvn3hY",
			"display_text_range": [
				0,
				229
			],
			"twitter_entities": {
				"hashtags": [{
						"text": "DEVcommunity",
						"indices": [
							176,
							189
						]
					},
					{
						"text": "Pythontutorial",
						"indices": [
							190,
							205
						]
					}
				],
				"urls": [{
						"url": "https://t.co/87XIPZmZBJ",
						"expanded_url": "https://bit.ly/2OrnrCC",
						"display_url": "bit.ly/2OrnrCC",
						"indices": [
							151,
							174
						]
					},
					{
						"url": "https://t.co/dXrJYvn3hY",
						"expanded_url": "https://x.com/AureliaSpecker/status/1195000047089389573",
						"display_url": "x.com/AureliaSpecker…",
						"indices": [
							230,
							253
						]
					}
				],
				"user_mentions": [{
						"screen_name": "XDevelopers",
						"name": "X Dev",
						"id": 2244994945,
						"id_str": "2244994945",
						"indices": [
							206,
							217
						]
					},
					{
						"screen_name": "API",
						"name": "X API",
						"id": 6253282,
						"id_str": "6253282",
						"indices": [
							218,
							229
						]
					}
				],
				"symbols": []
			}
		},
		"display_text_range": [
			0,
			140
		],
		"actor": {
			"objectType": "person",
			"id": "id:twitter.com:1102321381",
			"link": "http://www.x.com/AureliaSpecker",
			"displayName": "Aurelia Specker",
			"postedTime": "2013-01-18T23:45:43.000Z",
			"image": "https://pbs.twimg.com/profile_images/1137517534104772608/8FBYgc6G_normal.jpg",
			"summary": "devrel @TwitterUK • Schweizerin in London • Zimmerpflanzen-Mama • persönliche Friseurin von @_dormrod",
			"friendsCount": 1331,
			"followersCount": 1032,
			"listedCount": 26,
			"statusesCount": 854,
			"twitterTimeZone": null,
			"verified": false,
			"utcOffset": null,
			"preferredUsername": "AureliaSpecker",
			"languages": [],
			"links": [{
				"href": null,
				"rel": "me"
			}],
			"location": {
				"objectType": "place",
			"displayName": "London, UK"
			},
			"favoritesCount": 4979
		},
		"object": {
			"objectType": "note",
			"id": "object:search.x.com,2005:1224709550214873090",
			"summary": "📣 Falls euch das London-Pendler-Tutorial gefallen hat, das ich im November letzten Jahres geschrieben habe, schaut euch die überarbeitete Version an, die… https://t.co/cAepHunkFp",
			"link": "http://x.com/AureliaSpecker/statuses/1224709550214873090",
			"postedTime": "2020-02-04T15:01:25.000Z"
		},
		"favoritesCount": 43,
		"twitter_entities": {
			"hashtags": [],
			"urls": [{
				"url": "https://t.co/cAepHunkFp",
				"expanded_url": "https://x.com/i/web/status/1224709550214873090",
				"display_url": "x.com/i/web/status/1…",
				"indices": [
					117,
					140
				]
			}],
			"user_mentions": [],
			"symbols": []
		},
		"twitter_lang": "en",
		"twitter_filter_level": "low"
	},
	"favoritesCount": 0,
	"twitter_entities": {
		"hashtags": [],
		"urls": [],
		"user_mentions": [{
			"screen_name": "AureliaSpecker",
			"name": "Aurelia Specker",
			"id": 1102321381,
			"id_str": "1102321381",
			"indices": [
				3,
				18
			]
		}],
		"symbols": []
	},
	"twitter_lang": "en",
	"retweetCount": 12,
	"gnip": {
		"matching_rules": [{
			"tag": null
		}],
		"urls": [{
				"url": "https://t.co/87XIPZmZBJ",
				"expanded_url": "https://dev.to/XDevelopers/migrate-to-twitter-s-newly-released-labs-recent-search-endpoint-3npe",
				"expanded_status": 200,
				"expanded_url_title": null,
				"expanded_url_description": null
			},
			{
				"url": "https://t.co/sOjXW4YhbN",
				"expanded_url": "https://dev.to/XDevelopers/using-the-twitter-api-to-make-your-commute-easier-3od0",
				"expanded_status": 200,
				"expanded_url_title": null,
				"expanded_url_description": null
			}
		]
	},
	"twitter_filter_level": "low",
	"twitter_quoted_status": {
		"id": "tag:search.x.com,2005:1195000047089389573",
		"objectType": "activity",
		"verb": "post",
		"postedTime": "2019-11-14T15:26:27.000Z",
		"generator": {
			"displayName": "X Web App",
			"link": "https://mobile.x.com"
		},
		"provider": {
			"objectType": "service",
			"displayName": "X",
			"link": "http://www.x.com"
		},
		"link": "http://x.com/AureliaSpecker/statuses/1195000047089389573",
		"body": "Ich habe ein Tutorial geschrieben, wie man individuelle Pendlerinformationen mit der X API abruft🚇\n\n#DEVcommunity #Pythontutorial… https://t.co/pL0qJ4vhtE",
		"long_object": {
			"body": "Ich habe ein Tutorial geschrieben, wie man individuelle Pendlerinformationen mit der X API abruft🚇\n\n#DEVcommunity #Pythontutorial \n\nSchau es dir hier an 👇\nhttps://t.co/sOjXW4YhbN",
			"display_text_range": [
				0,
				160
			],
			"twitter_entities": {
				"hashtags": [{
						"text": "DEVcommunity",
						"indices": [
							85,
							98
						]
					},
					{
						"text": "Pythontutorial",
						"indices": [
							99,
							114
						]
					}
				],
				"urls": [{
					"url": "https://t.co/sOjXW4YhbN",
					"expanded_url": "https://dev.to/XDevelopers/using-the-twitter-api-to-make-your-commute-easier-3od0",
					"display_url": "dev.to/twitterdev/usi…",
					"indices": [
						137,
						160
					]
				}],
				"user_mentions": [],
				"symbols": []
			}
		},
		"actor": {
			"objectType": "person",
			"id": "id:twitter.com:1102321381",
			"link": "http://www.x.com/AureliaSpecker",
			"displayName": "Aurelia Specker",
			"postedTime": "2013-01-18T23:45:43.000Z",
			"image": "https://pbs.twimg.com/profile_images/1137517534104772608/8FBYgc6G_normal.jpg",
			"summary": "devrel @TwitterUK • Schweizerin in London • Zimmerpflanzen-Mama • persönliche Friseurin für @_dormrod",
			"friendsCount": 1331,
			"followersCount": 1032,
			"listedCount": 26,
			"statusesCount": 854,
			"twitterTimeZone": null,
			"verified": false,
			"utcOffset": null,
			"preferredUsername": "AureliaSpecker",
			"languages": [],
			"links": [{
				"href": null,
				"rel": "me"
			}],
			"location": {
				"objectType": "place",
				"displayName": "London, Vereinigtes Königreich"
			},
			"favoritesCount": 4979
		},
		"object": {
			"objectType": "note",
			"id": "object:search.x.com,2005:1195000047089389573",
			"summary": "Ich habe ein Tutorial geschrieben, wie man individuelle Pendlerinformationen mit der X API abruft🚇\n\n#DEVcommunity #Pythontutorial… https://t.co/pL0qJ4vhtE",
			"link": "http://x.com/AureliaSpecker/statuses/1195000047089389573",
			"postedTime": "2019-11-14T15:26:27.000Z"
		},
		"favoritesCount": 123,
		"twitter_entities": {
			"hashtags": [{
					"text": "DEVcommunity",
					"indices": [
						85,
						98
					]
				},
				{
					"text": "Pythontutorial",
					"indices": [
						99,
						114
					]
				}
			],
			"urls": [{
				"url": "https://t.co/pL0qJ4vhtE",
				"expanded_url": "https://x.com/i/web/status/1195000047089389573",
				"display_url": "x.com/i/web/status/1…",
				"indices": [
					116,
					139
				]
			}],
			"user_mentions": [],
			"symbols": []
		},
		"twitter_lang": "en",
		"twitter_filter_level": "low"
	}
}

Zeitachse der Tweet-Metadaten

Zu folgendem Abschnitt springen Einführung Zentrale Konzepte X-Zeitachse Tipps zum Filtern Nächste Schritte

Einführung**

Im Kern ist X ein öffentliches, globales Echtzeit-Kommunikationsnetzwerk. Seit 2006 wird die Entwicklung von X sowohl durch Nutzungs­muster und Konventionen der Nutzer als auch durch neue Produktfunktionen und -verbesserungen vorangetrieben. Wenn Sie X data für historische Forschung verwenden, ist es wichtig, die zeitliche Entwicklung zu verstehen, um Posts von Interesse im Datenarchiv zu finden. X wurde als einfache SMS‑Mobile‑App gestartet und hat sich zu einer umfassenden Kommunikationsplattform entwickelt – eine Plattform mit einem vollständigen Satz von APIs. APIs waren schon immer eine tragende Säule des X‑Netzwerks. Die erste API kam kurz nach dem Start von X auf den Markt. Als 2009 das Geotagging von Posts eingeführt wurde, wurde es über eine Geo API bereitgestellt (und später wurde die Möglichkeit, einen Post zu „geotaggen“, in die X.com‑Benutzeroberfläche integriert). Heute treiben die APIs von X das bidirektionale Kommunikationsnetzwerk an, das zur Quelle für Eilmeldungen und den Austausch von Informationen geworden ist. Die Möglichkeiten, auf diesem globalen Echtzeit-Kommunikationskanal aufzubauen, sind endlos. X stellt zwei historische APIs bereit, die Zugriff auf jeden öffentlich verfügbaren Post bieten: Historical PowerTrack und die Full‑Archive Search API. Beide APIs stellen eine Reihe von Operatoren bereit, um Posts von Interesse abzufragen und zu sammeln. Diese Operatoren greifen auf eine Vielzahl von Attributen zu, die jedem Post zugeordnet sind – Hunderte von Attributen wie den Textinhalt des Posts, den Kontonamen des Autors und im Post geteilte Links. Posts und ihre Attribute sind in JSON kodiert, einem gängigen textbasierten Datenaustauschformat. Mit der Einführung neuer Funktionen sind entsprechend neue JSON‑Attribute hinzugekommen, und typischerweise wurden neue API‑Operatoren eingeführt, um auf diese Attribute zu matchen. Wenn Ihr Anwendungsfall das Zuhören beinhaltet, was die Welt auf X gesagt hat, gilt: Je besser Sie verstehen, wann Operatoren über JSON metadata verfügten, auf die gematcht werden kann, desto effektiver können Ihre historischen PowerTrack‑Filter sein. Als Nächstes führen wir einige Schlüsselkonzepte ein, die die Grundlage dafür schaffen, zu verstehen, wie Aktualisierungen in der Post metadata das Auffinden Ihres relevanten Datensignals beeinflussen.

Zentrale Konzepte**

Von nutzergetriebenen Konventionen zu X First-Class-Objekten

X Nutzer haben organisch neue, heute grundlegende Kommunikationsmuster im X Netzwerk etabliert. Ein prägendes Beispiel ist der Hashtag, der inzwischen nahezu universell in allen sozialen Netzwerken verwendet wird. Hashtags wurden eingeführt, um Unterhaltungen und Themen zu strukturieren. In einem Netzwerk mit Hunderten Millionen Nachrichten pro Tag sind Werkzeuge zum Finden interessanter Posts entscheidend, und Hashtags sind zu einer zentralen Methode geworden. Kurz nachdem die Nutzung von Hashtags zunahm, erhielten sie offiziellen Status und Unterstützung durch X. Als Hashtags zu einem „First-Class“-Objekt wurden, hatte das vielfältige Auswirkungen: Hashtags wurden in der X.com-Benutzeroberfläche anklickbar und durchsuchbar. Außerdem wurden Hashtags Teil der X-entities-Familie, zusammen mit @mentions, angehängten Medien, Börsensymbolen und geteilten Links. Diese Entities sind praktisch in einem vorverarbeiteten JSON-Array kodiert, was es Entwicklern erleichtert, sie zu verarbeiten, zu scannen und zu speichern. Retweets sind ein weiteres Beispiel dafür, wie nutzergetriebene Konventionen zu offiziellen Objekten werden. Retweeting entstand als eine Art des „Weiterleitens“ von Inhalten an andere. Es begann als manueller Prozess des Kopierens/Einfügens eines Posts und des Voranstellens des Musters „RT @“. Dieser Prozess wurde schließlich über einen neuen Retweet-Button automatisiert, einschließlich neuer JSON metadata. Der „offizielle“ Retweet war geboren. Weitere Beispiele umfassen „Mentions“, das Teilen von Medien und Weblinks sowie das Teilen eines Standorts mit deinem Post. Jedes dieser Nutzungsmuster führte zu neuen Funktionen der x.com-Benutzeroberfläche, neuem unterstützendem JSON und damit neuen Möglichkeiten, Posts zu matchen. All diese grundlegenden Post-Attribute haben zu PowerTrack Operators geführt, die zum Matchen darauf verwendet werden.

Post-Metadaten, Veränderlichkeit, Aktualisierungen und Aktualität

Während Post-Nachrichten eine feste maximale Zeichenanzahl haben können, besteht die JSON-Beschreibung eines Post aus über 100 Attributen. Dazu gehören Attribute wie wer gepostet hat, zu welchem Zeitpunkt, ob es sich um einen Original-Post oder einen Retweet handelt, sowie ein Array von erstklassigen Objekten wie Hashtags, Erwähnungen und geteilten Links. Für das Konto, das gepostet hat, gibt es ein User- (oder Actor-) Objekt mit einer Vielzahl von Attributen, die das Profil des Nutzers und weitere Kontometadaten bereitstellen. Profile enthalten eine kurze biografische Beschreibung, einen Heimatort (Freitext), die bevorzugte Sprache und einen optionalen Website-Link. Einige Kontometadaten ändern sich nie (z. B. numerische user id und Erstellungsdatum), einige verändern sich langsam im Laufe der Zeit, während andere Attribute häufiger wechseln. Menschen wechseln den Job und ziehen um. Unternehmen aktualisieren ihre Informationen. Wenn Sie historische Posts erfassen, ist es wichtig zu verstehen, dass einige Metadaten so vorliegen, wie sie waren, als der Post veröffentlicht wurde, während andere Metadaten dem Stand zum Zeitpunkt der Einreichung der query entsprechen. Bei allen historischen APIs werden die Profilbeschreibung des Nutzers, der Anzeigename und die „Home“-Attribute des Profils auf die Werte zum Zeitpunkt der Abfrage aktualisiert.

„Native“-Medien

X.com und die X‑Mobile‑Apps unterstützen das Hinzufügen von Fotos und Videos zu Posts, indem Sie auf eine Schaltfläche klicken und Ihre Fotogalerien durchsuchen. Da sie jetzt als zentrale Aktionen integriert sind, werden auf diese Weise geteilte Videos und Fotos als „native“ Medien bezeichnet. Viele Abfrageoperatoren funktionieren mit diesen „nativen“ Ressourcen, darunter has:videos, has:images und has:media. Diese erfassen nur Medieninhalte, die über X‑Funktionen geteilt wurden. Um andere Medien zu berücksichtigen, die außerhalb der X‑Plattform gehostet werden, sollten Sie Operatoren verwenden, die auf URL‑metadata abstellen. Bevor wir also in die Produktdetails von Historical PowerTrack und Full‑Archive Search eintauchen, machen wir eine Tour durch die Entwicklung von X als Produkt und Plattform im Laufe der Zeit. X‑Zeitleiste Unten finden Sie eine ausgewählte Zeitleiste von X. Die meisten dieser X‑Updates haben in irgendeiner Weise entweder das Nutzerverhalten, die Post‑JSON‑Inhalte, Abfrageoperatoren oder alle drei grundlegend beeinflusst. Betrachtet man X als API‑Plattform, haben die folgenden Ereignisse die JSON‑Payloads beeinflusst, die zur Kodierung von Posts verwendet werden. Diese JSON‑Details wiederum wirken sich darauf aus, wie die historischen APIs von X darauf matchen. Beachten Sie, dass diese Zeitleiste im Allgemeinen präzise, aber nicht vollständig ist.

2006

  • Oktober
    • @replies werden zur Konvention.
    • cashtagstauchenerstmalsauf,dochdieVerwendungfu¨rAktienTickerErwa¨hnungenwirderstAnfang2009u¨blich.cashtags tauchen erstmals auf, doch die Verwendung für Aktien-Ticker-Erwähnungen wird erst Anfang 2009 üblich. cashtags wurden im Juni 2012 zu anklickbaren/durchsuchbaren Links.
  • November – Favoriten eingeführt.

2007

  • Januar – @replies werden zu einem erstklassigen Objekt, mit einer Antwort-Schaltfläche in der UI und in_reply_to-metadata.
  • April – Retweets etablieren sich als Konvention.
  • August – #hashtags werden zu einem zentralen Werkzeug zum Suchen und Organisieren von Posts.

2009

  • Februar - $cashtags werden zur gängigen Konvention für die Diskussion von Börsentickersymbolen.
  • Mai - Retweet-„Beta“ wird eingeführt, mit „Via @“ dem Post-Text vorangestellt.
  • Juni - Verifizierte Accounts werden eingeführt.
  • August - Retweets werden zu einem First-Class-Objekt mit dem Muster „RT @“ und neuen retweet_status-metadata.
  • Oktober - List-Funktion eingeführt.
  • November - Post Geotagging API wird eingeführt und bietet die erste Methode für Nutzer, ihren Standort über Drittanbieter-Apps zu teilen.

2010

  • Juni – X Places für das Geotagging von Posts eingeführt.
  • August – Post-Schaltfläche für Websites gestartet. Erleichterte das Teilen von Links.

2011

  • Mai – Der Follow-Button wurde eingeführt und machte es einfacher, Accounts zu folgen, die mit Websites verknüpft sind.
  • August – Native Fotos wurden eingeführt.

2012

  • Juni – $Cashtags werden zu anklickbaren/suchbaren Links.

2014

2015

  • April - Eine Änderung am Post-UI-Design von X führt dazu, dass weniger Posts mit Geotags versehen werden.
  • Oktober - X Polls eingeführt. Umfragen unterstützten ursprünglich zwei Auswahlmöglichkeiten mit einer 24‑stündigen Abstimmungsdauer. Im November unterstützten Umfragen vier Auswahlmöglichkeiten mit Abstimmungszeiträumen von 5 Minuten bis sieben Tagen. Umfrage-Metadaten wurden im Februar 2017 verfügbar gemacht (nur im angereicherten nativen Format).

2016

2017

  • Februar – X Poll-Metadaten in Post-Metadaten enthalten (nur angereichertes natives Format).
  • April – „Simplified Replies“ eingeführt; dabei werden erwähnte Antwortkonten nicht auf die 140 Zeichen angerechnet („dmw140, Teil 2“).
2018
  • Mai – GDPR-Updates: user.time_zone auf null gesetzt, user.utc_offset auf null gesetzt, user.profile_background_image_url auf Standardwert gesetzt
  • Juni – Aktualisierung der quoteTweet-Formatierung
2022
    1. September – Die Möglichkeit, Posts zu bearbeiten, wird für eine kleine Testgruppe ausgerollt. Bearbeitungsbezogene Metadaten werden, sofern relevant, dem Post-Objekt hinzugefügt. Dazu gehören die Objekte edit_history und edit_controls. Diese Metadaten werden nicht für Posts zurückgegeben, die erstellt wurden, bevor die Bearbeitungsfunktionalität hinzugefügt wurde. Es gibt keine zugehörigen Operatoren für diese Metadaten. Weitere Informationen dazu, wie Post-Bearbeitungen funktionieren, finden Sie unter Edit Posts fundamentals
Filtertipps Die Vertrautheit mit der X-Timeline, wann und wie neue Funktionen hinzugefügt wurden, kann Ihnen helfen, effektivere Abfragen zu erstellen. Hier bedeutet eine Abfrage einen Filter oder eine Regel, die von den historischen X APIs auf das Post-Archiv angewendet wird, wobei PowerTrack-Operatoren verwendet werden, um auf Post-JSON zu matchen. Ein Beispiel ist der Operator lang:, der verwendet wird, um Posts in einer bestimmten Sprache zu matchen. X bietet einen Sprachklassifizierungsdienst (unterstützt über 50 Sprachen), und X APIs stellen diese Metadaten im JSON bereit, das für jeden Post generiert wird. Wenn ein Post auf Spanisch verfasst ist, wird das JSON-Attribut „lang“ auf „es“ gesetzt. Wenn Sie also einen Filter mit der Klausel lang:es erstellen, wird er nur auf als Spanisch klassifizierte Post-Nachrichten matchen. Die Timeline-Informationen können auch helfen, die empfangenen Post-Daten besser zu interpretieren. Angenommen, Sie untersuchen das Teilen von Inhalten zu den Olympischen Sommerspielen 2008 und 2012. Wenn Sie nur den Operator is:retweet anwenden, um auf Retweets zu matchen, würden 2008 keine Daten matchen. Für 2012 gäbe es jedoch wahrscheinlich Millionen von Retweets. Daraus könnten Sie fälschlicherweise schließen, dass 2008 Retweets keine gängige Nutzerpraxis waren oder dass einfach niemand zu diesen Olympischen Spielen retweetet hat. Da Retweets 2009 zu einem First-Class-Objekt wurden, müssen Sie eine Regelklausel „RT @“ hinzufügen, um sie 2008 zu identifizieren. Sowohl Retweets als auch die Sprachklassifizierung von Posts sind Beispiele für Post-Attribute mit einer langen Historie und vielen Produktdetails. Nachfolgend besprechen wir weitere Details zu diesen und anderen Attributklassen, die für das Matchen und das Verständnis von X Data wichtig sind.

Erkennen von False Negatives

Beim Erstellen von Filtern ist ein wichtiger Punkt, dass die metadata, auf die Operatoren matchen, jeweils ein „Geburtsdatum“ haben. Wenn Sie einen Filter mit einem Operator erstellen, der auf metadata wirkt, die erst nach dem Zeitpunkt eingeführt wurde, zu dem der Post veröffentlicht wurde, erhalten Sie ein False Negative. Angenommen, Sie interessieren sich für alle Posts, die „snow“ erwähnen und ein Video teilen. Wenn Sie eine Regel mit dem Operator has:videos erstellen, der auf Posts mit nativen Videos matcht, wird diese Klausel keine Posts vor 2015 erfassen. Das Teilen von Videos war auf X jedoch lange vor 2015 üblich. Zuvor teilten Nutzer Links zu extern gehosteten Videos, doch 2015 hat X neue Funktionen zum direkten „Teilen von Videos“ in die Plattform integriert. Um diese älteren relevanten Posts zu finden, würden Sie eine Regelklausel wie url:"youtube.com" aufnehmen. Beachten Sie, dass es bei den Search APIs einige Fälle gibt, in denen metadata „nachträglich befüllt“ wurden, als der Index neu aufgebaut wurde. Ein gutes Beispiel sind cashtags,dieseit2009weitverbreitetsind,umAktiensymbolezudiskutieren.Nachdemdercashtags, die seit 2009 weit verbreitet sind, um Aktiensymbole zu diskutieren. Nachdem der cashtag-Operator 2015 eingeführt wurde, wurde der Search-Index neu aufgebaut, und dabei wurde die Symbol-Entität aus allen Post-Texten extrahiert – einschließlich der frühen Zeit 2006, als „hauptsa¨chlichalsSlangverwendetwurde;Ihopeit“ hauptsächlich als Slang verwendet wurde; „I hope it now oon!“.

Identifizieren und Filtern von Post-Attributen, die für Ihren Anwendungsfall wichtig sind

Einige Metadaten, wie numerische X-Konto-IDs, existieren seit dem ersten Tag (und sind ein Beispiel für Kontometadaten, die sich nie ändern). Andere Metadaten wurden erst lange nach dem Start von X im Jahr 2006 eingeführt. Beispiele für neu eingeführte Metadaten sind Metadaten zu Retweets, Post-Standorte, URL-Titel und -Beschreibungen sowie „native“ Medien. Nachfolgend sind einige der gebräuchlichsten Arten von Post-Attributen aufgeführt, die durch diese Updates der X‑Plattform grundlegend beeinflusst wurden. Das Filter-/Abgleichsverhalten hängt in den meisten Fällen davon ab, welche historische Post-API verwendet wird. Um zu bestimmen, welches Produkt am besten zu Ihrer Forschung und Ihrem Anwendungsfall passt, enthalten die unten bereitgestellten Attributdetails übergeordnete Produktinformationen.

X-Profile

Da X im Kern ein globaler Kommunikationskanal in Echtzeit ist, liegt bei Forschung mit Post-Daten der Schwerpunkt häufig darauf, wer kommuniziert. Oft ist es hilfreich zu wissen, wo ein X Nutzer beheimatet ist. Zu wissen, dass die Account-Bio Hinweise auf Interessen und Hobbys enthält, kann häufig zu relevanten Posts führen. Es ist sehr üblich, gezielt Posts von relevanten Accounts zu erfassen. Profilattribute sind für all diese Anwendungsfälle entscheidend. Jeder Account auf X hat ein Profil, das Metadaten wie X @handle, Anzeigename, eine kurze Bio, Heimatort (Freitext, der von einem Nutzer eingegeben wird), Anzahl der Follower und vieles mehr enthält. Einige Attribute ändern sich nie, etwa die numerische Benutzer-id und das Erstellungsdatum des Accounts. Andere ändern sich üblicherweise von Tag zu Tag, Woche zu Woche oder Monat zu Monat, wie die Anzahl der veröffentlichten Posts sowie die Anzahl der gefolgten Accounts und der Follower. Weitere Account-Attribute können sich ebenfalls jederzeit ändern, neigen aber dazu, seltener zu wechseln: Anzeigename, Heimatort und Bio. Die JSON-Payload für jeden Post enthält Metadaten zum Account-Profil des Autors. Handelt es sich um einen Retweet, enthält sie außerdem Profilmetadaten für den Account, der den ursprünglichen Post veröffentlicht hat. Die Veränderlichkeit der Profilmetadaten eines Posts hängt vollständig vom verwendeten historischen Produkt ab. Die Search APIs liefern historische Posts mit den Profileinstellungen so, wie sie zum Zeitpunkt des Abrufs sind. Für Historical PowerTrack gilt: Das Profil ist so, wie es zum Zeitpunkt der Veröffentlichung des Posts war, mit Ausnahme von Daten vor 2011. Für Posts vor 2011 spiegeln die Profilmetadaten das Profil wider, wie es im September 2011 war.

Original-Post und Retweets

Retweets sind ein weiteres Beispiel dafür, wie nutzergetriebene Konventionen zu offiziellen Objekten werden. Retweeting entstand als Möglichkeit, Inhalte an andere zu „weiterleiten“. Es begann als manueller Prozess des Kopierens/Einfügens eines Post und des Voranstellens eines „RT @“-Musters. Dieser Prozess wurde schließlich über eine neue Retweet-Schaltfläche automatisiert, komplett mit neuer JSON metadata. Der „offizielle“ Retweet war geboren, und die Aktion des Retweetens wurde zu einem erstklassigen Post-Ereignis. Zusammen mit der neuen Retweet-Schaltfläche wurden neue metadata eingeführt, etwa die vollständige Payload des ursprünglichen Post. Ob ein Post original oder geteilt ist, ist ein gängiger Filter-Schalter. In manchen Fällen wird nur Originalinhalt benötigt. In anderen Fällen steht die Interaktion mit Posts im Vordergrund, sodass Retweets entscheidend sind. Der PowerTrack-Operator is:retweet ermöglicht es Nutzern, Retweets entweder einzuschließen oder auszuschließen. Wenn data aus der Zeit vor August 2009 abgerufen werden, benötigen Nutzer zwei Strategien für das Abgleichen von Retweets (oder das Nicht-Abgleichen). Vor August 2009 muss die Post-Nachricht selbst mithilfe exakter Phrasenübereinstimmung auf Treffer für das „RT @“-Muster überprüft werden. Für Zeiträume nach August 2009 ist der Operator is:retweet verfügbar.

Sprachklassifizierungen von Posts

Die Sprache, in der ein Post verfasst ist, ist häufig von Interesse. Die Post-Sprache kann helfen, den Standort eines Posts abzuleiten, und oft wird für Analyse oder Darstellung nur eine bestimmte Sprache benötigt. (X-Profile haben außerdem eine bevorzugte Spracheinstellung.) Beim Filtern nach der Sprachklassifizierung eines Posts unterscheiden sich die historischen Produkte von X (Search API und Historical PowerTrack) deutlich. Als das Search-Archiv aufgebaut wurde, wurden alle Posts nachträglich mit der X-Sprachklassifizierung versehen. Daher ist der Operator lang: für das gesamte Post-Archiv verfügbar. Bei Historical PowerTrack sind die Sprachklassifizierungs-Metadaten von X im Archiv ab dem 26. März 2013 verfügbar. 

Georeferenzierung von Posts

Zu wissen, wo ein Post veröffentlicht wurde (d. h. ihn georeferenzieren zu können), ist für viele Anwendungsfälle wichtig. Es gibt drei Hauptmethoden zur Georeferenzierung von Posts:
  • Geografische Verweise im Post-Inhalt
  • Vom Nutzer mit Geotags versehene Posts
  • Vom Nutzer im Account-Profil festgelegter „Home“-Standort
Geografische Verweise in einer Post-Nachricht
Das Abgleichen geografischer Verweise in der Post-Nachricht ist zwar oft die anspruchsvollste Methode, da es von lokalem Wissen abhängt, steht aber für das gesamte Post-Archiv als Option zur Verfügung. Hier ist ein Beispiel für einen georeferenzierten Treffer aus dem Jahr 2006 für den Großraum San Francisco, basierend auf einem „golden gate“-Filter: https://x.com/biz/statuses/28311
Vom Nutzer geo‑getaggte Posts
Im November 2009 führte X seine Post‑Geotagging‑API ein, mit der Posts mit einem exakten Standort versehen werden konnten. Im Juni 2010 führte X X Places ein, die ein geografisches Gebiet auf der Ebene eines Veranstaltungsorts, eines Viertels oder einer Stadt repräsentieren. Ungefähr 1–2 % der Posts sind auf eine der beiden Arten geo‑getaggt. Der verfügbare Geotagging‑Verlauf hängt von der verwendeten Historical API ab. Mit den Search APIs war es ab März 2010 möglich, Posts mit einigen Geo Operators abzugleichen, mit anderen ab Februar 2015. Wenn Sie Historical PowerTrack verwenden, beginnt die Georeferenzierung am 1. September 2011. Beim Aufbau des Historical‑PowerTrack‑Archivs wurden alle Geotags vor diesem Datum nicht berücksichtigt.
Vom Nutzer festgelegter „Home“-Ort im Kontoprofil
Alle X Nutzer haben die Möglichkeit, ihren Profilstandort festzulegen, der ihren Heimatort angibt. Millionen von X Nutzern machen diese Angabe, was die Menge an Geodaten im X Firehose erheblich erhöht. Diese Standort-metadata ist eine nicht normalisierte, von Nutzern erzeugte Freiform-Zeichenkette. Ungefähr 30 % der Accounts verfügen über Profil-Geo-metadata, die auf Länderebene aufgelöst werden kann. Wie bei Post-Geo hängen die Abgleichmethoden und die verfügbaren Zeiträume von der verwendeten Historical API ab. Historical PowerTrack ermöglicht es Nutzern, eigene benutzerdefinierte Abgleiche dieser Freiform-Zeichenketten vorzunehmen. Um diesen Prozess zu erleichtern, stellt X außerdem eine Profile Geo Enrichment bereit, die nach Möglichkeit Geocoding durchführt und normalisierte metadata sowie entsprechende Operators liefert. Profile Geo Operators sind sowohl in Historical PowerTrack als auch in den Search APIs verfügbar. In Historical PowerTrack sind diese Profil-Geo-metadata ab Juni 2014 verfügbar. In den Search APIs sind diese metadata ab Februar 2015 verfügbar. Das Teilen von Webseiten-Links, Fotos und Videos gehört seit jeher zu den grundlegenden Anwendungsfällen von X. Früh in der Geschichte von X bedeuteten all diese Aktionen, dass ein URL-Link direkt in die Post-Nachricht eingefügt wurde. 2011 integrierte X das direkte Teilen von Fotos in die Benutzeroberfläche. 2016 kamen native Videos hinzu. Vor diesem Hintergrund gibt es eine Vielzahl von Filter-Operatoren zur Erkennung dieser Inhalte. Es gibt Operatoren, die prüfen, ob Posts geteilte Links, Fotos oder Videos enthalten. Da die meisten auf X geteilten URLs verkürzt werden, um weniger Zeichen eines Posts zu verbrauchen (z. B. durch Dienste wie bitly oder tinyurl), stellt X Datenanreicherungen bereit, die eine vollständige, expandierte URL erzeugen, auf die gefiltert werden kann. Wenn Sie beispielsweise Posts finden möchten, die Links zu Beiträgen über X und Frühwarnsysteme enthalten, würde ein Filter, der sich auf „severe weather communication“ bezieht, mit einem Post übereinstimmen, der diese URL http://bit.ly/1XV1tG4 enthält. Im März 2012 wurde die expanded URL enrichment eingeführt. Zuvor enthielten die Post-Payloads nur die vom Nutzer bereitgestellte URL. Wenn der Nutzer also eine verkürzte URL einfügte, war es schwierig, auf (expandierte) relevante URLs zu filtern. Sowohl bei Historical PowerTrack als auch bei den Search APIs sind diese metadata ab März 2012 verfügbar. Im Juli 2016 wurde die erweiterte URL-Anreicherung eingeführt. Diese Version stellt den HTML-Titel und die Beschreibung einer Website in der Post-Payload bereit, zusammen mit Operatoren zum Filtern danach. Mit Historical PowerTrack werden diese metadata im Juli 2016 verfügbar. Mit den Search APIs tauchen diese metadata ab Dezember 2014 auf. Im September 2016 führte X „native attachments“ ein, bei denen ein nachgestellter geteilter Link nicht auf das Zeichenlimit von 140 Post-Zeichen angerechnet wird. Beide URL-Anreicherungen gelten weiterhin für diese geteilten Links. Weitere produktspezifische Details zur URL-Filterung finden Sie in den entsprechenden Artikeln.
I