Instagram Reels & Posts Scraper - Profiles & Data avatar

Instagram Reels & Posts Scraper - Profiles & Data

Pricing

from $2.63 / 1,000 reel scrapeds

Go to Apify Store
Instagram Reels & Posts Scraper - Profiles & Data

Instagram Reels & Posts Scraper - Profiles & Data

Extract Instagram reels, posts, profiles, and hashtag data.

Pricing

from $2.63 / 1,000 reel scrapeds

Rating

5.0

(3)

Developer

viralanalyzer

viralanalyzer

Maintained by Community

Actor stats

0

Bookmarked

25

Total users

11

Monthly active users

7 days ago

Last modified

Share

📸 Instagram Reels & Posts Scraper — Metrics & Engagement

🔗 View on Apify Store | 🇺🇸 English | 🇧🇷 Português

Extract Instagram posts, Reels, and Carousels with full engagement metrics. Get likes, comments, video views, hashtags, captions, and content type for any public profile. Playwright-based multi-strategy scraping with cookie seeding, API interception, embedded JSON parsing, and DOM extraction. No API key required.

✨ Features

  • 📝 Posts, Reels & Carousels — Scrape all content types from public profiles
  • 📊 Full engagement metrics — Likes, comments, video views, video duration
  • 🏷️ Hashtag extraction — Automatic extraction from captions
  • 🎬 Content type detection — Distinguishes Reels vs Posts vs Carousels
  • 👥 Multiple profiles — Scrape several profiles in one run
  • 🍪 Cookie support — Optionally provide cookies for authenticated access to private profiles
  • 🔄 4-strategy cascade — API call, XHR interception, embedded JSON, DOM fallback
  • 🛡️ Stealth browsing — Anti-detection with webdriver flag removal and fingerprint spoofing
  • 🌐 Residential proxy — Built-in Apify residential proxy support (US)
  • Contract validation — Every item checked against 11 required fields
  • 🤝 Co-author detection — Identifies collaboration posts with multiple creators
  • 📷 Debug screenshots — Saved to KV Store on failure for troubleshooting

📥 Input

ParameterTypeRequiredDefaultDescription
profilesstring[]YesInstagram usernames to scrape (with or without @)
maxPostsintegerNo10Maximum posts to extract per profile (1-50)
cookiesobject[]NoOptional browser cookies for authenticated access. Array of {name, value, domain} objects

Input Example

{
"profiles": ["cristiano", "leomessi", "neymarjr"],
"maxPosts": 15
}

With cookies for authenticated access:

{
"profiles": ["private_account"],
"maxPosts": 10,
"cookies": [
{
"name": "sessionid",
"value": "your-session-id",
"domain": ".instagram.com"
}
]
}

📤 Output

