第一次资料查询
在控制台获取 API 密钥,再替换示例中的 <API_KEY>。
示例按公开用户名 instagram 查询资料。复制示例,或用下方表单换成任意公开用户名或数字用户 ID 试一次。
基础 URL https://api.opendata-api.com
curl -X GET 'https://api.opendata-api.com/api/project/instagram/user-info?key=<API_KEY>&username_or_id=instagram'import requests
response = requests.request(
"GET",
"https://api.opendata-api.com/api/project/instagram/user-info",
params={
"key": "<API_KEY>",
"username_or_id": "instagram",
},
timeout=30,
)
response.raise_for_status()
print(response.json())const url = new URL("https://api.opendata-api.com/api/project/instagram/user-info");
url.search = new URLSearchParams({
"key": "<API_KEY>",
"username_or_id": "instagram",
}).toString();
const response = await fetch(url, {
method: "GET",
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
console.log(await response.json());请求基础设置
- 翻页接口首次请求留空分页参数,之后把上一次响应顶层的 pagination_token 原样带回续页;点赞列表用 end_cursor,话题热门流用 next_page。不再返回可用令牌时停止翻页,合并多页按媒体 id 去重。
- 部分查询在目标不存在时仍返回 HTTP 200,正文是 detail 为 Not found 的业务结果。请按未命中处理并停止重试,不要把它当成有效资料入库。
- 响应中的图片与视频地址有时效,过期后需重新调用获取;需要跨域嵌入媒体时设置 url_embed_safe=true。
- 仅覆盖公开账号与公开内容:私密账号的帖子、快拍与关注关系不可获取;粉丝与点赞列表是可访问样本而非完整导出,互动计数也不是官方账号 Insights。
查看响应
同时检查 HTTP 状态与网关返回的 code/message/data 业务状态:HTTP 200 只代表请求到达,业务成败以 code 与 message 为准;部分查询在目标不存在时仍以 HTTP 200 返回 detail 为 Not found 的业务结果。公开内容随时变化,媒体链接也有时效。
按任务选择接口
- 用户资料
-
按用户名或数字 ID 查资料、按关键词搜账号、翻页粉丝与关注列表、找相似账号。user-info 返回的 id 可复用于其余接口;不存在的用户名返回业务级 Not found。
- 帖子与 Reels
-
拉取用户帖子、纯 Reels 与被标记帖子,或用帖子链接 / shortcode 查详情。首次请求留空 pagination_token,之后用上一次响应的令牌续页并按媒体 id 去重。
- 话题与标签
-
先按关键词发现话题标签,再按 top、recent 或 reels 视图采集标签帖子;也可直接按关键词搜索 Reels。recent 与 reels 流用 pagination_token,top 流用 next_page。
- 互动数据
-
按 shortcode 或链接读评论(recent 或 popular 排序),用评论的 pk 作为 comment_id 展开回复线程,点赞样本则用 end_cursor 翻页。
- 地点
-
用地名或经纬度找到 location_id,再查地点详情与该地点下的帖子。同名场馆用返回的城市、地址与坐标消歧后再选定。
- 快拍与精选
-
读取公开账号当前可见的快拍(会过期),或列出精选集合后用其数字 id 调 user-highlight-detail 读取内容。媒体链接有时效。
- 音乐与音频
-
按关键词搜音频、用 audio_canonical_id 查音频详情,再列出使用该音频的 Reels。audio_canonical_id 也可从 Reels 的 clips_metadata 取得。
用户资料
/api/project/instagram/user-info 按用户名或 ID 获取 Instagram 用户资料
完整文档 →说明
按用户名或数字用户 ID 解析公开 Instagram 账号。传入 username_or_id——例如用户名 instagram 或 ID 25025320,两种形式解析到同一条记录。实测响应把资料包在 data 里:id、username、full_name、biography、follower_count、following_count、media_count、is_verified、is_private、profile_pic_url 与 profile_pic_url_hd,账号公开时还会有 external_url、bio_links 与账号类目字段。设 include_about=true 可在账号公开时追加含 country 与 date_joined 的 about 对象。未命中时返回 HTTP 200 且正文恰好是 {"detail":"Not found"}——把它当作业务级未命中,而不是一份资料。
测试接口 1 个必填 · 2 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
可选参数 (2)
| 参数 | 位置 | 值 |
|---|---|---|
| query | ||
| query |
/api/project/instagram/user-search 按关键词搜索 Instagram 账号
完整文档 →说明
按名称或关键词查找公开 Instagram 账号。传入 keyword,例如 instagram。实测响应返回 data.count 与 data.items[],每个候选带 id、username、full_name、is_verified、is_private、profile_pic_url 与 profile_pic_id;以 instagram 搜索返回了 47 个候选账号,认证官方账号(id 25025320)排在最前。结果是按相关度排序的候选——搜索命中不等于身份确认,选定账号后请用用户资料接口确认。关键词无匹配时 items 为空列表。
测试接口 1 个必填 · 0 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
/api/project/instagram/user-followers 按用户名或 ID 获取粉丝列表
完整文档 →说明
翻页读取公开账号可访问的粉丝列表。传入 username_or_id;首次请求留空 pagination_token,之后传入上一次响应顶层的 pagination_token 续页。实测响应含 data.count(本页记录数)、data.total(账号上报的粉丝总数)与 data.items[],每条粉丝记录带 id、username、full_name、is_private、is_verified、profile_pic_url 与 latest_story_ts。instagram 的一页返回 50 条记录,而上报总数以亿计。请把每页当作样本:本页条数、上报总数与已采集条数是三个不同的数,列表中的私密账号不会开放其内容。
测试接口 1 个必填 · 1 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
可选参数 (1)
| 参数 | 位置 | 值 |
|---|---|---|
| query | 留空发起第一页;之后传入上一次响应返回的分页令牌续页。它是不透明凭据,会随请求 URL 发送且可能出现在日志中,请勿分享。 |
/api/project/instagram/user-following 获取用户关注的账号列表
完整文档 →说明
列出公开 Instagram 用户关注的账号。传入 username_or_id,可选 count(每页默认且最多 50 条);用上一次响应返回的 pagination_token 续页。记录结构与粉丝列表一致:id、username、full_name、is_private、is_verified 与 profile_pic_url。这是“向外关注”方向——品牌的关注列表往往是一张经过策划的伙伴、姐妹账号与背书机构地图,与粉丝列表互补,适合关系研究。
测试接口 1 个必填 · 2 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
可选参数 (2)
| 参数 | 位置 | 值 |
|---|---|---|
| query | ||
| query | 留空发起第一页;之后传入上一次响应返回的分页令牌续页。它是不透明凭据,会随请求 URL 发送且可能出现在日志中,请勿分享。 |
/api/project/instagram/similar-users 查找相似 Instagram 账号
完整文档 →说明
按公开 Instagram 用户名或用户 ID 推荐相似账号。传入 username_or_id,例如 mrbeast 或 2278169415。文档化响应返回一组相关账号记录,带常规身份字段:id、username、full_name、认证标记与头像。把推荐当作待评审的发现线索,而不是量化相似度评分——接口不解释两个账号为何关联,入围前请用资料接口逐一核实。
测试接口 1 个必填 · 0 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
帖子与 Reels
/api/project/instagram/user-posts 按用户名或 ID 获取用户帖子
完整文档 →说明
拉取公开 Instagram 账号的近期帖子流。传入 username_or_id;首次请求留空 pagination_token,之后用返回的顶层 pagination_token 续页。实测响应含 data.count、data.items[] 与作者摘要 data.user(id、username、full_name、is_verified、is_private、profile_pic_url)。每个条目暴露 id、code(shortcode 短码)、taken_at(Unix 秒)、caption.text(含提取出的话题与提及)、media_type(1=图片,2=视频,8=图集)、like_count、comment_count、视频的 play_count,以及 image_versions2 / video_versions 媒体地址与图集的 carousel_media。以 instagram 调用返回了 12 条近期帖子,均为该账号所有且时间戳新鲜。页大小按观测行为对待而非契约,合并多页时按媒体 id 去重。
测试接口 1 个必填 · 2 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
可选参数 (2)
| 参数 | 位置 | 值 |
|---|---|---|
| query | 留空发起第一页;之后传入上一次响应返回的分页令牌续页。它是不透明凭据,会随请求 URL 发送且可能出现在日志中,请勿分享。 | |
| query |
/api/project/instagram/post-detail 获取 Instagram 帖子或 Reel 详情
完整文档 →说明
按 shortcode 或 URL 解析单条帖子、Reel 或 IGTV。传入 code_or_url——/p/、/reel/ 或 /tv/ 之后的那一段(如 DeM-xDCA2W5),或完整 instagram.com 链接。实测响应的 data 含 id、code、taken_at、caption(文本加提取出的话题与提及)、user(作者 id、username 与认证)、media_type、like_count、comment_count、image_versions2 / video_versions 媒体地址、图集的 carousel_media、标记地点时的 location,以及 Reels 的 clips_metadata(audio_canonical_id、audio_type、复用标记)。查询短码 DeM-xDCA2W5 返回媒体 id 4002850218218579385,归属 instagram,文案与时间戳吻合。把返回的数字媒体 id 作为跨接口的关联键保留。
测试接口 1 个必填 · 1 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
可选参数 (1)
| 参数 | 位置 | 值 |
|---|---|---|
| query |
/api/project/instagram/user-reels 按用户名或 ID 获取 Reels
完整文档 →说明
只拉取公开账号发布的 Reels(短视频)。传入 username_or_id;用上一次响应的 pagination_token 续页。条目沿用帖子结构——id、code、taken_at、caption、media_type=2 及 video_versions 与 clips_metadata、like_count、comment_count、play_count——但仅限该账号的 Reels 标签页,无需自己从混合帖子流里过滤。
测试接口 1 个必填 · 2 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
可选参数 (2)
| 参数 | 位置 | 值 |
|---|---|---|
| query | 留空发起第一页;之后传入上一次响应返回的分页令牌续页。它是不透明凭据,会随请求 URL 发送且可能出现在日志中,请勿分享。 | |
| query |
/api/project/instagram/user-tagged-posts 获取标记了某用户的帖子
完整文档 →说明
列出标记了指定 Instagram 账号的公开帖子。传入 username_or_id;用上一次响应的 pagination_token 续页。条目沿用标准帖子结构——id、code、taken_at、caption、作者 user 对象、media_type 与互动计数——但作者是标记了目标账号的其他账号,这与文案提及或话题标签是不同的信号。适合评审与品牌或红人相关的用户自生产内容。
测试接口 1 个必填 · 2 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
可选参数 (2)
| 参数 | 位置 | 值 |
|---|---|---|
| query | 留空发起第一页;之后传入上一次响应返回的分页令牌续页。它是不透明凭据,会随请求 URL 发送且可能出现在日志中,请勿分享。 | |
| query |
话题与标签
/api/project/instagram/hashtag-posts 获取 Instagram 话题标签帖子
完整文档 →说明
采集带某话题标签的公开帖子。keyword 传不带 '#' 的标签文本,如 travel。feed_type 可选 top(默认)、recent 或 reels;recent 与 reels 流用 pagination_token 翻页,top 流用上一次响应的 next_page 值翻页。实测响应返回 data.count 与标准帖子结构的 data.items[]——id、code、taken_at、带话题的 caption、作者 user 对象、media_type、like_count 与 comment_count——以及顶层续页令牌。以 travel 且 feed_type=recent 调用返回了 24 条近期帖子,文案均含 #travel。按媒体 id 去重,因为相邻采集窗口会重叠。
测试接口 1 个必填 · 4 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query | ||
| query |
可选参数 (3)
| 参数 | 位置 | 值 |
|---|---|---|
| query | 留空发起第一页;之后传入上一次响应返回的分页令牌续页。它是不透明凭据,会随请求 URL 发送且可能出现在日志中,请勿分享。 | |
| query | ||
| query |
/api/project/instagram/search-hashtag 按关键词搜索话题标签
完整文档 →说明
发现与关键词匹配的话题标签名。传入 keyword,如 travel。文档化响应返回候选标签及其名称与媒体用量元数据(如有),便于在采集帖子前把种子话题扩展成评审过的标签词表。话题发现是命名步骤——每个选定标签再配话题帖子接口取内容。
测试接口 1 个必填 · 0 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
/api/project/instagram/search-reels 按关键词搜索 Reels
完整文档 →说明
按关键词搜索公开 Reels。传入 keyword,如 travel;用上一次响应的 pagination_token 续页。条目沿用 Reel 帖子结构:id、code、taken_at、caption、作者 user 对象、视频版本、clips_metadata 音频字段与互动计数。关键词匹配只能找到候选——请用资料接口核实 Reel 作者与契合度,不要仅凭命中就假定相关。
测试接口 1 个必填 · 2 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
可选参数 (2)
| 参数 | 位置 | 值 |
|---|---|---|
| query | 留空发起第一页;之后传入上一次响应返回的分页令牌续页。它是不透明凭据,会随请求 URL 发送且可能出现在日志中,请勿分享。 | |
| query |
互动数据
/api/project/instagram/post-comments 获取 Instagram 帖子评论
完整文档 →说明
读取公开帖子、Reel 或 IGTV 的评论。传入 code_or_url(shortcode 或 URL);可选 sort_by 为 recent(默认)或 popular;用上一次响应的 pagination_token 续页。文档化响应返回该帖的文案记录、comment_count 与 comments[],每条评论带 pk(评论 id)、text、created_at、comment_like_count、child_comment_count 及含 id、username、认证与私密标记、头像的 user 对象。保留每条评论的 pk——它是评论回复接口的 comment_id 输入。
测试接口 1 个必填 · 3 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
可选参数 (3)
| 参数 | 位置 | 值 |
|---|---|---|
| query | ||
| query | 留空发起第一页;之后传入上一次响应返回的分页令牌续页。它是不透明凭据,会随请求 URL 发送且可能出现在日志中,请勿分享。 | |
| query |
/api/project/instagram/post-comment-replies 获取某条评论的回复
完整文档 →说明
展开一条评论下的回复线程。传入帖子的 code_or_url 与 comment_id——即评论接口返回的评论 pk;用上一次响应的 pagination_token 续页。文档化响应返回 child_comment_count 与 child_comments[],每条回复带 pk、text、created_at、comment_like_count 与作者 user 对象。这是面向分析的读取能力,不是自动回复。
测试接口 2 个必填 · 1 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query | ||
| query |
可选参数 (1)
| 参数 | 位置 | 值 |
|---|---|---|
| query | 留空发起第一页;之后传入上一次响应返回的分页令牌续页。它是不透明凭据,会随请求 URL 发送且可能出现在日志中,请勿分享。 |
/api/project/instagram/post-likes 获取帖子点赞列表样本
完整文档 →说明
抽样公开帖子或 Reel 的可见点赞者。传入 code_or_url;count 每页最多 50 条(默认 50);用上一次响应的 end_cursor 续页。文档化响应返回 data.count(该帖点赞总数)、end_cursor 与 likes[],每条记录带 id、username、full_name、is_private、is_verified 与 profile_pic_url。可访问样本不是完整点赞名单——按账号 id 对比样本,避免完整性声明。
测试接口 1 个必填 · 2 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
可选参数 (2)
| 参数 | 位置 | 值 |
|---|---|---|
| query | ||
| query |
地点
/api/project/instagram/search-location 按名称搜索 Instagram 地点
完整文档 →说明
把地名解析为候选 Instagram 地点记录。传入 keyword,如 paris。实测响应返回 data.count 与 data.items[],条目含 id、name、short_name、address、city、latitude、longitude 及可用时的 facebook_places_id。搜索 paris 返回 30 个地点,包括卢浮宫、埃菲尔铁塔与巴黎圣母院,坐标合理。同名场馆请用返回的城市、地址与坐标消歧,不要盲目取第一条。
测试接口 1 个必填 · 0 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
/api/project/instagram/search-coordinates 按经纬度查找附近地点
完整文档 →说明
发现一个地理点附近的 Instagram 地点记录。latitude(北纬为正)与 longitude(东经为正)传十进制字符串,如 40.7 与 -74。文档化响应返回附近地点候选,带常规地点字段,可直接进地点详情与地点帖子接口解析。适合已知坐标找其场馆的地点记录;接口定位的是地点,不是人。
测试接口 2 个必填 · 0 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query | ||
| query |
/api/project/instagram/location-info 按 ID 获取地点详情
完整文档 →说明
把 Instagram location_id 解析为地点记录。传入 location_id——来自搜索结果或帖子中的地点数据。文档化响应的 data 含 id、name、slug、category、media_count 与 location_data(address_street、city_name、latitude、longitude、facebook_places_id);部分场馆还返回 hours、phone、price_range 与 website。地址或坐标字段可能为空,给数据集打标时要容忍缺值。
测试接口 1 个必填 · 1 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
可选参数 (1)
| 参数 | 位置 | 值 |
|---|---|---|
| query |
/api/project/instagram/posts-location 获取某地点下的帖子
完整文档 →说明
采集标记了某 Instagram 地点的公开帖子。传入 location_id;用上一次响应的 pagination_token 续页。文档化响应返回标准帖子结构的媒体条目——id、code、taken_at、caption、作者 user 对象、media_type 与互动计数——均与该地点关联。地理标记是作者自选的内容标签:把它当作声称的上下文,而非到场证明。
测试接口 1 个必填 · 1 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
可选参数 (1)
| 参数 | 位置 | 值 |
|---|---|---|
| query | 留空发起第一页;之后传入上一次响应返回的分页令牌续页。它是不透明凭据,会随请求 URL 发送且可能出现在日志中,请勿分享。 |
快拍与精选
/api/project/instagram/user-stories 按用户名或 ID 获取快拍
完整文档 →说明
获取公开 Instagram 账号当前可见的 Stories 快拍。传入 username_or_id。快拍是瞬态内容:响应反映采集时刻可见的内容,条目自带媒体地址与时间戳,过期或删除的快拍无法通过本接口找回。需要媒体地址容忍跨域嵌入时设 url_embed_safe=true;无论如何媒体链接都有时效。
测试接口 1 个必填 · 1 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
可选参数 (1)
| 参数 | 位置 | 值 |
|---|---|---|
| query |
/api/project/instagram/user-highlights 列出用户的精选动态
完整文档 →说明
列出公开 Instagram 主页上钉选的精选动态集合。传入 username_or_id。文档化响应返回精选记录:id(highlight:... 形式)、title、封面媒体与条目数——这是读取单个精选内容前的盘点步骤。把返回的 id 传给精选详情接口读取其中媒体。
测试接口 1 个必填 · 1 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
可选参数 (1)
| 参数 | 位置 | 值 |
|---|---|---|
| query |
/api/project/instagram/user-highlight-detail 按 ID 获取精选动态内容
完整文档 →说明
读取一个精选集合内的媒体。传入 highlight_id——精选列表返回的 id(数字部分,如 17951474176899044)。文档化响应返回精选记录及其 items[]:每个条目带媒体 id、shortcode、时间戳与图片或视频版本,连同集合的封面与标题元数据。条目媒体地址有时效,链接过期时重新获取。
测试接口 1 个必填 · 1 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
可选参数 (1)
| 参数 | 位置 | 值 |
|---|---|---|
| query |
音乐与音频
/api/project/instagram/search-music-audio 按关键词搜索音频
完整文档 →说明
按关键词找音频记录——授权歌曲与原创声音。传入 keyword,如歌名或艺人名。文档化响应返回候选音频记录,带标题、艺人与标识字段。通过音频详情接口确认目标记录,再用音频帖子接口列出使用它的 Reels。发现不代表获得底层音乐的复用授权。
测试接口 1 个必填 · 0 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
/api/project/instagram/music-audio-info 按 ID 获取音频详情
完整文档 →说明
把音频 canonical ID 解析为元数据记录。传入 audio_canonical_id——来自 Reel 的 clips_metadata 或音频搜索。文档化响应的 data 含 title、artist(id、username、认证、头像)、duration_in_ms、audio_id、time_created、is_original_audio、is_reuse_disabled、total_reels 及暴露时的 download_url。数据集键用 canonical ID 而不是曲名——曲名会撞车。
测试接口 1 个必填 · 0 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
/api/project/instagram/posts-music 获取使用某音频的 Reels
完整文档 →说明
列出使用指定音频记录的公开 Reels。传入 audio_canonical_id;用上一次响应的 pagination_token 续页。文档化响应返回音频页上下文(formatted_media_count 与可用标签页)及标准帖子结构的 items[]:id、code、taken_at、caption、作者 user 对象、视频版本与互动计数。对选定音频 ID 重复采集可研究创作者参与度随时间的变化——一页是样本,不是该声音的全部使用。
测试接口 1 个必填 · 2 个可选
| 参数 | 位置 | 值 |
|---|---|---|
| query |
可选参数 (2)
| 参数 | 位置 | 值 |
|---|---|---|
| query | 留空发起第一页;之后传入上一次响应返回的分页令牌续页。它是不透明凭据,会随请求 URL 发送且可能出现在日志中,请勿分享。 | |
| query |
接口能力
通过简单的 GET 请求读取 Instagram 公开账号与内容数据:用户资料、帖子、Reels、Stories 快拍、精选动态、评论、点赞、话题标签、地点与音频。
- 用户资料:按用户名或数字用户 ID 解析简介、粉丝/关注/帖子数、认证与私密标记及头像地址
- 内容流:拉取用户帖子、Reels、被标记帖子、快拍与精选集合,不透明令牌分页
- 互动数据:读取帖子评论、评论回复线程与可见点赞列表,游标翻页
- 搜索发现:按关键词搜索账号、话题、Reels、地点与音频,并可查找相似账号
- 地点与声音:解析 location_id 与音频 canonical ID,再取详情及关联帖子
适用于红人发掘、出海品牌竞品内容监测、社媒聆听与地点内容工具。JSON 响应如实映射各公开面暴露的字段;私密账号内容、完整粉丝导出、历史数据分析与官方账号 Insights 不在范围内。