APIのレスポンス形式:User・Tweetオブジェクトのスキーマ
Sorsa APIはすべてのデータをJSONで返します。このページでは、レスポンス構造、主要なデータオブジェクト、フィールドの型、ページネーションの仕組みを説明します。各エンドポイントから返されるデータを正確に把握できます。共通ルール
各オブジェクトの説明に入る前に、API全体に適用される形式を確認してください。 IDは文字列です。 X/TwitterのすべてのID(id、conversation_id_str、in_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です。 verified、is_reply、protected、can_dmなどの状態フラグは必ずtrueまたはfalseで、0・1や文字列の"true"・"false"ではありません。
nullと欠落フィールド。 任意フィールドは慎重に扱い、値がない場合と、実際に測定された0やfalseを区別してください。bio_urlsやpinned_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オブジェクトです。
/user-tweets、/comments、/quotes、/search-tweets、/mentions、/list-tweets、/community-tweets、/community-search-tweetsで使います。
/new-followers-7d、/new-following-7d、/top-followingで使います。/top-followersはTopFollowersResponseを使い、簡略プロフィールとscoreフィールドを返します。
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_statusとretweeted_statusには、それぞれのuser、entities、エンゲージメント指標を含む完全なTweetオブジェクトが入ります。そのため追加のリクエストを送らず、1回のAPI呼び出しで関連データを取得できます。
TweetEntityオブジェクト
entities配列の各要素は、ツイートに添付されたメディアや埋め込まれたリンクを表します。
カーソルによるページネーション
ページ分割される一覧エンドポイントは、カーソル方式を使います。バッチ取得と、上記の暗号資産分析の一覧はカーソルを使いません。新しい内容が常に追加される動的なフィードでは、オフセット方式より信頼性が高い方法です。 仕組み:- 最初のリクエストはカーソルなしで送信します。
- レスポンスにはデータとともに
next_cursorが含まれます。 - 次のページを取得するには、その
next_cursorの値を次のリクエストに渡します。 next_cursorがnullまたは存在しなければ、データの終端です。