Instagram Discovery Search
Find Google-indexed public Instagram posts, reels, profiles, or recency-ranked reel candidates with transparent best-effort search semantics.
Workspace
Configure
Inputs stay here while results become exportable artifacts.
Start from an example
Results
Preview, inspect, copy, or export the complete output.
Your result will become an artifact
Run the tool to inspect structured rows, raw JSON, execution details, and downloadable JSON, CSV, and Markdown files.
Overview
Instagram Discovery Search uses Google's public index for Instagram matches, filters the result URLs by operation, and returns normalized titles, snippets, handles, shortcodes, and pagination. Trending-reels mode is explicitly a public-search recency rank with day-to-week-to-month fallback—not Instagram's authenticated Explore ranking or a complete Instagram-native index.
Last validated: Jul 15, 2026
Input
mode"hashtag" | "profiles" | "reels" | "trending_reels"requiredSearch indexed hashtag posts, public profiles, keyword reels, or query-free recency-ranked reel candidates.
querystringKeyword phrase for profiles or reels mode.
cursorstringNext Google results page number from a previous response.
countrystringOptional two-letter country for localized Google results.
hashtagstringHashtag with or without # for hashtag mode.
media_type"all" | "reels"default: "all"Return indexed posts and reels or reels only.
date_posted"last-hour" | "last-day" | "last-week" | "last-month" | "last-year"Optional Google recency filter for reels mode.
max_resultsintegerdefault: 10Maximum indexed matches to return.
Output
modestringrequiredResolved discovery mode
countintegerrequiredNumber of indexed matches returned
querystringrequiredUser-provided hashtag or keyword
hashtagstringNormalized hashtag
resultsobject[]requiredNormalized indexed Instagram matches
media_typestringRequested media filter
source_urlstringrequiredRendered Google search URL
date_postedstringRequested Google recency filter
next_cursorstringNext Google results page number
ranking_basisstringpublic_search_recency_rank for trending_reels mode
Examples
hashtag-posts
{
"mode": "hashtag",
"hashtag": "funnydogs",
"media_type": "all",
"max_results": 5
}profile-search
{
"mode": "profiles",
"query": "fitness coach",
"max_results": 5
}reel-search
{
"mode": "reels",
"query": "dogs",
"max_results": 5
}public-trending-reels
{
"mode": "trending_reels",
"max_results": 5
}Use cases
FAQ
Is this a complete Instagram search index?
No. It is explicitly best-effort and depends on public Google indexing.
Does it need an Instagram login?
No. It uses public search results and public Instagram URLs only.
Can it search only reels?
Yes. Use reels mode for keyword search, hashtag mode with media_type set to reels, or trending_reels for a query-free public-search recency rank.
Is trending_reels Instagram's official trending feed?
No. Logged-out Instagram Explore requires login. This mode transparently ranks recently Google-indexed public reels and reports that basis in every response.
Use it anywhere
MCP (Claude, ChatGPT, Codex)
# After connecting https://betterfetch.co/api/mcp, ask your AI to:
1. Call search_tools for "Instagram Discovery Search"
2. Call run_tool with:
name: "instagram_discovery_scraper"
input: {"mode":"hashtag","hashtag":"funnydogs","media_type":"all","max_results":5}REST
curl -sS -X POST "https://betterfetch.co/api/tools/instagram_discovery_scraper/run" \
-H "Authorization: Bearer bf_your_key_here" \
-H "Content-Type: application/json" \
-d '{"input": {"mode":"hashtag","hashtag":"funnydogs","media_type":"all","max_results":5}}'Run locally
git clone https://github.com/better-fetch/tools/tree/main/tools/instagram-discovery-scraper && cd instagram-discovery-scraper && npm i
BETTER_FETCH_API_KEY=bf_your_key_here npx bf-tool run --input '{"mode":"hashtag","hashtag":"funnydogs","media_type":"all","max_results":5}'