Passer au contenu principal
Chaque objet de l’API X — publications, utilisateurs, listes, DM, Spaces — possède un identifiant unique. Comprendre le fonctionnement de ces identifiants vous aide à créer des intégrations fiables.

Format d’ID

Les IDs X sont des entiers non signés de 64 bits générés à l’aide d’un système appelé « Snowflake ». Chaque ID contient les informations suivantes :
  • Horodatage — Moment où l’objet a été créé
  • Numéro de worker — Serveur qui a généré l’ID
  • Numéro de séquence — Ordre au cours de cette milliseconde
Cela signifie que les IDs sont approximativement ordonnés dans le temps : les IDs plus élevés représentent généralement des objets plus récents.
Les IDs sont uniques à l’échelle de l’ensemble de X, et non pas seulement au sein d’un seul type d’objet.

Représentation en chaîne de caractères vs en entier

Utilisez toujours des identifiants sous forme de chaînes de caractères dans votre code. Certains langages de programmation (comme JavaScript) ne peuvent pas représenter avec précision les entiers sur 64 bits.
En JavaScript, les entiers sont limités à 53 bits. Cela entraîne une perte de précision avec de grands identifiants :
// This loses precision!
const id = 10765432100123456789;
console.log(id.toString()); // "10765432100123458000" — incorrect !

// Use strings instead
const id = "10765432100123456789";
console.log(id); // "10765432100123456789" — correct!

Versions de l’API

VersionFormat d’identifiant
X API v2Les identifiants sont renvoyés sous forme de chaînes de caractères par défaut
X API v1.1Renvoie à la fois id (entier) et id_str (chaîne de caractères) — utilisez toujours id_str

Utilisation des id

Stockage des ID

Stockez les ID sous forme de chaînes de caractères ou d’entiers 64 bits dans votre base de données :
Base de donnéesType recommandé
PostgreSQLBIGINT ou TEXT
MySQLBIGINT UNSIGNED ou VARCHAR(20)
MongoDBChaîne de caractères
SQLiteTEXT (les entiers SQLite sont limités à 63 bits)

Comparaison des ID

Lors de la comparaison des ID pour établir un ordre chronologique :
# Python - safe for 64-bit integers
if int(id1) > int(id2):
    print("id1 is newer")

# JavaScript - comparer en tant que chaînes (fonctionne lexicographiquement pour les ID de même longueur)
# Ou utiliser BigInt
if (BigInt(id1) > BigInt(id2)) {
    console.log("id1 is newer");
}

Types d’identifiants courants

ObjetExemple d’IDRemarques
Publication (Tweet)1234567890123456789Également appelé ID de Tweet
Utilisateur2244994945Les comptes plus anciens ont des ID plus courts
Liste1234567890
Space1YqGodQbNXDxvAlphanumérique, pas au format Snowflake
Événement de DM1234567890123456789

Dictionnaire de données

Consultez les champs id pour chaque type d’objet.

Recherche de publications

Récupérez les publications par id.