Peristiwa

Amplop

Setiap peristiwa memiliki amplop yang sama; d membawa muatan khusus tipe yang dijelaskan di bawah.

BidangTipeArti
vintVersi amplop. 1 saat ini
tstringTipe peristiwa, dari tabel di bawah
opcreate | update | deletecreate, update (pengayaan id yang sama) atau delete
idstringIdentitas stabil. Lakukan deduplikasi berdasarkan ini
tsint (ms)Kapan terjadi di X, ms sejak epoch. X tidak memberi tahu kapan profil berubah, kapan terjadi mengikuti atau berhenti mengikuti, kapan pengikut terverifikasi datang, atau kapan unggahan dihapus: untuk peristiwa itu, ini adalah saat kami mendeteksinya
sidstringPosisi stream untuk pemutaran ulang; ada di stream dan dalam riwayat
target.idstringId numerik X dari akun yang dipantau (untuk search.match, dari penulis unggahan)
target.screen_namestringHandle akun yang dipantau
target.namestringNama tampilan akun
dobjectMuatan khusus tipe

Tipe peristiwa

TipeKategoriArti
tweet.createUnggahanAkun mengunggah sesuatu yang baru
tweet.replyUnggahanAkun membalas seseorang; reply_to membawa unggahan yang dibalas, beserta teks dan medianya
tweet.retweetUnggahanAkun mengunggah ulang unggahan seseorang; retweet_of membawa unggahan aslinya secara lengkap
tweet.quoteUnggahanAkun mengutip seseorang; quoted membawa unggahan yang dikutip secara lengkap
tweet.editUnggahanAkun mengedit sebuah unggahan; peristiwa membawa versi baru, dan edit_of versi yang digantikannya
tweet.deleteUnggahanSebuah unggahan yang pernah dipublikasikan akun telah hilang
profile.nameProfilNama tampilan berubah
profile.screen_nameProfilHandle berubah
profile.bioProfilBio berubah
profile.locationProfilLokasi berubah
profile.urlProfilTautan profil berubah
profile.avatarProfilAvatar berubah; old dan new adalah URL gambar
profile.bannerProfilBanner berubah; old dan new adalah URL gambar
profile.pinnedProfilUnggahan tersemat berubah; tweet dan old_tweet membawa unggahannya sendiri
profile.verifiedProfilLencana verifikasi muncul atau menghilang
follow.addGraf pengikutanAkun mulai mengikuti seseorang; user adalah profil lengkap akun tersebut
follow.removeGraf pengikutanAkun berhenti mengikuti seseorang
followers.verified.addGraf pengikutanSebuah akun terverifikasi mulai mengikutinya; user membawa bio, jumlah, lokasi, tanggal bergabung
account.statusAkunAkun menjadi terkunci, ditangguhkan atau tidak tersedia, atau aktif kembali
search.matchPencarianSeseorang mengunggah sesuatu yang cocok dengan salah satu kata kunci Anda; keyword menyebutkan yang mana, author adalah profil lengkapnya

X tidak menyediakan stempel waktu untuk "mulai mengikuti" atau "mendapat pengikut", jadi untuk peristiwa tersebut ts adalah saat kami mendeteksi perubahannya.

Anda tidak harus menerima setiap tipe dari setiap akun. Memilih tipe peristiwa menjelaskan cara menerima sebagian saja, misalnya hanya pengikut terverifikasi baru.

Muatan

Lima bentuk muatan mencakup semua delapan belas tipe.

Muatan Tweet

d dari tweet.create, tweet.reply, tweet.retweet dan tweet.quote, serta dasar dari search.match.

