Instagram API
Instagram APIは、ユーザープロフィールの検索、投稿・リール・タグ付けされたメディアの一覧表示、ストーリーの読み取り、投稿詳細の取得、コメントと返信の読み取り、ユーザーとハッシュタグの検索、ソーシャルグラフ(フォロワー/フォロー中)の取得を可能にします。12のエンドポイントがあり、各リクエストは2クレジットです。
エンドポイント
| エンドポイント | 説明 |
|---|---|
POST /api/v1/instagram/profile | ユーザー名またはユーザーIDでユーザープロフィールを取得 |
POST /api/v1/instagram/user/posts | ユーザーの投稿を一覧表示(ページネーション対応) |
POST /api/v1/instagram/user/reels | ユーザーのリールを一覧表示(ページネーション対応) |
POST /api/v1/instagram/user/tagged | ユーザーがタグ付けされた投稿を一覧表示(ページネーション対応) |
POST /api/v1/instagram/user/stories | ユーザーのアクティブなストーリーを取得 |
POST /api/v1/instagram/post | 単一の投稿の詳細を取得 |
POST /api/v1/instagram/post/comments | 投稿のコメントを一覧表示 |
POST /api/v1/instagram/post/comments/replies | 特定のコメントへの返信を一覧表示 |
POST /api/v1/instagram/search/users | キーワードでInstagramユーザーを検索 |
POST /api/v1/instagram/search/hashtags | キーワードでInstagramハッシュタグを検索 |
POST /api/v1/instagram/user/followers | ユーザーのフォロワーを一覧表示 |
POST /api/v1/instagram/user/followings | ユーザーがフォローしているアカウントを一覧表示 |
認証
| ヘッダー | 値 | 必須 |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | はい |
Content-Type | application/json | はい |
すべての成功レスポンスには、クレジット追跡フィールドが含まれます: credits_used, credits_remaining, response_time (ms)。
ユーザーの特定
ユーザーエンドポイントはいずれかのusernameまたは数値のuser_idを受け付けます。usernameを渡すのが最も簡単な方法で、自動的にuser_idに解決されます。繰り返し呼び出す場合は、プロフィールレスポンスからdata.user.idを読み取り、それをuser_idとして渡すことで検索をスキップできます。
ユーザープロフィール
POST https://api.scavio.dev/api/v1/instagram/profileInstagramユーザープロフィールを取得します。いずれかの usernameまたはuser_idを渡してください。
リクエストボディ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
username | string | -- | Instagramハンドル(@なし)。usernameまたはuser_idのいずれかが必要です。 |
user_id | string | -- | 数値のユーザーID。usernameまたはuser_idのいずれかが必要です。 |
例
curl -X POST 'https://api.scavio.dev/api/v1/instagram/profile' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"username": "instagram"}'レスポンスフィールド (data.user)
| フィールド | 型 | 説明 |
|---|---|---|
id | string | 数値のユーザーID(user_idとして使用) |
username | string | ユーザー名(ハンドル) |
full_name | string | 表示名 |
biography | string | 自己紹介テキスト |
external_url | string | プロフィールリンク |
profile_pic_url_hd | string | HDアバターURL |
is_verified | boolean | 認証バッジ |
is_private | boolean | 非公開アカウント |
edge_followed_by.count | number | フォロワー数 |
edge_follow.count | number | フォロー中数 |
edge_owner_to_timeline_media.count | number | 総投稿数 |
レスポンス例
{
"data": {
"user": {
"id": "25025320",
"username": "instagram",
"full_name": "Instagram",
"biography": "Discover what's next on Instagram",
"is_verified": true,
"is_private": false,
"edge_followed_by": { "count": 672000000 },
"edge_follow": { "count": 250 },
"edge_owner_to_timeline_media": { "count": 7600 }
}
},
"response_time": 845,
"credits_used": 2,
"credits_remaining": 11750
}ユーザー投稿
POST https://api.scavio.dev/api/v1/instagram/user/postsユーザーの投稿(タイムラインメディア)を一覧表示します。usernameまたは user_idを渡してください。
リクエストボディ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
username | string | -- | ハンドル(@なし)。usernameまたはuser_idのいずれかが必要です。 |
user_id | string | -- | 数値のユーザーID。usernameまたはuser_idのいずれかが必要です。 |
count | number | 12 | 1ページあたりの結果数(1-50)。 |
cursor | string | -- | ページネーションカーソル。前回のレスポンスのdata.page_info.end_cursorを使用します。 |
ページネーション
次のリクエストのcursorとしてdata.page_info.end_cursorを使用します。data.page_info.has_next_pageが falseになったら停止します。
ユーザーリール (/api/v1/instagram/user/reels) およびタグ付けされた投稿 (/api/v1/instagram/user/tagged)は、ユーザー投稿と同じパラメータとページネーションを使用し、それぞれリールとタグ付けされたメディアを返します。
ユーザーストーリー
POST https://api.scavio.dev/api/v1/instagram/user/storiesユーザーの現在アクティブなストーリーを取得します。usernameまたは user_idを渡してください。各ストーリーのメディアURL、タイプ(画像/動画)、タイムスタンプを返します。
投稿詳細
POST https://api.scavio.dev/api/v1/instagram/post単一の投稿またはリールの詳細を取得します。いずれか一つの url、media_id、またはshortcodeを渡してください。
リクエストボディ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
url | string | -- | 投稿URL。/p/、/reel/、/reels/、/tv/パスに対応。 |
media_id | string | -- | 数値のメディアID。 |
shortcode | string | -- | 投稿のショートコード(例: DUajw4YkorV)。 |
例
curl -X POST 'https://api.scavio.dev/api/v1/instagram/post' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"shortcode": "DUajw4YkorV"}'投稿コメント
POST https://api.scavio.dev/api/v1/instagram/post/comments投稿のコメントを取得します。いずれかの shortcodeまたは投稿のurlを渡してください。
リクエストボディ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
shortcode | string | -- | 投稿のショートコード。shortcodeまたはurlのいずれかが必要です。 |
url | string | -- | 投稿URL。そこからショートコードが抽出されます。 |
cursor | string | -- | ページネーションカーソル。前回のレスポンスのdata.next_min_idを使用します。 |
sort_order | string | "popular" | "popular"または"newest"。 |
ページネーション
次のcursorとしてdata.next_min_idを使用します。存在しなくなったら停止します。各コメントにはpkフィールドがあり、それを返信エンドポイントのcomment_idとして使用します。
コメント返信
POST https://api.scavio.dev/api/v1/instagram/post/comments/replies特定のコメントへの返信を取得します。
リクエストボディ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
media_id | string | -- | 必須。投稿の数値メディアID。 |
comment_id | string | -- | 必須。親コメントID(コメントエンドポイントのpk)。 |
cursor | string | -- | ページネーションカーソル。前回のレスポンスのdata.next_min_child_cursorを使用します。 |
ユーザー検索
POST https://api.scavio.dev/api/v1/instagram/search/usersキーワードでInstagramユーザーを検索します。
リクエストボディ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
keyword | string | -- | 必須。検索クエリ(1-500文字)。 |
cursor | string | -- | ページネーション用の前回のレスポンスからのランクトークン。 |
ハッシュタグ検索 (/api/v1/instagram/search/hashtags) は同じパラメータを受け取り、一致するハッシュタグとそのメディア数を返します。
ユーザーフォロワー
POST https://api.scavio.dev/api/v1/instagram/user/followersユーザーのフォロワーリストを取得します。usernameまたはuser_idを渡してください。
リクエストボディ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
username | string | -- | ハンドル(@なし)。usernameまたはuser_idのいずれかが必要です。 |
user_id | string | -- | 数値のユーザーID。usernameまたはuser_idのいずれかが必要です。 |
count | number | 12 | 1ページあたりの結果数(1-100)。 |
cursor | string | -- | ページネーションカーソル。前回のレスポンスのdata.next_max_idを使用します。 |
ユーザーフォロー中
POST https://api.scavio.dev/api/v1/instagram/user/followingsユーザーがフォローしているアカウントを取得します。リクエストの形式とパラメータはフォロワーと同じです。
ページネーションリファレンス
| カーソルフィールド | エンドポイント | 停止条件 |
|---|---|---|
data.page_info.end_cursor | user/posts, user/reels, user/tagged | has_next_page === false |
data.next_min_id | post/comments | カーソルが存在しない |
data.next_min_child_cursor | post/comments/replies | カーソルが存在しない |
data.next_max_id | user/followers, user/followings | カーソルが存在しない |
| ランクトークン | search/users, search/hashtags | それ以上の結果がない |
注意事項
- すべてのエンドポイントはリクエストごとに2クレジットを消費します。
- ユーザーエンドポイントは
usernameまたは数値のuser_idを受け付けます。投稿エンドポイントはurl、media_id、またはshortcodeを受け付けます。 - フォロワーとフォロー中のリストは、Instagramが許可するアカウントに限りページネーション可能です。大規模または認証済みアカウントは
should_limit_list_of_followers: true、has_more: false、およびnext_max_idなしを返します。これはInstagramの制限であり、エラーではありません。小規模で未認証のアカウントでページネーションをテストしてください。 - エラーについては、
401、429、502の処理を参照してください。