Instagram Hashtag recent posts API
Instagram posts published under a hashtag, newest first, read from its live chronological feed rather than a web search index. Built for monitoring: results arrive within a couple of minutes of posting, so engagement counts are usually still zero and reels do not appear (Instagram keeps those on a separate tab). For engagement-ranked results use instagram.hashtag_top_posts; for older relevance-ranked results use instagram.search_hashtag.
- Category SocialRequests / mo 31Routing 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": [
{
"caption": "A short example description of this item.",
"carouselCount": 12500,
"comments": 12500,
"createdUtc": 12.5,
"hashtags": [
"a1b2c3d4"
],
"id": "a1b2c3d4",
"likes": 12500,
"locationLat": 12.5,
"locationLng": -122.4194,
"locationName": "Example title",
"media": [
{
"type": "general",
"url": "https://example.com/page"
}
],
"shortcode": "a1b2c3d4",
"url": "https://example.com/page",
"username": "alex_rivera"
}
]
},
"found": true
}interface InstagramHashtagRecentPostsResponse {
data: {
nextCursor: string | null;
posts: {
caption: string;
carouselCount?: number;
comments?: number;
createdUtc?: number;
hashtags?: string[];
id: string;
likes?: number;
locationLat?: number;
locationLng?: number;
locationName?: string;
media?: {
type: string;
url: string;
}[];
shortcode: string;
url: string;
username: string;
}[];
} | 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_recent_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 monitor, 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[] | Posts under the hashtag, newest first. Engagement counts are usually zero because the posts are minutes old. 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[].carouselCount | integer | Number of items in the carousel. Absent on a single-image post. |
| data.posts[].comments | integer | Comment count. Usually zero on a post this new. |
| data.posts[].createdUtc | number | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. Populated whenever the provider has data for the entity. |
| data.posts[].hashtags | string[] | Hashtags carried in the caption, each including its leading #. Populated whenever the provider has data for the entity. |
| data.posts[].id | string | Instagram media id. Populated whenever the provider has data for the entity. |
| data.posts[].likes | integer | Like count. Usually zero on a post this new. |
| data.posts[].locationLat | number | Latitude of the tagged place. |
| data.posts[].locationLng | number | Longitude of the tagged place. |
| data.posts[].locationName | string | Place name tagged on the post. Absent when the poster tagged none, which is most posts. |
| data.posts[].media | object[] | Cover media for the post. A carousel reports its full size in carouselCount. |
| data.posts[].media[].type | string | One of photo or video. Videos are rare in this feed; Instagram keeps reels on a separate tab. |
| data.posts[].media[].url | string | Image URL. For a video this is the cover frame. |
| 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. |
| found | boolean | |
| Price | ||
| Price per request | USD | $0.0015 |
| Price /1k req | USD | $1.50 |
FAQ
About the Instagram Hashtag recent posts API
The AnyAPI Instagram Hashtag recent posts API returns Instagram hashtag recent posts data as normalized JSON from one POST call to /v1/run/instagram.hashtag_recent_posts. Instagram posts published under a hashtag, newest first, read from its live chronological feed rather than a web search index. Built for monitoring: results arrive within a couple of minutes of posting, so engagement counts are usually still zero and reels do not appear (Instagram keeps those on a separate tab). For engagement-ranked results use instagram.hashtag_top_posts; for older relevance-ranked results use instagram.search_hashtag. 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 recent posts calls through AnyAPI succeeded, with a median response time of 7.2 seconds across 31 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.