skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
apidojo-io/apidojo-skills630 installs

scraping-instagram-profile-data

Scrapes Instagram profile statistics and recent posts for any list of accounts using apidojo's Instagram scraper on Apify. Triggers when the user asks to: get Instagram profile data for an account, fetch follower count and post count for Instagram users, scrape Instagram bio and stats in bulk, export Instagram account metadata, check profile information for a list of Instagram handles, or get engagement data from Instagram profiles. Returns username, follower count, following count, post count, bio, and recent post metrics. Ideal for influencer vetting, brand research, and list enrichment.

How do I install this agent skill?

npx skills add https://github.com/apidojo-io/apidojo-skills --skill scraping-instagram-profile-data
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    This skill facilitates scraping Instagram profile data using the Apify platform. It is a standard integration with a well-known service, but it processes untrusted data from social media profiles which presents a surface for indirect prompt injection.

  • Socketpass

    No alerts

  • Snykwarn

    Risk: MEDIUM · 1 issue

What does this agent skill do?

Scraping Instagram Profile Data

Bulk profile export for any set of Instagram usernames. Returns account-level stats and optional recent post data.

Prerequisites

  • APIFY_TOKEN environment variable set
  • Optional: Apify MCP server installed

Inputs

ParameterTypeRequiredDefaultNotes
startUrlsarray✅[]Instagram URLs — profiles, hashtags, locations, audio pages, reels
untilstringOptional—Scrape posts until this date (YYYY-MM-DD)
maxItemsnumberOptionalUnlimitedMaximum posts to return
customMapFunctionstringOptional—JavaScript function to transform each output object

Workflow

Progress:
- [ ] Step 1: Normalize username list
- [ ] Step 2: Run instagram-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver profile dataset

Step 2: Run the Actor

Recommended — run_actor.js (handles waiting, output, and file saving automatically):

# Quick answer (prints table to chat)
node scripts/run_actor.js \
  --actor "apidojo~instagram-scraper" \
  --input '{"param": "value"}'

# Save as CSV
node scripts/run_actor.js \
  --actor "apidojo~instagram-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.csv --format csv

# Save as JSON
node scripts/run_actor.js \
  --actor "apidojo~instagram-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.json --format json

APIFY_TOKEN must be set in environment or .env file.

If Apify MCP is available:

Tool: apify:run-actor
Actor: "apidojo~instagram-scraper"
Input:
{
  "usernames": ["handle1", "handle2"],
  "includeRecentPosts": false
}

REST API fallback:

curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~instagram-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"usernames": ["handle1", "handle2"]}'

Save id as RUN_ID. Poll until status = SUCCEEDED:

curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'

Fetch results:

curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"

Step 3: Handle Edge Cases

  • Private accounts: Returns profile stats but no posts — flag isPrivate: true.
  • Account not found: Handle may be renamed or deactivated — note in output.
  • Business vs personal accounts: Business accounts expose contact info; personal accounts do not.

Output Format

# Instagram Profile Dataset
Accounts requested: N | Returned: N | Private: N | Not found: N

| Username | Followers | Following | Posts | Bio (truncated) | Business | Verified |
|----------|-----------|-----------|-------|-----------------|----------|----------|
| ...      | ...       | ...       | ...   | ...             | ...      | ...      |

Available fields: username, fullName, followersCount, followingCount, postsCount,
biography, isVerified, isBusinessAccount, businessCategory, externalUrl, profilePicUrl

Troubleshooting

Missing accounts: Username changed or account deactivated since list was compiled. No engagement data: Engagement is per-post; use includeRecentPosts: true for post-level data.

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/apidojo-io/apidojo-skills/scraping-instagram-profile-data">View scraping-instagram-profile-data on skillZs</a>