メインコンテンツへスキップ

オブジェクト・モデル

Tweet

Tweet は、X に関するあらゆる要素の基本的な構成単位です。Tweet オブジェクトには、idtextcreated_at などの多数の「ルートレベル」fields が含まれます。Tweet オブジェクトは、usermediapollplace など複数の子オブジェクトの「親」オブジェクトでもあります。Tweet オブジェクトのこれらのルートレベルの fields をリクエストする際は、field パラメータ tweet.fields を使用します。 Tweet オブジェクトは user リソースで見つけて展開できます。リクエストした Tweet に関連する追加の tweets も、Tweet リソースで見つけて展開できます。オブジェクトは、user リソースでは ?expansions=pinned_tweet_id、Tweet リソースでは ?expansions=referenced_tweets.id を使用して、デフォルトの fields のみを持つオブジェクトとして展開可能です。オブジェクトを完全な形にするために追加の fields をリクエストする場合は、field パラメータ tweet.fields と併せて expansions を使用します。
フィールド値説明利用方法
id (default)string要求された Tweet の一意の識別子。特定の Tweet をプログラムで取得するのに使用します。
text (default)stringTweet の実際の UTF-8 テキスト。有効な文字の詳細は twitter-text を参照してください。キーワード抽出や感情分析/分類。
edit_history_tweet_ids (default)objectTweet のすべてのバージョンを示す一意の識別子。編集のない Tweet では ID は 1 つ。編集履歴がある Tweet では複数の ID があります。この情報を使用して Tweet の編集履歴を確認します。
articleobjectこの Tweet に含まれる Article の metadata。Article のテキストとエンティティを取得します。
attachmentsobjectこの Tweet に(存在する場合)含まれる添付の種類を指定します。要求した expansions に対して返されるオブジェクトの理解に役立ちます。
author_idstringこの Tweet を投稿したユーザーの一意の識別子。ユーザーオブジェクトのハイドレーション、ピアレビュー用のデータセット共有。
card_uristringこの Tweet に含まれる Card の URI。
community_idstringこの Post が属する Community の一意の識別子。
context_annotationsarrayTweet の context annotations を含みます。エンティティ認識/抽出、トピック分析。
conversation_idstring会話の元となる Tweet の Tweet ID(ダイレクト返信、返信への返信を含む)。Tweet から会話を再構築するために使用します。
created_atdate (ISO 8601)Tweet の作成時刻。時系列分析や Tweet がいつ作成されたかの把握に有用。
display_text_rangearray表示されるテキスト部分の開始・終了インデックスを含む配列。長い投稿で既定で表示されるテキスト範囲の把握に有用。
edit_controlsobjectその Tweet があとどれくらい編集可能か、残りの編集回数を示します。Tweet が編集可能かどうかを判断します。
entitiesobjectTweet のテキストから解析されたエンティティ。Twitter Objects の entities を参照。ハッシュタグ、URL、メンションなどに関する追加情報を提供。
geoobjectジオタグ付き Tweet の位置またはプレースを示します。ジオタグ付き Tweet の位置情報を取得するのに使用します。
in_reply_to_user_idstring対象の Tweet が返信である場合、このフィールドには元の Tweet の作者の ID が含まれます。Tweet が他の Tweet への返信かどうかを判断します。
langstringTwitter によって検出された場合の Tweet の言語。Tweet を使用言語で分類。
non_public_metricsobjectリクエスト時点の Tweet に対する非公開のエンゲージメント metrics。ユーザーコンテキスト認証が必要。当該 Tweet によって生成された総インプレッション数を算出。
note_tweetobject長文の Post(>280 文字)の完全なテキストを含みます。投稿の完全なテキストを取得。
organic_metricsobjectリクエスト時点の Tweet に対するオーガニックコンテキストでのエンゲージメント metrics。ユーザーコンテキスト認証が必要。Tweet のオーガニックエンゲージメントを測定。
possibly_sensitivebooleanコンテンツがセンシティブと認識され得るかを示します。特定の種類のコンテンツの流通を研究。
promoted_metricsobjectリクエスト時点の Tweet に対するプロモーションコンテキストでのエンゲージメント metrics。ユーザーコンテキスト認証が必要。プロモーション時の Tweet のエンゲージメントを測定。
public_metricsobjectリクエスト時点の Tweet に対する公開エンゲージメント metrics。Tweet のエンゲージメントを測定。
referenced_tweetsarrayこの Tweet が参照する Tweet の一覧(リツイート、引用 Tweet、返信など)。リツイート等の会話的側面を把握。
reply_settingsstring指定の Tweet に誰が返信できるかを示します。オプションは “everyone”、“mentioned_users”、“followers” です。Tweet の返信設定を判断。
withheldobjectwithheld content の差し止めに関する詳細。
scopesobjectTweet のスコープの詳細。投稿を閲覧できる対象を示します。プロモーションされた投稿に対してのみ返されます。
media_metadataarrayTweet のメディア添付に関する metadata。Tweet のメディア添付の alt_text などの追加 metadata を取得。
Tweet オブジェクトの取得 リクエスト例 次のリクエストでは、Tweets lookup endpoint で対象の Tweet の fields をリクエストしています。必ず $BEARER_TOKEN を自分で生成した Bearer Token に置き換えてください。
curl --request GET 'https://api.x.com/2/tweets?ids=1212092628029698048&tweet.fields=attachments,author_id,context_annotations,created_at,entities,geo,id,in_reply_to_user_id,lang,possibly_sensitive,public_metrics,referenced_tweets,text,withheld&expansions=referenced_tweets.id' --header 'Authorization: Bearer $BEARER_TOKEN'
サンプル応答
{
  "data": [
    {
      "text": "私たちは、APIのより良い未来の姿は、皆さんと共に作り上げることで実現すると信じています。Xプラットフォームで構築する皆さんと、今年も素晴らしい一年にしましょう。新年も引き続きご一緒できるのが待ちきれません。 https://t.co/yvxdK6aOo2",
      "edit_history_tweet_ids": [
        "1212092628029698048"
      ],
      "lang": "en",
      "in_reply_to_user_id": "2244994945",
      "entities": {
        "urls": [
          {
            "start": 222,
            "end": 245,
            "url": "https://t.co/yvxdK6aOo2",
            "expanded_url": "https://x.com/LovesNandos/status/1211797914437259264/photo/1",
            "display_url": "pic.x.com/yvxdK6aOo2",
            "media_key": "16_1211797899316740096"
          }
        ],
        "annotations": [
          {
            "start": 42,
            "end": 44,
            "probability": 0.5359,
            "type": "Other",
            "normalized_text": "API"
          },
          {
            "start": 144,
            "end": 150,
            "probability": 0.9832,
            "type": "Other",
            "normalized_text": "Twitter"
          }
        ]
      },
      "author_id": "2244994945",
      "referenced_tweets": [
        {
          "type": "replied_to",
          "id": "1212092627178287104"
        }
      ],
      "id": "1212092628029698048",
      "public_metrics": {
        "retweet_count": 7,
        "reply_count": 3,
        "like_count": 38,
        "quote_count": 1
      },
      "context_annotations": [
        {
          "domain": {
            "id": "29",
            "name": "イベント [Entity Service]",
            "description": "現実世界のイベント。",
          },
          "entity": {
            "id": "1186637514896920576",
            "name": "大晦日",
          }
        },
        {
          "domain": {
            "id": "29",
            "name": "Events [Entity Service]",
            "name": "イベント [Entity Service]",
            "description": "現実世界のイベント。",
          "entity": {
            "id": "1206982436287963136",
            "name": "ハッピーニューイヤー:ついに世界中が2020年に!",
            "description": "世界各地で新年を迎える人々の花火やその他の祝いをチェック。\n写真提供:@GettyImages",
          }
        },
        {
          "domain": {
            "id": "119",
            "name": "祝日",
            "description": "クリスマスやハロウィンのような祝日",
          },
          "entity": {
            "id": "1186637514896920576",
            "name": "大晦日",
          }
        },
        {
          "domain": {
            "id": "119",
            "name": "Holiday",
            "name": "祝日",
            "description": "クリスマスやハロウィンのような祝日",
          "entity": {
            "id": "1206982436287963136",
            "name": "Happy New Year: It’s finally 2020 everywhere!",
            "description": "Catch fireworks and other celebrations as people across the globe enter the new year.\nPhoto via @GettyImages "
          }
        },
        {
          "domain": {
            "id": "30",
            "name": "Entities [Entity Service]",
            "description": "Entity Service の最上位ドメイン。Entity Service に含まれるすべての項目はこのドメインに属します",
          },
          "entity": {
            "id": "781974596752842752",
            "name": "サービス",
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "ブランド",
            "description": "ブランドと企業",
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "131",
            "name": "統合Twitter分類",
            "description": "ユーザー関心の分類。",
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "131",
            "name": "統合Twitter分類",
            "description": "ユーザー関心の分類。",
          },
          "entity": {
            "id": "847868745150119936",
            "name": "Family & relationships",
            "description": "趣味・関心",
          }
        },
        {
          "domain": {
            "id": "131",
            "name": "Unified Twitter Taxonomy",
            "description": "A taxonomy of user interests. "
          },
          "entity": {
            "id": "1196446161223028736",
            "name": "ソーシャルメディア",
          }
        },
        {
          "domain": {
            "id": "29",
            "name": "イベント [Entity Service]",
            "description": "現実世界のイベント。",
          },
          "entity": {
            "id": "1206982436287963136",
            "name": "ハッピーニューイヤー:ついに世界中が2020年に!",
            "description": "世界各地で新年を迎える人々の花火やその他の祝いをチェック。\n写真提供:@GettyImages",
          }
        },
        {
          "domain": {
            "id": "119",
            "name": "祝日",
            "description": "クリスマスやハロウィンのような祝日",
          },
          "entity": {
            "id": "1206982436287963136",
            "name": "ハッピーニューイヤー:ついに世界中が2020年に!",
            "description": "世界各地で新年を迎える人々の花火やその他の祝いをチェック。\n写真提供:@GettyImages",
          }
        }
      ],
      "created_at": "2019-12-31T19:26:16.000Z",
      "attachments": {
        "media_keys": [
          "16_1211797899316740096"
        ]
      },
      "possibly_sensitive": false
    }
  ],
  "includes": {
    "tweets": [
      {
        "text": "これらのリリースは、道中でいただいた皆さんのフィードバックなしには実現しませんでした。時間とアイデアを寄せてくださったすべての皆さんに感謝します。さらにフィードバックはありますか?こちらからお寄せください ⬇️ https://t.co/Vxp4UKnuJ9",
        "edit_history_tweet_ids": [
          "1212092627178287104"
        ],
        "lang": "en",
        "in_reply_to_user_id": "2244994945",
        "entities": {
          "urls": [
            {
              "start": 187,
              "end": 210,
              "url": "https://t.co/Vxp4UKnuJ9",
              "expanded_url": "https://twitterdevfeedback.uservoice.com/forums/921790-twitter-developer-labs",
              "display_url": "twitterdevfeedback.uservoice.com/forums/921790-…",
              "status": 200,
              "title": "フィードバックチャネルの最新情報",
              "description": "私たちはオープンに、皆さんの意見やフィードバックを取り入れて開発者プラットフォームを構築しています。過去1年の間に、皆さんや皆さんのアプリのユーザーから直接伺った声は、皆さんと共に特定したユースケースに合致する開発者向けプロダクトの構築に役立ちました。これを今後のプロダクト開発の標準的な進め方にしたいと考えており、今後はフィードバックチャネルを統合します。皆さんのいる場所へ伺います。本日より、より頻繁な直接のやり取りを重視するため、UserVoiceのフィードバックチャネルを終了します。"
              "unwound_url": "https://devcommunity.x.com/t/updates-on-our-feedback-channels/169706"
            }
          ]
        },
        "author_id": "2244994945",
        "referenced_tweets": [
          {
            "type": "replied_to",
            "id": "1212092626247110657"
          }
        ],
        "id": "1212092627178287104",
        "public_metrics": {
          "retweet_count": 2,
          "reply_count": 1,
          "like_count": 19,
          "quote_count": 0
        },
        "created_at": "2019-12-31T19:26:16.000Z",
        "possibly_sensitive": false
      }
    ]
  }

ユーザー

ユーザーオブジェクトには、参照対象のユーザーを記述する Twitter ユーザーアカウントのmetadataが含まれます。ユーザーオブジェクトは、users lookup endpointで返される主要なオブジェクトです。このendpointで追加のユーザーfieldsを要求する場合は、user.fields パラメーターを使用してください。 ユーザーオブジェクトは、Tweetオブジェクト内の子オブジェクトとしても現れ、展開できます。デフォルトfieldsのみを含む簡略オブジェクトを取得するには、?expansions=author_id または ?expansions=in_reply_to_user_id を指定して展開します。オブジェクトを完全化するために追加のfieldsを要求する場合は、expansionsとuser.fields パラメーターを併用してください。  
フィールド値タイプ説明使用方法
id (default)stringこのユーザーの一意識別子。

"id": "2244994945"
特定のTwitterユーザーに関する情報をプログラムで取得するために使用します。
name (default)stringユーザーがプロフィールで定義した名前。必ずしも人の名前ではありません。通常50文字以内ですが、変更される可能性があります。

"name": "Twitter Dev"
username (default)stringこのユーザーが自分を識別するTwitterのスクリーン名、ハンドル、またはエイリアス。ユーザー名は一意ですが変更される可能性があります。通常最大15文字ですが、一部の履歴アカウントではより長い名前が存在する場合があります。

"username": "TwitterDev"
affiliationobjectユーザーの所属に関する詳細を含みます。ユーザーの所属バッジを取得するために使用できます。
confirmed_emailstring認証されたユーザーの確認済みメールアドレス。
connection_statusarray認証ユーザーと検索対象ユーザーとの関係のリストを提供します(フォロー中、フォローされている、フォローリクエスト送信済み、フォローリクエスト受信済み、ブロック中、ミュート中など)

“connection_status”: [
“follow_request_received”,
“follow_request_sent”,
“blocking”,
“followed_by”,
“following”,
“muting”
]
認証ユーザーと検索対象ユーザーとの接続状況を判定するために使用できます。
created_atdate (ISO 8601)ユーザーアカウントがTwitterで作成されたUTC日時。

"created_at": "2013-12-14T04:35:55.000Z"
ユーザーがTwitterを使用している期間を判定するために使用できます
descriptionstringこのユーザーのプロフィール説明(バイオとも呼ばれる)のテキスト(ユーザーが提供している場合)。

"description": "The voice of the X Dev team and your official source for updates, news, and events, related to the X API."
entitiesobjectユーザーの説明で特別な意味を持つテキストに関する詳細を含みます。

"entities": { <br/> "url": { <br/> "urls": [ <br/> { <br/> "start": 0, <br/> "end": 23, <br/> "url": "https://t.co/3ZX3TNiZCY", <br/> "expanded_url": "/content/developer-twitter/en/community", <br/> "display_url": "developer.x.com/en/community" <br/> } <br/> ] <br/> }, <br/> "description": { <br/> "urls": [ <br/> { <br/> "start": 0, <br/> "end": 23, <br/> "url": "https://t.co/3ZX3TNiZCY", <br/> "expanded_url": "/content/developer-twitter/en/community", <br/> "display_url": "developer.x.com/en/community" <br/> }, <br/> "hashtags": [ <br/> { <br/> "start": 23, <br/> "end": 30, <br/> "tag": "DevRel" <br/> }, <br/> { <br/> "start": 113, <br/> "end": 130, <br/> "tag": "BlackLivesMatter" <br/> }, <br/> "mentions": [ <br/> { <br/> "start": 0, <br/> "end": 10, <br/> "tag": "TwitterDev" <br/> }, <br/> "cashtags": [ <br/> { <br/> "start": 12, <br/> "end": 16, <br/> "tag": "twtr" <br/> } <br/> ] <br/> } <br/> }
エンティティは、説明に関連するハッシュタグ、URL、ユーザーメンション、キャッシュタグに関する追加情報を提供するJSONオブジェクトです。詳細については、それぞれのエンティティを参照してください。

すべてのユーザーstartインデックスは包含的で、すべてのユーザーendインデックスは排他的です。
is_identity_verifiedbooleanユーザーがID認証済みかどうかを示します。
locationstringユーザーのプロフィールで指定された場所(ユーザーが提供している場合)。これは自由形式の値であるため、有効な場所を示さない場合がありますが、場所クエリを使用した検索を実行する際にファジー評価される可能性があります。

"location": "127.0.0.1"
most_recent_tweet_idstringこのユーザーの最新Tweetの一意識別子。ユーザーの最新Tweetを特定します。
parodybooleanこのユーザーアカウントがパロディラベルを持っているかどうかを示します。
pinned_tweet_idstringこのユーザーの固定Tweetの一意識別子。

"pinned_tweet_id": "1255542774432063488"
ユーザーのプロフィールの上部に固定されたTweetを特定します。ユーザーの言語を判定するために使用される可能性があります。
profile_banner_urlstringユーザーのプロフィールに表示される、このユーザーのプロフィールバナーのURL。

"profile_banner_url": "https://pbs.twimg.com/profile_banners/1716450569358098432/1721022977"
このユーザーのプロフィールバナーをダウンロードするために使用できます。
profile_image_urlstringユーザーのプロフィールに表示される、このユーザーのプロフィール画像のURL。

"profile_image_url": "https://pbs.twimg.com/profile_images/1267175364003901441/tBZNFAgA_normal.jpg"
このユーザーのプロフィール画像をダウンロードするために使用できます。
protectedbooleanこのユーザーがTweetを保護することを選択したかどうかを示します(つまり、このユーザーのTweetが非公開かどうか)。

"protected": false
public_metricsobjectこのユーザーのアクティビティに関する詳細を含みます。

"public_metrics": { "followers_count": 507902, "following_count": 1863, "tweet_count": 3561, "listed_count": 1550 }
Xユーザーのリーチや影響力の判定、ユーザーの関心範囲の定量化、X上でのユーザーのエンゲージメントレベルの測定に利用できる可能性があります。
receives_your_dmbooleanこのユーザーが認証されたユーザーのDMを受信するかどうかを示します。
subscriptionobjectユーザーが認証されたユーザーをサブスクライブしているかどうかの詳細を含みます。
subscription_typestring認証されたユーザーが持つX Premiumサブスクリプションのタイプを表す文字列です。例:NoneBasicPremiumPremiumPlus。ユーザーが認証されたユーザーでない場合は常にNoneを返します。
urlstringユーザーのプロフィールで指定されたURL(存在する場合)。

"url": "https://t.co/3ZX3TNiZCY"
Xユーザーがプロフィールで提供するURL。ホームページの場合もありますが、常にそうとは限りません。
verifiedbooleanこのユーザーが認証されたXユーザーかどうかを示します。

"verified": true
このXユーザーが認証済みアカウントを持っているかどうかを示します。認証済みアカウントは、公共の利益に関するアカウントが本物であることを示します。
verified_followers_countstringユーザーの認証済みフォロワー数を表す文字列。
verified_typestringユーザーが持つ認証のタイプを表す文字列。例:“blue”、“business”、“government”
withheldobject該当する場合、非表示コンテンツの非表示詳細を含みます。
ユーザーオブジェクトの取得 サンプルリクエスト 次のリクエストでは、users lookup endpoint に対して、ユーザーの fields をリクエストしています。必ず $BEARER_TOKEN を、ご自身で生成した Bearer Token に置き換えてください。
  curl --request GET 'https://api.x.com/2/users?
  ids=2244994945&user.fields=created_at,description,entities,id,location,name,pinned_tweet_id,profile_image_url,protected,url,username,verified,withheld&expansions=pinned_tweet_id'
  --header 'Authorization: Bearer $BEARER_TOKEN'
  }
サンプル応答
    "data": [
        {
            "id": "2244994945",
            "name": "Twitter Dev",
            "username": "TwitterDev",
            "location": "127.0.0.1",
            "entities": {
                "url": {
                    "urls": [
                        {
                            "start": 0,
                            "end": 23,
                            "url": "https://t.co/3ZX3TNiZCY",
                            "expanded_url": "/content/developer-twitter/en/community",
                            "display_url": "developer.x.com/en/community"
                        }
                    ]
                },
                "description": {
                    "hashtags": [
                        {
                            "start": 23,
                            "end": 30,
                            "tag": "DevRel"
                        },
                        {
                            "start": 113,
                            "end": 130,
                            "tag": "BlackLivesMatter"
                        }
                    ]
                }
            },
            "verified": true,
            "description": "Twitter の #DevRel チームの声であり、Twitter の API に関するアップデート、ニュース、イベントの公式情報源です。\n\n#BlackLivesMatter",
            "url": "https://t.co/3ZX3TNiZCY",
            "profile_image_url": "https://pbs.twimg.com/profile_images/1267175364003901441/tBZNFAgA_normal.jpg",
            "protected": false,
            "pinned_tweet_id": "1255542774432063488",
            "created_at": "2013-12-14T04:35:55.000Z"
        }
    ],
    "includes": {
        "tweets": [
            {
                "id": "1255542774432063488",
                "text": "前例のないこの時期、Twitter 上で起きていることは、世界がパンデミックをよりよく理解し、対応する助けになります。\n\n適格な開発者と研究者が公開の会話をリアルタイムで研究できるよう、無料の COVID-19 stream endpoint を提供開始します。 https://t.co/BPqMcQzhId"
            }
        ]
    }
}

Space

Spaces は、ライブ音声による会話で表現とインタラクションを可能にします。Space データ辞書には Space に関する関連メタデータが含まれており、すべての詳細はリアルタイムで更新されます。 ユーザーオブジェクトは user リソースで参照および展開できます。これらのオブジェクトは、expansions query パラメータに host_idscreator_idspeaker_idsmentioned_user_ids の少なくとも一つを追加することで展開可能です。 Tweet とは異なり、Spaces はエフェメラルで、終了後や作成者によってキャンセルされた場合は利用できなくなります。App が Spaces のデータを扱う際は、最新の情報を返す責任があり、プラットフォームで利用できなくなったデータは削除しなければなりません。Spaces lookup endpoints は、ユーザーの期待と意図を尊重するのに役立ちます。
Field ValueTypeDescriptionHow it can be used
id (default)stringリクエストされた Space の一意の識別子。
"id": "1zqKVXPQhvZJB"
レスポンスで返された Space を一意に識別します。
state (default)stringSpace が開始済み、開始予定、または終了したかを示します。
"state": "live"
ライブまたはスケジュール済みの Spaces をフィルターします。
created_atdate (ISO 8601)この Space の作成時刻。
"created_at": "2021-07-04T23:12:08.000Z"
Space の作成時期を把握し、時刻順にソートします。
creator_idstringSpace の作成者の一意の識別子。
"creator_id": "2244994945"
ended_atdate (ISO 8601)該当する場合の Space の終了時刻。
"ended_at": "2021-07-04T00:11:44.000Z"
ライブ Space がいつ終了したかを把握して稼働時間を算出します。
host_idsarraySpace のホストの一意の識別子。
"host_ids": ["2244994945", "6253282"]
ユーザーオブジェクトを展開し、エンゲージメントを把握します。
langstring検出された場合の Space の言語。
"lang": "en"
言語別に Spaces を分類します。
is_ticketedbooleanチケット制の Space かどうかを示します。
"is_ticketed": false
関心の高いコンテンツを強調します。
invited_user_idsarrayスピーカーとして招待されたユーザー ID の一覧。
"invited_user_ids": ["2244994945", "6253282"]
ユーザーオブジェクトを展開し、エンゲージメントを把握します。
participant_countintegerホストとスピーカーを含む、Space 内のユーザー数。
"participant_count": 420
エンゲージメントを把握し、レポートを作成します。
subscriber_countintegerSpace にリマインダーを設定した人数。
"subscriber_count": 36
イベントへの関心を把握します。
scheduled_startdate (ISO 8601)Space の予定開始時刻。
"scheduled_start": "2021-07-14T08:00:00.000Z"
カレンダー通知と連携します。
speaker_idsarrayいずれかの時点で話したユーザーの一覧。
"speaker_ids": ["2244994945", "6253282"]
ユーザーオブジェクトを展開し、エンゲージメントを把握します。
started_atdate (ISO 8601)Space の実際の開始時刻。
"started_at": "2021-07-14T08:00:12.000Z"
Space の開始時刻を特定します。
titlestringSpace のタイトル。
"title": "Say hello to the Space data object!"
キーワード、ハッシュタグ、メンションを把握します。
topic_idsarraySpace 作成者が選択したトピックの ID。
"topic_ids": ["2244994945", "6253282"]
キーワード、ハッシュタグ、メンションを把握します。
updated_atdate (ISO 8601)Space の metadata の最終更新。
"updated_at": "2021-07-11T14:44:44.000Z"
情報を最新に保ちます。
Space オブジェクトの取得 サンプルリクエスト 次のリクエストでは、Spaces lookup endpoint に対して Space の fields をリクエストしています。必ず $BEARER_TOKEN を自身で生成した Bearer Token に置き換えてください。
curl "https://api.x.com/2/spaces/1DXxyRYNejbKM?space.fields=created_at,creator_id,created_athost_ids,lang,is_ticketed,invited_user_ids,participant_count,scheduled_start,speaker_ids,started_at,state,title,updated_at&expansions=creator_id,host_ids,invited_user_ids,speaker_ids" --header "Authorization: Bearer $BEARER_TOKEN"
** サンプル応答 **
{
  "data": {
    "id": "1zqKVXPQhvZJB",
    "state": "live",
    "created_at": "2021-07-04T23:12:08.000Z",
    "host_ids": [
      "2244994945",
      "6253282"
    ],
    "lang": "en",
    "is_ticketed": false,
    "invited_user_ids": [
      "2244994945",
      "6253282"
    ],
    "participant_count": 420,
    "scheduled_start": "2021-07-14T08:00:00.000Z",
    "speaker_ids": [
      "2244994945",
      "6253282"
    ],
    "started_at": "2021-07-14T08:00:12.000Z",
    "title": "Spaceデータオブジェクトへようこそ!",
    "updated_at": "2021-07-11T14:44:44.000Z"
  },
  "includes": {
    "users": [
      {
        "id": "2244994945",
        "name": "Twitter Dev",
        "username": "TwitterDev"
      },
      {
        "id": "6253282",
        "name": "Twitter API",
        "username": "TwitterAPI"
      }
    ]
  }
}

List

List オブジェクトには、参照対象の List を記述する Twitter Lists の metadata が含まれます。List オブジェクトは、List ルックアップ endpoint で返される主要なオブジェクトです。この endpoint で List の追加 fields を要求する場合は、fields パラメータ list.fields を使用します。 List オブジェクトは、他の data オブジェクトの子要素としては返されません。一方で、ユーザーオブジェクトは user リソースで取得および展開できます。これらのオブジェクトは、expansions query パラメータに owner_id を追加することで展開可能です。主要な List オブジェクトを補完するために追加フィールドを要求する際は、この展開を list.fields フィールドパラメータと併用し、展開オブジェクトを補完するには user.fields を使用してください。
Field ValueTypeDescriptionHow it can be used
id (default)stringこの List の一意の識別子。
"id": "2244994945"
特定の List に関する情報をプログラムで取得するために使用します。
name (default)stringList 作成時に定義された List の名前。
"name": "Twitter Lists"
created_atdate (ISO 8601)List が作成された UTC の日時。
"created_at": "2013-12-14T04:35:55.000Z"
List が X 上にどれだけ存在しているかを判断します。
descriptionstringユーザーに List の内容を伝えるための簡潔な説明。
"description": "People that are active members of the Bay area cycling community on Twitter."
follower_countintegerこの List をフォローしているユーザー数。
"follower_count": 198
member_countintegerこの List のメンバー数。
"member_count": 60
privatebooleanList が非公開かどうか。
"private": false
owner_idstringこの List の所有者の一意の識別子。
"owner_id": "1255542774432063488"
このユーザーが他の List を所有しているかの確認や、ユーザーオブジェクトの展開に使用できます。
ユーザーオブジェクトの取得 サンプルリクエスト 次のリクエストでは、List lookup by ID endpoint でユーザーの fields を要求しています。$BEARER_TOKEN を、生成した Bearer Token に置き換えてください。
curl --request GET 'https://api.x.com/2/lists/1355797419175383040?list.fields=created_at,description,private,follower_count,member_count,owner_id&expansions=owner_id' --header 'Authorization: Bearer $BEARER_TOKEN'
** サンプル応答**
{
  "data": {
    "name": "Twitter Comms",
    "member_count": 60,
    "id": "1355797419175383040",
    "private": false,
    "description": "",
    "follower_count": 198,
    "owner_id": "257366942",
    "created_at": "2021-01-31T08:37:48.000Z"
  },
  "includes": {
    "users": [
      {
        "created_at": "2011-02-25T07:51:26.000Z",
        "name": "Ashleigh Hay 🤸🏼‍♀️",
        "id": "257366942",
        "username": "shleighhay",
        "verified": false
      }
    ]
  }
}

メディア

メディアとは、Tweet に添付された画像、GIF、または動画を指します。media オブジェクトはどの endpoint においても主要オブジェクトではありませんが、Tweet オブジェクト内で参照・展開できます。デフォルトの fields のみを含む簡略オブジェクトを取得するには、?expansions=attachments.media_keys による展開が利用可能です。オブジェクトを完全化するために追加の fields を要求する場合は、フィールドパラメータ media.fields と併用してください。
フィールド値説明利用方法
media_key (default)string展開されたメディアコンテンツの一意の識別子。
"media_key": "13_1263145212760805376"
プログラムでメディアを取得するために使用できます
type (default)stringコンテンツの種類(animated_gif、photo、video)。
"type": "video"
メディアを写真、GIF、または動画として分類します
urlstringX 上のメディアファイルへの直接 URL。写真については URL フィールドを持つ Media オブジェクトを返します
duration_msintegertype が video の場合に利用可能。動画の長さ(ミリ秒)。
"duration_ms": 46947
heightintegerこのコンテンツの高さ(ピクセル)。
"height": 1080
non_public_metricsobjectリクエスト時点におけるメディアコンテンツの非公開エンゲージメント metrics。ユーザー context 認証が必要です。
"non_public_metrics": { "playback_0_count": 1561, "playback_100_count": 116, "playback_25_count": 559, "playback_50_count": 305, "playback_75_count": 183,}
動画の各四分位までの再生到達数を把握します。
organic_metricsobjectリクエスト時点におけるメディアコンテンツのオーガニック context でのエンゲージメント metrics。ユーザー context 認証が必要です。
"organic_metrics": { "playback_0_count": 1561, "playback_100_count": 116, "playback_25_count": 559, "playback_50_count": 305, "playback_75_count": 183, "view_count": 629}
オーガニックなメディアエンゲージメントを把握します。
preview_image_urlstringこのコンテンツの静的なプレースホルダープレビュー画像への URL。
"preview_image_url": "https://pbs.twimg.com/media/EYeX7akWsAIP1_1.jpg"
promoted_metricsobjectリクエスト時点におけるメディアコンテンツのプロモーション context でのエンゲージメント metrics。ユーザー context 認証が必要です。
"promoted_metrics": { "playback_0_count": 259, "playback_100_count": 15, "playback_25_count": 113, "playback_50_count": 57, "playback_75_count": 25, "view_count": 124}
Tweet がプロモーションされた際のメディアエンゲージメントを把握します。
public_metricsobjectリクエスト時点におけるメディアコンテンツの公開エンゲージメント metrics。
"public_metrics": { "view_count": 6865141}
Tweet に添付された動画の総再生回数を把握します。
widthintegerこのコンテンツの幅(ピクセル)。
"width": 1920
alt_textstringアクセシビリティを有効化・支援するための画像の説明。最大 1000 文字。現時点では Alt テキストは画像にのみ追加できます。
"alt_text": "Rugged hills along the Na Pali coast on the island of Kauai"
視覚に障害のあるユーザー向けに、画像の説明文を提供できます。
variantsarray各 media オブジェクトには、解像度や形式が異なる複数の表示・再生バリアントが存在する場合があります。
"variants": [{ "bit_rate": 632000, "content_type": "video/mp4", "url": "https://video.twimg.com/ext_tw_video/1527322141724532740/pu/vid/320x568/lnBaR2hCqE-R_90a.mp4?tag=12"}]
media オブジェクトの取得 サンプルリクエスト 次のリクエストでは、Tweet lookup endpoint で、Tweet に添付された media オブジェクトの fields をリクエストしています。media は Tweet の子オブジェクトであるため、attachment.media_keys の expansion が必要です。必ず、あなた自身が生成した Bearer Token$BEARER_TOKEN を置き換えてください。
curl --request GET 'https://api.x.com/2/tweets?ids=1263145271946551300&expansions=attachments.media_keys&media.fields=duration_ms,height,media_key,preview_image_url,public_metrics,type,url,width,alt_text' --header 'Authorization: Bearer $BEARER_TOKEN'
{
  "data": [
    {
      "text": "テスト、テスト...\n\n欲しい相手とだけ会話する新しい方法。世界的に少数のユーザーから開始しているので、実際の動作を👀で確認してください。https://t.co/pV53mvjAVT",
      "id": "1263145271946551300",
      "attachments": {
        "media_keys": [
          "13_1263145212760805376"
        ]
      }
    }
  ],
  "includes": {
    "media": [
      {
        "duration_ms": 46947,
        "type": "video",
        "height": 1080,
        "media_key": "13_1263145212760805376",
        "public_metrics": {
          "view_count": 6909260
        },
        "preview_image_url": "https://pbs.twimg.com/media/EYeX7akWsAIP1_1.jpg",
        "width": 1920
      }
    ]
  }
}

Poll

Tweet に含まれる投票は、どの endpoint においても主要オブジェクトではありませんが、Tweet オブジェクト内で見つけて展開できます。デフォルトの fields のみを持つ簡略オブジェクトを取得するには、?expansions=attachments.poll_ids を使用して展開します。オブジェクトを補完するために追加の fields を要求する場合は、poll.fields の field パラメータを併用してください。
Field valueTypeDescription
id (default)string展開された投票の一意の識別子。
{"id": "1199786642791452673"}
options (default)array参照された投票内の各選択肢を表すオブジェクトを含みます。
{"options": [ { "position": 1, "label": "“C Sharp”", "votes": 795 }, { "position": 2, "label": "“C Hashtag”", "votes": 156 } ]}
duration_minutesintegerこの投票の合計期間を指定します。
{"duration_minutes": 1440}
end_datetimedate (ISO 8601)この投票の終了日時を指定します。
{"end_datetime": "2019-11-28T20:26:41.000Z"}
voting_statusstringこの投票が引き続き有効で投票を受け付けているか、または投票が終了しているかを示します。
{"voting_status": "closed"}
投票オブジェクトの取得 サンプルリクエスト 以下のリクエストでは、Tweets lookup endpoint 上の Tweet に添付された投票オブジェクトの fields を要求しています。投票は Tweet の子オブジェクトであるため、attachments.poll_id の expansions が必要です。$BEARER_TOKEN は自身で生成した Bearer Token に必ず置き換えてください。
curl --request GET 'https://api.x.com/2/tweets?ids=1199786642791452673&expansions=attachments.poll_ids&poll.fields=duration_minutes,end_datetime,id,options,voting_status' --header 'Authorization: Bearer $BEARER_TOKEN'
サンプル応答
{
  "data": [
    {
      "text": "C#",
      "id": "1199786642791452673",
      "attachments": {
        "poll_ids": [
          "1199786642468413448"
        ]
      }
    }
  ],
  "includes": {
    "polls": [
      {
        "id": "1199786642468413448",
        "voting_status": "closed",
        "duration_minutes": 1440,
        "options": [
          {
            "position": 1,
            "label": ""C Sharp"",
            "votes": 795
          },
          {
            "position": 2,
            "label": ""C Hashtag"",
            "votes": 156
          }
        ],
        "end_datetime": "2019-11-28T20:26:41.000Z"
      }
    ]
  }
}

Place

Tweet にタグ付けされた場所は、どの endpoint においても主要オブジェクトではありませんが、Tweet リソース内で参照・展開できます。?expansions=geo.place_id を使用すると、デフォルトの fields のみを含む簡略オブジェクトとして展開されます。オブジェクトを完全な形で取得するために追加の fields が必要な場合は、place.fields フィールドパラメータを併用してください。
Field valueTypeDescriptionHow it can be used
full_name (default)string詳細な形式の場所名。特定の場所名で Tweet を分類する
"full_name": "Manhattan, NY"
id (default)stringTweet にタグ付けされた注目地点である場合、展開された場所の一意の識別子。これを使用してプログラムで場所を取得する
"id": "01a9a39529b27f36"
contained_withinarray参照される場所を内包する既知の場所の識別子を返します。
countrystringこの場所が属する国の正式名称。国名で Tweet を分類する
"country": "United States"
country_codestringこの場所が属する国の ISO Alpha-2 国コード。国コードで Tweet を分類する
"country_code": "US"
geoobjectGeoJSON 形式で場所の詳細を含みます。
`json
”geo”:
“type”: “Feature”,
“bbox”: [
-74.026675,
40.683935,
-73.910408,
40.877483
],
“properties”:
}
`
namestringこの場所の短い名称。特定の場所名で Tweet を分類する
"name": "Manhattan"
place_typestringこの場所情報が表す情報の種類(都市名や注目地点など)を示します。特定の種類の場所で Tweet を分類する
"place_type": "city"
場所オブジェクトの取得 サンプルリクエスト 次のリクエストでは、Tweets lookup endpoint で、Tweet に付随する place オブジェクトの fields をリクエストしています。place は Tweet の子オブジェクトであるため、geo.place_id の expansion が必要です。必ず $BEARER_TOKEN をご自身の Bearer Token に置き換えてください。
curl --request GET 'https://api.x.com/2/tweets?ids=1136048014974423040&expansions=geo.place_id&place.fields=contained_within,country,country_code,full_name,geo,id,name,place_type' --header 'Authorization: Bearer $BEARER_TOKEN'
サンプル応答
{
  "data": [
    {
      "text": "新しいTwitter Developer Labsプログラムのライブデモを共有しています。DevRelチームのメンバー@jessicagarsonが主導します #TapIntoTwitter https://t.co/ghv7f4dW5M",
      "id": "1136048014974423040",
      "geo": {
        "place_id": "01a9a39529b27f36"
      }
    }
  ],
  "includes": {
    "places": [
      {
        "geo": {
          "type": "Feature",
          "bbox": [
            -74.026675,
            40.683935,
            -73.910408,
            40.877483
          ],
          "properties": {}
        },
        "country_code": "US",
        "name": "Manhattan",
        "id": "01a9a39529b27f36",
        "place_type": "city",
        "country": "United States",
        "full_name": "Manhattan, NY"
      }
    ]
  }
}

ダイレクトメッセージイベント

ダイレクトメッセージ(DM)の会話はイベントで構成されます。X API v2 は現在、3 種類のイベントタイプをサポートしています: MessageCreate、ParticipantsJoin、ParticipantsLeave。 DM イベントオブジェクトは ダイレクトメッセージのルックアップ endpoint から返され、ダイレクトメッセージの管理 endpoint でダイレクトメッセージが正常に作成されると MessageCreate イベントが生成されます。 DM イベントをリクエストする場合、既定で 3 つのイベントオブジェクト属性(または fields)が含まれます: id、event_type、text。追加のイベント fields を受け取るには、fields パラメータ dm_event.fields を使用して他を指定します。利用可能なその他のイベント fields には次のものが含まれます: dm_conversation_id、created_at、sender_id、attachments、participant_ids、referenced_tweets。 これらの fields のいくつかは、ダイレクトメッセージイベントに関連する他の X オブジェクトの ID を提供します:
  • sender_id - メッセージを送信したアカウント、またはグループ会話に参加者を招待したアカウントの ID
  • participant_ids - アカウント ID の配列。ParticipantsJoin および ParticipantsLeave イベントでは、この配列にはイベントを作成したアカウントの単一の ID が含まれます
  • attachments - 送信者によって X にアップロードされたコンテンツのメディア ID を提供します
  • referenced_tweets - text フィールドに Tweet の URL が見つかった場合、その Tweet の ID がレスポンスに含まれます
sender_id、participant_ids、referenced_tweets.id、attachments.media_keys の expansions を使用して、これらの X オブジェクト ID を展開できます。
Field valueTypeDescriptionHow it can be used
id (default)stringイベントの一意の識別子。

“id”: “1050118621198921728”
これを使用して、特定の会話イベントをプログラムで取得します(v1.1 endpoint で利用可能)。
event_type (default)stringイベントの種別を示します。現在サポートされているのは次の3種類です: 

* MessageCreate

* ParticipantsJoin

* ParticipantsLeave


“event_type”: “MessageCreate”
会話履歴の取得時に、メッセージが作成されたタイミングや、グループ会話では参加者が参加・退出したタイミングを把握するために使用します。すべての GET メソッドは、event_type= クエリパラメータを使った特定のイベントタイプでのフィルタリングをサポートします。
text (default)stringダイレクトメッセージの UTF-8 テキスト本体。 

“text”: “Hello, just you!”
チャットボットでは、メッセージ内容を解析して自動応答を決定するのに使用できます。会話検索機能の構築にも利用できます。
entitiesobjectDM のテキストから解析されたエンティティ。ハッシュタグ、URL、メンションなどに関する追加情報を提供します。
sender_idstringイベントを作成したユーザーの ID。レスポンスでこのオブジェクトを展開するには、拡張として sender_id を含め、関心のあるユーザーオブジェクト属性を指定するために user.fields クエリパラメータを使用します。

“sender_id”: “906948460078698496”
MessageCreate または ParticipantsJoin イベントの作成者のユーザーオブジェクトを取得します。
participant_idsarray (of strings)グループ会話に参加・退出する参加者の ID。新しいグループ会話の作成時にも使用されます。レスポンスでこのオブジェクトを展開するには、拡張として participant_ids を含め、関心のあるユーザーオブジェクト属性を指定するために user.fields クエリパラメータを使用します。

“participant_ids”: [

     “906948460078698496”

]
グループ会話に参加・退出する参加者のユーザーオブジェクトを取得するために使用します。
dm_conversation_idstringイベントが属する会話の一意の識別子。

“dm_conversation_id”: “1584988213961031680”
これを使用して、会話からイベントをプログラムで取得したり、そこにダイレクトメッセージを追加したりできます。
created_atdate (ISO 8601)Tweet の作成時刻(UTC)。

“created_at”: “2019-06-04T23:12:08.000Z”
このフィールドは、ダイレクトメッセージが作成された時刻や、会話参加者が参加・退出した時刻を把握するために使用できます。
referenced_tweetsarrayダイレクトメッセージ本文で言及された Tweet の ID。レスポンスでこのオブジェクトを展開するには、拡張として referenced_tweets.id を含め、関心のある Tweet オブジェクト属性を指定するために tweet.fields クエリパラメータを使用します。

“referenced_tweets”: [

   

“id”: “1578868150510456833”

   

]
ダイレクトメッセージが Tweet を参照している場合、これらの ID を使って Tweet の詳細を取得できます。
attachmentsobjectメディアが添付されたダイレクトメッセージの場合、アップロードされたコンテンツ(写真、動画、GIF)の media key を提供します。レスポンスでこのオブジェクトを展開するには、拡張として attachments.media_keys を含め、関心のあるメディアオブジェクト属性を指定するために media.fields クエリパラメータを使用します。現在は添付を1件のみサポートします。 

“attachments”:

    “media_keys”: [

        “3_1136048009270239232”

    ]

ダイレクトメッセージに添付されたメディアオブジェクトを把握するために使用します。
ダイレクトメッセージイベントオブジェクトの取得 サンプルリクエスト この例では、1対1の会話に関連するイベントを取得するリクエストを作成します。このリクエストは、基本的なダイレクトメッセージイベントのフィールドに加え、参照された Tweet とその投稿者に関する追加フィールドを返します。次の内容を要求する query を作成しましょう:
  • 作成時刻やどの会話に属するか(dm_conversation)といった基本的なイベント属性
  • ダイレクトメッセージ送信者のアカウント ID と説明
  • 参照された Tweet のテキストとその投稿時刻
  • 参照された Tweet の投稿者のアカウント ID と説明
これらの属性を返すには、リクエストの query に次の内容を含めます: ?dm_event.fields=id,sender_id,text,created_at,dm_conversation_id&expansions=sender_id,referenced_tweets.id&tweet.fields=created_at,text,author_id&user.fields=description
      curl --request GET 'https://api.x.com/2/dm_conversations/with/:participant_id/dm_events?tweet.fields=created_at,text,author_id&user.fields=description&expansions=sender_id,participant_ids,referenced_tweets.id&dm_event.fields=id,sender_id,text,participant_ids,created_at,'
    --header 'Authorization: Bearer $BEARER_TOKEN'
$BEARER_TOKEN を必ず、生成したご自身の Bearer Tokenに置き換えてください。 サンプルレスポンス
      {
	"data": [{
			"id": "1585047616894574596",
			"sender_id": "944480690",
			"text": "こんにちは、あなただけに!",
			"created_at": "2022-10-25T23:16:15.000Z",
			"event_type": "MessageCreate",
			"dm_conversation_id": "944480690-906948460078698496"
		},
		{
			"id": "1581048670673260549",
			"sender_id": "944480690",
			"text": "シンプルなTweetリンク: https://t.co/IYFbRIdXHg",
			"referenced_tweets": [{
				"id": "1578900353814519810"
			}],
			"created_at": "2022-10-14T22:25:52.000Z",
			"event_type": "MessageCreate",
			"dm_conversation_id": "944480690-906948460078698496"
		},
		{
			"id": "1580705121553420292",
			"sender_id": "944480690",
			"text": "新しい1対1のダイレクトメッセージを追加中。",
			"created_at": "2022-10-13T23:40:43.000Z",
			"event_type": "MessageCreate",
			"dm_conversation_id": "944480690-906948460078698496"
		}
	],
	"includes": {
		"users": [{
				"name": "API デモ",
				"description": "TwitterDev統合をホスティング中... @TwitterDev #DevRel",
				"id": "944480690",
				"username": "FloodSocial"
			},
			{
				"name": "the SnowBot",
				"description": "@TwitterDev SnowBotのホーム... 雪のレポート、雪の写真、雪の研究リンクを提供... チャットボットは現在Twitter APIv2用に改装中です。",
				"id": "906948460078698496",
				"username": "SnowBotDev"
			}
		],
		"tweets": [{
				"text": "コロラド水年の新年をみんなに祝わなかったことを少し申し訳なく思っています…\n\n新旧のコロラドの友人や同僚の皆さん、水年おめでとうございます…\n\nこれが豊かな水年になりますように、ただしあまり豊かすぎないように…",
				"id": "1578900353814519810",
				"created_at": "2022-10-09T00:09:13.000Z",
				"author_id": "944480690",
				"edit_history_tweet_ids": [
					"1578900353814519810"
				]
			}
		]
	},
	"meta": {
		"result_count": 3,
		"next_token": "18LAA581J5II7LA00C00ZZZZ",
		"previous_token": "1BLC45G1H8CAL5DG0G00ZZZZ"
	}
}

コミュニティ

コミュニティは、Xのユーザーがつながり、共有し、関心の高い議論により近づくための専用の場です。 コミュニティ内のPostはX上の誰でも閲覧できますが、議論に参加して交流できるのはそのコミュニティ内のメンバーのみです。 Communityオブジェクトには、コミュニティに関する関連metadataが含まれます。
フィールド値種別説明
created_atdate (ISO 8601)コミュニティの作成時刻。
idstringコミュニティの一意の識別子。
namestringコミュニティの名前。
descriptionstring提供されている場合は、コミュニティの説明文。
accessstringコミュニティのアクセスレベル。

次のいずれか:
- Public
- Closed
join_policystringコミュニティの参加ポリシー。

次のいずれか:
- Open
- RestrictedJoinRequestsDisabled
- RestrictedJoinRequestsRequireAdminApproval
- RestrictedJoinRequestsRequireModeratorApproval
- SuperFollowRequired
member_countintegerコミュニティに参加しているメンバー数。
Communityオブジェクトの取得 サンプルリクエスト 次のリクエストでは、指定したキーワードに基づいてコミュニティのリストを検索しつつ、特定のfieldsを要求しています。必ず $BEARER_TOKEN を自身で生成したBearer Tokenに置き換えてください。
curl --location 'https://api.x.com/2/communities/search?query=anime&amp;community.fields=access,created_at,description,id,join_policy,member_count,name' --header 'Authorization: $BEARER_TOKEN'
サンプル応答
{
  "data": [
    {
      "id": "Q29tbXVuaXR5OjE3NTg3NDc4MTc2NDI3MDA5MjI=",
      "description": "アニメコミュニティへようこそ!アニメファンが集まって好きな作品を共有し、アニメに関するあらゆることを語り合う場所です。",
      "join_policy": "Open",
      "access": "Public",
      "member_count": 39915,
      "name": "アニメコミュニティ",
      "created_at": "2024-02-17T06:58:50.000Z"
    },
    {
      "id": "Q29tbXVuaXR5OjE1MDY3OTM5NTMxMDYwNDI4OTE=",
      "description": "参加してアニメについて語り合いましょう 🥰",
      "join_policy": "Open",
      "access": "Public",
      "member_count": 26019,
      "name": "アニメワールド 🌸",
      "created_at": "2022-03-24T00:44:07.000Z"
    },
    {
      "id": "Q29tbXVuaXR5OjE0OTY3NzYyMTU5Mzk1MzQ4NDk=",
      "description": "すべてのアニメ愛好家とクリエイターのために!",
      "join_policy": "Open",
      "access": "Public",
      "member_count": 5612,
      "name": "アニメ",
      "created_at": "2022-02-24T09:17:13.000Z"
    }
  ],
  "meta": {
    "next_token": "7140dibdnow9c7btw481s8m561gat797rboud5r80xvzm"
  }
}

fields と expansions の使い方

デフォルトでは、fieldsexpansions パラメータを指定せずにリクエストした場合、X API v2 のデータオブジェクトにはごく少数のデフォルト fields だけが含まれます。本ガイドでは、レスポンスで追加のオブジェクトや fields を受け取るために、リクエストで fieldsexpansions の query パラメータを使う方法を説明します。 本ガイドでは、以下の Tweet のスクリーンショットに含まれる複数の fields をリクエストします。  
この画像には、@X によって投稿された Tweet のスクリーンショットが含まれています。Tweet テキスト、ユーザー名、公開日時、ソース、および public metrics を確認できます。動画も含まれています。
ご覧のスクリーンショットには、Tweet の作者、Tweet の metrics、作成タイムスタンプ、動画、動画の再生回数など、Tweet に関連する可視の情報がいくつか含まれています。一方で、スクリーンショットには表示されていないものの、リクエスト可能な data も複数あります。  API へのリクエスト時のデフォルトのレスポンスはシンプルで、デフォルトの Tweet fields(id と text)のみが含まれます。また、利用中の endpoint が返す主要オブジェクトのみを受け取り、その主要オブジェクトに関連し得る付随データオブジェクトは返されません。 このシンプルさに加え、fields と expansions の各パラメータにより、ユースケースに応じて必要な fields だけをリクエストできます。   

追加のfieldsとオブジェクトをリクエストする

まず、Tweet IDとGET /tweets endpointを使用してTweet objectをリクエストします。 リクエスト:
curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969' \
  --header 'Authorization: Bearer $BEARER_TOKEN'
レスポンス:
{
    "data": [
        {
            "id": "1260294888811347969",
            "text": "あなたのTweetに関するTweetを見逃さないでください。\n\niOSで、コメント付きリツイートをすべて一箇所で確認できるようになりました。https://t.co/oanjZfzC6y"
        }
    ]
}
以下のステップバイステップガイドでは、スクリーンショットに表示されている追加データを取得する方法を説明します。
  1. object modelを参照するか、各endpointのAPIリファレンスページに記載されたfieldsの一覧を確認して、リクエストで指定したい追加のfieldsを特定してください。 この場合、次の追加のfieldsをリクエストします: attachments、author_id、created_at、public_metrics。
  2. 上記のfieldsを値としてカンマ区切りで指定し、tweet.fields クエリパラメータを作成します: ?tweet.fields=attachments,author_id,created_at,public_metrics
  3. 先ほど実行した GET /tweets リクエストに query パラメータを追加します。
リクエスト: curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969&tweet.fields=attachments,author_id,created_at,public_metrics' \ --header 'Authorization: Bearer $BEARER_TOKEN' レスポンス:
{
    "data": [
        {
            "id": "1260294888811347969",
            "text": "あなたのTweetに関するTweetを見逃すことはありません。\n\niOSで、コメント付きリツイートをすべて一箇所で確認できるようになりました。https://t.co/oanjZfzC6y",
            "author_id": "783214",
            "public_metrics": {
                "retweet_count": 5219,
                "reply_count": 1828,
                "like_count": 17141,
                "quote_count": 3255
            },
            "attachments": {
                "media_keys": [
                    "13_1260294804770041858"
                ]
            },
            "created_at": "2020-05-12T19:44:51.000Z"
        }
    ]
}
  1. 次に、Tweetに含まれている動画に関連するfieldsをリクエストします。そのために、expansionsパラメータにattachments.media_keysを値として指定し、リクエストに追加します。
?expansions=attachments.media_keys リクエスト:
curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969&tweet.fields=attachments,author_id,created_at,public_metrics&expansions=attachments.media_keys' \
  --header 'Authorization: Bearer $BEARER_TOKEN'
レスポンス、メディアオブジェクトがincludesオブジェクトに含まれています:
{
    "data": [
        {
            "id": "1260294888811347969",
            "text": "あなたのTweetに関するTweetを見逃さないでください。\n\niOSで、コメント付きリツイートをすべて一箇所で確認できるようになりました。https://t.co/oanjZfzC6y",
            "public_metrics": {
                "retweet_count": 5219,
                "reply_count": 1828,
                "like_count": 17141,
                "quote_count": 3255
            },
            "created_at": "2020-05-12T19:44:51.000Z",
            "attachments": {
                "media_keys": [
                    "13_1260294804770041858"
                ]
            },
            "author_id": "783214"
        }
    ],
    "includes": {
        "media": [
            {
                "media_key": "13_1260294804770041858",
                "type": "video"
            }
        ]
    }
}
  1. 最後に、動画の視聴回数と再生時間を取得します。これらはデフォルトのfieldsではないため、明示的にリクエストする必要があります。リクエストでmedia.fieldsパラメータを使用し、カンマ区切りの値としてpublic_metricsduration_msを指定してください。
?media.fields=public_metrics,duration_ms リクエスト:   curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969&tweet.fields=attachments,author_id,created_at,public_metrics&expansions=attachments.media_keys&media.fields=duration_ms,public_metrics' --header 'Authorization: Bearer $BEARER_TOKEN' Tweet のスクリーンショットで確認できる内容がすべて含まれるようになったレスポンス:
  {
    "data": [
        {
            "id": "1260294888811347969",
            "text": "あなたのTweetに関するTweetを見逃さないでください。\n\niOSでは、コメント付きリツイートをすべて一箇所で確認できるようになりました。https://t.co/oanjZfzC6y",
            "author_id": "783214",
            "public_metrics": {
                "retweet_count": 5219,
                "reply_count": 1828,
                "like_count": 17141,
                "quote_count": 3255
            },
            "created_at": "2020-05-12T19:44:51.000Z",
            "attachments": {
                "media_keys": [
                    "13_1260294804770041858"
                ]
            }
        }
    ],
    "includes": {
        "media": [
            {
                "duration_ms": 36503,
                "media_key": "13_1260294804770041858",
                "public_metrics": {
                    "view_count": 1534703
                },
                "type": "video"
            }
        ]
    }
}
全体として、この例には次のパラメータを含めています:
  • ids=1260294888811347969
  • tweet.fields=attachments,author_id,created_at,public_metrics
  • expansions=attachments.media_keys
  • media.fields=public_metrics,duration_ms  
これらを統合すると、完全な query 文字列は次のとおりです:
?ids=1260294888811347969&tweet.fields=attachments,author\_id,created\_at,public\_metrics&expansions=attachments.media\_keys&media.fields=public\_metrics,duration\_ms

X API v2 のサンプルペイロード

Tweet

{
  "data": [
    {
      "conversation_id": "1304102743196356610",
      "id": "1307025659294674945",
      "possibly_sensitive": false,
      "public_metrics": {
        "retweet_count": 11,
        "reply_count": 2,
        "like_count": 70,
        "quote_count": 1
      },
      "entities": {
        "urls": [
          {
            "start": 74,
            "end": 97,
            "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…",
            "images": [
              {
                "url": "https://pbs.twimg.com/news_img/1317156296982867969/2uLfv-Bh?format=jpg&name=orig",
                "width": 1128,
                "height": 600
              },
              {
                "url": "https://pbs.twimg.com/news_img/1317156296982867969/2uLfv-Bh?format=jpg&name=150x150",
                "width": 150,
                "height": 150
              }
            ],
            "status": 200,
            "title": "X API v2の新しいTweetペイロードを理解する",
            "description": "Xは最近、新機能を提供するために一から再構築された新しいX API v2を発表しました...",
            "unwound_url": "https://dev.to/twitterdev/understanding-the-new-tweet-payload-in-the-twitter-api-v2-1fg5"
          }
        ]
      },
      "text": "新しいTweetペイロードv2のアップデートを紹介した記事です https://t.co/oeF3ZHeKQQ",
      "in_reply_to_user_id": "2244994945",
      "created_at": "2020-09-18T18:36:15.000Z",
      "author_id": "2244994945",
      "referenced_tweets": [
        {
          "type": "replied_to",
          "id": "1304102743196356610"
        }
      ],
      "lang": "en",
      "source": "Twitter Web App"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "id": "2244994945",
        "verified": true,
        "location": "127.0.0.1",
        "description": "#TwitterDevチームの声であり、#TwitterAPIに関するアップデート、ニュース、イベントの公式情報源です。",
        "pinned_tweet_id": "1293593516040269825",
        "username": "TwitterDev",
        "public_metrics": {
          "followers_count": 513961,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "name": "Twitter Dev",
        "url": "https://t.co/3ZX3TNiZCY",
        "protected": false
      }
    ],
    "tweets": [
      {
        "conversation_id": "1304102743196356610",
        "id": "1304102743196356610",
        "possibly_sensitive": false,
        "public_metrics": {
          "retweet_count": 31,
          "reply_count": 12,
          "like_count": 104,
          "quote_count": 4
        },
        "entities": {
          "mentions": [
            {
              "start": 146,
              "end": 158,
              "username": "suhemparack"
            }
          ],
          "urls": [
            {
              "start": 237,
              "end": 260,
              "url": "https://t.co/CjneyMpgCq",
              "expanded_url": "https://x.com/TwitterDev/status/1304102743196356610/video/1",
              "display_url": "pic.x.com/CjneyMpgCq"
            }
          ],
          "hashtags": [
            {
              "start": 8,
              "end": 19,
              "tag": "TwitterAPI"
            }
          ]
        },
        "attachments": {
          "media_keys": [
            "13_1303848070984024065"
          ]
        },
        "text": "新しい#TwitterAPIには、Tweetペイロードの改善が含まれています。主な違いは何か気になりませんか?🧐\n\nこの動画では、@SuhemParackがv1.1のTweetペイロードと、v2 endpointで利用できるものを比較しています。https://t.co/CjneyMpgCq",
        "created_at": "2020-09-10T17:01:37.000Z",
        "author_id": "2244994945",
        "lang": "en",
        "source": "Twitter Media Studio"
      }
    ]
  }
}

Tweetへの返信

{
  "data": [
    {
      "lang": "en",
      "conversation_id": "1296887091901718529",
      "text": "@PennMedCDH がTwitterデータを使用してCOVID-19健康危機を理解する方法をご覧ください 📊\n\nhttps://t.co/1tdA8uDWes",
      "referenced_tweets": [
        {
          "type": "replied_to",
          "id": "1296887091901718529"
        }
      ],
      "possibly_sensitive": false,
      "entities": {
        "annotations": [
          {
            "start": 30,
            "end": 36,
            "probability": 0.6318,
            "type": "Product",
            "normalized_text": "Twitter"
          }
        ],
        "mentions": [
          {
            "start": 8,
            "end": 19,
            "username": "PennMedCDH"
          }
        ],
        "urls": [
          {
            "start": 87,
            "end": 110,
            "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…",
            "status": 200,
            "title": "Penn Medicine Center for Digital Health",
            "description": "Penn Med Center for Digital Healthは、感情、報告された症状、州別データ分析、COVID-19アウトブレイクに関する境界データを詳述するチャートを含むCOVID-19 Twitterマップを作成しました。さらに、Penn Med With Youイニシアチブは、Twitterからの集約された地域情報を使用してウェブサイトとテキストメッセージサービスに情報を提供しています。このサービスは、この情報を使用して関連性があり適時なリソースを配信します。",
            "unwound_url": "https://developer.x.com/en/use-cases/success-stories/penn"
          }
        ]
      },
      "id": "1296887316556980230",
      "public_metrics": {
        "retweet_count": 9,
        "reply_count": 3,
        "like_count": 26,
        "quote_count": 2
      },
      "author_id": "2244994945",
      "in_reply_to_user_id": "2244994945",
      "context_annotations": [
        {
          "domain": {
            "id": "46",
            "name": "ブランドカテゴリ",
            "description": "ブランドの範囲を絞り込むブランドバーティカル内のカテゴリ"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "サービス"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "ブランド",
            "description": "ブランドと企業"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "123",
            "name": "継続中のニュース記事",
            "description": "'Brexit'のような継続中のニュース記事"
          },
          "entity": {
            "id": "1220701888179359745",
            "name": "COVID-19"
          }
        }
      ],
      "source": "Twitter Web App",
      "created_at": "2020-08-21T19:10:05.000Z"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "protected": false,
        "username": "TwitterDev",
        "verified": true,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "description": "#TwitterDevチームの声であり、#TwitterAPIに関連するアップデート、ニュース、イベントの公式情報源です。",
        "pinned_tweet_id": "1293593516040269825",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "location": "127.0.0.1",
        "name": "Twitter Dev",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "url": "https://t.co/3ZX3TNiZCY"
      },
      {
        "created_at": "2013-07-23T16:58:03.000Z",
        "id": "1615654896",
        "protected": false,
        "username": "PennMedCDH",
        "verified": false,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/7eS9RuwIb9",
                "expanded_url": "http://centerfordigitalhealth.upenn.edu/",
                "display_url": "centerfordigitalhealth.upenn.edu"
              }
            ]
          },
          "description": {
            "mentions": [
              {
                "start": 0,
                "end": 13,
                "username": "PennMedicine"
              }
            ]
          }
        },
        "description": "@PennMedicineのCenter for Digital Healthは、医療におけるデジタルヘルス技術の進歩の影響を研究することで科学を進歩させています。",
        "public_metrics": {
          "followers_count": 1348,
          "following_count": 455,
          "tweet_count": 1288,
          "listed_count": 92
        },
        "location": "Philadelphia, PA",
        "name": "Penn Med CDH",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1067488849725726723/MoO3FQ44_normal.jpg",
        "url": "https://t.co/7eS9RuwIb9"
      }
    ],
    "tweets": [
      {
        "lang": "en",
        "conversation_id": "1296887091901718529",
        "text": "@RainaMerchant博士とPenn Medicine CDHのチームは、医療の未来の構築を支援しています。\n\nチームは、リスクファクターの発見から世論の解明まで、ソーシャルデータからの洞察を様々な方法で活用しています。🔎",
        "possibly_sensitive": false,
        "entities": {
          "annotations": [
            {
              "start": 39,
              "end": 55,
              "probability": 0.8274,
              "type": "Organization",
              "normalized_text": "Penn Medicine CDH"
            }
          ],
          "mentions": [
            {
              "start": 4,
              "end": 18,
              "username": "RainaMerchant"
            }
          ]
        },
        "id": "1296887091901718529",
        "public_metrics": {
          "retweet_count": 9,
          "reply_count": 7,
          "like_count": 32,
          "quote_count": 0
        },
        "author_id": "2244994945",
        "source": "Twitter Web App",
        "created_at": "2020-08-21T19:09:12.000Z"
      }
    ]
  }
}

