API X / Twitter

X / Twitter Publications de l’utilisateur API

Obtenez la chronologie de l’onglet Publications du profil d’un compte X (Twitter) par identifiant. Les résultats suivent l’ordre du profil : une publication épinglée peut apparaître en premier, suivie des publications rédigées par ailleurs en ordre antéchronologique, des republications, des citations et des suites de fil du même auteur.

0,45 $US/1k req, paiement à la requête, sans abonnement.

@buildwithjonah / X
x.com/buildwithjonah

@buildwithjonah

BFollow

@buildwithjonah

PostsRepliesHighlightsMedia

Pinned

B

@buildwithjonah· Sep 26, 2024

Spent the last 6 months building a data pipeline that normalizes 40 scraper APIs into one schema. Here is what broke, and what I would do differently. A thread.

964123,820
Ce que l’API a renvoyétweets[0]
{
"id": "1842093771280384512",
"url": "https://x.com/buildwithjonah/status/1842093771280384512",
"text": "Spent the last 6 months building a data pipeline that normalizes 40 scraper APIs into one schema. Here is what broke, and what I would do differently. A thread.",
"createdUtc": 1727366400,
"lang": "en",
"likes": 3820,
"retweets": 412,
"replies": 96,
+12 champs de plus
}
Disponibilité
99,87%
30d · 34 880 appels
Requêtes
34 880
30 j · par semaine, 12 dernières sem.
Réponse
2,0s
médiane · 30d

Tarifs et fournisseurs

Tarifs de l’API X / Twitter Publications de l’utilisateur : une API, 3 fournisseurs interchangeables

Le fournisseur le moins cher répond en premier. S’il échoue, le suivant prend le relais dans le même appel.

Vous payez
4,50 $US
0,45 $US/1k req, seulement pour ce que vous utilisez. Aucun forfait mensuel.
Vos 222 premières requêtes sont gratuites avec le solde de départ de 0,10 $US.

Essayer

Obtenez X / Twitter Publications de l’utilisateur en une requête

requireFieldsarray
Facultatif ; omettez-le et le routage est inchangé, la source la moins chère répondant. Nommez les champs de sortie que cette requête doit pouvoir renvoyer, par exemple `isPinned` or `isReply`, et elle n’est servie que par une source qui les renvoie tous. Les champs que vous ne nommez pas sont quand même renvoyés chaque fois que la source qui répond les possède. Cela peut augmenter votre prix : quand la source la moins chère ne peut pas renvoyer un champ nommé, une source plus chère répond, et vous êtes facturé à son prix. Un champ nommé peut quand même être absent sur un tweet qui en est réellement dépourvu. Nommer une combinaison qu’aucune source unique ne renvoie ensemble est refusé comme entrée invalide, sans frais. Sur un parcours paginé, il ne s’applique qu’à la première page ; les pages suivantes restent sur la source choisie pour cette page, au prix qui a été annoncé.
Ouvrir dans
Obtenir une clé gratuite
Exemple de réponse
Les exécutions gratuites ne renvoient que les 3 premiers résultats. Alimentez une clé pour obtenir la réponse complète.
{
  "found": true,
  "data": {
    "tweets": [
      {
        "id": "1842093771280384512",
        "url": "https://x.com/buildwithjonah/status/1842093771280384512",
        "text": "Spent the last 6 months building a data pipeline that normalizes 40 scraper APIs into one schema. Here is what broke, and what I would do differently. A thread.",
        "createdUtc": 1727366400,
        "lang": "en",
        "likes": 3820,
        "retweets": 412,
        "replies": 96,
        "quotes": 28,
        "views": 284000,
        "bookmarks": 1540,
        "isReply": false,
        "isPinned": true,
        "media": [],
        "conversationId": "1842093771280384512",
        "source": "Twitter Web App",
        "authorId": "1401882093771280384",
        "authorName": "Jonah Ruiz",
        "authorHandle": "buildwithjonah",
        "authorImage": "https://pbs.twimg.com/profile_images/1401882093771280384/jonah_400x400.jpg"
      },
      {
        "id": "1841002881044099072",
        "url": "https://x.com/buildwithjonah/status/1841002881044099072",
        "text": "Shipped a small tool today that diffs API response schemas across versions. Saved me from a nasty silent break last week.",
        "createdUtc": 1727280000,
        "lang": "en",
        "likes": 640,
        "retweets": 52,
        "replies": 18,
        "quotes": 2,
        "views": 41200,
        "bookmarks": 210,
        "isReply": false,
        "isPinned": false,
        "media": [
          {
            "type": "photo",
            "url": "https://pbs.twimg.com/media/F9j1QoQWkAA_diff_tool.jpg",
            "width": 1600,
            "height": 1000
          }
        ],
        "conversationId": "1841002881044099072",
        "source": "Twitter for iPhone",
        "authorId": "1401882093771280384",
        "authorName": "Jonah Ruiz",
        "authorHandle": "buildwithjonah",
        "authorImage": "https://pbs.twimg.com/profile_images/1401882093771280384/jonah_400x400.jpg"
      },
      {
        "id": "1839881220337844224",
        "url": "https://x.com/buildwithjonah/status/1839881220337844224",
        "text": "@dataeng_marta Totally agree, cursor pagination beats offset once you get past a few hundred thousand rows.",
        "createdUtc": 1727107200,
        "lang": "en",
        "likes": 88,
        "retweets": 4,
        "replies": 6,
        "quotes": 0,
        "views": 6200,
        "bookmarks": 12,
        "isReply": true,
        "isPinned": false,
        "media": [],
        "conversationId": "1839880002114899968",
        "source": "Twitter Web App",
        "authorId": "1401882093771280384",
        "authorName": "Jonah Ruiz",
        "authorHandle": "buildwithjonah",
        "authorImage": "https://pbs.twimg.com/profile_images/1401882093771280384/jonah_400x400.jpg"
      }
    ],
    "nextCursor": "DAABCgABGZ3xw5A2xVIKAAIY__posts_page2"
  }
}

