Hashtags
Hashtag metadata, and its top, recent and reels feeds.
Hashtags are addressed by name, without the #. Names are
case-insensitive.
GET /hashtags/travel
GET /hashtags/travel/topHashtag info
Post count, profile media, and Instagram's metadata for the tag.
What comes back
{
"id": "17841562887056054",
"name": "travel",
"media_count": 683000000,
"formatted_media_count": "683M",
"search_result_subtitle": "683M posts",
"is_trending": false,
"profile_pic_url": "https://scontent.cdninstagram.com/..."
}media_count is Instagram's own estimate and moves in large steps on big
tags. Treat it as an order of magnitude, not a count.
Top, recent and reels
Three feeds over the same tag: ranked, chronological, and clips-only. All
three use the standard cursor and return media
objects identical in shape to /posts/{id}.
top is Instagram's ranking and is not stable between calls — the same page
number can return different posts minutes apart. recent is chronological
and the right choice for monitoring a tag.
Path Parameters
Query Parameters
Opaque pagination cursor from a previous next_cursor
curl -X GET "https://example.com/hashtags/string/top"{}{}Path Parameters
Query Parameters
Opaque pagination cursor from a previous next_cursor
curl -X GET "https://example.com/hashtags/string/recent"{}{}Path Parameters
Query Parameters
Opaque pagination cursor from a previous next_cursor
curl -X GET "https://example.com/hashtags/string/reels"{}{}What comes back
The standard list envelope, with media objects in the same shape as a post.
Errors
| Code | When |
|---|---|
not_found | No such tag, or Instagram has blocked it. |
invalid_cursor | The cursor was not one we issued. |
upstream_error | Transient. Retry. |