拡張Tweet

{
  "data": [
    {
      "conversation_id": "1296121314218897408",
      "id": "1296121314218897408",
      "possibly_sensitive": false,
      "public_metrics": {
        "retweet_count": 54,
        "reply_count": 9,
        "like_count": 172,
        "quote_count": 23
      },
      "entities": {
        "urls": [
          {
            "start": 192,
            "end": 215,
            "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…",
            "images": [
              {
                "url": "https://pbs.twimg.com/news_img/1296121315514957825/3CI24hSI?format=png&name=orig",
                "width": 400,
                "height": 400
              },
              {
                "url": "https://pbs.twimg.com/news_img/1296121315514957825/3CI24hSI?format=png&name=150x150",
                "width": 150,
                "height": 150
              }
            ],
            "status": 200,
            "title": "新しいTwitter APIでリプライを非表示にする機能が利用可能になりました",
            "description": "本日、新しいTwitter APIでリプライを非表示にするendpointの一般提供開始を発表いたします。このリプライを非表示にするendpointを使用することで、ユーザーが自分のTweetに対するリプライを非表示または再表示するためのツールを構築できます。ユーザーがリプライを管理する理由は様々で、悪意のある、気を散らす、誤解を招くコメントへの注目を減らしたり、会話をより魅力的にするためなどがあります。このendpointを通じて、Twitterのユーザーがリプライをより迅速かつ効率的に非表示または再表示できるツールを構築できます...",
            "unwound_url": "https://devcommunity.x.com/t/hide-replies-now-available-in-the-new-twitter-api/140996"
          }
        ],
        "hashtags": [
          {
            "start": 178,
            "end": 189,
            "tag": "TwitterAPI"
          }
        ]
      },
      "text": "リプライを非表示にするendpointが本日リリースされました!\n\n開発者はTweetに対するリプライを非表示にできます - これは開発者が#TwitterAPIを使用して公開会話の健全性向上を支援する重要な方法です。\n\nhttps://t.co/khXhTurm9x",
      "created_at": "2020-08-19T16:26:16.000Z",
      "context_annotations": [
        {
          "domain": {
            "id": "65",
            "name": "Interests and Hobbies Vertical",
            "description": "食べ物や旅行などの最上位レベルの興味・趣味のグループ"
          },
          "entity": {
            "id": "848920371311001600",
            "name": "Technology",
            "description": "テクノロジーとコンピューティング"
          }
        },
        {
          "domain": {
            "id": "66",
            "name": "Interests and Hobbies Category",
            "description": "新奇な食べ物や目的地などの興味・趣味エンティティのグループ"
          },
          "entity": {
            "id": "848921413196984320",
            "name": "Computer programming",
            "description": "コンピュータープログラミング"
          }
        }
      ],
      "author_id": "2244994945",
      "lang": "en",
      "source": "Twitter Web App"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "id": "2244994945",
        "verified": true,
        "location": "127.0.0.1",
        "description": "#TwitterDevチームの声であり、#TwitterAPIに関連するアップデート、ニュース、イベントの公式情報源です。",
        "pinned_tweet_id": "1293593516040269825",
        "username": "TwitterDev",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "name": "Twitter Dev",
        "url": "https://t.co/3ZX3TNiZCY",
        "protected": false
      }
    ]
  }
}

