Instagram Profile Scraper | $2.0/1K on Starter avatar

Instagram Profile Scraper | $2.0/1K on Starter

Pricing

$2.00 / 1,000 profile lookup results

Go to Apify Store
Instagram Profile Scraper | $2.0/1K on Starter

Instagram Profile Scraper | $2.0/1K on Starter

Scrape public Instagram profile data from usernames, profile URLs, or IDs. Extract names, audience and content counts, bios, links, business categories, contact details, verification and privacy status, and profile images. Export results as JSON, CSV, Excel, or through the API.

Pricing

$2.00 / 1,000 profile lookup results

Rating

0.0

(0)

Developer

Public Signal Labs

Public Signal Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 hours ago

Last modified

Share

Instagram Profile Scraper

Scrape public Instagram profile data from usernames, @usernames, profile URLs, or numeric IDs. Extract names, follower and following counts, post counts, biographies, links, business categories, public contact details, verification and privacy status, and profile images.

Use the data for creator research, public business enrichment, CRM preparation, account verification, and automated Instagram research. Batch up to 50 unique profiles on paying plans, then export the results as JSON, CSV, Excel, XML, or through the API. No Instagram login, cookies, browser, or proxy setup.

What this Actor does

  • Resolves usernames, @usernames, profile URLs, and numeric profile IDs
  • Verifies that every response matches the requested identity
  • Returns normalized public profile and business/contact fields when found
  • Preserves input order and returns a succeeded or not_found row for every completed valid lookup
  • Deduplicates equivalent inputs before making requests
  • Exports one stable row schema across all supported identifier forms

Use it for creator research, public business enrichment, CRM preparation, account verification, and resolving profiles discovered by other Public Signal Labs Instagram Actors.

Quick start

{
"profiles": ["instagram", "@natgeo", "https://www.instagram.com/nasa/"]
}

Input

FieldRules
profilesRequired array of 1–50 Instagram usernames, @usernames, canonical profile URLs, or numeric IDs. Equivalent values are deduplicated while first occurrence order is retained. Plan-specific effective limits are detailed in Pricing.

Unknown properties, unsupported URLs, malformed usernames/IDs, empty values, and invalid types are rejected before credentials, network work, or charging.

Dataset rows

Each completed valid lookup creates one row with the following fields:

FieldDescription
source_inputOriginal submitted username, URL, or numeric ID.
input_indexZero-based position of the normalized input.
statussucceeded when profile facts were found; otherwise not_found.
idStable Instagram profile ID.
usernameCurrent Instagram username.
full_nameDisplay name.
profile_urlCanonical Instagram profile URL.
is_privateWhether the account is private.
is_verifiedWhether Instagram marks the account as verified.
profile_pic_urlCurrent standard-resolution profile image URL.
profile_pic_url_hdHigher-resolution profile image URL when exposed.
follower_countCurrent follower count.
following_countCurrent followed-account count.
media_countCurrent published-media count.
biographyPublic profile biography.
external_urlPrimary external profile link.
bio_linksStructured links exposed in the biography.
account_typeInstagram account-type value.
categoryPublic professional or business category.
is_businessWhether Instagram marks the account as a business.
is_professional_accountWhether Instagram marks the account as professional.
public_emailPublic business email when exposed.
public_phone_numberPublic business phone number when exposed.
business_contact_methodPreferred public business contact method.
address_streetPublic business street address.
city_namePublic business city.
zip_codePublic business postal code.
latitude, longitudePublic business coordinates when exposed.

Profile fields are null and bio_links is empty when status is not_found. Optional values can also be null or empty when Instagram does not expose them. Missing contact values are not lookup failures. Profile images and external URLs can change or expire.

Pricing

$2.0 per 1,000 completed valid profile lookups. One lookup result row costs exactly $0.0020.

OutcomeDataset rowExact event charge
Profile foundstatus: succeeded with available profile facts$0.0020
Valid lookup with no profile information foundstatus: not_found with profile fields empty$0.0020
Malformed customer input rejected before lookupNone$0.0000
Provider, identity-check, or malformed-response failureNone$0.0000

A completed valid profile lookup is charged even when no profile information can be found. Syntactically malformed handles, unsupported URLs, and other inputs rejected before upstream work are never charged. The single profile-result event both saves the status-bearing row and charges it. The Actor verifies that the requested maximum workload fits the run spending limit before starting upstream work.

FREE demo limits

FREE Apify accounts can run this Actor up to 5 times per UTC calendar month. Each admitted FREE run accepts exactly one unique profile and returns the same row fields and billing semantics as paid runs. Console, CLI, API, schedules, webhooks, MCP, and other launch methods share the same account allowance. A run counts once admitted even when it is later aborted or unsuccessful, and resurrecting it does not start another extraction. Creating another task or API token does not reset the allowance. Paid Apify users are not subject to these demo limits.

Run summary and audit

The default key-value store contains:

  • OUTPUT — overall status, exact prices, maximum and actual event charge, delivered/charged totals, and sanitized per-input outcomes
  • AUDIT — aggregate request attempts, request units, response bytes, retries, status counts, operation counts, storage reconciliation, and non-sensitive FREE admission metadata

Source summaries contain only input indexes, status, row count, and a stable sanitized error code. They never contain usernames, IDs, profile data, credentials, provider paths, or raw responses.

Status behavior

Per-input status is one of:

  • succeeded — one identity-matching profile row was saved with available facts;
  • not_found — the valid lookup completed and a charged status row was saved with empty profile fields;
  • failed — the request, response validation, or identity check failed safely; no row is saved or charged.

The run is SUCCEEDED, PARTIAL, FAILED, or CHARGE_LIMIT_REACHED. One failed source does not discard successful rows from other sources.

Limitations and data quality

This Actor returns current public profile facts. It does not retrieve private content, posts, Reels, Stories, followers/following lists, historical profile changes, engagement rates, email verification, or linked-website data. Public contact fields are sparse, can be outdated, are not independently verified, and are never guaranteed.

API and CLI use

apify actors call publicsignallabs/instagram-profile-scraper \
--input '{"profiles":["instagram"]}' \
--output-dataset

The Actor also works with Apify clients, the Runs API, schedules, webhooks, and platform integrations.

Responsible use

Collect and use public data only where you have a lawful purpose. Respect privacy, intellectual-property rights, platform rules, anti-spam requirements, and applicable data-protection law. Minimize retained data, secure exports, and honor deletion obligations.

This Actor is unofficial and is not affiliated with or endorsed by Instagram or Meta.

Support

Use the Issues tab on this Actor's Apify page. Include the run ID and a sanitized input shape. Never include API tokens, cookies, credentials, personal contact values, or other private data.