Référence complète des paramètres et de la réponse : chaque champ, type et exemple de cet endpoint.

Référence

Une requête, une seule forme de réponse.

Chaque champ que vous envoyez et chaque champ que vous recevez, avec un vrai exemple.

Dernière vérification : 2026-10-07 · disponibilité et latence mesurées sur 30d

Corps de la requête

JSON, envoyé à cet endpoint.

  • handlestring

    buildwithjonah

    Identifiant Twitter/X sans le @ initial.

  • cursorstring

    Curseur de pagination opaque issu du nextCursor d’une réponse précédente. Omettez-le pour la première page.

  • requireFieldsarray

    Facultatif ; omettez-le et le routage est inchangé, la source la moins chère répondant. Nommez les champs de sortie que cette requête doit pouvoir renvoyer, par exemple `isPinned` or `isReply`, et elle n’est servie que par une source qui les renvoie tous. Les champs que vous ne nommez pas sont quand même renvoyés chaque fois que la source qui répond les possède. Cela peut augmenter votre prix : quand la source la moins chère ne peut pas renvoyer un champ nommé, une source plus chère répond, et vous êtes facturé à son prix. Un champ nommé peut quand même être absent sur un tweet qui en est réellement dépourvu. Nommer une combinaison qu’aucune source unique ne renvoie ensemble est refusé comme entrée invalide, sans frais. Sur un parcours paginé, il ne s’applique qu’à la première page ; les pages suivantes restent sur la source choisie pour cette page, au prix qui a été annoncé.

Vous envoyez. Un petit corps JSON. Les valeurs affichées sont des exemples à remplacer par les vôtres.

Réponse

JSON, une valeur d’exemple par champ.

  • foundboolean

    true

each tweetdata.tweets[]
  • idstring

    1842093771280384512

  • urlstring

    https://x.com/buildwithjonah/status/1842093771280384512

  • textstring

    Spent the last 6 months building a data pipeline that normalizes 40 scraper APIs into one schema. Here is what broke, and what I would do differently. A thread.

  • createdUtcnumber

    1727366400

  • langstring

    en

  • likesnumber

    3820

  • retweetsnumber

    412

  • repliesnumber

    96

  • quotesnumber

    28

  • viewsnumber

    284000

  • bookmarksnumber

    1540

  • isReplybooleanpeut exiger

    false

  • isPinnedbooleanpeut exiger

    true

  • mediaarray
  • conversationIdstring

    1842093771280384512

  • sourcestring

    Twitter Web App

  • authorIdstring

    1401882093771280384

  • authorNamestring

    Jonah Ruiz

  • authorHandlestring

    buildwithjonah

  • authorImagestring

    https://pbs.twimg.com/profile_images/1401882093771280384/jonah_400x400.jpg

