Research public posts for selected profiles.
Instagram Scraper
Collect public Instagram content from profile, post or search inputs, with structured post metadata and engagement counts.
What you can do
Track published content and engagement metrics.
Export post metadata for content analysis.
Set your sources
Open the scraper and enter your own URLs, search terms and limits.
Review & run
Check the cost estimate and confirm the task. Follow its progress in your account.
Use your data
Explore saved results and export CSV, JSON or XLSX. Downloads of saved results are free.
Sample data & output fields
These example values demonstrate the data shape; they are not a live scraper result. Available fields depend on the source, selected options and upstream data.
[
{
"id": "example-001",
"caption": "Illustrative content for this example.",
"url": "https://example.com/result",
"likesCount": 100,
"timestamp": "2026-01-15T12:00:00Z"
}
]| Field | Type | Description |
|---|---|---|
id | string | Unique identifier of the post or user |
caption | string | Caption text of the post — post results only |
url | string | URL of the post or profile |
likesCount | number | Number of likes on the post — post results only |
timestamp | string | ISO 8601 timestamp when the post was published — post results only |
Example input
This is the configured parser input. Replace the example sources with your own and review all limits before running.
{
"resultsType": "posts",
"directUrls": [
"https://www.instagram.com/nike/"
],
"resultsLimit": 100,
"searchType": "hashtag",
"searchLimit": 10,
"addParentData": false
}Explore input fields
| Field | Type | Notes |
|---|---|---|
resultsType | string | Posts returns a feed of content. Profile, hashtag, or place details returns metadata about the page: follower count, bio, post count, and profile picture. Comments only work with post URLs, e.g. instagram.com/p/ABC123xyz/ not instagram.com/username/. |
directUrls | array | Add one or more Instagram URLs to scrape. URL format must match your content type: /p/ for posts and comments /reel/ for reels /username/ for profile details Leave blank if using the search query instead. |
resultsLimit | integer | Maximum posts or comments per Instagram URL. This is a limit, not a guaranteed count. Larger limits can increase run cost. |
searchType | string | Hashtag search returns posts tagged with that term. Profile search returns matching accounts. Place search returns matching locations. |
searchLimit | integer | Set how many profiles, places, or hashtags to find. To limit posts per result, use Results limit per URL. Higher values increase compute usage and cost. |
addParentData | boolean | This applies only to feed items. Adds a dataSource field to each result: profile posts are labeled profile, and tag posts are labeled hashtag. |
Run through the API
Create an API key in your account, send the input to the queued endpoint and use the returned task ID to retrieve results. Sending a live request uses credits.
curl --request POST 'https://extracto.cloud/api/v1/parsers/instagram-posts/queue' \
--header 'X-API-KEY: ext_your_api_key' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--data-binary @- <<'JSON'
{
"input": {
"resultsType": "posts",
"directUrls": [
"https://www.instagram.com/nike/"
],
"resultsLimit": 100,
"searchType": "hashtag",
"searchLimit": 10,
"addParentData": false
}
}
JSONYour next dataset starts here.
Choose your sources, review the price and run Instagram Scraper.