Instagram Scraper
Search Instagram Hashtag Posts
Use this when you know the exact hashtag and want Google-indexed public Instagram posts or reels, optional date filters, and pagination. It returns post details such as caption, engagement, owner, and post time. Results are best-effort and not a complete Instagram-native hashtag feed. For an Instagram-curated topic page with generated context and suggested terms, use /v1/instagram/search/popular. Pass media_type=reels to only return reels. Cursors are limited to pages 1 through 11; cursor 12 or greater returns a 400 response.
Endpoint
Parameters
| Name | Type | Required | Note |
|---|---|---|---|
| hashtagstring · required | string | required | The hashtag to search for. Include or omit the #. |
| limitnumber · optional | number | optional | Maximum number of results to return from this request. Leave empty for everything this request returns. This trims the response — it does not fetch more; use the returned cursor for the next batch. The price is the same either way. |
| cursorstring · optional | string | optional | The cursor returned by the previous response. It is the next Google results page number and cannot exceed 11; cursor 12 or greater returns a 400 response. |
| media_typestring · optional | string | optional | Use all to search public posts and reels, or reels to only return reels. Defaults to all. One of: |
| date_postedstring · optional | string | optional | Only return Google-indexed posts found in this relative window. One of: |
Response schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"posts": {
"type": "array"
},
"cursor": {
"type": "string"
},
"hashtag": {
"type": "string"
},
"media_type": {
"type": "string"
},
"limitApplied": {
"type": "boolean",
"description": "True when a Limit trimmed the results; there were more in this response."
}
},
"additionalProperties": true
}