BidangTipeArti
tweet_idstringId unggahan, sebagai string
kindtweet | reply | retweet | quoteJenis unggahannya
textstringTeks lengkap (termasuk unggahan panjang)
langstring | nullBahasa yang dideteksi X
authorUserAkun yang mengunggahnya, sebagai User lengkap — objek yang sama dengan penulis search.match: handle, nama, bio, avatar, banner, hitungan, verifikasi, lokasi, tautan, dan tanggal bergabung. Pada frame pertama yang tipis, ini akun sebagaimana terakhir dibaca; update membawanya sebagaimana dibaca bersama unggahan
reply_toBrief+ | nullUntuk balasan: unggahan yang dibalas — sebuah Brief ditambah screen_name, tweet_id dan user_id penulisnya
retweet_ofBrief | nullUntuk unggahan ulang: unggahan aslinya
quotedBrief | nullUntuk kutipan: unggahan yang dikutip
mediastring[]URL gambar polos, satu per item media
media_itemsMedia[]Setiap item media dengan tipe, varian video dan dimensinya
urlsstring[]Tautan yang diperluas dalam unggahan
articleArticle | nullUntuk unggahan yang menautkan Artikel X: artikel tersebut
counts{reply, rt, like, quote, bookmark}Jumlah balasan, unggahan ulang, suka, kutipan dan markah saat kami membacanya
viewsint | nullJumlah tayangan, saat X mengeksposnya
urlstringTautan kanonis ke unggahan
fullboolfalse pada frame create pertama yang tipis; true begitu peristiwa membawa unggahan utuh
kind_finalbooltrue bila kind sudah pasti. false hanya pada frame pertama yang tipis dengan kind berupa tweet: unggahan itu masih bisa ternyata kutipan, dan update pada id yang sama memastikannya
kind_wastweet | null (update only)Hanya pada update yang memastikan jenis unggahan, dan hanya bila frame pertama menyebut jenis lain: jenis yang dimiliki frame itu (tweet untuk unggahan yang ternyata kutipan)
edit_ofBrief | nullPada tweet.edit: versi yang digantikan versi ini (id-nya, serta teks dan penulisnya bila kami memilikinya)
contoh
{
  "v": 1,
  "t": "tweet.create",
  "op": "create",
  "id": "tweet:2097879002992070835",
  "ts": 1789012345678,
  "sid": "1789012346012-0",
  "target": {
    "id": "1652541",
    "screen_name": "Reuters",
    "name": "Reuters"
  },
  "d": {
    "tweet_id": "2097879002992070835",
    "kind": "tweet",
    "text": "Ash-covered shoes and a president in crisis…",
    "lang": "en",
    "author": {
      "id": "1652541",
      "screen_name": "Reuters",
      "name": "Reuters",
      "bio": "Top and breaking news, pictures and videos from Reuters.",
      "avatar": "https://pbs.twimg.com/profile_images/1874154135869616128/nJDmubGJ_normal.jpg",
      "banner": "https://pbs.twimg.com/profile_banners/1652541/1573687397",
      "followers": 25900000,
      "following": 1150,
      "tweets": 1080000,
      "location": "Around the world",
      "url": "https://www.reuters.com",
      "verified": true,
      "verified_type": "Business",
      "protected": false,
      "created_at": "2007-03-20T17:46:05Z",
      "category": null
    },
    "reply_to": null,
    "retweet_of": null,
    "quoted": null,
    "media": [
      "https://pbs.twimg.com/media/….jpg"
    ],
    "media_items": [
      {
        "type": "photo",
        "url": "https://pbs.twimg.com/media/….jpg",
        "expanded_url": "https://x.com/Reuters/status/2097879002992070835/photo/1",
        "width": 1200,
        "height": 675
      }
    ],
    "urls": [
      "https://reut.rs/…"
    ],
    "counts": {
      "reply": 12,
      "rt": 40,
      "like": 131,
      "quote": 3,
      "bookmark": 9
    },
    "views": 20411,
    "url": "https://x.com/Reuters/status/2097879002992070835",
    "full": true,
    "kind_final": true
  }
}

Frame create pertama sengaja dibuat tipis: ia membawa id, penulis (author, akun sebagaimana terakhir dibaca) serta teks yang mungkin dipersingkat, sehingga bisa berangkat begitu unggahan terlihat; url sudah menunjuk ke unggahan. Pada saat itu kutipan tidak selalu bisa dibedakan dari unggahan asli, sehingga frame seperti itu menyebut tweet.create dengan kind_final: false. update yang menyusul dengan id yang sama membawa muatan lengkap di atas dan tipe yang sudah pasti: tweet.quote dengan kind_was: "tweet" bila ternyata kutipan.

unggahan yang sama seperti pertama kali disampaikan, sebelum pengayaan
{
  "v": 1,
  "t": "tweet.create",
  "op": "create",
  "id": "tweet:2097879002992070835",
  "ts": 1789012345678,
  "sid": "1789012346012-0",
  "target": {
    "id": "1652541",
    "screen_name": "Reuters",
    "name": "Reuters"
  },
  "d": {
    "tweet_id": "2097879002992070835",
    "kind": "tweet",
    "text": "Ash-covered shoes and a president in crisis…",
    "author": {
      "id": "1652541",
      "screen_name": "Reuters",
      "name": "Reuters",
      "bio": "Top and breaking news, pictures and videos from Reuters.",
      "avatar": "https://pbs.twimg.com/profile_images/1874154135869616128/nJDmubGJ_normal.jpg",
      "banner": "https://pbs.twimg.com/profile_banners/1652541/1573687397",
      "followers": 25900000,
      "following": 1150,
      "tweets": 1080000,
      "location": "Around the world",
      "url": "https://www.reuters.com",
      "verified": true,
      "verified_type": "Business",
      "protected": false,
      "created_at": "2007-03-20T17:46:05Z",
      "category": null
    },
    "url": "https://x.com/Reuters/status/2097879002992070835",
    "full": false,
    "kind_final": false
  }
}

Muatan penghapusan

d dari tweet.delete. Hanya pernah dikirim untuk unggahan yang pernah kami lihat dan kini telah hilang. ts-nya adalah saat penghapusan terdeteksi; waktu unggahan itu sendiri ada di frame create sebelumnya.