datadata
  • nextCursorstring

    DAABCgABGZ3xw5A2xVIKAAIY__posts_page2

Vous recevez. Des champs nommés et typés, dans la même forme quelle que soit la source qui répond.

FAQ

À propos de l’API X / Twitter Publications de l’utilisateur

L’API X / Twitter Publications de l’utilisateur d’AnyAPI renvoie des données X / Twitter en JSON normalisé à partir d’un appel POST à /v1/run/twitter.user_posts. Obtenez la chronologie de l’onglet Publications du profil d’un compte X (Twitter) par identifiant. Les résultats suivent l’ordre du profil : une publication épinglée peut apparaître en premier, suivie des publications rédigées par ailleurs en ordre antéchronologique, des republications, des citations et des suites de fil du même auteur. AnyAPI route chaque requête sur 3 sources et bascule automatiquement quand l’une échoue. Elle coûte à partir de 0,45 $US pour 1 000 requêtes, en dollars US, sans abonnement et sans minimum mensuel. Ces 30 derniers jours, 99,9% des appels X / Twitter Publications de l’utilisateur passés par AnyAPI ont réussi, avec un temps de réponse médian de 2,0 secondes, sur 34 880 appels mesurés.

Elle coûte à partir de 0,45 $US pour 1 000 requêtes, en dollars US, sans abonnement et sans minimum mensuel. Vous alimentez un portefeuille en USD et chaque appel le débite. Certaines requêtes échouées financées par le portefeuille entraînent des frais de traitement que nous répercutons au prix coûtant, sans marge ; la réponse d’erreur indique le montant facturé.

Obtenez la chronologie de l’onglet Publications du profil d’un compte X (Twitter) par identifiant. Les résultats suivent l’ordre du profil : une publication épinglée peut apparaître en premier, suivie des publications rédigées par ailleurs en ordre antéchronologique, des republications, des citations et des suites de fil du même auteur. La réponse est du JSON normalisé avec la même enveloppe que celle de tous les endpoints AnyAPI, donc analyser un second endpoint revient à changer l’URL et rien d’autre.

Ces 30 derniers jours, 99,9% des appels X / Twitter Publications de l’utilisateur passés par AnyAPI ont réussi, avec un temps de réponse médian de 2,0 secondes, sur 34 880 appels mesurés. Ce sont les propres mesures d’AnyAPI du trafic passant par la passerelle, recalculées en continu, et non un objectif de niveau de service publié.

Oui. Un nouveau compte AnyAPI démarre avec 0,10 $US de solde gratuit, sans carte, ce qui couvre 222 appels X / Twitter Publications de l’utilisateur à 0,00045 $US chacun.

AnyAPI interroge la suivante de ses 3 sources dans la même requête, la moins chère d’abord, donc la panne d’une source ne fait pas échouer votre appel.

Envoyez une requête POST à https://api.getanyapi.com/v1/run/twitter.user_posts avec votre clé AnyAPI dans un en-tête « Authorization: Bearer » et l’entrée en corps JSON. La même clé et le même portefeuille fonctionnent sur tous les endpoints AnyAPI.

Non. Vous ajoutez des dollars US à un solde AnyAPI prépayé unique et chaque requête le débite. Il n’y a ni forfait mensuel ni minimum, et le même solde paie tous les endpoints AnyAPI.

Oui. Installez @getanyapi/sdk depuis npm pour TypeScript ou getanyapi depuis pip pour Python. Les deux appellent chaque endpoint AnyAPI avec la même clé, et n’importe quel client HTTP fonctionne aussi.

Oui. Un agent peut se connecter au serveur MCP d’AnyAPI à https://api.getanyapi.com/mcp, ou créer sa propre clé d’essai gratuit avec un seul POST non authentifié vers https://api.getanyapi.com/agent/signup et appeler cet endpoint en HTTP.