🐥

【2022年 Twitter API】ツイート収集したい人向けのTwitter APIの種類と使い分け

2022/04/24に公開

Twitter API、ややこしくないですか…?

この記事では自分の情報の整理を兼ねて、自分が今理解している範囲で、
ツイート収集に関するTwitter APIの種類についてまとめます。


※この記事は、Zennで公開していた
「【2022年Twitter API】TwitterAPI全然わからん芸人の私がそれでもわかった少しのこと」
を改題して内容修正した記事になります。

Qiitaにも同名の記事を上げているのですが、
元になる記事をZennに載せていたので、念のためZennでも公開します。
内容は同じです。
https://qiita.com/mochi_gu_ma/items/d9237ab75262b1015b48


筆者の理解不足などで、記述に不正確な点があるかもしれません。
気付いた点があればコメントいただけると幸いです。

実際にツイートを収集する方法は、機会があれば別の記事にまとめます。

この記事の想定読者

  • Twitter APIを使ってツイートの収集をしてみたい
  • そのために、Twitter APIの種類について基本的なことを知りたい

なお、この記事ではTwitter API利用の中でも、ツイートを収集することに主眼を置きます。
その他のAPI利用については言及しません。

TwitterAPIの種類

Twitter APIの公式ドキュメントはこちらです。

ツイートを検索(収集)するためのAPIについて、
筆者が理解できている範囲で以下のように整理しました。

API version Access Level Endpoint Plan 備考
v1.1 Standard Recent search -- 要申請、無償
v1.1 Premium 30 day reseach Sandbox 要申請、無償
v1.1 Premium 30 day reseach Premium plan… 要申請、有償
v1.1 Premium Full-archive search Sandbox 要申請、無償
v1.1 Premium Full-archive search Premium plan… 要申請、有償
v1.1 Enterprise: Gnip 2.0 Details unknown -- 詳細不明
v2 Essential Recent search -- Sign upのみで利用可
無償
v2 Elevated Recent search -- 要申請、無償
v2 Elevated+ Details unknown -- 詳細不明
v2 Academic Research Full-archive search -- 学術研究利用に限定
無償

各階層は以下の要素で分かれています。

  1. API version(v1.1/v2)
  2. Access level(Standard,Premium…/Essential,Elevated…)
  3. Endpoint(recent search, 30 day search…)
  4. Plan(sandbox/Premium…)

まず、主な系統として、v1.1v2があります。
現在主要な方はv2なのですが、順番的にv1.1から先に説明します。

v1.1について

v1.1には、以下の3種類のアクセスレベルがあります。

  • Standard v1.1
  • Premium v1.1
  • Enterprise: Gnip 2.0

アクセスレベルの種類によって、取得できるツイート数の上限や、利用できる検索式などが異なります。
下のアクセスレベルになるほどグレードが高く、できることが増えます。

v2のアクセスレベルの表を見る限り、
いずれもv2のElevatedのアクセスレベルが必要なようです。[1]

アクセスレベルの話が二重に出てきているようでややこしいです。
現在申し込むと自動的にv2のアクセスレベルが割り振られて、
Elevatedになれば過去のAPIのバージョン(v1.1)にもアクセスできるようになる、
ということなのでは…と推測しています

Standard

v1.1のStandardでは直近7日間のツイートが収集できます。
ただ、直近7日間のツイートであればv2でも可能です。

v1.1を使うにはElevatedのアクセスレベルが必要なので、
これからツイート収集を始める場合には、基本的にv2の方が良さそうです。[2]

StandardのAPIについては、以下をご参照ください。

Premium

Premiumは基本的に有償で利用するアクセスレベルです。

しかし、Sandboxという無償で利用できるプランもあります。
有償プランと比べるとできることは大きく制限されますが、お金がかからないのはありがたいです。

Premiumで利用可能になるエンドポイントは以下の2種類です。

  • 直近30日分のツイートを収集できる 30 day search
  • 過去のすべてのツイートを収集できる Full-archive search

このPremiumのSandboxを使えば、直近7日間より前のツイートを無償で収集できます。

v2では基本的に直近7日間のツイートしか収集できないため、
ツイート収集可能な期間が長いことは、筆者にとって大きなメリットでした。

ただし、残念ながらSandboxは大量のツイート収集には適していません。
具体的には、以下のようなツイート取得の上限があります。

  • 直近30日分のツイートは最大で25,000件/月
  • 過去のすべてのツイートは最大で5,000件/月

