Npm Package Intelligence avatar

Npm Package Intelligence

Pricing

Pay per usage

Go to Apify Store
Npm Package Intelligence

Npm Package Intelligence

Extract NPM package data: downloads, dependencies, versions, maintainers, and README. Track JavaScript ecosystem trends.

Pricing

Pay per usage

Rating

5.0

(3)

Developer

viralanalyzer

viralanalyzer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

📦 NPM Package Intelligence — Package Data, Scores & Download Stats

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

Scrape NPM package metadata, quality scores, and download statistics using the public NPM registry API. Search by keyword, browse popular packages, or get full details for specific package names — including weekly/monthly downloads, maintainer info, and NPM scores.

✨ Features

  • 🔍 Keyword search — Find packages by keyword with NPM's search API
  • 🏆 Popular packages — Browse top packages sorted by popularity score
  • 📦 Specific packages — Get full registry details for exact package names
  • 📊 Download stats — Weekly download counts and daily monthly breakdown
  • NPM scores — Quality, popularity, maintenance, and overall scores
  • 👥 Maintainer info — Publisher username and maintainer count
  • 🔗 Repository links — Homepage, GitHub repo, and NPM page URLs
  • 🛡️ Anti-placeholder guardrails — Only real data, never fake results

📥 Input

ParameterTypeRequiredDefaultDescription
modeStringYessearchScraping mode: search, popular, or by_packages
searchQueriesArrayIn search/popular modesKeywords to search for (max 10 queries)
packageNamesArrayIn by_packages modeExact NPM package names (max 200)
maxItemsIntegerNo50Maximum packages per search query (1–200)
includeDownloadsBooleanNotrueFetch weekly and monthly download counts

Input Example

{
"mode": "search",
"searchQueries": ["react", "machine learning"],
"maxItems": 25,
"includeDownloads": true
}

📤 Output

FieldTypeDescription
nameStringPackage name
versionStringLatest version number
descriptionStringPackage description
keywordsArrayPackage keywords/tags
homepageStringProject homepage URL
repositoryUrlStringSource code repository URL
npmUrlStringNPM package page URL
weeklyDownloadsIntegerDownloads in the last 7 days
monthlyDownloadsArrayDaily download counts for the last 30 days
publisherStringPublisher username
maintainerCountIntegerNumber of maintainers
qualityScoreFloatNPM quality score (0–1)
popularityScoreFloatNPM popularity score (0–1)
maintenanceScoreFloatNPM maintenance score (0–1)
overallScoreFloatNPM overall score (0–1)
lastPublishedStringDate of last publish (ISO 8601)
licenseStringPackage license (in by_packages mode)
createdStringPackage creation date (in by_packages mode)
dependencyCountIntegerTotal dependencies (in by_packages mode)
platformStringAlways npm
scrapedAtStringTimestamp of data extraction (ISO 8601)

Output Example

{
"name": "react",
"version": "19.0.0",
"description": "The library for web and native user interfaces.",
"keywords": ["react"],
"homepage": "https://react.dev/",
"repositoryUrl": "https://github.com/facebook/react",
"npmUrl": "https://www.npmjs.com/package/react",
"weeklyDownloads": 27845631,
"monthlyDownloads": [
{ "day": "2026-02-04", "downloads": 4125890 },
{ "day": "2026-02-05", "downloads": 4356712 }
],
"publisher": "",
"maintainerCount": 3,
"qualityScore": null,
"popularityScore": null,
"maintenanceScore": null,
"overallScore": null,
"license": "MIT",
"created": "2011-10-26T17:46:21.942Z",
"lastPublished": "2025-12-05T20:12:45.876Z",
"dependencyCount": 2,
"platform": "npm",
"scrapedAt": "2026-03-06T14:30:00.000Z"
}

📋 Use Cases

  • 📊 Technology radar — Track adoption trends of frameworks and libraries by download volume
  • 🏢 Competitive analysis — Compare similar packages by quality, popularity, and maintenance scores
  • 🔍 Dependency auditing — Analyze package health metrics before adding to your project
  • 📈 Market research — Identify growing ecosystems and emerging tools in the JavaScript world
  • 🤖 Automated reporting — Feed package data into dashboards for DevOps or engineering teams
  • 📰 Developer newsletters — Curate trending and noteworthy packages for weekly digests

