Instagram Graph API hashtag search: 30 per 7 days, and Sume
Meta caps hashtag search at 30 unique hashtags per account per rolling 7 days and needs app review. Sume's instagram_search_hashtag is a bounded public read.

Meta's Instagram Graph API hashtag search lets you query a maximum of 30 unique hashtags per Instagram Business or Creator account in a rolling 7-day period, and it requires app review. Sume's instagram_search_hashtag route is a bounded public read of at most 24 items and 3 feed pages per call, with no Sume-side hashtag counter.
Meta facts are from its Hashtag Search page; Sume facts from the OpenAPI document behind the API reference, read 2026-09-30.
What limits does Meta put on hashtag search?
The page quotes: "You can query a maximum of 30 unique hashtags on behalf of an Instagram Business or Creator Account within a rolling, 7 day period." It lists the endpoints /ig_hashtag_search, /{ig-hashtag-id}, /top_media and /recent_media, and requires app review for the Instagram Public Content Access feature and the instagram_basic permission. Emojis in queries and Stories hashtags are not supported.
What does Sume's hashtag route accept?
| Topic | Instagram Graph API | Sume instagram_search_hashtag |
|---|---|---|
| Quota wording | 30 unique hashtags per account per rolling 7 days | No hashtag counter in the schema |
| Access | App review and permissions | Sume API key; public data only |
| Time window | Top and recent media endpoints | date_posted: last-hour, last-day, last-week, last-month, last-year |
| Media filter | Not on the page | media_type: all or reels |
| Size | Not on the page | limit up to 24, max_pages up to 3 |
Does Sume have no limits at all?
It has other bounds. The route description says "No login, stories, DMs, private accounts, or automatic import", returns media candidates rather than Sume-hosted media, and notes that upstream requests consume vendor credits while Sume itself charges no credits in v1. Calls can return 429 like other routes, so back off on that status. A slow call returns 202; continue with jobs_wait then jobs_result using the request_id.
curl -X POST https://api.sume.com/v1/scrapecreators/instagram_search_hashtag \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{"hashtag":"skincare","date_posted":"last-week","media_type":"reels","limit":24}'When do I need the Graph API instead?
If you need data tied to your own Business or Creator account, or Meta's documented top_media and recent_media objects, use Meta's API and plan around the 30-hashtag window. If you want public reel candidates for a trend brief, the Sume route fits; over MCP it is crawl_find with platform: "instagram" and kind: "hashtag" (see MCP tools and gates). Then turn a chosen reel into a brief with the reference remix steps.
Sources
Related posts
More in Developers
- Instagram media_publish config_issue CAPTION_NOT_ATTACHED
A media_publish call can succeed with the caption dropped. The response then carries config_issue CAPTION_NOT_ATTACHED. What it means and a burned-in fallback.
- Lambda 90-minute timeout: does it change AI video jobs?
AWS raised Lambda's async timeout to 90 minutes on Managed Instances. A Sume job still fits best as submit, then poll or webhook, and sync waits stay 30 s.
- LangGraph interrupt response_schema for paid video approval
LangGraph 1.2.12 adds response_schema to interrupt(). Use a typed approve, edit or reject reply with max spend to drive a Sume dry_run, then submit.
- List music models by API: GET /v1/music-router/models
The Music Router catalog endpoints list routable music model ids and a provider list price. Routable ids today: sume/music-auto, lyria-3.5, lyria-3-pro.
Written by Sume