
Returns posts for a hashtag, grouped into `sections` (a tabs navigation section, then media grid sections). One media item sits in `layout_content.medias[].media`. For the next page, send the cursor from the answer as `next_max_id` (and `rank_token` if given). The tab is chosen with `tabs` (top or recent).
1 live route on Instagram, from $0.00099 per call. Every route below answered our last live test on 2026-10-06; the gateway re-tests them daily.
The upstream price you are metered at, cheapest first. A route without a published price says so.
| Provider | Endpoint | Price |
|---|---|---|
Search HashtagGET ig/hashtag | $0.00099$0.99 / 1k calls |
From a real call to the route: FlashAPI.
sections[].layout_content.tabs_info.tabs[].typeAvailable tab types (top, recent)sections[].layout_content.tabs_info.selectedCurrently selected tabsections[].layout_content.medias[].media.idMedia id (mediaId_userId)sections[].layout_content.medias[].media.codePost shortcode, usable in media_more_datasections[].layout_content.medias[].media.user.usernameAuthor usernamesections[].layout_content.medias[].media.user.idAuthor idsections[].layout_content.medias[].media.caption.textPost captionsections[].layout_content.medias[].media.taken_atUnix timestamp of publicationsections[].layout_content.medias[].media.like_countNumber of likessections[].layout_content.medias[].media.comment_countNumber of commentssections[].layout_content.medias[].media.image_versions2.candidates[].urlImage URL at various sizesPaging: read `next_max_id` from the answer and send it back as `next_max_id=` for the next page; stop when it is empty or repeats. From MCP: call_endpoint("flashapi.search_hashtag", params, pages=3) follows it for you.
HTTP with your key in x-api-key, or the call_endpoint tool of our MCP server.
| Parameter | Type | Notes | |
|---|---|---|---|
| next_max_id | string · query | optional | |
| nocors | string · query | optional | default false |
| rank_token | string · query | optional | |
| tabs | string · query | optional | `top` or `recent` or `clips` · default recent |
| hashtag | string · query | required | default moto |
curl "https://fetchapi.co/api/gw/flashapi/ig/hashtag?tabs=recent&nocors=false&hashtag=moto" \ -H "x-api-key: YOUR_KEY"
call_endpoint("flashapi.search_hashtag", {"tabs": "recent", "nocors": "false", "hashtag": "moto"}){
"status": "ok",
"sections": [
{
"feed_type": "navigation",
"layout_type": "tabs",
"layout_content": {
"tabs_info": {
"tabs": [
{
"type": "…",
"title": "…"
},
{
"type": "…",
"title": "…"
},
"… 1 more"
],
"selected": "recent"
}
},
"explore_item_info": {
"autoplay": false,
"num_columns": 3,
"aspect_ratio": -1,
"total_num_columns": 3
}
},
{
"feed_type": "media",
"layout_type": "media_grid",
"layout_content": {
"medias": [
{
"media": {
"id": "…",
"pk": "…",
"code": "…",
"fbid": "…",
"user": "…",
"caption": "…",
"taken_at": "…",
"has_liked": "…",
"locations": "…",
"like_count": "…",
"media_type": "…",
"top_likers": "…",
"filter_type": "…",
"mashup_info": "…",
"…": "83 more fields"
}
},
{
"media": {
"id": "…",
"pk": "…",
"lat": "…",
"lng": "…",
"code": "…",
"fbid": "…",
"user": "…",
"caption": "…",
"location": "…",
"taken_at": "…",
"usertags": "…",
"has_liked": "…",
"locations": "…",
"like_count": "…",
"…": "92 more fields"
}
},
"… 1 more"
]
},
"explore_item_info": {
"autoplay": false,
"num_columns": 3,
"aspect_ratio": 3,
"total_num_columns": 3
}
},
"… 1 more"
],
"next_page": 1,
"pagination": {
"id_acc": 1
},
"next_max_id": "QVFBX1dPbGlIcmx2NTlJODFkUnF1Z2dlOThaN29ORU9laVVwUjdWR091VkpBWjJZczBleVlhdUlyanlqeW9VX0JZTzdGQ0xUbHNLNmZKX2NlM1BFbzJfTw==",
"more_available": true,
"next_media_ids": [],
"auto_load_more_enabled": true
}Call it over HTTP or from any MCP client. Each key has a rate limit and a monthly cap; calls are metered at the upstream price.