メディア付きのTweet

{
  "data": [
    {
      "lang": "en",
      "conversation_id": "1293593516040269825",
      "text": "ついに登場です!🥁 新しい#TwitterAPIをご紹介します。\n\n開発者コミュニティにより良いサービスを提供するため、X API v2を一から再構築しています。そして今日のローンチは始まりに過ぎません。\n\nhttps://t.co/32VrwpGaJw https://t.co/KaFSbjWUA8",
      "attachments": {
        "media_keys": [
          "7_1293565706408038401"
        ]
      },
      "possibly_sensitive": false,
      "entities": {
        "annotations": [
          {
            "start": 78,
            "end": 88,
            "probability": 0.4381,
            "type": "Product",
            "normalized_text": "Twitter API"
          }
        ],
        "hashtags": [
          {
            "start": 42,
            "end": 53,
            "tag": "TwitterAPI"
          }
        ],
        "urls": [
          {
            "start": 195,
            "end": 218,
            "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…",
            "images": [
              {
                "url": "https://pbs.twimg.com/news_img/1336475659279818754/_cmRh7QE?format=jpg&name=orig",
                "width": 1200,
                "height": 627
              },
              {
                "url": "https://pbs.twimg.com/news_img/1336475659279818754/_cmRh7QE?format=jpg&name=150x150",
                "width": 150,
                "height": 150
              }
            ],
            "status": 200,
            "title": "新しく改良されたX APIのご紹介",
            "description": "新しいX APIのご紹介 - 開発者がTwitterで起こっているパブリックな会話に世界を繋げる手助けができるよう、新機能をより迅速に提供するために一から再構築されました。",
            "unwound_url": "https://blog.x.com/developer/en_us/topics/tools/2020/introducing_new_twitter_api.html"
          },
          {
            "start": 219,
            "end": 242,
            "url": "https://t.co/KaFSbjWUA8",
            "expanded_url": "https://x.com/TwitterDev/status/1293593516040269825/video/1",
            "display_url": "pic.x.com/KaFSbjWUA8"
          }
        ]
      },
      "id": "1293593516040269825",
      "public_metrics": {
        "retweet_count": 958,
        "reply_count": 171,
        "like_count": 2848,
        "quote_count": 333
      },
      "author_id": "2244994945",
      "context_annotations": [
        {
          "domain": {
            "id": "46",
            "name": "ブランドカテゴリ",
            "description": "ブランドの範囲を絞り込むブランドバーティカル内のカテゴリ"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "サービス"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "ブランド",
            "description": "ブランドと企業"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "65",
            "name": "興味・趣味バーティカル",
            "description": "食べ物や旅行などの最上位レベルの興味・趣味のグループ"
          },
          "entity": {
            "id": "848920371311001600",
            "name": "テクノロジー",
            "description": "テクノロジーとコンピューティング"
          }
        },
        {
          "domain": {
            "id": "66",
            "name": "興味・趣味カテゴリ",
            "description": "新奇な食べ物や目的地などの興味・趣味エンティティのグループ"
          },
          "entity": {
            "id": "848921413196984320",
            "name": "コンピュータープログラミング",
            "description": "コンピュータープログラミング"
          }
        }
      ],
      "source": "Twitter Web App",
      "created_at": "2020-08-12T17:01:42.000Z"
    }
  ],
  "includes": {
    "media": [
      {
        "height": 720,
        "duration_ms": 34875,
        "media_key": "7_1293565706408038401",
        "type": "video",
        "preview_image_url": "https://pbs.twimg.com/ext_tw_video_thumb/1293565706408038401/pu/img/66P2dvbU4a02jYbV.jpg",
        "public_metrics": {
          "view_count": 279438
        },
        "width": 1280
      }
    ],
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "protected": false,
        "username": "TwitterDev",
        "verified": true,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "description": "#TwitterDevチームの声であり、#TwitterAPIに関連するアップデート、ニュース、イベントの公式情報源です。",
        "pinned_tweet_id": "1293593516040269825",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "location": "127.0.0.1",
        "name": "Twitter Dev",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "url": "https://t.co/3ZX3TNiZCY"
      }
    ]
  }
}