FieldTypeDescription
idstringInstagram media ID
shortCodestringShort code for the post URL
urlstringFull post URL (https://www.instagram.com/p/{shortCode}/)
captionstringFull caption text
timestampstringISO 8601 creation date
likesCountintegerNumber of likes
commentsCountintegerNumber of comments
videoViewCountintegerVideo view count (Reels and videos only, 0 for photos)
videoDurationnumberVideo duration in seconds (0 for photos)
hashtagsstring[]Hashtags extracted from caption
displayUrlstringMedia display/thumbnail URL
typestringContent type: "reel", "post", or "carousel"
productTypestringInstagram product type ("clips" for Reels, "feed" for posts)
isVideobooleanWhether the content is a video
coauthorsstring[]Co-author usernames for collaboration posts
authorstringUsername of the scraped profile
scrapedAtstringISO 8601 timestamp of when the data was collected

Output Example

{
"id": "3315678901234567890",
"shortCode": "DFxRtPqWsYz",
"url": "https://www.instagram.com/p/DFxRtPqWsYz/",
"caption": "Another hat-trick! What a night at the Bernabeu. #football #cr7 #realmadrid #championsleague",
"timestamp": "2026-02-28T21:45:00Z",
"likesCount": 8542310,
"commentsCount": 47823,
"videoViewCount": 32150000,
"videoDuration": 29.8,
"hashtags": ["football", "cr7", "realmadrid", "championsleague"],
"displayUrl": "https://scontent.cdninstagram.com/v/t51.2885-15/428573961_1234567890.jpg",
"type": "reel",
"productType": "clips",
"isVideo": true,
"coauthors": [],
"author": "cristiano",
"scrapedAt": "2026-03-06T15:30:00Z"
}

📋 Use Cases

  • 📊 Influencer Analytics — Track engagement metrics across multiple influencers
  • 🎯 Content Strategy — Analyze what types of content generate the most engagement
  • 🏷️ Hashtag Research — Discover trending hashtags in your niche
  • 🔍 Competitor Monitoring — Track competitor posting frequency and engagement rates
  • 📈 Campaign Tracking — Measure influencer campaign performance over time
  • 🔥 Viral Content Detection — Identify posts with unusually high engagement
  • 👂 Social Listening — Monitor brand mentions and tagged content

❓ FAQ

Q: Does the actor work without logging in to Instagram? A: Yes. The actor seeds session cookies by visiting instagram.com homepage first, then uses Instagram's web_profile_info API endpoint. No login or Instagram account is needed for public profiles.

Q: Can I scrape private profiles? A: Only if you provide valid session cookies from an account that follows the private profile. Use the cookies input parameter with at least the sessionid cookie.

Q: Why do some posts show 0 likes or 0 video views? A: If the primary API strategy fails and the actor falls back to DOM extraction (Strategy 4), posts will have URLs but no engagement metrics. The _dataQuality field will be set to "dom_only_no_metrics" in those cases.

Q: What is the 4-strategy cascade? A: The actor tries four extraction methods in order: (1) API call with seeded cookies, (2) XHR interception during page navigation, (3) embedded JSON parsing from script tags, (4) DOM link extraction. Each successive strategy is a fallback if the previous one fails.

Q: How many profiles can I scrape in one run? A: There is no hard limit on profiles, but each profile requires a separate browser session. The actor adds a 3-6 second delay between profiles to avoid rate limiting. For large batches, use residential proxy.

💰 Pricing

This actor uses Pay Per Event (PPE) pricing:

MetricCost
Per post/reel scraped$0.05

Example: Scraping 3 profiles x 10 posts = 30 items = $1.50.

📝 Changelog

v1.5 (Current)

  • Cookie seeding phase — visits instagram.com to establish session cookies before scraping
  • API-first strategy (web_profile_info endpoint with seeded cookies)
  • XHR interception for GraphQL responses during page navigation
  • Embedded JSON parsing (multiple patterns: __additionalDataLoaded, _sharedData, data-sjs)
  • DOM fallback for post/reel link extraction
  • Stealth browsing with webdriver flag removal and fingerprint spoofing
  • Residential proxy support (US)
  • User-provided cookies for authenticated access to private profiles
  • Contract validation on every item (11 required fields)
  • Debug screenshots saved to KV Store on failure
  • Co-author detection for collaboration posts
  • PPE billing via Actor.charge()

📸 Instagram Reels & Posts Scraper — Métricas e Engajamento

🇺🇸 English | 🇧🇷 Português

Extraia posts, Reels e Carrosséis do Instagram com métricas de engajamento completas. Obtenha curtidas, comentários, visualizações de vídeo, hashtags, legendas e tipo de conteúdo de qualquer perfil público. Scraping multi-estratégia com Playwright, cookie seeding, interceptação de API, parsing de JSON embutido e extração DOM. Sem necessidade de API key.

✨ Funcionalidades

  • 📝 Posts, Reels e Carrosséis — Extraia todos os tipos de conteúdo de perfis públicos
  • 📊 Métricas de engajamento completas — Curtidas, comentários, visualizações de vídeo, duração
  • 🏷️ Extração de hashtags — Extração automática das legendas
  • 🎬 Detecção de tipo de conteúdo — Distingue Reels vs Posts vs Carrosséis
  • 👥 Múltiplos perfis — Extraia vários perfis em uma única execução
  • 🍪 Suporte a cookies — Forneça cookies opcionais para acesso autenticado a perfis privados
  • 🔄 Cascata de 4 estratégias — Chamada API, interceptação XHR, JSON embutido, fallback DOM
  • 🛡️ Navegação stealth — Anti-detecção com remoção de flag webdriver e spoofing de fingerprint
  • 🌐 Proxy residencial — Suporte integrado a proxy residencial Apify (US)
  • Validação de contrato — Todo item verificado contra 11 campos obrigatórios
  • 🤝 Detecção de co-autores — Identifica posts colaborativos com múltiplos criadores
  • 📷 Screenshots de debug — Salvos no KV Store em caso de falha para troubleshooting

📥 Entrada

ParâmetroTipoObrigatórioPadrãoDescrição
profilesstring[]SimNomes de usuário do Instagram (com ou sem @)
maxPostsinteiroNão10Máximo de posts por perfil (1-50)
cookiesobjeto[]NãoCookies opcionais para acesso autenticado. Array de objetos {name, value, domain}

Exemplo de Entrada

{
"profiles": ["cristiano", "leomessi", "neymarjr"],
"maxPosts": 15
}

Com cookies para acesso autenticado:

{
"profiles": ["conta_privada"],
"maxPosts": 10,
"cookies": [
{
"name": "sessionid",
"value": "seu-session-id",
"domain": ".instagram.com"
}
]
}

📤 Saída

CampoTipoDescrição
idstringID da mídia no Instagram
shortCodestringCódigo curto da URL do post
urlstringURL completa do post (https://www.instagram.com/p/{shortCode}/)
captionstringTexto completo da legenda
timestampstringData de criação ISO 8601
likesCountinteiroNúmero de curtidas
commentsCountinteiroNúmero de comentários
videoViewCountinteiroContagem de visualizações de vídeo (apenas Reels e vídeos, 0 para fotos)
videoDurationnúmeroDuração do vídeo em segundos (0 para fotos)
hashtagsstring[]Hashtags extraídas da legenda
displayUrlstringURL da mídia/thumbnail
typestringTipo de conteúdo: "reel", "post" ou "carousel"
productTypestringTipo de produto Instagram ("clips" para Reels, "feed" para posts)
isVideobooleanSe o conteúdo é vídeo
coauthorsstring[]Usernames de co-autores em posts colaborativos
authorstringUsername do perfil extraído
scrapedAtstringTimestamp ISO 8601 de quando os dados foram coletados

Exemplo de Saída

{
"id": "3315678901234567890",
"shortCode": "DFxRtPqWsYz",
"url": "https://www.instagram.com/p/DFxRtPqWsYz/",
"caption": "Another hat-trick! What a night at the Bernabeu. #football #cr7 #realmadrid #championsleague",
"timestamp": "2026-02-28T21:45:00Z",
"likesCount": 8542310,
"commentsCount": 47823,
"videoViewCount": 32150000,
"videoDuration": 29.8,
"hashtags": ["football", "cr7", "realmadrid", "championsleague"],
"displayUrl": "https://scontent.cdninstagram.com/v/t51.2885-15/428573961_1234567890.jpg",
"type": "reel",
"productType": "clips",
"isVideo": true,
"coauthors": [],
"author": "cristiano",
"scrapedAt": "2026-03-06T15:30:00Z"
}

📋 Casos de Uso

  • 📊 Análise de Influenciadores — Acompanhe métricas de engajamento de múltiplos influenciadores
  • 🎯 Estratégia de Conteúdo — Analise quais tipos de conteúdo geram mais engajamento
  • 🏷️ Pesquisa de Hashtags — Descubra hashtags em tendência no seu nicho
  • 🔍 Monitoramento de Concorrência — Acompanhe frequência de postagem e taxas de engajamento
  • 📈 Rastreamento de Campanhas — Meça performance de campanhas com influenciadores ao longo do tempo
  • 🔥 Detecção de Conteúdo Viral — Identifique posts com engajamento excepcionalmente alto
  • 👂 Social Listening — Monitore menções à marca e conteúdo marcado

❓ Perguntas Frequentes

P: O actor funciona sem fazer login no Instagram? R: Sim. O actor semeia cookies de sessão visitando a homepage do instagram.com primeiro, depois usa o endpoint web_profile_info da API do Instagram. Nenhum login ou conta do Instagram é necessário para perfis públicos.

P: Posso extrair dados de perfis privados? R: Apenas se você fornecer cookies de sessão válidos de uma conta que segue o perfil privado. Use o parâmetro de entrada cookies com pelo menos o cookie sessionid.

P: Por que alguns posts mostram 0 curtidas ou 0 visualizações de vídeo? R: Se a estratégia primária de API falhar e o actor recorrer à extração DOM (Estratégia 4), os posts terão URLs mas sem métricas de engajamento. O campo _dataQuality será definido como "dom_only_no_metrics" nesses casos.

P: O que é a cascata de 4 estratégias? R: O actor tenta quatro métodos de extração em ordem: (1) chamada API com cookies semeados, (2) interceptação XHR durante navegação da página, (3) parsing de JSON embutido de tags script, (4) extração de links DOM. Cada estratégia sucessiva é um fallback se a anterior falhar.

P: Quantos perfis posso extrair em uma execução? R: Não há limite rígido de perfis, mas cada perfil requer uma sessão de browser separada. O actor adiciona um atraso de 3-6 segundos entre perfis para evitar rate limiting. Para grandes lotes, use proxy residencial.

💰 Preços

Este actor usa precificação Pay Per Event (PPE):

MétricaCusto
Por post/reel extraído$0.05

Exemplo: Extrair 3 perfis x 10 posts = 30 itens = $1.50.

🔗 Actors Relacionados

📝 Changelog

v1.5 (Atual)

  • Fase de cookie seeding — visita instagram.com para estabelecer cookies de sessão antes do scraping
  • Estratégia API-first (endpoint web_profile_info com cookies semeados)
  • Interceptação XHR para respostas GraphQL durante navegação da página
  • Parsing de JSON embutido (múltiplos padrões: __additionalDataLoaded, _sharedData, data-sjs)
  • Fallback DOM para extração de links post/reel
  • Navegação stealth com remoção de flag webdriver e spoofing de fingerprint
  • Suporte a proxy residencial (US)
  • Cookies do usuário para acesso autenticado a perfis privados
  • Validação de contrato em cada item (11 campos obrigatórios)
  • Screenshots de debug salvos no KV Store em caso de falha
  • Detecção de co-autores em posts colaborativos
  • Integração com cobrança PPE via Actor.charge()