No-Code scraper · JSON API

Instagram Scraper

Collect public Instagram content from profile, post or search inputs, with structured post metadata and engagement counts.

JSON CSV & XLSX API access
Read the API reference →
From web pages to a dataset

What you can do

Research public posts for selected profiles.

Track published content and engagement metrics.

Export post metadata for content analysis.

01

Set your sources

Open the scraper and enter your own URLs, search terms and limits.

02

Review & run

Check the cost estimate and confirm the task. Follow its progress in your account.

03

Use your data

Explore saved results and export CSV, JSON or XLSX. Downloads of saved results are free.

Know what to expect

Sample data & output fields

Illustrative example

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.

JSON · illustrative result
[
  {
    "id": "example-001",
    "caption": "Illustrative content for this example.",
    "url": "https://example.com/result",
    "likesCount": 100,
    "timestamp": "2026-01-15T12:00:00Z"
  }
]
FieldTypeDescription
idstringUnique identifier of the post or user
captionstringCaption text of the post — post results only
urlstringURL of the post or profile
likesCountnumberNumber of likes on the post — post results only
timestampstringISO 8601 timestamp when the post was published — post results only
Start with a real configuration

Example input

This is the configured parser input. Replace the example sources with your own and review all limits before running.

JSON · example input
{
  "resultsType": "posts",
  "directUrls": [
    "https://www.instagram.com/nike/"
  ],
  "resultsLimit": 100,
  "searchType": "hashtag",
  "searchLimit": 10,
  "addParentData": false
}
Explore input fields
FieldTypeNotes
resultsTypestringPosts 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/.
directUrlsarrayAdd 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.
resultsLimitintegerMaximum posts or comments per Instagram URL. This is a limit, not a guaranteed count. Larger limits can increase run cost.
searchTypestringHashtag search returns posts tagged with that term. Profile search returns matching accounts. Place search returns matching locations.
searchLimitintegerSet 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.
addParentDatabooleanThis applies only to feed items. Adds a dataSource field to each result: profile posts are labeled profile, and tag posts are labeled hashtag.
The same scraper in your application

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 · queue a task
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
  }
}
JSON

Your next dataset starts here.

Choose your sources, review the price and run Instagram Scraper.

Open scraper