FETCHAPI

List Instagram posts for a hashtag API

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.

Get a keySee it in the catalogUse it from MCP

Price per call, by route

The upstream price you are metered at, cheapest first. A route without a published price says so.

ProviderEndpointPriceTested
Search HashtagGET ig/hashtag$0.00099$0.99 / 1k calls✓ 2026-10-06pricing ↗

What it returns

From a real call to the route: FlashAPI.

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).
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 sizes

Paging: 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.

Call it

HTTP with your key in x-api-key, or the call_endpoint tool of our MCP server.

GET /api/gw/flashapi/ig/hashtag$0.00099 / call✓ working · tested 2026-10-068.09 s latency
Parameters
ParameterTypeNotes
next_max_idstring · queryoptional
nocorsstring · queryoptionaldefault false
rank_tokenstring · queryoptional
tabsstring · queryoptional`top` or `recent` or `clips` · default recent
hashtagstring · queryrequireddefault moto
HTTP
curl "https://fetchapi.co/api/gw/flashapi/ig/hashtag?tabs=recent&nocors=false&hashtag=moto" \
  -H "x-api-key: YOUR_KEY"
MCP
call_endpoint("flashapi.search_hashtag", {"tabs": "recent", "nocors": "false", "hashtag": "moto"})
Real example answer (trimmed) · 2026-10-03
{
  "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
}

Related Instagram APIs

All 19 Instagram jobs →

One key for every API on this page.

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.