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.
$1.10/1k req, pay per request, no subscription.
#skincare
Follow
{"id":Â "3481029384756211903","shortcode":Â "C8mN4tXo7qP","url":Â "https://www.instagram.com/p/C8mN4tXo7qP/","caption":Â "The five step routine that finally cleared my skin, saved you a trip to the dermatologist #skincare #skincareroutine #glowup","username":Â "glow.by.nadia","avatarUrl":Â "https://scontent.cdninstagram.com/v/t51.2885-19/nadia-coelho-profile.jpg","verified":Â false,"views":Â 4820000,+5 more fields}
Pricing and providers
Instagram Hashtag top posts API pricing: one API, 3 interchangeable providers
The cheapest provider serves first. If it fails, the next one takes over in the same call.
Try it
Get Instagram hashtag top posts in one request
{
"found": true,
"data": {
"nextCursor": "QVFDMWJhc3NpY0dGellYSjBhbTF2",
"posts": [
{
"id": "3481029384756211903",
"shortcode": "C8mN4tXo7qP",
"url": "https://www.instagram.com/p/C8mN4tXo7qP/",
"caption": "The five step routine that finally cleared my skin, saved you a trip to the dermatologist #skincare #skincareroutine #glowup",
"username": "glow.by.nadia",
"avatarUrl": "https://scontent.cdninstagram.com/v/t51.2885-19/nadia-coelho-profile.jpg",
"verified": false,
"views": 4820000,
"likes": 318400,
"comments": 6215,
"createdUtc": 1725580800,
"durationSeconds": 42.5,
"media": [
{
"type": "video",
"url": "https://scontent.cdninstagram.com/v/t51.2885-15/skincare-routine-cover.jpg",
"videoUrl": "https://scontent.cdninstagram.com/v/t50.16885-16/skincare-routine.mp4"
}
]
},
{
"id": "3481029384756212014",
"shortcode": "C8mOaB1s9zR",
"url": "https://www.instagram.com/p/C8mOaB1s9zR/",
"caption": "Ingredient breakdown: niacinamide vs vitamin C, which one goes first #skincaretips",
"username": "derma.notes",
"avatarUrl": "https://scontent.cdninstagram.com/v/t51.2885-19/derma-notes-profile.jpg",
"verified": true,
"likes": 94100,
"comments": 1802,
"createdUtc": 1725494400,
"media": [
{
"type": "photo",
"url": "https://scontent.cdninstagram.com/v/t51.29350-15/ingredient-chart-cover.jpg"
}
]
},
{
"id": "3481029384756212167",
"shortcode": "C8mPQd7oXyT",
"url": "https://www.instagram.com/p/C8mPQd7oXyT/",
"caption": "Sunscreen is not optional, reapply every two hours if you are outside #spf #skincare",
"username": "sunscreen.diaries",
"avatarUrl": "https://scontent.cdninstagram.com/v/t51.2885-19/sunscreen-diaries-profile.jpg",
"verified": false,
"views": 1230000,
"likes": 72300,
"comments": 941,
"createdUtc": 1725408000,
"durationSeconds": 18,
"media": [
{
"type": "video",
"url": "https://scontent.cdninstagram.com/v/t51.2885-15/spf-reminder-cover.jpg",
"videoUrl": "https://scontent.cdninstagram.com/v/t50.16885-16/spf-reminder.mp4"
}
]
}
]
}
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
One request, one response shape.
Every field you send and every field you get back, each with a real example.
Last verified 2026-10-17 · uptime and latency measured over 30d
Request body
JSON, posted to this endpoint.
- hashtagstring
skincare
Hashtag to fetch, without the leading #.
- cursorstring
Pagination cursor from a previous response's nextCursor.
- requireFieldsarray
Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `soundTitle`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a post that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge.
Response
JSON, one example value per field.
- foundboolean
true
- nextCursorstring
QVFDMWJhc3NpY0dGellYSjBhbTF2
- idstring
3481029384756211903
- shortcodestring
C8mN4tXo7qP
- urlstring
https://www.instagram.com/p/C8mN4tXo7qP/
- captionstring
The five step routine that finally cleared my skin, saved you a trip to the dermatologist #skincare #skincareroutine #glowup
- usernamestring
glow.by.nadia
- avatarUrlstring
https://scontent.cdninstagram.com/v/t51.2885-19/nadia-coelho-profile.jpg
- verifiedboolean
false
- viewsnumber
4820000
- likesnumber
318400
- commentsnumber
6215
- createdUtcnumber
1725580800
- durationSecondsnumber
42.5
- typestring
video
- urlstring
https://scontent.cdninstagram.com/v/t51.2885-15/skincare-routine-cover.jpg
- videoUrlstring
https://scontent.cdninstagram.com/v/t50.16885-16/skincare-routine.mp4
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 3 sources and falls back automatically when one fails. It costs from $1.10 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 5.6 seconds across 4,591 measured calls.