Stackoverflow Intelligence
Pricing
from $15.75 / 1,000 question scrapeds
Stackoverflow Intelligence
Scrape Stack Overflow questions, answers, tags, and user profiles. Analyze developer trends and technology adoption patterns.
Pricing
from $15.75 / 1,000 question scrapeds
Rating
5.0
(3)
Developer
viralanalyzer
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 days ago
Last modified
Categories
Share
📚 Stack Overflow Intelligence — Questions, Answers & Trends
🔗 View on Apify Store | 🇺🇸 English | 🇧🇷 Português
Scrape Stack Overflow questions and answers using the public Stack Exchange API v2.3. Search by keyword, browse hot questions, get trending topics of the week, or filter by tag. Supports any Stack Exchange site. No API key needed.
✨ Features
- 🔍 4 scraping modes — Search, Hot Questions, Trending (most voted this week), By Tag
- 🔑 Keyword search — Find questions by topic with multiple sort options
- 🏷️ Tag filtering — Get questions by Stack Overflow tags (python, javascript, react, etc.)
- 💡 Answer extraction — Fetch the top/accepted answer per question (optional)
- 📊 Full metrics — Score, view count, answer count, author reputation
- 🌐 Multi-site — Works with any Stack Exchange site (stackoverflow, serverfault, askubuntu, etc.)
- 🛡️ Anti-placeholder guardrails — Every result validated as real data
- ⚡ API-based — Fast and reliable via official Stack Exchange API
📥 Input
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
mode | String | Yes | search | Scraping mode: search, hot, trending, or by_tag |
searchQueries | Array | Only in search mode | — | Keywords to search for (max 10 queries) |
tags | Array | Only in by_tag mode | — | Stack Overflow tags to filter (max 5 tags) |
sortBy | String | No | relevance | Sort order: relevance, votes, creation, or activity |
maxItems | Integer | No | 50 | Maximum number of questions to scrape (1–200) |
includeAnswers | Boolean | No | false | Fetch the top/accepted answer for each question |
site | String | No | stackoverflow | Stack Exchange site to query |
Input Example
{"mode": "search","searchQueries": ["react hooks useEffect","python async await"],"sortBy": "votes","maxItems": 50,"includeAnswers": true,"site": "stackoverflow"}
📤 Output
| Field | Type | Description |
|---|---|---|
questionId | Integer | Stack Overflow question ID |
title | String | Question title |
link | String | Question URL |
score | Integer | Vote score (upvotes - downvotes) |
viewCount | Integer | Total view count |
answerCount | Integer | Number of answers |
isAnswered | Boolean | Has an accepted answer |
tags | Array | Question tags |
ownerName | String | Author display name |
ownerReputation | Integer | Author reputation score |
creationDate | String | Creation timestamp (ISO 8601) |
lastActivityDate | String | Last activity timestamp (ISO 8601) |
bodyPreview | String | Question body preview (first 300 chars, HTML stripped) |
platform | String | Always stackoverflow |
scrapedAt | String | Timestamp of data extraction (ISO 8601) |
topAnswer | Object | Top/accepted answer (when includeAnswers is enabled) |
Answer Fields
| Field | Type | Description |
|---|---|---|
answerId | Integer | Answer ID |
score | Integer | Answer vote score |
isAccepted | Boolean | Whether this is the accepted answer |
body | String | Answer body (first 500 chars, HTML stripped) |
ownerName | String | Answerer display name |
ownerReputation | Integer | Answerer reputation score |
creationDate | String | Answer creation timestamp (ISO 8601) |
Output Example
{"questionId": 54620698,"title": "How to fix missing dependency warning when using useEffect React Hook","link": "https://stackoverflow.com/questions/54620698","score": 1247,"viewCount": 892341,"answerCount": 18,"isAnswered": true,"tags": ["javascript", "reactjs", "react-hooks", "eslint", "use-effect"],"ownerName": "Andrey Luiz","ownerReputation": 8453,"creationDate": "2019-02-11T14:32:08.000Z","lastActivityDate": "2026-02-28T09:15:42.000Z","bodyPreview": "With React 16.8.6, I get this warning when I attempt to compile: React Hook useEffect has a missing dependency. Either include it or remove the dependency array...","platform": "stackoverflow","scrapedAt": "2026-03-06T14:45:33.219Z","topAnswer": {"answerId": 54621037,"score": 1583,"isAccepted": true,"body": "The reason the linter rule wants you to include the function in the dependency array is because by default it assumes any function could be different on every render. If the function is stable (defined outside component or wrapped in useCallback)...","ownerName": "Dan Abramov","ownerReputation": 267891,"creationDate": "2019-02-11T15:01:22.000Z"}}
📋 Use Cases
- 🔍 Developer research — Find solutions and best practices for specific technologies
- 📈 Tech trend analysis — Track which technologies generate the most questions
- ✍️ Content marketing — Identify common pain points to write tutorials about
- 🛠️ Product development — Discover frequent issues users face with your technology
- 👥 Hiring intelligence — Analyze which skills are most in demand
- 📖 Knowledge base building — Curate high-quality Q&A for internal documentation
❓ FAQ
Q: Does this actor need an API key? A: No. The Stack Exchange API v2.3 allows unauthenticated requests with a quota of 300 requests per day per IP. The actor monitors quota usage and logs remaining calls.
Q: What is the difference between "hot" and "trending" modes? A: "hot" returns questions that Stack Overflow considers currently hot based on their algorithm (recent activity + engagement). "trending" returns questions from the past week sorted by votes, showing the most upvoted questions of the week.
Q: Can I scrape sites other than Stack Overflow?
A: Yes. Set the site parameter to any Stack Exchange site ID such as serverfault, askubuntu, superuser, gamedev, or math. The full list is available at stackexchange.com/sites.
Q: Will enabling answers slow down the scraper? A: Yes. Each question with answers requires an additional API call. The actor adds a 500ms delay between answer requests to respect the API quota. For large runs, this can add significant execution time.
Q: What does the "bodyPreview" field contain? A: It contains the first 300 characters of the question body with all HTML tags stripped. This provides enough context to understand the question without fetching the full body, which can be very long.
💰 Pricing
This actor uses Pay Per Event (PPE) pricing:
| Metric | Cost |
|---|---|
| Per question scraped | $0.03 |
🔗 Related Actors
- Hacker News Intelligence — HN stories & comments
- GitHub Trending Scraper — Trending repositories
- Craigslist Scraper — Classifieds & listings
- YouTube Fast Scraper — YouTube video metrics
📝 Changelog
v1.0 (Current)
- ✅ 4 scraping modes (search, hot, trending, by_tag)
- ✅ Keyword search with multiple sort options (relevance, votes, creation, activity)
- ✅ Tag-based filtering (up to 5 tags)
- ✅ Optional top/accepted answer extraction
- ✅ Multi-site support (any Stack Exchange site)
- ✅ Deduplication by question ID
- ✅ API quota monitoring
- ✅ Anti-placeholder guardrails
- ✅ Retry logic with rate limit handling
- ✅ PPE billing via Actor.charge()
📚 Stack Overflow Intelligence — Perguntas, Respostas & Tendências
🇺🇸 English | 🇧🇷 Português
Extraia perguntas e respostas do Stack Overflow usando a API pública Stack Exchange v2.3. Busque por palavra-chave, navegue pelas perguntas quentes, obtenha tópicos em alta da semana, ou filtre por tag. Suporta qualquer site do Stack Exchange. Sem API key.
✨ Funcionalidades
- 🔍 4 modos de extração — Search, Hot Questions, Trending (mais votadas da semana), By Tag
- 🔑 Busca por palavra-chave — Encontre perguntas por tópico com múltiplas opções de ordenação
- 🏷️ Filtro por tag — Obtenha perguntas por tags do SO (python, javascript, react, etc.)
- 💡 Extração de respostas — Busque a resposta top/aceita por pergunta (opcional)
- 📊 Métricas completas — Score, visualizações, contagem de respostas, reputação do autor
- 🌐 Multi-site — Funciona com qualquer site Stack Exchange (stackoverflow, serverfault, askubuntu, etc.)
- 🛡️ Guardrails anti-placeholder — Todo resultado validado como dado real
- ⚡ Baseado em API — Rápido e confiável via API oficial Stack Exchange
📥 Entrada
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
mode | String | Sim | search | Modo de extração: search, hot, trending ou by_tag |
searchQueries | Array | Apenas no modo search | — | Palavras-chave para pesquisar (máximo 10 consultas) |
tags | Array | Apenas no modo by_tag | — | Tags do Stack Overflow para filtrar (máximo 5 tags) |
sortBy | String | Não | relevance | Ordenação: relevance, votes, creation ou activity |
maxItems | Integer | Não | 50 | Número máximo de perguntas para extrair (1–200) |
includeAnswers | Boolean | Não | false | Buscar a resposta top/aceita para cada pergunta |
site | String | Não | stackoverflow | Site do Stack Exchange para consultar |
Exemplo de Entrada
{"mode": "search","searchQueries": ["react hooks useEffect","python async await"],"sortBy": "votes","maxItems": 50,"includeAnswers": true,"site": "stackoverflow"}
📤 Saída
| Campo | Tipo | Descrição |
|---|---|---|
questionId | Integer | ID da pergunta no Stack Overflow |
title | String | Título da pergunta |
link | String | URL da pergunta |
score | Integer | Score de votos (upvotes - downvotes) |
viewCount | Integer | Total de visualizações |
answerCount | Integer | Número de respostas |
isAnswered | Boolean | Possui resposta aceita |
tags | Array | Tags da pergunta |
ownerName | String | Nome do autor |
ownerReputation | Integer | Reputação do autor |
creationDate | String | Timestamp de criação (ISO 8601) |
lastActivityDate | String | Timestamp da última atividade (ISO 8601) |
bodyPreview | String | Preview do corpo da pergunta (primeiros 300 caracteres, HTML removido) |
platform | String | Sempre stackoverflow |
scrapedAt | String | Timestamp da extração dos dados (ISO 8601) |
topAnswer | Object | Resposta top/aceita (quando includeAnswers está habilitado) |
Campos da Resposta
| Campo | Tipo | Descrição |
|---|---|---|
answerId | Integer | ID da resposta |
score | Integer | Score de votos da resposta |
isAccepted | Boolean | Se é a resposta aceita |
body | String | Corpo da resposta (primeiros 500 caracteres, HTML removido) |
ownerName | String | Nome de quem respondeu |
ownerReputation | Integer | Reputação de quem respondeu |
creationDate | String | Timestamp de criação da resposta (ISO 8601) |
Exemplo de Saída
{"questionId": 54620698,"title": "How to fix missing dependency warning when using useEffect React Hook","link": "https://stackoverflow.com/questions/54620698","score": 1247,"viewCount": 892341,"answerCount": 18,"isAnswered": true,"tags": ["javascript", "reactjs", "react-hooks", "eslint", "use-effect"],"ownerName": "Andrey Luiz","ownerReputation": 8453,"creationDate": "2019-02-11T14:32:08.000Z","lastActivityDate": "2026-02-28T09:15:42.000Z","bodyPreview": "With React 16.8.6, I get this warning when I attempt to compile: React Hook useEffect has a missing dependency. Either include it or remove the dependency array...","platform": "stackoverflow","scrapedAt": "2026-03-06T14:45:33.219Z","topAnswer": {"answerId": 54621037,"score": 1583,"isAccepted": true,"body": "The reason the linter rule wants you to include the function in the dependency array is because by default it assumes any function could be different on every render. If the function is stable (defined outside component or wrapped in useCallback)...","ownerName": "Dan Abramov","ownerReputation": 267891,"creationDate": "2019-02-11T15:01:22.000Z"}}
📋 Casos de Uso
- 🔍 Pesquisa para desenvolvedores — Encontre soluções e boas práticas para tecnologias específicas
- 📈 Análise de tendências tech — Acompanhe quais tecnologias geram mais perguntas
- ✍️ Marketing de conteúdo — Identifique dores comuns para escrever tutoriais
- 🛠️ Desenvolvimento de produto — Descubra problemas frequentes que usuários enfrentam com sua tecnologia
- 👥 Inteligência de contratação — Analise quais habilidades estão mais em demanda
- 📖 Base de conhecimento — Curadoria de Q&A de alta qualidade para documentação interna
❓ Perguntas Frequentes
P: Este actor precisa de uma API key? R: Não. A API Stack Exchange v2.3 permite requisições não autenticadas com uma cota de 300 requisições por dia por IP. O actor monitora o uso da cota e registra as chamadas restantes.
P: Qual é a diferença entre os modos "hot" e "trending"? R: "hot" retorna perguntas que o Stack Overflow considera quentes no momento com base no algoritmo deles (atividade recente + engajamento). "trending" retorna perguntas da última semana ordenadas por votos, mostrando as perguntas mais votadas da semana.
P: Posso fazer scraping de outros sites além do Stack Overflow?
R: Sim. Configure o parâmetro site para qualquer ID de site Stack Exchange como serverfault, askubuntu, superuser, gamedev ou math. A lista completa está disponível em stackexchange.com/sites.
P: Habilitar respostas vai deixar o scraper mais lento? R: Sim. Cada pergunta com respostas requer uma chamada API adicional. O actor adiciona um atraso de 500ms entre requisições de respostas para respeitar a cota da API. Para execuções grandes, isso pode adicionar tempo significativo de execução.
P: O que o campo "bodyPreview" contém? R: Ele contém os primeiros 300 caracteres do corpo da pergunta com todas as tags HTML removidas. Isso fornece contexto suficiente para entender a pergunta sem buscar o corpo completo, que pode ser muito longo.
💰 Preços
Este actor usa precificação Pay Per Event (PPE):
| Métrica | Custo |
|---|---|
| Por pergunta extraída | $0.03 |
🔗 Actors Relacionados
- Hacker News Intelligence — Stories e comentários do HN
- GitHub Trending Scraper — Repositórios em alta
- Craigslist Scraper — Classificados e anúncios
- YouTube Fast Scraper — Métricas de vídeos do YouTube
📝 Changelog
v1.0 (Atual)
- ✅ 4 modos de extração (search, hot, trending, by_tag)
- ✅ Busca por palavra-chave com múltiplas opções de ordenação (relevância, votos, criação, atividade)
- ✅ Filtragem por tag (até 5 tags)
- ✅ Extração opcional de resposta top/aceita
- ✅ Suporte multi-site (qualquer site Stack Exchange)
- ✅ Deduplicação por question ID
- ✅ Monitoramento de cota da API
- ✅ Guardrails anti-placeholder
- ✅ Lógica de retry com tratamento de rate limit
- ✅ Cobrança PPE via Actor.charge()