Skip to main content

APIのレスポンス形式:User・Tweetオブジェクトのスキーマ

Sorsa APIはすべてのデータをJSONで返します。このページでは、レスポンス構造、主要なデータオブジェクト、フィールドの型、ページネーションの仕組みを説明します。各エンドポイントから返されるデータを正確に把握できます。

共通ルール

各オブジェクトの説明に入る前に、API全体に適用される形式を確認してください。 IDは文字列です。 X/TwitterのすべてのID(idconversation_id_strin_reply_to_tweet_idなど)は整数ではなく文字列で返されます。Xが使うSnowflake IDは64ビットの数値で、JavaScriptのNumber.MAX_SAFE_INTEGERを超えます。文字列で返すことにより、ブラウザー、Node.js、JSON数値を浮動小数点数で扱う言語で、気付かないうちに精度が失われるのを防ぎます。 主要な日時はISO 8601文字列です。 UserとTweetのcreated_atは、2026-03-06T12:00:00Zのような値です。他の日付フィールドは各エンドポイントのスキーマを確認してください。確認結果やフォロー関係の日付も同じ形式とは限りません。 真偽値は厳密なbooleanです。 verifiedis_replyprotectedcan_dmなどの状態フラグは必ずtrueまたはfalseで、01や文字列の"true""false"ではありません。 nullと欠落フィールド。 任意フィールドは慎重に扱い、値がない場合と、実際に測定された0やfalseを区別してください。bio_urlspinned_tweet_idsなどの任意配列を反復処理する場合、nullや欠落を空の配列に正規化します(Pythonではuser.get("bio_urls") or []、JavaScriptではuser.bio_urls ?? [])。簡略化されたレスポンスモデルでは、完全なUserオブジェクトの一部のフィールドが省略されます。

レスポンスのラッパー

/info/tweet-infoのように単一のオブジェクトを返すエンドポイントは、そのオブジェクトを最上位に直接返します。一覧を返すエンドポイントは、次のいずれかの構造を使います。 UsersResponse/followers/follows/verified-followers/retweeters/search-users/list-members/list-followersで使います。/community-membersも同じラッパーのキーを使いますが、中身は簡略化されたCommunityUserオブジェクトです。
TweetsResponse/user-tweets/comments/quotes/search-tweets/mentions/list-tweets/community-tweets/community-search-tweetsで使います。
FollowersResponse/new-followers-7d/new-following-7d/top-followingで使います。/top-followersTopFollowersResponseを使い、簡略プロフィールとscoreフィールドを返します。
注:FollowersResponseにはnext_cursorがありません。1回のレスポンスで結果全体を返します。

Userオブジェクト

UserオブジェクトはX/Twitterのアカウントプロフィールを表します。/infoから直接返されるほか、一覧エンドポイントの配列要素や、各Tweetオブジェクト内のuserフィールドとして返されます。

Followerオブジェクト

Followerオブジェクトは、Userオブジェクトにフィールドを1つ追加したものです。/new-followers-7d/new-following-7d/top-followingで返されます。/top-followersは、scoreを持つ別の簡略モデルを返します。

Tweetオブジェクト

Tweetオブジェクトには、1件のツイートの全文、メタデータ、エンゲージメント指標、ネストされた関連情報が含まれます。/tweet-infoから直接返され、ツイート一覧のエンドポイントでは配列要素として返されます。
投稿内容のフィールド エンゲージメント指標 スレッドと返信の情報 ネストされたオブジェクト quoted_statusretweeted_statusには、それぞれのuserentities、エンゲージメント指標を含む完全なTweetオブジェクトが入ります。そのため追加のリクエストを送らず、1回のAPI呼び出しで関連データを取得できます。

TweetEntityオブジェクト

entities配列の各要素は、ツイートに添付されたメディアや埋め込まれたリンクを表します。

カーソルによるページネーション

ページ分割される一覧エンドポイントは、カーソル方式を使います。バッチ取得と、上記の暗号資産分析の一覧はカーソルを使いません。新しい内容が常に追加される動的なフィードでは、オフセット方式より信頼性が高い方法です。 仕組み:
  1. 最初のリクエストはカーソルなしで送信します。
  2. レスポンスにはデータとともにnext_cursorが含まれます。
  3. 次のページを取得するには、そのnext_cursorの値を次のリクエストに渡します。
  4. next_cursornullまたは存在しなければ、データの終端です。
GETエンドポイントでは、クエリパラメーターとしてカーソルを渡します。
POSTエンドポイントでは、JSON本文にカーソルを渡します。
Pythonの例:全フォロワーをページネーションで取得する
詳しい方法と性能に関するヒントは、ページネーションを参照してください。

次のステップ