❓ FAQ

Q: What is the difference between search, popular, and by_packages modes? A: search finds packages by keyword (sorted by relevance), popular sorts results by NPM popularity score, and by_packages fetches full registry details for specific package names you provide.

Q: Why are some scores null in by_packages mode? A: Quality, popularity, maintenance, and overall scores are only available through the NPM search API. In by_packages mode, data is fetched directly from the registry, which provides richer details (license, creation date, dependencies) but not the search-specific scores.

Q: Does enabling includeDownloads make the scrape slower? A: Yes, slightly. Each package requires two extra API calls (weekly + monthly downloads) with a 500ms rate-limit delay. For 50 packages, this adds about 50 seconds of extra runtime.

Q: Can I scrape scoped packages (e.g., @angular/core)? A: Yes, in by_packages mode you can provide scoped package names like @angular/core, @types/react, etc. The actor handles URL encoding automatically.

Q: What happens if a package name does not exist? A: The actor logs a warning and skips the missing package. If all packages are missing and zero results are found, the actor throws an explicit error.

💰 Pricing

This actor uses Pay Per Event (PPE) pricing:

MetricCost
Per package scraped$0.03

📝 Changelog

v1.0 (Current)

  • ✅ Search packages by keyword with NPM search API
  • ✅ Browse popular packages sorted by popularity score
  • ✅ Fetch full registry details for specific package names
  • ✅ Weekly and monthly download statistics
  • ✅ NPM quality, popularity, maintenance, and overall scores
  • ✅ Deduplication by package name
  • ✅ Anti-placeholder guardrails — real data only
  • ✅ PPE billing via Actor.charge()

📦 NPM Package Intelligence — Dados de Pacotes, Scores e Estatísticas de Download

🇺🇸 English | 🇧🇷 Português

Extraia metadados, scores de qualidade e estatísticas de download de pacotes NPM usando a API pública do registro NPM. Pesquise por palavra-chave, navegue por pacotes populares, ou obtenha detalhes completos de pacotes específicos — incluindo downloads semanais/mensais, informações de mantenedores e scores do NPM.

✨ Funcionalidades

  • 🔍 Pesquisa por palavra-chave — Encontre pacotes por palavra-chave com a API de busca do NPM
  • 🏆 Pacotes populares — Navegue pelos pacotes mais populares ordenados por score de popularidade
  • 📦 Pacotes específicos — Obtenha detalhes completos do registro para nomes exatos de pacotes
  • 📊 Estatísticas de download — Contagem semanal e detalhamento diário mensal
  • Scores do NPM — Qualidade, popularidade, manutenção e score geral
  • 👥 Informações de mantenedores — Nome de usuário do publicador e número de mantenedores
  • 🔗 Links de repositório — URLs da homepage, repositório GitHub e página NPM
  • 🛡️ Proteção anti-placeholder — Apenas dados reais, nunca resultados falsos

📥 Entrada

ParâmetroTipoObrigatórioPadrãoDescrição
modeStringSimsearchModo de extração: search, popular ou by_packages
searchQueriesArrayNos modos search/popularPalavras-chave para pesquisar (máximo 10 consultas)
packageNamesArrayNo modo by_packagesNomes exatos de pacotes NPM (máximo 200)
maxItemsIntegerNão50Máximo de pacotes por consulta de busca (1–200)
includeDownloadsBooleanNãotrueBuscar contagens de download semanais e mensais

Exemplo de Entrada

{
"mode": "search",
"searchQueries": ["react", "machine learning"],
"maxItems": 25,
"includeDownloads": true
}

📤 Saída

CampoTipoDescrição
nameStringNome do pacote
versionStringNúmero da versão mais recente
descriptionStringDescrição do pacote
keywordsArrayPalavras-chave/tags do pacote
homepageStringURL da homepage do projeto
repositoryUrlStringURL do repositório de código-fonte
npmUrlStringURL da página do pacote no NPM
weeklyDownloadsIntegerDownloads nos últimos 7 dias
monthlyDownloadsArrayContagem diária de downloads dos últimos 30 dias
publisherStringNome de usuário do publicador
maintainerCountIntegerNúmero de mantenedores
qualityScoreFloatScore de qualidade do NPM (0–1)
popularityScoreFloatScore de popularidade do NPM (0–1)
maintenanceScoreFloatScore de manutenção do NPM (0–1)
overallScoreFloatScore geral do NPM (0–1)
lastPublishedStringData da última publicação (ISO 8601)
licenseStringLicença do pacote (no modo by_packages)
createdStringData de criação do pacote (no modo by_packages)
dependencyCountIntegerTotal de dependências (no modo by_packages)
platformStringSempre npm
scrapedAtStringTimestamp da extração dos dados (ISO 8601)

