Instagram Search API
Search public Instagram posts and Reels by keyword or hashtag. Returns media links, captions, publish times, engagement counts and owner details, with nextCursor for more results. Search results reflect Instagram’s ranking and available content.
- Endpoint
- POST /instagram/search
- Price
- 1 credit per result
- SDK
- client.instagram.searchPosts()
- MCP tool
- instagram_search
curl -X POST "https://api.bridgly.app/instagram/search" \ -H "Authorization: Bearer $BRIDGLY_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": "travel", "count": 3}'import osimport requestsresponse = requests.post( "https://api.bridgly.app/instagram/search", headers={"Authorization": f"Bearer {os.environ['BRIDGLY_KEY']}"}, json={ "query": "travel", "count": 3, },)data = response.json()const response = await fetch("https://api.bridgly.app/instagram/search", { method: "POST", headers: { Authorization: `Bearer ${process.env.BRIDGLY_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ "query": "travel", "count": 3 }),});const data = await response.json();import { Bridgly } from "@bridgly/sdk";const client = new Bridgly({ apiKey: "bgly_YOUR_KEY" });const res = await client.instagram.searchPosts({ query: "travel", count: 3});if (res.type === "success") { console.log(res.data);}What does the Instagram Search API return?
Search public Instagram posts and Reels by keyword or hashtag, with captions, media links, publish times and engagement counts as paginated JSON. Every response has the same envelope: the result in data, plus timeMs and the creditsCost of the call.
Request body
querystringrequiredcountinteger · 1–10 · default 10- Number of results to return (1–10). Defaults to 10.
cursorstring- The previous response's `nextCursor`, to fetch the next page. Omit it for the first page.
Example response
{ "timeMs": 1840, "creditsCost": 1, "data": { "nextCursor": "string", "posts": [ { "id": "string", "type": "Image", "display_url": "string", "video_url": "string", "width": 0, "height": 0, "video_duration": 0, "accessibility_caption": "string", "image_versions": [ { "url": "string", "width": 0, "height": 0 } ], "video_versions": [ { "url": "string", "width": 0, "height": 0, "type": 0 } ], "has_audio": true, "video_dash_manifest": "string", "number_of_qualities": 0, "carousel_parent_id": "string", "user_tags": [ { "user": { "id": "string", "username": "string", "full_name": "string", "profile_pic_url": "string", "is_private": true, "is_verified": true, "profile_pic_id": "string", "latest_reel_media": 0, "is_mentionable": true }, "position": [ 0 ] } ], "shortcode": "string", "url": "string", "caption": "string", "likes": 0, "comments": 0, "timestamp": 0, "is_video": true, "video_view_count": 0, "owner": { "id": "string", "username": "string", "full_name": "string", "profile_pic_url": "string", "is_private": true, "is_verified": true, "profile_pic_id": "string", "latest_reel_media": 0, "is_mentionable": true }, "carousel_media": [ { "id": "string", "type": "Image", "display_url": "string", "video_url": "string", "width": 0, "height": 0, "video_duration": 0, "accessibility_caption": "string", "image_versions": [ { "url": "string", "width": 0, "height": 0 } ], "video_versions": [ { "url": "string", "width": 0, "height": 0, "type": 0 } ], "has_audio": true, "video_dash_manifest": "string", "number_of_qualities": 0, "carousel_parent_id": "string", "user_tags": [ { "user": { "id": "string", "username": "string", "full_name": "string", "profile_pic_url": "string", "is_private": true, "is_verified": true, "profile_pic_id": "string", "latest_reel_media": 0, "is_mentionable": true }, "position": [ 0 ] } ] } ], "caption_id": "string", "caption_created_at": 0, "caption_is_edited": true, "caption_has_translation": true, "product_type": "string", "play_count": 0, "comments_disabled": true, "like_and_view_counts_disabled": true, "is_paid_partnership": true, "coauthors": [ { "id": "string", "username": "string", "full_name": "string", "profile_pic_url": "string", "is_private": true, "is_verified": true, "profile_pic_id": "string", "latest_reel_media": 0, "is_mentionable": true } ], "pinned_user_ids": [ "string" ], "carousel_media_count": 0, "location": { "id": "string", "name": "string", "slug": "string", "url": "string", "latitude": 0, "longitude": 0, "category": "string", "posts_count": 0, "address": "string", "city": "string", "postal_code": "string", "phone": "string", "price_range": 0, "hours_status": "string" } } ] }}What can you build with the Instagram Search API?
Discover content
Find public posts about a topic or hashtag.
Research trends
Review captions and engagement on ranked search results.
Find creators
Discover creators publishing relevant content.
Instagram Search API questions
How do I use the Instagram Search API?
Send a POST request to https://api.bridgly.app/instagram/search with query in the JSON body and your API key in the Authorization header. In the TypeScript SDK, call client.instagram.searchPosts(). AI agents connected to Bridgly over MCP can call the instagram_search tool.
How much does the Instagram Search API cost?
Costs 1 credit per result returned, with a minimum of 1 credit per request. Credits cost $2.00 per 1,000 on pay-as-you-go and as low as $1.00 per 1,000 at volume. New accounts on a business email start with 100 free credits, and failed requests are never charged.
More Instagram endpoints
The same API key works on every endpoint. See all Instagram API endpoints.
- Instagram Profile API→Instagram profile API: get any public Instagram profile by username as JSON, with bio, bio links, follower, following and post counts and verified flag.
- Instagram Posts API→Instagram posts API: list any public account’s posts and reels by username, with caption, likes, comments, views, media URLs and publish time, as JSON.
- Instagram Followers API→Instagram followers API: export the followers of any public Instagram account, each with username, full name, profile picture and verified flag, as JSON.
- Instagram Following API→Instagram following API: list the accounts any public Instagram user follows, each with username, full name, profile picture and verified flag, as JSON.
Try the Instagram Search API
100 free credits on business email, no card. Your first call takes a minute.