Instagram Content Scraper - Posts + Reels [NO LOGIN] ✅
Pricing
$5.00 / 1,000 results
Instagram Content Scraper - Posts + Reels [NO LOGIN] ✅
Scrape every public Instagram post AND reel from any profile in one run. Get captions, likes, comments, plays, video URLs, carousel images, and verified status. No login, no cookies. Built for influencer research, content strategy, and brand monitoring.
Pricing
$5.00 / 1,000 results
Rating
0.0
(0)
Developer
Unseen User
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Instagram Posts Scraper - Posts + Reels Combined (No Login)
Pull every public Instagram post (photos, videos, carousels) AND every reel from a profile in one run. Unified output, complete coverage, no login.
Why run two scrapers when one does both? This Actor pulls every public Instagram post (photos, videos, carousels) AND every reel from a profile in a single run, then merges them into one unified, analysis-ready dataset. No Instagram login required, no cookies, no proxies to manage.
The official apify/instagram-scraper and most alternatives require separate runs for posts and reels and leave the merge and dedup work to you. This Actor calls both endpoints in parallel, dedupes reels by shortcode, and emits a single flat row per item so you can stream straight into BI tools, dashboards, RAG pipelines, or downstream Actors.
Table of contents
- What this Actor returns
- Required caveats
- Free plan limit
- Hero use case
- Sample output
- Comparison vs alternatives
- Inputs
- Outputs and dataset views
- How it works
- Performance
- Cost transparency
- Use cases
- FAQ
- Live view API
- Legal and compliance
- Changelog
- Support
- Related scrapers
What this Actor returns
For every public Instagram profile you supply, you receive a unified, normalized dataset row per piece of content, covering:
| Content type | Source endpoint | Fields surfaced |
|---|---|---|
| Photo posts | posts feed | shortcode, URL, caption, thumbnail, likes, comments, posted date, author, branded-content flag |
| Video posts | posts feed | all of the above plus video URL, dimensions, duration, play count |
| Carousels | posts feed | all of the above plus carousel media count and first-slide thumbnail |
| Reels | reels feed | shortcode, URL, video URL (no watermark), thumbnail, play count, likes, comments, shares, music metadata, author |
| Pinned content | posts feed | included (pinned reels surface here, not in the reels feed) |
Inputs accepted: profile URLs, handles (with or without @), or numeric Instagram user IDs - mix any of them in one bulk field.
Required caveats (read these first)
- Play counts are Instagram-only. When a reel is cross-posted to Facebook, the in-app view count shows combined IG + FB. This API returns only the IG portion. Disclose this to your end users so they do not dispute your numbers against in-app stats.
- Reel captions are not returned by the reels endpoint. If your pipeline needs reel captions, enable
enrich_reel_captions = true. This costs one extra API credit per reel and roughly doubles run time. Disabled by default. - Private accounts return an error row, not data. The Actor accesses publicly visible content only.
- Story and Highlight content is not included. This Actor targets the permanent feed (posts + reels) only.
Free plan limit
Free Apify users get up to 50 results per run. Paying users are not affected and receive results normally.
This limit was set by the Actor developer, not by Apify. To remove it and receive unlimited results, upgrade to any paid Apify plan: https://apify.com/pricing
When a free plan run hits the cap, the Actor finishes successfully (status SUCCEEDED) and the run's status message explains what happened. No error is raised, so the first 50 results are fully usable as normal.
Hero use case
An influencer marketing agency tracking 200 creators across Instagram:
- Paste 200 profile URLs into the
profilesbulk field. - Get every post + reel for each creator in one unified dataset.
- Run engagement analysis (views, likes, comments, branded-content flags) without merging two separate sources.
The merge is the conversion event - one row per item, normalized fields across both shapes, ready for analysis the moment the run finishes.
Sample output (unified schema)
{"source": "reel","id": "3251234567890123456","url": "https://www.instagram.com/reel/Cabc123xyz/","shortcode": "Cabc123xyz","type": "reel","caption": "Behind the scenes...","created_at": "2026-05-12T10:23:45.000Z","stats": {"views": 482310,"likes": 31204,"comments": 412,"shares": 1820,"saves": 3022},"video": {"url_no_watermark": "https://scontent.cdninstagram.com/.../video.mp4","url_alt": null,"duration_ms": 28500,"width": 1080,"height": 1920},"thumbnail_url": "https://scontent.cdninstagram.com/.../thumb.jpg","is_paid_partnership": false,"music": { "title": "Original audio", "author": "natgeo", "id": "..." },"author": { "handle": "natgeo", "name": "National Geographic", "verified": true },"_metadata": {"source_endpoint": "/v1/instagram/user/reels","page": 2,"fetched_at": "2026-06-05T14:32:01.000Z","input_identifier": "natgeo"}}
A post row has the same shape with source: "post" and type: "photo" | "video" | "carousel". The unified schema means a downstream consumer never has to branch on the source endpoint.
Field reference
| Field | Type | Notes |
|---|---|---|
source | "post" | "reel" | Which feed the item came from. |
id | string | Stable Instagram media ID. |
url | string | Direct link to the content. |
shortcode | string | Used for dedup between posts and reels feeds. |
type | enum | photo, video, carousel, reel, text, unknown. |
caption | string | null | Always present for posts. Null for reels unless enrichment is on. |
created_at | ISO 8601 | Original post time. |
stats.views | number | null | Reels and video posts. IG-only count. |
stats.likes | number | null | All content types. |
stats.comments | number | null | All content types. |
stats.shares | number | null | Reels only. |
stats.saves | number | null | When available. |
video.url_no_watermark | string | null | Direct MP4. |
video.duration_ms | number | null | Duration in milliseconds. |
video.width, video.height | number | null | Pixel dimensions. |
thumbnail_url | string | First-frame thumbnail or photo. |
is_paid_partnership | boolean | Branded-content disclosure flag. |
music.title, music.author, music.id | string | null | Reel audio metadata. |
author.handle, author.name, author.verified | string / boolean | Creator identity. |
_metadata.source_endpoint | string | The underlying endpoint that produced this row. |
_metadata.page | number | Pagination page index. |
_metadata.fetched_at | ISO 8601 | When this row was fetched. |
_metadata.input_identifier | string | The input you supplied. |
Comparison vs alternatives
| Feature | This Actor | apify/instagram-scraper (official) | apidojo Instagram | Most commodity scrapers |
|---|---|---|---|---|
| Posts + reels in one run | Yes | No - separate runs | No | No |
| Unified normalized schema across both feeds | Yes | No - raw shape per endpoint | Partial | No |
| Reel dedup by shortcode | Yes | Manual | Manual | Manual |
| Login required | No | Optional but recommended for coverage | No | Varies |
| Pinned reel coverage via posts feed | Yes | Yes | Partial | Often missed |
| Bulk input (URLs + handles + IDs mixed) | Yes | Yes | Partial | No |
| Per-page progress logs | Yes | No | No | Rare |
| Live view HTTP API | Yes | No | No | No |
| Pay model | Pay-per-event | Per result | Per result | Per result |
Inputs
| Input | Type | Required | Default | Description |
|---|---|---|---|---|
profiles | array of strings | yes | - | One entry per profile. Each entry can be a profile URL, a handle (with or without @), or a numeric user ID. Mix freely. Duplicates are removed. |
results_type | enum | no | both | posts, reels, or both. |
max_items_per_profile | integer | no | 100 | Hard cap per profile, max 1000. Applies to posts and reels separately. |
enrich_reel_captions | boolean | no | false | Fetch reel captions. Adds one credit per reel. |
trim | boolean | no | false | Drop heavy CDN / transcode fields from each row. |
Example profiles input
["natgeo","@nasa","https://www.instagram.com/nike/","529823214"]
Numeric IDs are accepted but feed the reels endpoint only - the posts endpoint requires a handle. If you provide only a numeric ID, posts for that profile are skipped with a warning.
Programmatic run (Apify API)
curl -X POST "https://api.apify.com/v2/acts/unseenuser~instagram-posts-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"profiles": ["natgeo", "nasa"],"results_type": "both","max_items_per_profile": 100}'
Outputs and dataset views
Results stream to the Apify dataset as flat rows. The Apify console renders three pre-built views:
- Overview - source, type, shortcode, URL, author, caption, engagement, posted date. Default view for human inspection.
- Media URLs - shortcode, type, thumbnail, video URL, dimensions, duration. Use for download pipelines.
- Errors - any rows that failed mid-run. Check first when a profile returns no data.
Export formats
- JSON, JSON Lines, CSV, XLSX, XML, RSS, HTML
- Apify API (paginated)
- Webhooks on run finish
Key-value store outputs
| Key | Content |
|---|---|
OUTPUT | Run-level summary (counts, cap status, finish time). |
SUMMARY-<handle> | Per-profile counts of posts, reels, and errors. |
STATE-* | Reserved for internal run state. Safe to ignore. |
How it works
profiles inputvparser ----> { handle, userId, label } per profilevfor each profile (sequential)+--> posts endpoint -+| +--> dedup by shortcode --> normalize --> push to dataset+--> reels endpoint -+|+--> if enrich_reel_captions: parallel caption enrichment (5 concurrent)
- Posts and reels for a single profile fetch in parallel.
- Profiles are processed sequentially so failures on one do not poison others.
- Reels that appear in both feeds (cross-posts, pinned reels) are deduplicated by shortcode.
- Failed pages emit error rows; the run keeps going.
- Pagination is capped at 50 pages per endpoint and stops automatically if cursors stop advancing or pages return only duplicates.
Performance
Typical run times on the paid plan, no caption enrichment:
| Workload | Approx wall time |
|---|---|
| 1 profile, 100 items, posts + reels | 10 - 25 s |
| 1 profile, 1000 items, posts + reels | 1 - 3 min |
| 10 profiles, 100 items each | 2 - 5 min |
| 200 profiles, 100 items each | 30 - 90 min |
Caption enrichment roughly doubles reels runtime (one extra API call per reel, batched 5 in parallel).
Cost transparency
Pulling 1000 posts from a single creator typically requires roughly 50 to 100 paginated API calls under the hood. Budget accordingly. The max_items_per_profile input lets you bound spend.
If you enable enrich_reel_captions, the Actor performs one additional request per reel. For a profile with 100 reels this adds 100 extra credits beyond the base run, so leave it off unless you need captions.
The Actor logs a one-line cost warning at the start of any run that has enrichment enabled, so it never surprises you.
Use cases
- Influencer content audits - vet a creator's full portfolio before a partnership.
- Brand monitoring - track a brand or competitor's posting cadence across both formats.
- Content strategy research - measure how reels stack up against photo / carousel posts on engagement per impression.
- Competitor analysis - benchmark engagement against peers in your category.
- Cross-posting analysis - identify which reels also appear as feed posts (the dedup metadata tells you).
- Brand-safety audits - review what a creator actually publishes before sponsorship.
- UGC research - analyze how communities create content around products.
- Academic research - study posting cadence, engagement velocity, content trends.
- RAG / search indexing - feed creator content into vector stores for downstream Q&A.
FAQ
How is this different from the official Apify Instagram scraper? The official actor solves a broader surface (profiles, hashtags, locations, comments) but requires you to run separate jobs for posts and reels and stitch the results yourself. This Actor is purpose-built for the posts + reels merge: one run, unified schema, dedup handled.
What happens with private accounts? Only publicly visible content is returned. Private profiles return a clear error row and the Actor moves on to the next profile.
What is the max posts per profile?
1000 per profile via max_items_per_profile. For larger needs, run multiple jobs or contact support.
How are carousels handled?
Each carousel is one row with type: "carousel". The first media's thumbnail represents the carousel.
Reel caption workaround?
Enable enrich_reel_captions = true. The Actor logs a cost warning at the start of any run that has it on, and enrichment runs 5 reels in parallel so it does not double your wall-clock time.
Why is my reel's play_count lower than the in-app number?
The in-app number includes Facebook cross-post views. This API returns Instagram-only views. See "Required caveats" above.
Do I need an Instagram login? No. The Actor accesses publicly visible content only.
Does the Actor handle pinned reels? Yes. Pinned reels surface through the posts feed (the reels feed excludes them by default). The dedup logic merges them cleanly.
What if a profile has zero reels? The reels task returns an empty list and the run continues with just the posts data. No error.
What about rate limits? The Actor retries 429 / 502 / 503 / 504 responses three times with exponential backoff. Hard failures emit an error row and the Actor moves on.
Can I get historical data older than X?
The Actor follows whatever Instagram exposes through the public feeds. There is no cutoff date you control - you bound the volume with max_items_per_profile.
Can I use this for AI training? No. Instagram's Terms of Service prohibit using Instagram data to train AI / ML models without Meta's authorization, and creators retain copyright. See Legal and compliance.
Live view API
While the Actor is running, an HTTP server is exposed on the container port and accessible via the Apify run detail page's "Live view" tab.
| Method | Path | Returns |
|---|---|---|
| GET | /health | Liveness probe { status, uptime_ms }. |
| GET | /progress | Current pushed count, item cap, cap reached flag, current profile. |
| GET | /summary | Per-profile counts gathered so far. |
The full OpenAPI v3 spec ships in .actor/web_server_openapi.json.
Legal and compliance
This Actor accesses publicly visible Instagram content. Your downstream use must independently comply with Instagram's Terms of Service.
You may NOT use this Actor to:
- Train commercial AI / LLM models on Instagram content (Meta prohibits this; creators retain copyright).
- Scrape content of users you know or suspect are minors. Instagram has many under-18 users and minor-data violations carry the highest regulatory penalties (COPPA, GDPR Article 8, Illinois BIPA, Israel PPL).
- Republish creator content as your own.
- Build mass-DM tools targeting commenters or engagers.
- Strip creator attribution before redistribution.
- Aggregate Instagram data with Facebook, LinkedIn, TikTok, X / Twitter to build cross-platform identity profiles of named individuals.
- Process personal data without a lawful basis under GDPR, UK GDPR, CCPA, or Israel PPL.
You agree to:
- Honor data subject deletion requests within 30 days under GDPR.
- Disclose to your end users that play counts are Instagram-only (do not include Facebook cross-post views).
- Notify the Publisher within 48 hours if Meta or a creator issues a cease-and-desist regarding data obtained via this Actor.
By running this Actor you accept the Publisher's Terms of Service V4.0 (referenced in the log on every run) and the actor-specific addendum. Full terms are available on the Apify Actor page.
Changelog
1.0.0 (2026-06)
- Initial public release.
- Unified posts + reels schema with shortcode-based dedup.
- Bulk profiles input accepting URLs, handles, and numeric IDs.
- Three pre-built dataset views, key-value store summaries, live-view HTTP API.
- Free plan cap of 50 results per run with
SUCCEEDEDexit status.
Support
- Bugs, feature requests, or questions: open an issue on the Actor's Apify page contact form.
- Found a profile that returns weird data? Include the handle and the run ID and we can usually fix the normalizer the same day.
- For commercial questions (volume pricing, white-label, custom fields): contact via the Apify profile.
Related scrapers
Build the complete cross-platform creator intelligence stack:
- Instagram Profile Scraper - profile-level data to pair with content.
- TikTok Audience Geography - evaluate cross-platform creators (flagship).
- Facebook Page Posts & Reels Scraper - extend brand monitoring to Facebook.
- Meta Ad Library Scraper - paid + organic intelligence on the same brand.
See all scrapers by unseenuser
Quick start
- Click Try for free on the Actor page.
- Paste URLs, handles, or user IDs into the
profilesfield. - Run the Actor.
- Download results as JSON, CSV, or XLSX, or pull via the Apify API.
Keywords: instagram posts scraper, instagram reels scraper, scrape instagram content, instagram bulk scraper, instagram api alternative, no login instagram, influencer content audit, brand monitoring instagram, instagram analytics, ugc research, creator analytics, social media monitoring
Full Specification, Terms of Service, and Implementation Reference
The remainder of this document is the complete specification, legal terms, and implementation checklist that govern this Actor. Everything below this line is reference material. The product-facing description above is the canonical README.
Instagram Posts Scraper - Posts + Reels Combined (No Login)
Pull every public Instagram post (photos, videos, carousels) AND every reel from a profile in one run. Unified output, complete coverage, no login. Tier: Atomic / Single-Profile Combined Bundle
Quick Reference
| Property | Value |
|---|---|
| Public Name (Apify Title) | Instagram Posts Scraper - Posts + Reels Combined (No Login) |
| Apify Slug | UnseenUser/instagram-posts-scraper |
| Short Description (160 chars) | Pull every public Instagram post (photos, videos, carousels) AND every reel from a profile in one run. Unified output, complete coverage, no login. |
| API Provider | Scrape Creators |
| API Base URL | https://api.scrapecreators.com |
| Endpoints Wrapped | 2 endpoints combined in one run |
| Endpoints List | /v2/instagram/user/posts + /v1/instagram/user/reels |
| Authentication | x-api-key header -> environment variable SCRAPECREATORS_API_KEY |
| API Cost | 1 credit per request per endpoint |
| Effective Date | May 5, 2026 |
| Keywords | instagram posts, instagram reels, content scraping, creator analytics, ugc research, social media monitoring |
Endpoints Wrapped
| Endpoint | Purpose | Credits | Official Documentation |
|---|---|---|---|
GET /v2/instagram/user/posts | Posts Feed | 1 credit | https://docs.scrapecreators.com/v2/instagram/user/posts |
GET /v1/instagram/user/reels | Reels Feed | 1 credit | https://docs.scrapecreators.com/v1/instagram/user/reels |
Part 1: Public-Facing README (paste into Apify Store listing)
Why This Actor?
Combined-endpoint atomic actor: input an Instagram handle, get back every public post (photos, videos, carousels with captions) PLUS every reel (with play counts and video URLs) in one unified dataset. Runs both endpoints in parallel for complete coverage - the posts feed has captions but limited reel data, the reels feed has play counts but no captions, so together they give you the full picture.
Use Cases
- Influencer marketing - pull a creator's full content portfolio for vetting before partnership
- Content repurposing - extract creator content for licensed cross-posting (with creator permission)
- UGC research - analyze how brands' communities create content around their products
- Competitive monitoring - track competitor brand's posting patterns, themes, engagement
- Brand-safety audits - review what content appears on a creator's profile before sponsorship
- Academic research - study posting patterns, engagement velocity, content trends
- Crisis monitoring - detect when a brand or person's profile shifts tone after an incident
- Influencer audit - verify claimed reach against actual play counts
Quick Start
- Click Try for free on this Actor's page
- Enter the required identifier (see Inputs Overview below)
- Run the Actor
- Download results as JSON, CSV, or XLSX, or pull via Apify API
Inputs Overview
| Input | Type | Required | Description | Example/Allowed Values |
|---|---|---|---|---|
profiles | array of strings | Yes | One entry per profile. Each entry can be a profile URL, a handle (with or without @), or a numeric user ID. Mix freely. Duplicates removed. | ["natgeo", "@nasa", "https://www.instagram.com/nike/", "529823214"] |
results_type | enum | No | Which content to fetch. Default both | posts, reels, both |
max_items_per_profile | integer | No | Hard cap per profile (data minimization + cost control). Default 100, max 1000 | 100 |
enrich_reel_captions | boolean | No | COST WARNING: +1 credit per reel. Fetches caption for each reel via /v1/instagram/post. Default false | false |
trim | boolean | No | Return slimmed-down response (fewer CDN/transcode fields). Default false | false |
Pricing
Pay-per-event model on Apify. Each Apify run consumes 1+ Scrape Creators credit per endpoint call.
Pricing tier hint: Scrape Creators sells volume discounts. At entry-tier (~$0.002/credit), pricing your Apify event at 1.5x-3x the API cost is a reasonable margin.
COST NOTE for enrich_reel_captions=true: This adds +1 credit per reel. If a profile has 100 reels, that adds 100 credits beyond the base run. Disabled by default.
See exact per-event pricing on the Actor's Apify page.
FAQ
Q: Is this legal? A: This Actor wraps Scrape Creators endpoints that handle the underlying data collection. Your downstream use of the data is your responsibility - see the full Terms of Service and the Actor-Specific Addendum (Part 4) for details.
Q: Do I need a Scrape Creators account? A: No. UnseenUser holds the Scrape Creators credentials. You only need an Apify account.
Q: What about Instagram's anti-scraping enforcement? A: Instagram's Terms restrict automated extraction. Scrape Creators handles the data collection - they bear the responsibility for their architecture's lawfulness. Your downstream use must comply with Instagram's Terms.
Q: What if Instagram sends a cease-and-desist? A: Notify UnseenUser within 48 hours via the Apify profile contact form (apify.com/UnseenUser) and cease using this Actor immediately.
Q: Can I use this data to train AI? A: NO. Instagram's Terms explicitly prohibit AI training on Instagram data, and creators retain copyright in their content.
Q: What about minors? A: Instagram has many under-18 users. This Actor's Terms strictly prohibit using data of users you know or suspect are minors. See Part 4 for details.
Q: Why combine posts + reels - can't I get all content from one endpoint? A: No. The posts feed has captions but limited reel data. The reels feed has play counts and video URLs but does NOT return reel captions. Running both and merging gives complete coverage. See Part 4 Section L if you need to enrich reel captions.
Q: Why are reel play counts different from what I see in the Instagram app? A: Play counts here are Instagram-only. When a reel is cross-posted to Facebook, the in-app view shows combined IG+FB views - this API returns just the IG portion. Disclose this to your users to avoid confusion.
Q: Should I use a handle or numeric user_id?
A: A numeric user_id is faster for the reels endpoint per Scrape Creators docs. The posts endpoint takes only a handle. If you have the user_id cached, include it in the profiles input.
Q: How do I get a user_id?
A: Run the Profile actor first (UnseenUser/instagram-profile-scraper-fastest). The profile object's pk field is the user_id.
Q: What about pinned reels? A: The reels endpoint excludes pinned reels by default. Pinned content surfaces through the posts endpoint, which is one reason to use both.
Technical Details
- API: Scrape Creators (
https://api.scrapecreators.com) - Auth:
x-api-keyheader - Output: streamed via Apify dataset
- Format: JSON, CSV, XLSX, or via Apify API
- Retries: 3 with exponential backoff on 429/502/503/504
- No rate limit stated by Scrape Creators ("scrape as fast as you want")
- Concurrency: parallel calls within a profile (posts + reels in parallel); sequential between profiles for bulk mode
Part 2: Build Specification
Build an Apify actor in Node.js (TypeScript) called "instagram-posts-scraper".Combines TWO Scrape Creators endpoints in a single run:/v2/instagram/user/posts + /v1/instagram/user/reelsAuth: x-api-key header -> loaded from environment variable SCRAPECREATORS_API_KEY.INPUT_SCHEMA.json: see Inputs Overview table above. Map each input to acorresponding INPUT_SCHEMA field with appropriate type, default, and validation.Behavior:1. Validate inputs at start of run - fail fast with helpful error messages.- One of "primary identifier inputs" must be provided2. For each profile/page input:a. If results_type includes "posts": call endpoint A with paginationb. If results_type includes "reels": call endpoint B with paginationc. Merge into unified output (see Output Structure below)3. Stream each result to the Apify dataset via Actor.pushData() as a flat,unified row.4. Include _metadata field per row:{ source (post/reel for combined OR endpoint name), page, fetched_at,input_identifier }.5. On 4xx errors for individual items, emit error rows - do NOT crash thewhole run.6. Respect max_items_per_profile strictly.7. For Instagram: deduplicate reels that appear in both posts feed AND reelsfeed (by shortcode).8. For Instagram: if enrich_reel_captions=true, log a prominent cost warningat start of run (1 credit per reel).Retries: 3 with exponential backoff (1s, 2s, 4s) on 429, 502, 503, 504.Concurrency: 2 parallel within a profile (posts + reels in parallel);3-5 within pagination of each endpoint.User-Agent: OpusScale-Apify/1.0
API Reference - Verified from Official Documentation
Endpoint: Posts Feed
GET https://api.scrapecreators.com/v2/instagram/user/posts - 1 credit
Source: https://docs.scrapecreators.com/v2/instagram/user/posts
Refer to the official Scrape Creators documentation for the complete parameter list and response schema for this endpoint.
Endpoint: Reels Feed
GET https://api.scrapecreators.com/v1/instagram/user/reels - 1 credit
Source: https://docs.scrapecreators.com/v1/instagram/user/reels
Refer to the official Scrape Creators documentation for the complete parameter list and response schema for this endpoint.
Unified Output Structure
Each post/reel becomes ONE dataset row. The output normalizes both endpoints into a single flat schema:
{"source": "post | reel","id": "unique ID","url": "link to the content","shortcode": "IG shortcode","type": "photo | video | carousel | reel | text","caption": "caption text or null","created_at": "ISO timestamp","stats": {"views": "play_count","likes": "like_count","comments": "comment_count","shares": "share_count","saves": "collect_count if available"},"video": {"url_no_watermark": "clean MP4 URL or null","url_alt": "alternative URL","duration_ms": "duration","width": "N","height": "N"},"thumbnail_url": "thumbnail URL","is_paid_partnership": "boolean","music": {"title": "song title or null","author": "artist or null","id": "music ID"},"author": {"handle": "@username","name": "display name","verified": "boolean"},"_metadata": {"source_endpoint": "endpoint path","page": "N","fetched_at": "ISO timestamp","input_identifier": "handle or URL"}}
Pricing Strategy (pay-per-event)
Configure pay-per-event in Apify console. For this actor, suggested pricing depends on the underlying API cost:
- 1-credit endpoints: price at 1.5x-3x base cost ($3-6/1k results break-even is $2.50/1k)
- For Instagram with reel-caption enrichment ON: price reel-enrichment events at the per-reel cost rate (1 credit each)
Tags (actor.json)
categories: ["SOCIAL_MEDIA", "MARKETING_AUTOMATION"]keywords: ['instagram posts', 'instagram reels', 'content scraping','creator analytics', 'ugc research', 'social media monitoring']
Important Notes
- Never log the API key in error messages or run logs
- Emit failed requests as dataset rows with
errorfield - do NOT crash the whole run - Include
_metadatafield per row: see Unified Output Structure above - For batch/bulk modes (multiple URLs or handles per run), process sequentially with proper error isolation
- Log a one-line acceptance notice at start of every run:
This Actor is governed by UnseenUser's Terms of Service V4.0.Running this Actor constitutes binding acceptance.
- Deduplication of reels - reels appearing in both feeds should appear once in output. Dedupe by
shortcode. - Cost warning for
enrich_reel_captions=true- log a prominent warning at start of run if enabled.
Part 3: Apify Actor - Terms of Service
Version: 4.0 Effective Date: May 5, 2026
0. ACCEPTANCE BY USE - IMPORTANT
Read this section first.
These Terms of Service ("Terms") form a binding legal agreement between you ("User," "you," "your") and UnseenUser, the Publisher of this Apify actor ("UnseenUser," "the Publisher," "we," "us," "our").
0.1 How You Accept These Terms
You accept these Terms by any of the following actions, each of which constitutes a clear, affirmative act of acceptance:
- (a) Running the Actor - Initiating any execution of the Actor on the Apify platform
- (b) Using any output returned by the Actor for any purpose
- (c) Continuing to access the Actor's listing or documentation after these Terms are visible
0.2 Continuing Acceptance
Each time you run the Actor or use its outputs, you reaffirm your acceptance of the then-current Terms. If you do not agree to these Terms or any subsequent update, you must stop using the Actor immediately.
0.3 No Anonymous Acceptance
You cannot disclaim acceptance by:
- Failing to read these Terms before running the Actor
- Running the Actor through automated systems
- Sharing your Apify account with others who may not have read these Terms
By the act of running the Actor on Apify, you bind yourself, your organization (if applicable), and any individuals or systems acting on your behalf or under your authority.
0.4 If You Do Not Accept
If you do not agree to these Terms, you must not run the Actor. No use is authorized without acceptance.
PREAMBLE - UNDERSTANDING THE ARCHITECTURE
Before using the Actor, please understand the technical architecture of the service:
The Data Flow
You (User) -> Apify Platform -> Actor (software) -> Third-Party API -> Source Platform|You (User) <- Apify Platform <- Actor (software) <- Third-Party API
What Each Party Does
- You (the User): Run the Actor on the Apify platform with input parameters you choose
- Apify: Operates the cloud infrastructure that hosts and executes Actors. Apify is a Czech-incorporated company (Apify Technologies s.r.o.) governed by its own Terms of Service.
- The Publisher (us): Publishes software code (the Actor) on Apify's platform. The Actor is a thin wrapper that translates your input into requests to a third-party API and returns the API's responses to you. The Publisher does not operate scraping infrastructure. The Publisher does not store or retain data returned by the Actor. The Publisher does not see, log, or process the personal data of any individuals returned in the Actor's outputs beyond what is incidental to passing the data through.
- Third-Party API Provider: HarvestAPI (https://harvest-api.com) or Scrape Creators (https://scrapecreators.com). These are independent third-party companies that operate scraping infrastructure and return data from source platforms.
- Source Platform: LinkedIn, TikTok, YouTube, Reddit, Linktree, etc. These are the platforms whose publicly visible data is accessed by the Third-Party API Providers.
Why This Matters
Your relationship with the Publisher is that of a software user to a software vendor. The Publisher has the responsibilities of a software vendor (functional code, accurate documentation) and the limits of one (the Publisher is not responsible for how you use the data you obtain).
These Terms operate alongside but do not replace:
- Apify's Terms of Service and Acceptable Use Policy (governing your relationship with Apify)
- HarvestAPI Terms of Service and Scrape Creators Terms of Service (governing the underlying data infrastructure)
- Source Platform terms (LinkedIn, TikTok, etc.) governing the public data accessed
- Applicable law in your jurisdiction and the jurisdictions of data subjects
These Terms incorporate the actor-specific addendum published in each Actor's individual listing ("Addendum"). In the event of a conflict, the more restrictive provision applies.
1. NATURE OF THE SERVICE
1.1 What the Actor Is
The Actor is a software program published on the Apify platform. Each Actor:
- (a) Accepts structured input from you on the Apify platform
- (b) Translates that input into HTTP requests to a third-party API operated by HarvestAPI or Scrape Creators
- (c) Receives HTTP responses from that third-party API
- (d) Returns the response data to you in a structured format on the Apify platform
The Actor's source code is hosted on Apify's infrastructure. The Actor runs in Apify's cloud, not on the Publisher's servers. The Publisher operates no servers running the Actor.
1.2 What the Actor Is Not
The Actor is not:
- (a) A scraping tool - the Publisher does not operate scraping infrastructure, proxies, headless browsers, or fake accounts
- (b) A direct connection to any source platform - connections to source platforms are made by HarvestAPI / Scrape Creators
- (c) A data storage or data retention service - the Publisher does not maintain a database of any data the Actor returns
- (d) A licensed access channel to LinkedIn, TikTok, YouTube, Reddit, X (Twitter), Meta, Linktree, or any other source platform
- (e) Affiliated with, endorsed by, sponsored by, or authorized by any source platform
1.3 The Publisher's Limited Role
The Publisher's role is limited to:
- (a) Designing and writing the Actor's source code
- (b) Publishing the Actor on the Apify Store
- (c) Maintaining the Actor (updating it when API providers change schemas)
- (d) Providing documentation and customer support via Apify's contact mechanism
The Publisher is a software vendor, similar to a developer who publishes an app on the Apple App Store or Google Play Store. The Publisher is not a data provider, data broker, data processor, or data controller for purposes of GDPR, CCPA, Israel's Privacy Protection Law, or equivalent.
1.4 The Third-Party API Providers' Role
HarvestAPI (https://harvest-api.com) and Scrape Creators (https://scrapecreators.com) are independent third-party companies. They:
- (a) Operate the actual data scraping infrastructure
- (b) Maintain relationships with source platforms (or accept the operational risk of accessing public data without such relationships)
- (c) Are themselves Apify publishers
- (d) Provide their own Terms of Service governing their operations
- (e) Are responsible for compliance obligations relating to the data collection itself
The Publisher is a customer of these providers. The Publisher is not their agent, partner, or representative.
2. WHO MAY USE THE ACTOR
2.1 Eligibility
You may use the Actor only if:
- (a) You are at least 18 years old or the age of majority in your jurisdiction
- (b) You have legal capacity to enter into binding contracts
- (c) You are not located in or resident of a country subject to comprehensive sanctions by the United States, European Union, United Kingdom, or Israel
- (d) You are not on any prohibited persons list
2.2 User Representations
By using any Actor, you represent and warrant that:
- (a) Truthful identity: Information you provide about your identity and intended use is accurate
- (b) Lawful intent: Your intended use complies with applicable law in your jurisdiction
- (c) Source platform compliance: You will independently comply with the Terms of Service of any source platform whose data you obtain through the Actor
- (d) Data subject rights: Where Actor outputs include personal data, you will respect data subject rights under applicable law
- (e) No prohibited use: You will not use the Actor for any of the purposes prohibited in Section 4
These representations are continuous - they must remain true throughout your use.
3. PERMITTED USES
The Actor may be used for any lawful purpose, including:
- Market research and competitive analysis
- Academic research
- Journalism and investigative reporting
- Internal business intelligence
- Brand monitoring
- Recruitment research where consistent with applicable employment law
- Building products that further process publicly available information lawfully
Specific permitted uses for each Actor are described in that Actor's individual listing and Addendum.
4. PROHIBITED USES
You may not use the Actor for any of the following:
4.1 Illegal Activity
Activity illegal under the law of your jurisdiction, the User's jurisdiction, or the jurisdiction of any data subjects.
4.2 Harassment, Stalking, and Personal Targeting
- Compiling profiles for harassment, stalking, or doxxing
- Tracking individuals' movements or activities without their knowledge
- Building profiles of journalists, activists, dissidents, or vulnerable populations for retaliatory purposes
4.3 Discrimination
- Using outputs for discriminatory employment, lending, housing, or insurance decisions based on protected characteristics
- Building lists for discriminatory purposes
4.4 Spam and Unsolicited Commercial Communication
- Sending unsolicited marketing in violation of CAN-SPAM, CASL, GDPR, PECR, Israeli Anti-Spam Law, or equivalent laws
- Building "lead lists" from scraped contacts without proper consent infrastructure
- Reselling contact data for spam purposes
4.5 Fraud and Deception
- Identity theft or impersonation
- Generation of fake reviews, testimonials, or coordinated inauthentic behavior
- Election interference or political disinformation
- Securities fraud
4.6 Source Platform Abuse
- Using outputs to circumvent technical protection measures of source platforms
- Creating fake accounts on source platforms based on Actor outputs
- Vote manipulation, engagement manipulation, or platform algorithm gaming
- Building services that competitively substitute for source platforms
4.7 Reselling the Actor's Service
- Reselling raw Actor outputs as your own data product or scraping-as-a-service
- Sharing your Apify credentials to provide third parties indirect access
- Building competing API services using Actor outputs
4.8 AI Training Without Authorization
- Using Actor outputs as training data for commercial AI/ML models without separate licensing authority from the source platform
4.9 Sensitive Targeting
- Specifically targeting or profiling based on health conditions, sexual orientation, religious beliefs, political opinions, or other sensitive characteristics
- Targeting children under 16 (or local age of consent for data processing)
4.10 Privacy Law Violations
- Processing personal data of EU/UK/California/Israeli residents without complying with applicable privacy law
- Failing to honor data subject access, deletion, or objection requests
- Processing data for purposes incompatible with its publication context
5. SOURCE PLATFORM TERMS - YOUR RESPONSIBILITY
5.1 Acknowledgment
The Actor accesses publicly visible data on third-party platforms ("Source Platforms") through the Third-Party API Providers (HarvestAPI / Scrape Creators). Source Platforms include LinkedIn, TikTok, YouTube, Reddit, X (Twitter), Meta/Facebook, Linktree, Komi, Pillar, Linkbio, Linkme, and Amazon.
5.2 Your Sole Responsibility
You acknowledge:
- (a) You are solely responsible for ensuring your downstream use of data obtained through the Actor complies with the Source Platform's Terms of Service
- (b) The Publisher makes no representation that any specific use is permitted under any Source Platform's terms
- (c) The Third-Party API Providers, not the Publisher, bear responsibility for the lawfulness of the data collection itself
- (d) You should review Source Platform terms before commercial use:
- LinkedIn: https://www.linkedin.com/legal/user-agreement
- TikTok: https://www.tiktok.com/legal/page/global/terms-of-service/en
- YouTube: https://www.youtube.com/static?template=terms
- X: https://twitter.com/en/tos
- Reddit: https://www.redditinc.com/policies/user-agreement
- Meta: https://www.facebook.com/legal/terms
- Linktree: https://linktr.ee/s/terms/
5.3 Cease-and-Desist Compliance
If you receive a cease-and-desist letter or other legal demand from a Source Platform regarding your use of Actor outputs, you must:
- (a) Cease the contested use immediately
- (b) Notify UnseenUser within 48 hours via UnseenUser's Apify profile contact form (https://apify.com/UnseenUser)
- (c) Cooperate with the Publisher as needed to mitigate
- (d) Not assert against the Publisher any claim arising from your inability to use the Actor for that Source Platform
6. DATA PROTECTION - REFLECTING ACTUAL ARCHITECTURE
6.1 Roles Under Privacy Law
For purposes of GDPR, UK GDPR, CCPA, Israel's Privacy Protection Law (PPL) including Amendment 13, and equivalents:
- You (the User) are the Data Controller of any personal data you obtain through the Actor and subsequently process for your own purposes
- HarvestAPI and Scrape Creators are the entities that collect data from source platforms - they bear the responsibilities of data processors or controllers (depending on context) for the collection itself
- The Publisher acts solely as a software vendor, not as a data controller or processor, because the Publisher does not store, retain, or substantively process personal data - the Actor merely passes API responses through
6.2 No Data Retention by the Publisher
The Publisher confirms:
- (a) The Publisher does not maintain a database of personal data obtained through the Actor
- (b) The Actor passes data from the Third-Party API directly to you on the Apify platform - data does not flow through the Publisher's infrastructure
- (c) Apify's standard execution and operational logging may include limited information about Actor runs (input parameters, run duration, data volume) - this is governed by Apify's own privacy practices
- (d) The Publisher does not access, view, or analyze your Actor outputs except as needed for technical support if you specifically share them with the Publisher
6.3 Your Obligations as Data Controller
Where your use of the Actor involves processing personal data, you are responsible for:
- (a) Establishing a lawful basis for your processing (consent, legitimate interest with documented balancing test, contract, etc.)
- (b) Providing transparent notice to data subjects as required by applicable law
- (c) Honoring data subject access, rectification, erasure, restriction, and portability requests
- (d) Implementing appropriate security measures
- (e) Conducting Data Protection Impact Assessments where required
- (f) Appointing a Data Protection Officer if your operations require one
- (g) Registering databases with applicable supervisory authorities
- (h) Honoring opt-out requests for direct marketing
- (i) Cross-border transfer safeguards where data crosses borders
6.4 Israel's Amendment 13 - User Compliance
If your use of the Actor involves Israeli residents' personal data, you must comply with the Privacy Protection Law as amended (Amendment 13, effective August 14, 2025). These obligations are yours as the data controller, not the Publisher's as the software vendor.
6.5 Sensitive Data Targeting Restrictions
You will not use the Actor to specifically target, profile, or build datasets focused on:
- Health or medical conditions
- Religious beliefs
- Political opinions
- Sexual orientation or gender identity
- Genetic or biometric data
- Criminal history
- Children under 16
7. INTELLECTUAL PROPERTY
7.1 Actor Code
The Actor's source code, schemas, documentation, and branding are owned by the Publisher. You receive a limited, non-exclusive, non-transferable, revocable license to use the Actor for permitted purposes during your active subscription/run with Apify.
7.2 Output Data
The Publisher claims no ownership over the public data the Actor returns. Source Platforms may have copyright, database rights, or other rights in their data; data subjects may have copyright in user-generated content. Your use of output data must respect these rights independently.
7.3 Restrictions
You may not reverse engineer, decompile, or reuse the Actor's code in a competing actor.
7.4 Feedback
Feedback you provide may be used by the Publisher to improve products without compensation to you.
8. PRICING AND PAYMENT
8.1 Apify Platform Billing
Pricing is administered through Apify's pricing models. Apify processes all payments. Apify's payment terms govern refunds and disputes.
8.2 Pricing Changes
The Publisher may change Actor pricing with at least 14 days' notice via the Actor's Apify listing.
8.3 No Refunds for Misuse
If your access is suspended or terminated for breach of these Terms, you forfeit any unused balance and are not entitled to refunds.
9. SERVICE AVAILABILITY AND CHANGES
9.1 No Uptime Guarantee
The Actor depends on:
- (a) The Apify platform
- (b) Underlying API providers (HarvestAPI, Scrape Creators)
- (c) Source Platforms' continued public accessibility
Any of these may change behavior, restrict access, or become unavailable without notice. The Publisher makes no uptime guarantees.
9.2 Service Discontinuation
The Publisher may discontinue any Actor at any time. Reasonable notice will be provided when feasible.
10. DISCLAIMERS
10.1 "AS IS" Service
THE ACTOR IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTIES OF ANY KIND, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR PURPOSE, NON-INFRINGEMENT, OR ACCURACY OF DATA.
10.2 No Representation of Lawfulness
The Publisher makes no representation that your specific use of the Actor or the data it returns is lawful in your jurisdiction or under any Source Platform's terms. The burden of determining lawfulness for your use case is yours.
10.3 No Endorsement of Source Content
Content returned by the Actor was created by third parties. The Publisher does not endorse, verify, or take responsibility for it.
11. LIMITATION OF LIABILITY
11.1 Aggregate Liability Cap
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL THE AGGREGATE LIABILITY OF THE PUBLISHER FOR ALL CLAIMS RELATING TO THE ACTOR EXCEED THE GREATER OF:
- (a) ONE HUNDRED U.S. DOLLARS (US $100), OR
- (b) THE AMOUNTS YOU PAID THROUGH APIFY FOR USE OF THE ACTOR IN THE THREE (3) MONTHS IMMEDIATELY PRECEDING THE EVENT
11.2 Excluded Damages
THE PUBLISHER IS NOT LIABLE FOR INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES, OR FOR LOSS OF PROFITS, REVENUE, OR DATA, EVEN IF ADVISED OF THE POSSIBILITY.
11.3 Time Limit
Any claim must be brought within one (1) year of the event.
12. INDEMNIFICATION
12.1 Your Indemnification of the Publisher
You agree to defend, indemnify, and hold harmless the Publisher from any:
- Claims arising from your use of the Actor
- Claims arising from your violation of these Terms
- Claims arising from your violation of any law (including privacy law)
- Claims arising from your violation of any Source Platform's Terms of Service
- Claims arising from your processing of personal data obtained through the Actor
- Reasonable attorneys' fees and costs of defending such claims
12.2 Defense
The Publisher may assume defense at your expense. You will cooperate with the Publisher's defense.
12.3 Scope
The indemnification covers reasonable, foreseeable third-party claims arising from your use. It does not extend to:
- Claims arising from the Publisher's gross negligence or willful misconduct
- Claims regarding the Actor's source code itself (those are the Publisher's responsibility)
- Claims regarding the Third-Party API Provider's data collection (those are their responsibility)
13. SUSPENSION AND TERMINATION
13.1 Termination by the Publisher
The Publisher may terminate your access for material breach, illegal use, breach of warranty, or upon credible legal demand.
13.2 Effects of Termination
Your license ends, you must cease use, and applicable provisions survive.
13.3 Termination by You
You may stop using the Actor at any time on Apify.
14. DISPUTE RESOLUTION
14.1 Informal Resolution First
Send a detailed written description of the dispute via UnseenUser's Apify profile contact form (https://apify.com/UnseenUser) and wait 60 days for resolution attempt before any formal claim.
14.2 Governing Law
These Terms are governed by the substantive laws of the State of Israel, without regard to conflict of law principles.
14.3 Exclusive Jurisdiction
Any dispute shall be brought exclusively in the competent civil courts of Tel Aviv-Jaffa, Israel.
14.4 No Class Actions
You agree to bring claims only in your individual capacity.
14.5 Attorneys' Fees
The prevailing party recovers reasonable attorneys' fees.
15. MISCELLANEOUS
15.1 Entire Agreement
These Terms (with Addendum and incorporated documents) are the entire agreement.
15.2 Severability
Unenforceable provisions are reformed to the minimum extent or severed.
15.3 Assignment
You may not assign without the Publisher's consent. The Publisher may assign to affiliates, successors, or acquirers.
15.4 Force Majeure
Neither party is liable for failure due to events beyond reasonable control, including changes by Source Platforms or Third-Party API Providers, or actions by Apify.
15.5 Third-Party Beneficiaries
Apify, HarvestAPI, and Scrape Creators are intended third-party beneficiaries of Sections 4 (Prohibited Uses), 5 (Source Platform Compliance), and 12 (Indemnification).
15.6 Survival
Sections 0 (Acceptance), 4, 5, 6, 7, 10, 11, 12, 14, and 15 survive termination.
15.7 Language
English controls. Translations are for convenience only.
15.8 Publisher Identification for Legal Process
The Publisher operates on the Apify platform under the username UnseenUser (apify.com/UnseenUser). The Publisher is a registered legal entity. Upon receipt of valid legal process (subpoena, court order, or equivalent) directed through Apify's official channels, the Publisher's full legal identity may be disclosed as required by law. This Section ensures that you have a valid path to legal recourse if needed.
16. ACKNOWLEDGMENT
By using any Actor, you acknowledge that:
- (a) You have read these Terms
- (b) You understand the architecture: you are using software (the Actor) on Apify's platform that calls third-party APIs
- (c) You accept responsibility for your use, including for compliance with Source Platform terms
- (d) Your indemnification obligations cover third-party claims arising from your use
- (e) Disputes are resolved in Israeli courts
- (f) The Publisher's identity, while not publicly disclosed in this listing, can be obtained through valid legal process via Apify
For questions, use UnseenUser's Apify profile contact form (https://apify.com/UnseenUser) before running the Actor.
APPENDIX - Document Version History
| Version | Date | Summary |
|---|---|---|
| 1.0 | May 5, 2026 | Initial publication |
| 2.0 | May 5, 2026 | Hardened (over-broad - treated User as data broker) |
| 3.0 | May 5, 2026 | Architecturally accurate - Publisher as software vendor |
| 4.0 | May 5, 2026 | Anonymous Publisher. All personally identifying information removed. Acceptance-by-Use mechanism formalized. |
These Terms reflect best practices for anonymous Apify actor publishing as of May 2026. Not a substitute for legal advice. Consult qualified Israeli commercial counsel before deploying.
Part 4: Actor-Specific Terms of Service Addendum
This addendum supplements the Master Terms of Service V4.0. By running this Actor, you accept both the Master ToS and this addendum.
A. Architectural Disclosure
This Actor is a software wrapper. It accepts your input parameters, calls TWO Scrape Creators endpoints in parallel (/v2/instagram/user/posts + /v1/instagram/user/reels), combines the results into a structured output, and returns the combined data to you on the Apify platform. UnseenUser does not store, log, or substantively process the data returned. The data flows from Scrape Creators through Apify's runtime directly to you.
B. Nature of Data Returned
This Actor returns: Unified output combining posts and reels for an Instagram profile. Each item includes: media identity (shortcode, URL), media type (photo/video/carousel), caption text (when available - posts always have it, reels do NOT), engagement metrics (like_count, comment_count, play_count for video/reels), video URLs (when video), thumbnail URLs, dimensions, duration, branded-content flags, and owner identity (handle, name, verification status). Photos and carousels surface through the posts feed; reels surface through BOTH feeds with merge logic to deduplicate. Note: play_count is Instagram-only (does not include Facebook cross-post views).
Where the Actor's output includes individual people's names, photos, contact details, or content authored by them, that data constitutes personal data subject to GDPR, CCPA, Israeli Privacy Protection Law (including Amendment 13), and equivalent privacy laws in your downstream processing - but only in your hands as the data controller, not in UnseenUser's hands as the software vendor.
C. Permitted Use Cases
You may use this Actor for the following purposes (non-exhaustive list):
- Influencer marketing - pull a creator's full content portfolio for vetting before partnership
- Content repurposing - extract creator content for licensed cross-posting (with creator permission)
- UGC research - analyze how brands' communities create content around their products
- Competitive monitoring - track competitor brand's posting patterns, themes, engagement
- Brand-safety audits - review what content appears on a creator's profile before sponsorship
- Academic research - study posting patterns, engagement velocity, content trends
- Crisis monitoring - detect when a brand or person's profile shifts tone after an incident
- Influencer audit - verify claimed reach against actual play counts
D. Specifically Prohibited Uses
In addition to Master ToS Section 4 prohibitions, you may NOT:
- Republish creator content as your own on Instagram, TikTok, or any other platform
- Download videos at scale to host on competing platforms or facilitate piracy
- Train commercial AI/LLM models on Instagram content without proper licensing - Meta has sued AI companies and creators retain copyright
- Build mass-DM tools targeting commenters or engagers identified through this data
- Use this Actor to mass-extract content from minor creators (Instagram has many under-18 users)
- Aggregate posts across many profiles to build a comprehensive 'Instagram content database' for resale - data broker activity
- Strip creator attribution before redistribution
- Use posts to identify and harass creators whose content you disagree with
- Build deep-fake training datasets from creator face/voice footage in videos
E. Platform Terms of Service Considerations
Meta has aggressively litigated against Instagram and Facebook scrapers (Meta v. BrandTotal - settled with permanent injunction; Meta v. Octopus Data; Meta v. Bright Data - pending). Instagram's Terms of Service explicitly prohibit automated extraction. This Actor accesses publicly visible Instagram content via Scrape Creators - Scrape Creators bears responsibility for the lawfulness of the data collection. Your downstream use must independently comply with Instagram's Terms of Service. If Meta issues a cease-and-desist regarding data obtained via this Actor, notify UnseenUser within 48 hours via the Apify profile contact form (apify.com/UnseenUser) and cease your use immediately.
F. Combined-Endpoint Data Sensitivity
This Actor combines two endpoints in one run. The combination yields data that is MORE sensitive than either endpoint alone:
- Posts feed alone: medium sensitivity (creator content + engagement)
- Reels feed alone: medium sensitivity (creator content + engagement)
- Combined: enables building a complete "creator content dossier" with full posting history, engagement patterns, branded-content disclosures, and behavioral signals
This combined view is the kind of dataset that Meta specifically targets in their lawsuits. Use the combined output thoughtfully:
- Don't sell the combined dataset as a product
- Don't build an "Instagram replacement" with this data
- Use it for your own internal research/enrichment
G. Minor Protection - CRITICAL
Instagram has significant under-18 user populations. Many creators do not disclose age. You MUST:
- NOT use this Actor to scrape content of users you know or suspect are minors
- NOT use this Actor for any product or service targeted at minors without parental consent mechanisms compliant with COPPA (US), GDPR Article 8 (EU - typically requires parental consent below 16, sometimes 13), Israeli Privacy Law (treats minors with heightened sensitivity)
- DELETE any data you discover relates to a minor unless you have valid parental consent
- If profile metadata or content suggests the subject is under 18 (school references, age-related hashtags, parental "manage account" notes), treat the profile as belonging to a minor by default
This restriction is non-negotiable - minor data and likeness protection violations carry the highest regulatory penalties under COPPA, GDPR Article 8, Illinois BIPA (biometric likeness), and Israeli Privacy Law.
H. Image, Video, and Caption Copyright
Instagram content is multi-layered copyright:
- Images - copyrighted by the creator
- Videos - copyrighted by the creator AND any music rights holders separately
- Captions - copyrighted by the creator
- Filters and effects - some are subject to Meta's platform license
You may use this content for:
- Analysis (typically fair use)
- Quoted excerpts with attribution (typically fair use)
- Aggregated metrics (no copyright issue)
You may NOT:
- Republish full content as your own (basic infringement)
- Train commercial AI without proper licensing (NYT v. OpenAI, Andersen v. Stability AI demonstrate this is legally contested)
- Strip creator attribution before redistribution
- Use content to create competing platforms
If your downstream use is anything beyond analysis or attributed quotation, get explicit licensing from the creator AND any music/IP rights holders.
I. AI Training - Special Notice
Instagram's Terms of Service explicitly prohibit using Instagram data to train AI/ML models without Meta's authorization. Both Instagram captions AND visual content fall under this restriction. The Publisher (UnseenUser) does NOT authorize, and has no ability to authorize, AI training use.
Recent litigation (NYT v. OpenAI, Andersen v. Stability AI, Getty v. Stability AI, Reddit v. Perplexity, multiple class actions) demonstrates AI training on platform content is contested. Music rights holders (Universal, Sony, Warner) are particularly aggressive about AI training on copyrighted media - and reels often include licensed music.
Your AI training use is your own legal exposure. Get proper licensing or do not train on this data.
J. Play Count Caveat - Disclosure to Your Users
Play counts returned by the reels endpoint are Instagram-only. When a reel is cross-posted to Facebook, the in-app view count (logged-in view) shows combined IG + FB views, but this API returns only the Instagram portion.
If you redistribute play-count data to your users (analytics dashboards, influencer reports, etc.), you MUST disclose this. Otherwise creators will dispute your numbers against their in-app stats and your product credibility erodes.
K. Cross-Platform Aggregation Limit
Do NOT aggregate Instagram data with Facebook, LinkedIn, TikTok, X/Twitter, and personal data to build comprehensive cross-platform identity profiles of named individuals. Cross-platform aggregation:
- Multiplies the personal data risk exponentially
- Triggers heightened scrutiny under GDPR (combination of data is itself processing)
- Has been the basis for Meta lawsuits (Meta v. BrandTotal - settled with permanent injunction; Meta v. Octopus Data; Meta v. Bright Data - pending)
- Creates "people search" / "data broker" profiles that the California Delete Act (effective 2026), GDPR Article 14, and Israeli Privacy Law Amendment 13 specifically target
L. Reel Caption Enrichment - Optional Cost
The reels endpoint does NOT return reel captions. If your downstream use requires reel captions, the actor supports an optional enrich_reel_captions=true parameter which adds a /v1/instagram/post call per reel (+1 credit per reel).
Cost implications:
- Without enrichment: posts + reels = base credit count
- With enrichment: posts + reels + (1 credit per reel) = significantly higher cost
The actor logs a cost warning at start of run when this is enabled.
M. Cease-and-Desist Protocol
If Meta contacts UnseenUser regarding your use:
- UnseenUser will notify Apify per Master ToS Section 8
- UnseenUser may suspend access to this Actor pending investigation
- You agree to provide documentation of your lawful basis and processing activities upon reasonable request
If a creator contacts YOU directly demanding deletion of their content data:
- Honor the request promptly (typically within 30 days under GDPR)
- Do NOT route them to UnseenUser - UnseenUser is the software vendor, not the data controller
- You may suggest they contact Instagram directly AND comply with your own deletion obligations
- Document the request and your response
Part 5: Implementation Checklist
When building this Actor, ensure:
- Code is written in Node.js (TypeScript preferred)
- Authentication uses
x-api-keyheader fromSCRAPECREATORS_API_KEYenv variable (never hardcoded) - All endpoints are implemented with proper error handling
- Input validation: required fields fail fast with clear error messages
- Pagination respects max_items_per_profile input strictly
- Retry logic: 3 retries with exponential backoff (1s, 2s, 4s) on 429/502/503/504
- Output uses
Actor.pushData()to stream each result - Each row uses the unified flat schema (see Part 2 - Output Structure)
- Each row includes
_metadata:{ source_endpoint, page, fetched_at, input_identifier } - Failed requests emitted as dataset rows with
errorfield - don't crash on individual failures - User-Agent header set to:
OpusScale-Apify/1.0 - INPUT_SCHEMA.json includes all input fields with proper validation
- README.md (matching Part 1 + Part 3 + Part 4 content) is committed
- actor.json includes categories and keywords per Part 2
- Pricing per-event configured in Apify console with appropriate margin
- Acceptance-by-Use notice logged at start of every run
- No personal information about UnseenUser in code or output
- All references use "UnseenUser" or "the Publisher" (V4 anonymous framing)
- Reels deduplication by shortcode - reels appearing in both feeds appear once in output
- Cost warning logged at start of run when
enrich_reel_captions=true - Minor protection - strict filter logic for suspected minor creators (heightened for Instagram)
Part 6: Pre-Publish Checklist on Apify
Before clicking "Publish":
- Test runs succeed with default inputs (try a known active profile, e.g.
natgeo) - Test with both handle AND user_id formats
- Test pagination limits - verify max_items is respected
- Test with
results_typeset to posts only, reels only, both - Test with private/restricted profiles (should return clear error)
- Test invalid inputs (malformed handle/URL -> clear error)
- Output schema matches what README documents
- Test
enrich_reel_captions=true- verify cost warning logged - Pricing per-event configured in Apify console
- Apify "Title" field set to:
Instagram Posts Scraper - Posts + Reels Combined (No Login) - Apify "Short Description" set to:
Pull every public Instagram post (photos, videos, carousels) AND every reel from a profile in one run. Unified output, complete coverage, no login. - Apify "README" tab populated with content from Part 1 + Part 3 + Part 4
- Cover image uploaded (1920x1080 PNG, no Publisher branding)
- Categories and keywords entered per Part 2
- Tested the Apify contact form on UnseenUser's profile (this is the official legal channel)
Document Version: 4.0 (anonymous Publisher, UnseenUser identified) Last Updated: May 5, 2026 Master ToS Version: 4.0 Document Status: Ready for Claude Code execution
Multi-Endpoint Actor Note: This actor combines 2 Scrape Creators endpoints in a single run. For single-endpoint variants, see other actors in the UnseenUser/ Instagram suite.
Instagram Suite Notes: This actor is part of the UnseenUser instagram actor suite. Companion actors:
UnseenUser/instagram-profile-scraper-fastest-/v1/instagram/profile(single profile data, not posts)- Future:
UnseenUser/instagram-hashtag-scraper,UnseenUser/instagram-comments-scraper
This is the complete safety + build specification for this Actor.