Exemplo de Saída

{
"name": "react",
"version": "19.0.0",
"description": "The library for web and native user interfaces.",
"keywords": ["react"],
"homepage": "https://react.dev/",
"repositoryUrl": "https://github.com/facebook/react",
"npmUrl": "https://www.npmjs.com/package/react",
"weeklyDownloads": 27845631,
"monthlyDownloads": [
{ "day": "2026-02-04", "downloads": 4125890 },
{ "day": "2026-02-05", "downloads": 4356712 }
],
"publisher": "",
"maintainerCount": 3,
"qualityScore": null,
"popularityScore": null,
"maintenanceScore": null,
"overallScore": null,
"license": "MIT",
"created": "2011-10-26T17:46:21.942Z",
"lastPublished": "2025-12-05T20:12:45.876Z",
"dependencyCount": 2,
"platform": "npm",
"scrapedAt": "2026-03-06T14:30:00.000Z"
}

📋 Casos de Uso

  • 📊 Radar tecnológico — Acompanhe tendências de adoção de frameworks e bibliotecas por volume de downloads
  • 🏢 Análise competitiva — Compare pacotes similares por qualidade, popularidade e scores de manutenção
  • 🔍 Auditoria de dependências — Analise métricas de saúde de pacotes antes de adicioná-los ao seu projeto
  • 📈 Pesquisa de mercado — Identifique ecossistemas em crescimento e ferramentas emergentes no mundo JavaScript
  • 🤖 Relatórios automatizados — Alimente dados de pacotes em dashboards para equipes de DevOps ou engenharia
  • 📰 Newsletters para devs — Selecione pacotes em tendência e notáveis para resumos semanais

❓ Perguntas Frequentes

P: Qual é a diferença entre os modos search, popular e by_packages? R: search encontra pacotes por palavra-chave (ordenados por relevância), popular ordena resultados pelo score de popularidade do NPM, e by_packages busca detalhes completos do registro para nomes de pacotes específicos que você fornecer.

P: Por que alguns scores são null no modo by_packages? R: Os scores de qualidade, popularidade, manutenção e geral só estão disponíveis pela API de busca do NPM. No modo by_packages, os dados são buscados diretamente do registro, que fornece detalhes mais ricos (licença, data de criação, dependências), mas não os scores específicos da busca.

P: Habilitar includeDownloads torna a extração mais lenta? R: Sim, ligeiramente. Cada pacote requer duas chamadas extras à API (downloads semanais + mensais) com um atraso de 500ms para rate limit. Para 50 pacotes, isso adiciona cerca de 50 segundos ao tempo de execução.

P: Posso extrair pacotes com escopo (ex.: @angular/core)? R: Sim, no modo by_packages você pode fornecer nomes de pacotes com escopo como @angular/core, @types/react, etc. O actor lida com a codificação de URL automaticamente.

P: O que acontece se um nome de pacote não existir? R: O actor registra um aviso e pula o pacote ausente. Se todos os pacotes estiverem ausentes e zero resultados forem encontrados, o actor lança um erro explícito.

💰 Preços

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

MétricaCusto
Por pacote extraído$0,03

🔗 Actors Relacionados

📝 Changelog

v1.0 (Atual)

  • ✅ Pesquisa de pacotes por palavra-chave com API de busca do NPM
  • ✅ Navegação por pacotes populares ordenados por score de popularidade
  • ✅ Busca de detalhes completos do registro para pacotes específicos
  • ✅ Estatísticas de download semanais e mensais
  • ✅ Scores de qualidade, popularidade, manutenção e geral do NPM
  • ✅ Deduplicação por nome de pacote
  • ✅ Proteção anti-placeholder — apenas dados reais
  • ✅ Cobrança PPE via Actor.charge()