BidangTipeArti
tweet_idstringId unggahan yang dihapus
urlstringTempatnya dulu berada
contoh
{
  "v": 1,
  "t": "tweet.delete",
  "op": "delete",
  "id": "tweet:2097879002992070835:delete",
  "ts": 1789012345678,
  "sid": "…",
  "target": {
    "id": "1652541",
    "screen_name": "Reuters",
    "name": "Reuters"
  },
  "d": {
    "tweet_id": "2097879002992070835",
    "url": "https://x.com/Reuters/status/2097879002992070835"
  }
}

Muatan perubahan profil

d dari setiap peristiwa profile.*. op bernilai update untuk semuanya.

BidangTipeArti
fieldstringBidang profil mana yang berubah; kata yang sama seperti setelah profile. pada tipenya
oldanyNilai sebelumnya
newanyNilai baru
tweetBrief (pinned only)Untuk profile.pinned: unggahan yang baru disematkan
old_tweetBrief (pinned only)Untuk profile.pinned: unggahan yang sebelumnya tersemat, jika kami memilikinya
contoh
{
  "v": 1,
  "t": "profile.bio",
  "op": "update",
  "id": "profile:1652541:bio:9c1d2e3f4a5b",
  "ts": 1789012400000,
  "sid": "…",
  "target": {
    "id": "1652541",
    "screen_name": "Reuters",
    "name": "Reuters"
  },
  "d": {
    "field": "bio",
    "old": "Top news and analysis from around the world.",
    "new": "Top news, analysis and video from around the world."
  }
}

Muatan pengikutan

d dari follow.add, follow.remove dan followers.verified.add.

BidangTipeArti
userUserAkun yang satunya, sebagai User lengkap
contoh
{
  "v": 1,
  "t": "follow.add",
  "op": "create",
  "id": "follow:44196397:12:add:496948",
  "ts": 1789012400000,
  "sid": "…",
  "target": {
    "id": "44196397",
    "screen_name": "elonmusk",
    "name": "Elon Musk"
  },
  "d": {
    "user": {
      "id": "12",
      "screen_name": "jack",
      "name": "jack",
      "bio": "…",
      "avatar": "https://pbs.twimg.com/profile_images/…",
      "banner": null,
      "followers": 6400000,
      "following": 4200,
      "tweets": 29000,
      "location": "",
      "url": null,
      "verified": true,
      "verified_type": "blue",
      "protected": false,
      "created_at": "2006-03-21T20:50:14Z",
      "category": null
    }
  }
}

Muatan status akun

d dari account.status. Status adalah active, protected (unggahan hanya terlihat oleh pengikut yang disetujui), suspended (oleh X) atau unavailable (dinonaktifkan, dihapus, atau tidak terlihat karena alasan lain). ts adalah saat kami mendeteksi perubahan.

BidangTipeArti
oldactive | protected | suspended | unavailableStatus sebelumnya
newactive | protected | suspended | unavailableStatus sekarang
reasonstring | nullKata-kata dari X, bila ada (misalnya Suspended)
contoh
{
  "v": 1,
  "t": "account.status",
  "op": "update",
  "id": "account:9000002:status:active>suspended:497010",
  "ts": 1789236000000,
  "sid": "…",
  "target": {
    "id": "9000002",
    "screen_name": "some_account",
    "name": "Some Account"
  },
  "d": {
    "old": "active",
    "new": "suspended",
    "reason": "Suspended"
  }
}

d dari search.match: muatan Tweet ditambah tiga bidang tentang kecocokannya. target pada amplop adalah penulis unggahan, yang tidak harus salah satu target Anda.

BidangTipeArti
keyword.idintId kata kunci yang cocok
keyword.querystringKuerinya
keyword.labelstring | nullLabelnya, jika Anda menyetelnya
authorUserProfil lengkap penulis
author_is_targetbooltrue jika penulis juga merupakan akun yang dipantau pada sistem ini
…TweetPayloadSetiap bidang dari muatan Tweet
contoh
{
  "v": 1,
  "t": "search.match",
  "op": "create",
  "id": "search:12:2097900000000000000",
  "ts": 1789012500000,
  "sid": "…",
  "target": {
    "id": "9000001",
    "screen_name": "some_trader",
    "name": "Some Trader"
  },
  "d": {
    "tweet_id": "2097900000000000000",
    "kind": "tweet",
    "text": "$SOL breaking out…",
    "lang": "en",
    "author": {
      "id": "9000001",
      "screen_name": "some_trader",
      "name": "Some Trader",
      "bio": "…",
      "followers": 1200,
      "verified": false,
      "…": "…"
    },
    "keyword": {
      "id": 12,
      "query": "($SOL OR \"Solana\") -filter:retweets",
      "label": "solana"
    },
    "author_is_target": false,
    "media": [],
    "media_items": [],
    "urls": [],
    "url": "https://x.com/some_trader/status/2097900000000000000",
    "full": true
  }
}