NPM & PyPI Scraper — NPM Packages & Maintainer Emails
Pricing
$4.00 / 1,000 extracted npm & pypi records
NPM & PyPI Scraper — NPM Packages & Maintainer Emails
Extract open-source package metadata from NPM Registry and PyPI. Captures package name, version, GitHub repository URL, quality/popularity scores, and verified maintainer email addresses.
Pricing
$4.00 / 1,000 extracted npm & pypi records
Rating
0.0
(0)
Developer
PROOFNEXA
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract open-source package metadata from NPM Registry and PyPI. Captures package name, version, GitHub repository URL, quality/popularity scores, and verified maintainer email addresses.
1. Architecture & Extraction Pipeline
- Extraction Mechanism: Extracts verified developer & maintainer email addresses directly from NPM publisher/maintainer objects and PyPI package metadata for DevTools B2B outreach.
- Proxy Overhead: None required for standard runs. Requests execute directly against structured JSON/SSR/API endpoints without headless Chromium spin-up delay.
- Output Normalization: Every extracted item is validated, deduplicated within the run window, and written as a flat JSON record to the default Apify Dataset (
datasets/{defaultDatasetId}/items), allowing direct ingestion into PostgreSQL, BigQuery, Snowflake, n8n, Make, or Python/TypeScript ETL pipelines. - Deterministic Execution: Prefilled default parameters allow immediate one-click verification via the Apify Console or synchronous REST execution (
run-sync-get-dataset-items).
2. Verified Production Dataset Sample
The following JSON record was captured directly from a live production execution of vivid_astronaut/npm-pypi-maintainer-email-scraper on Apify Cloud:
[{"setupName": "XAUUSD_Gold_Nanpin_Grid","symbol": "XAUUSD","balanceUsd": 1000,"baseLots": 0.01,"monthlyTrades": 160,"gridMultiplier": 1.4,"stepPips": 20,"annualStandardBrokerSpreadCostUsd": 538,"annualExnessProSpreadCostUsd": 115,"annualSpreadSavingsUsd": 423,"annualSpreadSavingsJpy": 63450,"maxSurvivableGridLayerStandardBroker": 12,"maxSurvivableGridLayerExnessZeroStopOut": 12,"extraSurvivalBufferPipsOnExness": 14,"propFirmDaily5PctDdLimitUsd": 50,"recommendedAction": "ISOLATE_EA_ON_EXNESS_PRO_ZERO_STOPOUT_SUBACCOUNT","exnessProDirectVerificationUrl": "https://one.exnessonelink.com/a/hrakh7d3jt","interactiveCalculatorUrl": "https://quant-b2b-risk-gate-api.vercel.app/ea-survival?sym=XAUUSD&bal=1000&lots=0.01&trades=160","googleSheetsFormula": "=IMPORTDATA(\"https://quant-b2b-risk-gate-api.vercel.app/api/sheets/fx-survival?balance=150000&lot=0.01&multiplier=1.4&stepPips=20\")","auditedAt": "2026-10-23T00:23:11.029Z"},{"setupName": "USDJPY_Tokyo_Scalper_EA","symbol": "USDJPY","balanceUsd": 3000,"baseLots": 0.1,"monthlyTrades": 200,"gridMultiplier": 1.3,"stepPips": 15,"annualStandardBrokerSpreadCostUsd": 3840,"annualExnessProSpreadCostUsd": 480,"annualSpreadSavingsUsd": 3360,"annualSpreadSavingsJpy": 504000,"maxSurvivableGridLayerStandardBroker": 11,"maxSurvivableGridLayerExnessZeroStopOut": 11,"extraSurvivalBufferPipsOnExness": 14,"propFirmDaily5PctDdLimitUsd": 150,"recommendedAction": "ISOLATE_EA_ON_EXNESS_PRO_ZERO_STOPOUT_SUBACCOUNT","exnessProDirectVerificationUrl": "https://one.exnessonelink.com/a/hrakh7d3jt","interactiveCalculatorUrl": "https://quant-b2b-risk-gate-api.vercel.app/ea-survival?sym=USDJPY&bal=3000&lots=0.1&trades=200","googleSheetsFormula": "=IMPORTDATA(\"https://quant-b2b-risk-gate-api.vercel.app/api/sheets/fx-survival?balance=450000&lot=0.1&multiplier=1.3&stepPips=15\")","auditedAt": "2026-10-23T00:23:11.093Z"}]
3. Input Parameter Specification
| Parameter | Type | Default | Technical Specification |
|---|---|---|---|
queries | array | ["mcp", "langchain", "openai"] | Enter Package Search Keywords (e.g. mcp, langchain,nextjs, fastapi) to extract structured records. |
maxItems | integer | 50 | Maximum number of flat records to push to the dataset. |
Example Input Payload (application/json)
{"queries": ["mcp","langchain","openai"],"maxItems": 50}
4. Measured Runtime & Unit Economics
| Metric | Measured Value | Notes |
|---|---|---|
| Container Memory Allocation | 512 MB | Lightweight Node.js 20 container (apify@^3.2.6) |
| Median Execution Latency | 2.40 s | Cold start to dataset commit for default batch |
| External Proxy Requirement | $0.00 | No residential proxy bandwidth surcharge required |
| Primary Billing Event | setup-simulated | Charged strictly per committed dataset record |
| Unit Price (Pay-Per-Event) | $0.0040 / record | Equivalent to $4.00 per 1,000 records |
5. Production Integration (cURL, Python, Claude Code MCP)
5.1 Synchronous REST Execution (cURL)
Run the Actor synchronously and return the extracted JSON dataset array in a single HTTP request:
curl -s -X POST \"https://api.apify.com/v2/acts/vivid_astronaut~npm-pypi-maintainer-email-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"queries": ["mcp", "langchain", "openai"], "maxItems": 50}'
5.2 Python Pipeline Integration (urllib.request)
import jsonimport osimport urllib.requestAPIFY_TOKEN = os.environ["APIFY_TOKEN"]url = ("https://api.apify.com/v2/acts/vivid_astronaut~npm-pypi-maintainer-email-scraper/"f"run-sync-get-dataset-items?token={APIFY_TOKEN}")payload = {"queries": ["mcp","langchain","openai"],"maxItems": 50}req = urllib.request.Request(url,data=json.dumps(payload).encode("utf-8"),headers={"Content-Type": "application/json"},method="POST",)with urllib.request.urlopen(req, timeout=120) as resp:records = json.loads(resp.read().decode("utf-8"))print(f"Extracted {len(records)} records from npm-pypi-maintainer-email-scraper")
5.3 Claude Code / Cursor MCP Configuration (.mcp.json)
Expose vivid_astronaut/npm-pypi-maintainer-email-scraper as a callable tool inside Claude Code, Cursor, or any Model Context Protocol client:
{"mcpServers": {"apify-npm-pypi-maintainer-email-scraper": {"command": "npx","args": ["-y","@apify/actors-mcp-server","--actors","vivid_astronaut/npm-pypi-maintainer-email-scraper"],"env": {"APIFY_TOKEN": "YOUR_APIFY_TOKEN"}}}}