### リツイート

      `{
  "data": [
    {
      "public_metrics": {
        "retweet_count": 19,
        "reply_count": 0,
        "like_count": 0,
        "quote_count": 0
      },
      "conversation_id": "1229851574555508737",
      "id": "1229851574555508737",
      "entities": {
        "annotations": [
          {
            "start": 28,
            "end": 38,
            "probability": 0.261,
            "type": "Product",
            "normalized_text": "Alexa Skill"
          },
          {
            "start": 44,
            "end": 50,
            "probability": 0.7332,
            "type": "Product",
            "normalized_text": "Twitter"
          }
        ],
        "mentions": [
          {
            "start": 3,
            "end": 15,
            "username": "suhemparack"
          }
        ]
      },
      "text": "RT @suhemparack: APLを使ってTwitter用のAlexa Skillを作りました。Echo ShowでTweetやトレンドを見ることができます!\n\nこちらをご覧ください…",
      "created_at": "2020-02-18T19:33:59.000Z",
      "possibly_sensitive": false,
      "author_id": "2244994945",
      "referenced_tweets": [
        {
          "type": "retweeted",
          "id": "1229843515603144704"
        }
      ],
      "context_annotations": [
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "ブランドと企業"
          },
          "entity": {
            "id": "10026792024",
            "name": "Amazon"
          }
        },
        {
          "domain": {
            "id": "48",
            "name": "Product",
            "description": "ブランドが作成した製品。例:Ford Explorer、Apple iPhone。"
          },
          "entity": {
            "id": "968221983803494400",
            "name": "Amazon - Alexa",
            "description": "Alexa"
          }
        },
        {
          "domain": {
            "id": "46",
            "name": "Brand Category",
            "description": "ブランドの範囲を絞り込むブランドバーティカル内のカテゴリ"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "Services"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "ブランドと企業"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        }
      ],
      "source": "Twitter Web App",
      "lang": "en"
    }
  ],
  "includes": {
    "users": [
      {
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "username": "TwitterDev",
        "name": "Twitter Dev",
        "location": "127.0.0.1",
        "url": "https://t.co/3ZX3TNiZCY",
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "id": "2244994945",
        "description": "#TwitterDevチームの声であり、#TwitterAPIに関連するアップデート、ニュース、イベントの公式情報源です。",
        "verified": true,
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "pinned_tweet_id": "1293593516040269825",
        "created_at": "2013-12-14T04:35:55.000Z",
        "protected": false
      },
      {
        "profile_image_url": "https://pbs.twimg.com/profile_images/1230703695051935747/TbQKe91L_normal.jpg",
        "username": "suhemparack",
        "name": "Suhem Parack",
        "location": "Seattle, WA",
        "url": "https://t.co/8IkCzClPCz",
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/8IkCzClPCz",
                "expanded_url": "https://developer.x.com",
                "display_url": "developer.x.com"
              }
            ]
          },
          "description": {
            "mentions": [
              {
                "start": 42,
                "end": 50,
                "username": "Twitter"
              }
            ]
          }
        },
        "id": "857699969263964161",
        "description": "@TwitterでのアカデミックリサーチのDeveloper Relations。Twitterデータを使った研究について話しましょう。前職:Amazon Alexa。意見は個人的なものです",
        "verified": false,
        "public_metrics": {
          "followers_count": 738,
          "following_count": 512,
          "tweet_count": 460,
          "listed_count": 12
        },
        "pinned_tweet_id": "1296498078233571329",
        "created_at": "2017-04-27T20:56:22.000Z",
        "protected": false
      }
    ],
    "tweets": [
      {
        "public_metrics": {
          "retweet_count": 19,
          "reply_count": 1,
          "like_count": 71,
          "quote_count": 6
        },
        "conversation_id": "1229843515603144704",
        "id": "1229843515603144704",
        "entities": {
          "annotations": [
            {
              "start": 11,
              "end": 21,
              "probability": 0.3342,
              "type": "Product",
              "normalized_text": "Alexa Skill"
            },
            {
              "start": 27,
              "end": 33,
              "probability": 0.6727,
              "type": "Product",
              "normalized_text": "Twitter"
            }
          ],
          "urls": [
            {
              "start": 127,
              "end": 150,
              "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…",
              "status": 200,
              "unwound_url": "https://dev.to/twitterdev/building-an-alexa-skill-for-twitter-using-alexa-presentation-language-1aj0"
            }
          ]
        },
        "text": "APLを使ってTwitter用のAlexa Skillを作りました。Echo ShowでTweetやトレンドを見ることができます!\n\nこちらをご覧ください 👇\n\nhttps://t.co/l5J8wq748G",
        "created_at": "2020-02-18T19:01:58.000Z",
        "possibly_sensitive": false,
        "author_id": "857699969263964161",
        "context_annotations": [
          {
            "domain": {
              "id": "47",
              "name": "Brand",
              "description": "ブランドと企業"
            },
            "entity": {
              "id": "10026792024",
              "name": "Amazon"
            }
          },
          {
            "domain": {
              "id": "48",
              "name": "Product",
              "description": "ブランドが作成した製品。例:Ford Explorer、Apple iPhone。"
            },
            "entity": {
              "id": "968221983803494400",
              "name": "Amazon - Alexa",
              "description": "Alexa"
            }
          },
          {
            "domain": {
              "id": "46",
              "name": "Brand Category",
              "description": "ブランドの範囲を絞り込むブランドバーティカル内のカテゴリ"
            },
            "entity": {
              "id": "781974596752842752",
              "name": "Services"
            }
          },
          {
            "domain": {
              "id": "47",
              "name": "Brand",
              "description": "ブランドと企業"
            },
            "entity": {
              "id": "10045225402",
              "name": "Twitter"
            }
          }
        ],
        "source": "Twitter Web App",
        "lang": "en"
      }
    ]
  }
}`


