Catalog/Instagram/Hashtag top posts
POST

Instagram Hashtag top posts API

/v1/run/instagram.hashtag_top_posts

Instagram's own top-ranked posts for a hashtag, read from its live hashtag feed rather than a web search index, with view, like, and comment counts. Reels-heavy and engagement-ranked, so it answers what is performing on a tag right now. For older relevance-ranked results with date and media-type filters use instagram.search_hashtag; for the chronological feed use instagram.hashtag_recent_posts.

Category SocialRequests / mo 35Routing 2 lanes · auto failover
Get ~100 free requests

Provider network

Providers ranked by traffic

click a provider for traffic and endpoints · routing stays automatic
Request
Gateway request
discovered operation
↓
Router
↓
↳ Calls hit the first lane first; on timeout or 5xx we retry down the ladder. Fallback order: Lynx → Fox

Try it

Make your first request

run it free, no key · same shape for every API
Open in
Get a free key
Sample response
Free runs return only the first 3 results. Fund a key to get the full response.
{
  "data": {
    "nextCursor": "example",
    "posts": [
      {
        "avatarUrl": "https://example.com/image.jpg",
        "caption": "A short example description of this item.",
        "comments": 12500,
        "createdUtc": 12.5,
        "durationSeconds": 12.5,
        "id": "a1b2c3d4",
        "likes": 12500,
        "media": [
          {
            "type": "general",
            "url": "https://example.com/page",
            "videoUrl": "https://example.com/page"
          }
        ],
        "shortcode": "a1b2c3d4",
        "url": "https://example.com/page",
        "username": "alex_rivera",
        "verified": true,
        "views": 12500
      }
    ]
  },
  "found": true
}
Response interface
interface InstagramHashtagTopPostsResponse {
  data: {
    nextCursor: string | null;
    posts: {
      avatarUrl?: string;
      caption: string;
      comments?: number;
      createdUtc?: number;
      durationSeconds?: number;
      id: string;
      likes?: number;
      media?: {
        type: string;
        url: string;
        videoUrl?: string;
      }[];
      shortcode: string;
      url: string;
      username: string;
      verified?: boolean;
      views?: number;
    }[];
  } | null;
  found: boolean;
}

Full parameter and response reference - every field, type, and example for this endpoint.

Reference

Request, response, and price

Last verified 2026-09-03 · uptime and latency measured over 30d
POST /v1/run/instagram.hashtag_top_posts
curl -X POST https://api.getanyapi.com/v1/run/instagram.hashtag_top_posts \
  -H "Authorization: Bearer $ANYAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"hashtag":"skincare"}'
FieldTypeExample value
Request body
hashtagstring"skincare"Hashtag to fetch, without the leading #.
cursorstringPagination cursor from a previous response's nextCursor.
Response
dataobject
data.nextCursorstringOpaque cursor for the next page of posts, or null when this lane has no more. Pass it back as cursor to continue.
data.postsobject[]Top-ranked posts for the hashtag, ordered by Instagram's engagement model rather than by time. Populated whenever the provider has data for the entity.
data.posts[].avatarUrlstringProfile picture URL of the posting account. Populated whenever the provider has data for the entity.
data.posts[].captionstringPost caption text, including its hashtags. Populated whenever the provider has data for the entity.
data.posts[].commentsintegerComment count.
data.posts[].createdUtcnumberUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.
data.posts[].durationSecondsnumberVideo duration in seconds. Absent on photo posts.
data.posts[].idstringInstagram media id. Populated whenever the provider has data for the entity.
data.posts[].likesintegerLike count. Absent when the account hides it.
data.posts[].mediaobject[]Photo and video attachments on the post.
data.posts[].media[].typestringOne of photo or video.
data.posts[].media[].urlstringImage URL. For a video this is the cover frame.
data.posts[].media[].videoUrlstringPlayable video file URL. Present only for video items.
data.posts[].shortcodestringShort code in the post permalink. Populated whenever the provider has data for the entity.
data.posts[].urlstringCanonical permalink to the post. Populated whenever the provider has data for the entity.
data.posts[].usernamestringUsername of the account that posted. Populated whenever the provider has data for the entity.
data.posts[].verifiedbooleanTrue when the posting account is verified.
data.posts[].viewsintegerPlay count. Present on video posts.
foundboolean
Price
Price per requestUSD$0.0015
Price /1k reqUSD$1.50

FAQ

About the Instagram Hashtag top posts API

The AnyAPI Instagram Hashtag top posts API returns Instagram hashtag top posts data as normalized JSON from one POST call to /v1/run/instagram.hashtag_top_posts. Instagram's own top-ranked posts for a hashtag, read from its live hashtag feed rather than a web search index, with view, like, and comment counts. Reels-heavy and engagement-ranked, so it answers what is performing on a tag right now. For older relevance-ranked results with date and media-type filters use instagram.search_hashtag; for the chronological feed use instagram.hashtag_recent_posts. AnyAPI routes each request across 2 sources and falls back automatically when one fails. It costs from $1.50 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 100.0% of Instagram hashtag top posts calls through AnyAPI succeeded, with a median response time of 6.4 seconds across 35 measured calls.

It costs from $1.50 per 1,000 requests, in US dollars with no subscription and no monthly minimum. You fund one USD wallet, each call draws it down, and a failed request costs $0.

Instagram's own top-ranked posts for a hashtag, read from its live hashtag feed rather than a web search index, with view, like, and comment counts. Reels-heavy and engagement-ranked, so it answers what is performing on a tag right now. For older relevance-ranked results with date and media-type filters use instagram.search_hashtag; for the chronological feed use instagram.hashtag_recent_posts. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.

Over the last 30 days, 100.0% of Instagram hashtag top posts calls through AnyAPI succeeded, with a median response time of 6.4 seconds across 35 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.

Get started

Two ways to start on AnyAPI

Humans fund a USD wallet and pay per request. Agents point a coding agent at one URL and onboard themselves.

Get ~100 free requests
Works with
Terminal agentsClaude CodeCursorCodexMCP clients