Instagram Hashtag top posts API
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
Provider network
Providers ranked by traffic
click a provider for traffic and endpoints · routing stays automaticTry it
Make your first request
run it free, no key · same shape for every API{
"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
}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 30dcurl -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"}'| Field | Type | Example value |
|---|---|---|
| Request body | ||
| hashtag | string | "skincare"Hashtag to fetch, without the leading #. |
| cursor | string | Pagination cursor from a previous response's nextCursor. |
| Response | ||
| data | object | |
| data.nextCursor | string | Opaque cursor for the next page of posts, or null when this lane has no more. Pass it back as cursor to continue. |
| data.posts | object[] | 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[].avatarUrl | string | Profile picture URL of the posting account. Populated whenever the provider has data for the entity. |
| data.posts[].caption | string | Post caption text, including its hashtags. Populated whenever the provider has data for the entity. |
| data.posts[].comments | integer | Comment count. |
| data.posts[].createdUtc | number | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. |
| data.posts[].durationSeconds | number | Video duration in seconds. Absent on photo posts. |
| data.posts[].id | string | Instagram media id. Populated whenever the provider has data for the entity. |
| data.posts[].likes | integer | Like count. Absent when the account hides it. |
| data.posts[].media | object[] | Photo and video attachments on the post. |
| data.posts[].media[].type | string | One of photo or video. |
| data.posts[].media[].url | string | Image URL. For a video this is the cover frame. |
| data.posts[].media[].videoUrl | string | Playable video file URL. Present only for video items. |
| data.posts[].shortcode | string | Short code in the post permalink. Populated whenever the provider has data for the entity. |
| data.posts[].url | string | Canonical permalink to the post. Populated whenever the provider has data for the entity. |
| data.posts[].username | string | Username of the account that posted. Populated whenever the provider has data for the entity. |
| data.posts[].verified | boolean | True when the posting account is verified. |
| data.posts[].views | integer | Play count. Present on video posts. |
| found | boolean | |
| Price | ||
| Price per request | USD | $0.0015 |
| Price /1k req | USD | $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.
More to call
Other Instagram endpoints
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.