### Quote Tweet

      `{
  "data": [
    {
      "lang": "en",
      "conversation_id": "1328399838128467969",
      "text": "予定通り、以下で参照されているLabs v2 endpointは廃止されました。ご質問やX API v2に関するサポートが必要な場合は、フォーラムでお知らせください! https://t.co/JaxttUMmjX",
      "referenced_tweets": [
        {
          "type": "quoted",
          "id": "1327011423252144128"
        }
      ],
      "possibly_sensitive": false,
      "entities": {
        "annotations": [
          {
            "start": 151,
            "end": 157,
            "probability": 0.8115,
            "type": "Product",
            "normalized_text": "Twitter"
          }
        ],
        "urls": [
          {
            "start": 167,
            "end": 190,
            "url": "https://t.co/JaxttUMmjX",
            "expanded_url": "https://x.com/TwitterDev/status/1327011423252144128",
            "display_url": "twitter.com/TwitterDev/sta…"
          }
        ]
      },
      "id": "1328399838128467969",
      "public_metrics": {
        "retweet_count": 7,
        "reply_count": 4,
        "like_count": 29,
        "quote_count": 1
      },
      "author_id": "2244994945",
      "context_annotations": [
        {
          "domain": {
            "id": "46",
            "name": "Brand Category",
            "description": "ブランドの範囲を絞り込むブランドバーティカル内のカテゴリ"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "サービス"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "Brand",
            "description": "ブランドと企業"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "65",
            "name": "Interests and Hobbies Vertical",
            "description": "食べ物や旅行などのトップレベルの興味・趣味のグループ"
          },
          "entity": {
            "id": "848920371311001600",
            "name": "Technology",
            "description": "テクノロジーとコンピューティング"
          }
        },
        {
          "domain": {
            "id": "66",
            "name": "Interests and Hobbies Category",
            "description": "新奇な食べ物や目的地などの興味・趣味エンティティのグループ"
          },
          "entity": {
            "id": "848921413196984320",
            "name": "Computer programming",
            "description": "コンピュータープログラミング"
          }
        }
      ],
      "source": "Twitter Web App",
      "created_at": "2020-11-16T18:09:36.000Z"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "protected": false,
        "username": "TwitterDev",
        "verified": true,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "description": "#TwitterDevチームの声であり、#TwitterAPIに関連するアップデート、ニュース、イベントの公式情報源です。",
        "pinned_tweet_id": "1293593516040269825",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "location": "127.0.0.1",
        "name": "Twitter Dev",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "url": "https://t.co/3ZX3TNiZCY"
      }
    ],
    "tweets": [
      {
        "lang": "en",
        "conversation_id": "1327011423252144128",
        "text": "👋 Twitter Developer Labs v2の返信非表示と最近の検索機能が来週月曜日、11月16日に廃止されることをお知らせします!v2 #TwitterAPIで利用可能になった新しい返信非表示と最近の検索endpointへの移行をお勧めします。詳細: https://t.co/r6z6CI7kEy",
        "possibly_sensitive": false,
        "entities": {
          "annotations": [
            {
              "start": 26,
              "end": 50,
              "probability": 0.4387,
              "type": "Product",
              "normalized_text": "Twitter Developer Labs v2"
            }
          ],
          "hashtags": [
            {
              "start": 228,
              "end": 239,
              "tag": "TwitterAPI"
            }
          ],
          "urls": [
            {
              "start": 250,
              "end": 273,
              "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…",
              "images": [
                {
                  "url": "https://pbs.twimg.com/news_img/1327011425240313856/PkurOyu1?format=jpg&name=orig",
                  "width": 1200,
                  "height": 630
                },
                {
                  "url": "https://pbs.twimg.com/news_img/1327011425240313856/PkurOyu1?format=jpg&name=150x150",
                  "width": 150,
                  "height": 150
                }
              ],
              "status": 200,
              "title": "Labs v2最近の検索と返信非表示の廃止",
              "description": "早期アクセスと返信非表示の発表で述べたように、以下のTwitter Developer Labs v2 endpointは11月16日に廃止されます。Labs v2最近の検索 Labs v2返信非表示 これらのendpointが呼び出された場合、HTTP 410ステータスで応答し、データは返されません。Labsからのフィードバックに基づいて、対応する機能をX API v2に組み込みました。関連するドキュメントは以下のリンクから確認できます。まだv2アクセスに登録していない場合は、こちらをクリックして登録してください...",
              "unwound_url": "https://devcommunity.x.com/t/retiring-labs-v2-recent-search-and-hide-replies/145795"
            }
          ]
        },
        "id": "1327011423252144128",
        "public_metrics": {
          "retweet_count": 8,
          "reply_count": 2,
          "like_count": 33,
          "quote_count": 4
        },
        "author_id": "2244994945",
        "context_annotations": [
          {
            "domain": {
              "id": "46",
              "name": "Brand Category",
              "description": "ブランドの範囲を絞り込むブランドバーティカル内のカテゴリ"
            },
            "entity": {
              "id": "781974596752842752",
              "name": "サービス"
            }
          },
          {
            "domain": {
              "id": "47",
              "name": "Brand",
              "description": "ブランドと企業"
            },
            "entity": {
              "id": "10045225402",
              "name": "Twitter"
            }
          },
          {
            "domain": {
              "id": "65",
              "name": "Interests and Hobbies Vertical",
              "description": "食べ物や旅行などのトップレベルの興味・趣味のグループ"
            },
            "entity": {
              "id": "848920371311001600",
              "name": "Technology",
              "description": "テクノロジーとコンピューティング"
            }
          },
          {
            "domain": {
              "id": "66",
              "name": "Interests and Hobbies Category",
              "description": "新奇な食べ物や目的地などの興味・趣味エンティティのグループ"
            },
            "entity": {
              "id": "848921413196984320",
              "name": "Computer programming",
              "description": "コンピュータープログラミング"
            }
          }
        ],
        "source": "Twitter Web App",
        "created_at": "2020-11-12T22:12:32.000Z"
      }
    ]
  }
}

リツイートされた引用Tweet

{
    "data": [
    {
      "lang": "en",
      "conversation_id": "1225470895902412800",
      "text": "RT @AureliaSpecker: 📣 昨年11月に書いたロンドン通勤チュートリアルを楽しんでいただけた方は、リファクタリング版をチェックしてください…",
      "referenced_tweets": [
        {
          "type": "retweeted",
          "id": "1224709550214873090"
        }
      ],
      "possibly_sensitive": false,
      "entities": {
        "annotations": [
          {
            "start": 42,
            "end": 47,
            "probability": 0.6999,
            "type": "Place",
            "normalized_text": "London"
          }
        ],
        "mentions": [
          {
            "start": 3,
            "end": 18,
            "username": "AureliaSpecker"
          }
        ]
      },
      "id": "1225470895902412800",
      "public_metrics": {
        "retweet_count": 12,
        "reply_count": 0,
        "like_count": 0,
        "quote_count": 0
      },
      "author_id": "2244994945",
      "context_annotations": [
        {
          "domain": {
            "id": "46",
            "name": "ブランドカテゴリ",
            "description": "ブランドの範囲を絞り込むブランドバーティカル内のカテゴリ"
          },
          "entity": {
            "id": "781974596752842752",
            "name": "サービス"
          }
        },
        {
          "domain": {
            "id": "47",
            "name": "ブランド",
            "description": "ブランドと企業"
          },
          "entity": {
            "id": "10045225402",
            "name": "Twitter"
          }
        },
        {
          "domain": {
            "id": "65",
            "name": "興味・趣味バーティカル",
            "description": "食べ物や旅行などのトップレベルの興味・趣味グループ"
          },
          "entity": {
            "id": "848920371311001600",
            "name": "テクノロジー",
            "description": "テクノロジーとコンピューティング"
          }
        },
        {
          "domain": {
            "id": "66",
            "name": "興味・趣味カテゴリ",
            "description": "新奇な食べ物や目的地などの興味・趣味エンティティのグループ"
          },
          "entity": {
            "id": "848921413196984320",
            "name": "コンピュータープログラミング",
            "description": "コンピュータープログラミング"
          }
        }
      ],
      "source": "Twitter for iPhone",
      "created_at": "2020-02-06T17:26:44.000Z"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "protected": false,
        "username": "TwitterDev",
        "verified": true,
        "entities": {
          "url": {
            "urls": [
              {
                "start": 0,
                "end": 23,
                "url": "https://t.co/3ZX3TNiZCY",
                "expanded_url": "https://developer.x.com/en/community",
                "display_url": "developer.x.com/en/community"
              }
            ]
          },
          "description": {
            "hashtags": [
              {
                "start": 17,
                "end": 28,
                "tag": "TwitterDev"
              },
              {
                "start": 105,
                "end": 116,
                "tag": "TwitterAPI"
              }
            ]
          }
        },
        "description": "#TwitterDevチームの声であり、#TwitterAPIに関連するアップデート、ニュース、イベントの公式情報源です。",
        "pinned_tweet_id": "1293593516040269825",
        "public_metrics": {
          "followers_count": 513962,
          "following_count": 2039,
          "tweet_count": 3635,
          "listed_count": 1672
        },
        "location": "127.0.0.1",
        "name": "Twitter Dev",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg",
        "url": "https://t.co/3ZX3TNiZCY"
      },
      {
        "created_at": "2013-01-18T23:45:43.000Z",
        "id": "1102321381",
        "protected": false,
        "username": "AureliaSpecker",
        "verified": false,
        "entities": {
          "description": {
            "mentions": [
              {
                "start": 7,
                "end": 17,
                "username": "TwitterUK"
              },
              {
                "start": 86,
                "end": 95,
                "username": "_dormrod"
              }
            ]
          }
        },
        "description": "devrel @TwitterUK • ロンドン在住のスイス人 • 観葉植物の母 • @_dormrodの専属美容師",
        "pinned_tweet_id": "1253069421322567681",
        "public_metrics": {
          "followers_count": 1036,
          "following_count": 1330,
          "tweet_count": 855,
          "listed_count": 26
        },
        "location": "London, UK",
        "name": "Aurelia Specker",
        "profile_image_url": "https://pbs.twimg.com/profile_images/1137517534104772608/8FBYgc6G_normal.jpg",
        "url": ""
      }
    ],
    "tweets": [
      {
        "lang": "en",
        "conversation_id": "1224709550214873090",
        "text": "📣 昨年11月に書いたロンドン通勤チュートリアルを楽しんでいただけた方は、Twitterの新しい検索endpointを使用するリファクタリング版をチェックしてください 🚇 https://t.co/87XIPZmZBJ\n\n#DEVcommunity #Pythontutorial @TwitterDev @TwitterAPI https://t.co/dXrJYvn3hY",
        "referenced_tweets": [
          {
            "type": "quoted",
            "id": "1195000047089389573"
          }
        ],
        "possibly_sensitive": false,
        "entities": {
          "annotations": [
            {
              "start": 22,
              "end": 27,
              "probability": 0.7075,
              "type": "Place",
              "normalized_text": "London"
            },
            {
              "start": 120,
              "end": 126,
              "probability": 0.7355,
              "type": "Product",
              "normalized_text": "Twitter"
            }
          ],
          "mentions": [
            {
              "start": 206,
              "end": 217,
              "username": "TwitterDev"
            },
            {
              "start": 218,
              "end": 229,
              "username": "TwitterAPI"
            }
          ],
          "hashtags": [
            {
              "start": 176,
              "end": 189,
              "tag": "DEVcommunity"
            },
            {
              "start": 190,
              "end": 205,
              "tag": "Pythontutorial"
            }
          ],
          "urls": [
            {
              "start": 151,
              "end": 174,
              "url": "https://t.co/87XIPZmZBJ",
              "expanded_url": "https://bit.ly/2OrnrCC",
              "display_url": "bit.ly/2OrnrCC",
              "status": 200,
              "unwound_url": "https://dev.to/twitterdev/migrate-to-twitter-s-newly-released-labs-recent-search-endpoint-3npe"
            },
            {
              "start": 230,
              "end": 253,
              "url": "https://t.co/dXrJYvn3hY",
              "expanded_url": "https://x.com/AureliaSpecker/status/1195000047089389573",
              "display_url": "twitter.com/AureliaSpecker…"
            }
          ]
        },
        "id": "1224709550214873090",
        "public_metrics": {
          "retweet_count": 12,
          "reply_count": 0,
          "like_count": 43,
          "quote_count": 2
        },
        "author_id": "1102321381",
        "context_annotations": [
          {
            "domain": {
              "id": "46",
            "name": "ブランドカテゴリ",
            "description": "ブランドの範囲を絞り込むブランドバーティカル内のカテゴリ"
            },
            "entity": {
              "id": "781974596752842752",
            "name": "サービス"
            }
          },
          {
            "domain": {
              "id": "47",
            "name": "ブランド",
            "description": "ブランドと企業"
            },
            "entity": {
              "id": "10045225402",
            "name": "Twitter"
            }
          },
          {
            "domain": {
              "id": "65",
              "name": "興味・趣味の分野",
              "description": "食べ物や旅行などの最上位レベルの興味・趣味のグループ分け"
            },
            "entity": {
              "id": "848920371311001600",
              "name": "テクノロジー",
              "description": "テクノロジーとコンピューティング"
            }
          },
          {
            "domain": {
              "id": "66",
              "name": "興味・趣味のカテゴリ",
              "description": "新奇な食べ物や目的地などの興味・趣味エンティティのグループ分け"
            },
            "entity": {
              "id": "848921413196984320",
              "name": "コンピュータープログラミング",
              "description": "コンピュータープログラミング"
            }
          }
        ],
        "source": "Twitter Web App",
        "created_at": "2020-02-04T15:01:25.000Z"
      }
    ]
  }
}
I