大量のツイートを収集したい場合には、Premiumの有償利用か、v2の利用をおすすめします。
(後ほど説明しますが、v2では直近7日間のツイートを最大200万ツイート収集できます)

とはいえ、有償の場合でも、無制限にツイートを収集できるわけではありません。

たとえば"30 day search"の場合、最小限の$149(日本円だと2万弱?)のプランであれば、
理論的には以下の計算に基づき、最大25万ツイート収集が可能なはずです。

500(Tweets per Request) * 500(Total Requests) = 250,000

Sandboxと比較して、最大で10倍のボリュームです。すごいですね。[3]

Premiumの料金プランについては、以下のページをご参照ください。

また、Premiumで使える検索式は以下に記載があります。

Enterprise

Enterpriseについては、詳細な情報を得られなかったため割愛します。
個人レベルで利用することはほとんどないのではと思います。

v2について

v2には、以下の4つのアクセスレベルがあります。[1:1]

※ 画像再掲

  • Essential
  • Elevated
  • Elevated+
  • Academic Research

基本的にv2で収集できるツイートは直近7日間のツイートに限定されます[4]
例外的に、Academic Researchだけは過去のすべてのツイートを収集できます。

以下、順に説明します。

Essential

Essentialは無料で利用できるアクセスレベルです。
最大50万件/月までツイートを取得できます。

単にSing upすれば使えるようになるようですが、
他のコースよりもできることは限定されます。

Essentialを使ってみて、本格的にツイート収集をしたくなったら
次に説明するElevatedを申請するとよいかと思います。

Elevated

Elevatedも無料で利用できるアクセスレベルです。
最大200万件/月までツイートを取得できます。

また、Elevatedのアクセスレベルであればv1.1のAPIも使えます。

ただし、ElevatedではSing upをすることに加えて、追加の申請が必要になります。
「こういう目的で使いますよ」という内容を英語で送って、審査に通れば使えるようになるはずです。

審査には数日要することもあるようなので、日程に余裕を持って申請することをおすすめします。

筆者は2021年頃に以下のページを参考にさせていただき、申請をしました。

Elevated+

Elevated+はElevatedの上位版のようです。

おそらくv1.1のPremiumに相当する有償版のアクセスレベルだと思います。
詳細はまだ表に記載がありませんでした。"coming soon"とのことです。

Academic Research

Academic Researchはその名のとおり学術研究専用です。
最大1000万件/月までツイートを取得できます。

単に大学生であれば利用できるわけでもなく、
大学院生以上で、研究に利用する明確な目的が必要なようです。[5]

結論: どのアクセスレベル/エンドポイントを利用すればよいのか

  • ツイートの収集をまず試してみたい
    → v2のEssentialがおすすめ
  • より本格的に大量のツイートを収集したい
    → v2のElevatedがおすすめ
  • 直近7日間よりも前のツイートを収集したい
    → まずはv1.1のPremiumのSandboxがおすすめ
    (ただしSign upに加えて、追加の申請が必要)
    より大量のツイートを取得したい場合には有償プランが必要

まとめ

  • ツイートの収集の仕方にはいろいろ種類がある!
  • とりあえずv2のEssentialからはじめるのがおすすめ!

※表再掲

API version Access Level Endpoint Plan 備考
v1.1 Standard Recent search -- 要申請、無償
v1.1 Premium 30 day reseach Sandbox 要申請、無償
v1.1 Premium 30 day reseach Premium plan… 要申請、有償
v1.1 Premium Full-archive search Sandbox 要申請、無償
v1.1 Premium Full-archive search Premium plan… 要申請、有償
v1.1 Enterprise: Gnip 2.0 Details unknown -- 詳細不明
v2 Essential Recent search -- Sign upのみで利用可
無償
v2 Elevated Recent search -- 要申請、無償
v2 Elevated+ Details unknown -- 詳細不明
v2 Academic Research Full-archive search -- 学術研究利用に限定
無償

余談

  • ツイート検索のAPIの仕様はv1.1とv2とで若干異なります
  • よって、ツイートを収集するためのコードはv1.1とv2とで別々に必要になるはずです
  • v2もv1.1も使いたい人向けに両方のコードを記事にする…かもしれません
脚注
  1. Twitter API access levels and versions ↩︎ ↩︎

  2. 公式ドキュメントの Please note を参照。
    Search Tweets: Standard v1.1 ↩︎

  3. 筆者はお財布と相談した結果、有償利用はしませんでした。 ↩︎

  4. Search Tweets Recent search ↩︎

  5. 筆者はこの要件を満たしていないためFull-archiveの方は利用できません。残念です。 ↩︎

Discussion