🌟Instagram Scraper Pro
Pricing
from $0.00005 / actor start
You can access the 🌟Instagram Scraper Pro programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.0", "x-build-id": "UCTVmowefl2c1kiuM" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/databuddy~instagram-scraper-pro/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-databuddy-instagram-scraper-pro", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } }, "/acts/databuddy~instagram-scraper-pro/runs": { "post": { "operationId": "runs-sync-databuddy-instagram-scraper-pro", "x-openai-isConsequential": false, "summary": "Executes an Actor and returns information about the initiated run in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/runsResponseSchema" } } } } } } }, "/acts/databuddy~instagram-scraper-pro/run-sync": { "post": { "operationId": "run-sync-databuddy-instagram-scraper-pro", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "inputSchema": { "type": "object", "properties": { "directUrls": { "title": "Instagram URLs", "type": "array", "description": "One per line: profile (instagram.com/nike/ or @nike), profile ID, post or reel URL (shortcode or numeric ID), hashtag (instagram.com/explore/tags/travel/ or #travel), place (instagram.com/explore/locations/7538318/), share links and story links. Each URL's type decides what it can return. URLs take priority over Search.", "items": { "type": "string" } }, "resultsType": { "title": "Content to scrape", "enum": [ "posts", "reels", "comments", "mentions", "details" ], "type": "string", "description": "One content type per run. Profiles → posts, reels, mentions or details. Posts/reels → details or comments. Hashtags and places → posts, reels or details. Note: Instagram currently shows profile posts and reels to logged-out visitors; comments, mentions, hashtags, places and full profile details are often behind its login wall (those inputs get a free login_required row).", "default": "posts" }, "resultsLimit": { "title": "Max results per URL", "minimum": 1, "type": "integer", "description": "How many results to save for each URL or search hit. Comment replies (when turned on) are extra.", "default": 50 }, "maxItems": { "title": "Max results in total", "minimum": 0, "type": "integer", "description": "Stop the whole run after this many saved (and charged) results. 0 = no limit.", "default": 0 }, "search": { "title": "Search terms", "type": "string", "description": "Comma-separated, e.g. \"travel, fitness\" for hashtags, \"nike, adidas\" for profiles, or \"vintage shop copenhagen\" for places. Hashtags without the #.", "default": "" }, "searchType": { "title": "Search type", "enum": [ "hashtag", "user", "place" ], "type": "string", "description": "What to search for. Found items are scraped with the \"Content to scrape\" setting.", "default": "hashtag" }, "searchLimit": { "title": "Max search hits per term", "minimum": 1, "maximum": 250, "type": "integer", "description": "How many hashtags, profiles or places to take from each search term.", "default": 10 }, "onlyPostsNewerThan": { "title": "Only posts newer than", "type": "string", "description": "Relative (\"3 days\", \"2 weeks\", \"6 months\") or a date (\"2024-09-05\", \"2024-09-05T13:22:04Z\"). UTC. Leave empty for all posts. Profile scraping stops paging once it reaches older posts.", "default": "" }, "skipPinnedPosts": { "title": "Skip pinned posts", "type": "boolean", "description": "Leave out posts pinned to the top of a profile (often old).", "default": false }, "minLikes": { "title": "Min likes", "minimum": 0, "type": "integer", "description": "Skip posts with fewer likes. Posts with hidden like counts are skipped when this is set. 0 = off.", "default": 0 }, "minComments": { "title": "Min comments", "minimum": 0, "type": "integer", "description": "Skip posts with fewer comments. 0 = off.", "default": 0 }, "isNewestComments": { "title": "Newest comments first", "type": "boolean", "description": "Fetch comments newest-first instead of Instagram's default \"most relevant\" order.", "default": false }, "includeNestedComments": { "title": "Include replies", "type": "boolean", "description": "Also save replies to comments, each as its own row with parentCommentId. Replies don't count toward \"Max results per URL\".", "default": false }, "addParentData": { "title": "Add parent data to each result", "type": "boolean", "description": "Adds a parentData object to every row (the profile, hashtag, place or post it came from).", "default": false }, "includeFailedInputs": { "title": "Show failed inputs in the results", "type": "boolean", "description": "Adds one row per input that returned nothing (status = login_required / blocked / not_found / private / no_results / duplicate_input / invalid_input) with the reason and how to fix it. Never charged.", "default": true }, "skipPreviouslyScraped": { "title": "Skip results saved in previous runs", "type": "boolean", "description": "Remembers saved post, comment and profile IDs in a named key-value store, so scheduled runs only save (and charge) new items.", "default": false }, "dedupeStoreName": { "title": "Memory store name", "pattern": "^[a-z0-9-]{1,63}$", "type": "string", "description": "Name of the key-value store that remembers saved IDs. Lowercase letters, numbers and hyphens.", "default": "instagram-scraper-pro-seen" }, "saveRawResponses": { "title": "Save raw responses (debug)", "type": "boolean", "description": "Saves the first 2 raw Instagram responses per method to the key-value store (RAW_* records). Turn on only when the developer asks for it.", "default": false }, "proxyFallback": { "title": "Automatic proxy fallback", "type": "boolean", "description": "If Instagram keeps blocking the chosen proxy, switch automatically to Apify datacenter proxy and then to the Apify server's own IP. The routes used are listed in RUN_SUMMARY.", "default": true }, "proxyConfiguration": { "title": "Proxy configuration", "type": "object", "description": "Apify Proxy (datacenter, the default) works well for posts and reels. Instagram often rate-limits shared residential IPs, so RESIDENTIAL is not always better. With \"Automatic proxy fallback\" on, a blocked proxy is replaced automatically.", "default": { "useApifyProxy": true } } } }, "runsResponseSchema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "actId": { "type": "string" }, "userId": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "finishedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "status": { "type": "string", "example": "READY" }, "meta": { "type": "object", "properties": { "origin": { "type": "string", "example": "API" }, "userAgent": { "type": "string" } } }, "stats": { "type": "object", "properties": { "inputBodyLen": { "type": "integer", "example": 2000 }, "rebootCount": { "type": "integer", "example": 0 }, "restartCount": { "type": "integer", "example": 0 }, "resurrectCount": { "type": "integer", "example": 0 }, "computeUnits": { "type": "integer", "example": 0 } } }, "options": { "type": "object", "properties": { "build": { "type": "string", "example": "latest" }, "timeoutSecs": { "type": "integer", "example": 300 }, "memoryMbytes": { "type": "integer", "example": 1024 }, "diskMbytes": { "type": "integer", "example": 2048 } } }, "buildId": { "type": "string" }, "defaultKeyValueStoreId": { "type": "string" }, "defaultDatasetId": { "type": "string" }, "defaultRequestQueueId": { "type": "string" }, "buildNumber": { "type": "string", "example": "1.0.0" }, "containerUrl": { "type": "string" }, "usage": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "integer", "example": 1 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 }, "PROXY_UNBLOCKER_UNITS": { "type": "integer", "example": 0 } } }, "usageTotalUsd": { "type": "number", "example": 0.00005 }, "usageUsd": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "number", "example": 0.00005 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 }, "PROXY_UNBLOCKER_UNITS": { "type": "integer", "example": 0 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for 🌟Instagram Scraper Pro from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: