Open Collective Scraper
Pricing
Pay per event
Open Collective Scraper
Scrape Open Collective: collective details, backers, transactions, and expenses via the public GraphQL API. No auth required. Export to JSON, CSV, Excel.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Extract open-source funding data from Open Collective — no API key, no authentication, no browser overhead. Pure GraphQL API wrapper that fetches collective details, members/backers, transactions, and expenses in seconds.
Try it now: Open Collective Scraper on Apify Store
What does Open Collective Scraper do?
Open Collective Scraper connects to Open Collective's public GraphQL API at https://api.opencollective.com/graphql/v2 and extracts structured data about any public collective. You provide one or more collective slugs (the URL identifier after opencollective.com/), and the actor returns a clean JSON/CSV dataset with the data you need.
Capabilities:
- 🏠 Collective details — name, description, website, social links, currency, creation date, and financial stats (balance, total raised, total spent, contributor count)
- 👥 Members & backers — role, donation totals, account info, profile URLs, and join dates — paginate through thousands of backers
- 💸 Transactions — full financial history: type (CREDIT/DEBIT), kind (CONTRIBUTION, HOST_FEE, etc.), amounts, net amounts, fees, and counterparty info
- 📋 Expenses — approved and pending payments: description, amount, payee, status, tags, and linked items
- ✅ 100% public data — no login, no API key, no personal tokens required for public collectives
- ⚡ HTTP-only — pure API calls, no browser — fast and cheap
Who is Open Collective Scraper for?
🔬 Open-source researchers & academics
You're studying the open-source funding ecosystem — who donates, how much, and to which projects. With this actor you can:
- Map donation networks across hundreds of collectives
- Track which companies sponsor which projects via their backer accounts
- Analyze contribution trends over time using transaction history
📊 Investors & VC analysts
You need to evaluate an open-source project's financial health before making an investment or partnership decision:
- Pull current balance, total raised, and spending trends
- Identify major sponsors and their contribution levels
- Compare funding levels across competing projects
🏢 Developer relations & sponsorship teams
You're identifying open-source projects worth sponsoring or projects that sponsor your competitors:
- Bulk-extract backer lists from related collectives
- Find influential contributors and community leaders (ADMIN/MEMBER roles)
- Monitor when key sponsors join or leave a collective
📰 Journalists & tech writers
You're covering open-source sustainability, funding inequality, or specific project economics:
- Pull verifiable financial data directly from the source
- Compare funding across language ecosystems (JS, Python, Rust, etc.)
- Extract transaction histories for investigative pieces
🤖 Automation engineers
You maintain dashboards or pipelines that track OSS health metrics:
- Schedule daily/weekly runs to monitor balance changes
- Feed data into Google Sheets or Airtable for stakeholder reporting
- Trigger Slack alerts when a collective's balance drops below a threshold
Why use Open Collective Scraper?
- 🚀 Actually works — direct API access, not scraping the DOM — immune to UI changes
- 🆓 No auth required — all public data is accessible without API keys or logins
- 📄 Multi-type output — collective, member, transaction, and expense records in one run
- 🔄 Full pagination — handles collectives with thousands of backers or tens of thousands of transactions
- 🛡️ Graceful error handling — invalid slugs are logged and skipped, not crashes
- 🔗 URL input support — paste full OpenCollective URLs or just slugs
- 📦 Apify platform benefits — schedule runs, export to Google Sheets, connect to Make/Zapier, monitor via webhooks
What data can you extract?
🏠 Collective Details
| Field | Description |
|---|---|
id | Unique Open Collective identifier |
name | Display name |
slug | URL slug (e.g., "webpack") |
description | Short description |
longDescription | Full HTML description |
website | Official website URL |
imageUrl | Avatar/logo image URL |
twitterHandle | Twitter/X profile URL |
githubHandle | GitHub organization URL |
currency | Operating currency |
balanceValue | Current balance amount |
totalAmountReceivedValue | All-time total raised |
totalAmountSpentValue | All-time total spent |
contributorsCount | Number of contributors |
isActive | Whether collective is active |
tags | Categorization tags |
createdAt | Founding date |
👥 Member / Backer Records
| Field | Description |
|---|---|
id | Member record ID |
role | BACKER, MEMBER, ADMIN, HOST, CONTRIBUTOR, ATTENDEE |
createdAt | When membership started |
since | Alternative start date |
totalDonationsValue | Lifetime donation total |
totalDonationsCurrency | Currency |
accountSlug | Backer's Open Collective slug |
accountName | Backer's display name |
accountType | Individual or Organization |
accountImageUrl | Backer's avatar URL |
accountWebsite | Backer's website |
url | Link to backer's OC profile |
💸 Transaction Records
| Field | Description |
|---|---|
id | Transaction UUID |
type | CREDIT or DEBIT |
kind | CONTRIBUTION, HOST_FEE, EXPENSE, PAYMENT_PROCESSOR_FEE, etc. |
createdAt | Transaction timestamp |
description | Human-readable description |
amountValue | Gross amount |
netAmountValue | Net amount after fees |
platformFeeValue | Open Collective platform fee |
hostFeeValue | Fiscal host fee |
paymentProcessorFeeValue | Payment processor fee |
fromAccountSlug | Sender slug |
toAccountSlug | Recipient slug |
isRefunded | Whether transaction was refunded |
taxAmount | Tax amount if applicable |
📋 Expense Records
| Field | Description |
|---|---|
id | Expense ID |
type | INVOICE, RECEIPT, GRANT, SETTLEMENT, UNCLASSIFIED |
status | PENDING, APPROVED, PAID, REJECTED, CANCELLED |
description | What the expense is for |
createdAt | Submission date |
amountValue | Requested amount |
amountCurrency | Currency |
payeeSlug | Recipient's OC slug |
payeeName | Recipient's name |
payeeType | Individual or Organization |
createdBySlug | Submitter's slug |
tags | Expense tags |
itemsCount | Number of line items |
How much does it cost to scrape Open Collective?
This Actor uses pay-per-event pricing — you pay only for what you scrape. No monthly subscription. All platform costs are included.
| Free | Starter ($29/mo) | Scale ($199/mo) | Business ($999/mo) | |
|---|---|---|---|---|
| Per record | $0.00115 | $0.001 | $0.00078 | $0.0006 |
| 1,000 records | $1.15 | $1.00 | $0.78 | $0.60 |
| + Start fee | $0.005 | $0.00475 | $0.00425 | $0.00375 |
Higher-tier plans get additional volume discounts (see PLATINUM and DIAMOND tiers in the actor's pricing tab).
Real-world cost examples:
| Task | Records | Estimated Cost (Free tier) |
|---|---|---|
| 1 collective + 100 backers | 101 | ~$0.12 |
| 5 collectives + details only | 5 | ~$0.01 |
| 1 collective + 1,000 transactions | 1,001 | ~$1.16 |
| 10 collectives + 100 backers each | 1,010 | ~$1.16 |
Free plan estimate: With $5 in free credits, you can scrape approximately 4,000 records.
How to scrape Open Collective data
- Open the Open Collective Scraper on Apify Store
- Click "Try for free" — no credit card required for your first $5 in credits
- Enter collective slugs — paste slugs like
webpack,babel,vuejs, or full URLs likehttps://opencollective.com/webpack - Select data types — choose from
collective,members,transactions,expenses - Set limits — control how many members/transactions/expenses to fetch per collective
- Click "Start" and wait for results (typically under 30 seconds for 100 records)
- Export results as JSON, CSV, Excel, XML, or RSS — or connect directly to Google Sheets
Example inputs for common workflows:
Get collective stats for 5 projects:
{"collectiveSlugs": ["webpack", "babel", "vuejs", "react", "typescript"],"dataTypes": ["collective"],"maxMembers": 0}
Get top 500 backers of a collective:
{"collectiveSlugs": ["webpack"],"dataTypes": ["members"],"maxMembers": 500,"memberRoles": ["BACKER"]}
Get recent transactions (credits only):
{"collectiveSlugs": ["vuejs"],"dataTypes": ["transactions"],"maxTransactions": 100,"transactionTypes": ["CREDIT"]}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
collectiveSlugs | array | — | Required. List of slugs or Open Collective URLs to scrape |
dataTypes | array | ["collective","members"] | Which data types to extract: collective, members, transactions, expenses |
maxMembers | integer | 100 | Max members per collective. 0 = no limit |
maxTransactions | integer | 100 | Max transactions per collective. 0 = no limit |
maxExpenses | integer | 100 | Max expenses per collective. 0 = no limit |
memberRoles | array | [] | Filter members by role. Options: BACKER, MEMBER, ADMIN, HOST, CONTRIBUTOR, ATTENDEE. Empty = all roles |
transactionTypes | array | [] | Filter transactions by type: CREDIT, DEBIT. Empty = both |
Output examples
Each run produces a single flat dataset where different record types coexist. Every record has a recordType field (collective, member, transaction, or expense) plus collectiveSlug and collectiveName for easy filtering.
Collective record:
{"recordType": "collective","collectiveSlug": "webpack","collectiveName": "webpack","id": "wov349mr-wgz75lpy-mzpa08dj-eybknoxd","name": "webpack","slug": "webpack","description": "webpack is THE build solution for modern web applications.","website": "https://webpack.js.org/","balanceValue": 100156.56,"balanceCurrency": "USD","totalAmountReceivedValue": 1951653.85,"totalAmountReceivedCurrency": "USD","contributorsCount": 2605,"isActive": true,"url": "https://opencollective.com/webpack"}
Member record:
{"recordType": "member","collectiveSlug": "webpack","collectiveName": "webpack","id": "nmlo94zn-7x08dpo3-z3pewga3-vjbrky5m","name": "Aseem Sood","role": "BACKER","createdAt": "2016-10-15T15:47:40.951Z","totalDonationsValue": 14,"totalDonationsCurrency": "USD","accountSlug": "aseem","accountType": "Individual","url": "https://opencollective.com/aseem"}
Transaction record:
{"recordType": "transaction","collectiveSlug": "vuejs","collectiveName": "vue","id": "2258ff56-4943-4a3a-b8a0-317878e9d806","type": "CREDIT","kind": "CONTRIBUTION","createdAt": "2026-04-04T11:12:23.954Z","description": "Monthly financial contribution to vue (Backers)","amountValue": 2,"amountCurrency": "USD","netAmountValue": 2,"fromAccountSlug": "felix19","fromAccountName": "Felix","toAccountSlug": "vuejs","url": "https://opencollective.com/vuejs/transactions"}
Tips for best results
- 🔢 Start small — set
maxMembers: 20andmaxTransactions: 20to preview data before running at scale - 📋 Use
recordTypeto filter — the output dataset contains mixed record types; filter byrecordTypein your downstream tool or the Apify dataset table view - 🔗 Paste full URLs — the actor accepts both
webpackandhttps://opencollective.com/webpack— useful when copying directly from the browser - ⏰ Schedule for monitoring — run daily/weekly to track funding changes over time
- 📊 Member roles matter —
BACKER= financial contributors;CONTRIBUTOR= code/non-financial contributors;ADMIN= team members - 🌐 No pagination headaches — the actor handles multi-page fetching automatically; just set
maxTransactions: 0to get all records - 💡 Expenses may be empty — many collectives don't use Open Collective for expense management; this is expected
Integrations
Open Collective Scraper → Google Sheets
Use the built-in Google Sheets integration to populate a funding tracker spreadsheet. Set up a daily run on a popular collective (e.g., webpack) to monitor balance changes and new backers automatically. Perfect for open-source sustainability research.
Open Collective Scraper → Slack/Discord Connect via Make (formerly Integromat) or Zapier: when a large transaction (> $1,000 CREDIT) appears in the transaction feed, send a Slack alert to your dev-relations channel. Use this to track when major sponsors join a competitor project.
Open Collective Scraper → Airtable
Feed member records into an Airtable base to build a sponsor relationship database. Enrich with company info by cross-referencing accountWebsite with your CRM. Filter by accountType: "Organization" to focus on corporate sponsors.
Scheduled runs for OSS health monitoring
Schedule a weekly run on 10-20 collectives in your ecosystem to track balanceValue, contributorsCount, and totalAmountReceivedValue. Export to a time-series database or Google Data Studio for trend analysis.
Open Collective Scraper → Webhooks Use Apify webhooks to trigger a downstream pipeline whenever a scrape completes. For example, update a public dashboard or send a summary email every Monday morning with the latest funding stats for your watchlist.
Using the Apify API
You can trigger and manage Open Collective Scraper runs programmatically using the Apify API.
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('automation-lab/open-collective-scraper').call({collectiveSlugs: ['webpack', 'babel', 'vuejs'],dataTypes: ['collective', 'members'],maxMembers: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient(token='YOUR_APIFY_TOKEN')run = client.actor('automation-lab/open-collective-scraper').call(run_input={'collectiveSlugs': ['webpack', 'babel', 'vuejs'],'dataTypes': ['collective', 'members'],'maxMembers': 100,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~open-collective-scraper/runs" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"collectiveSlugs": ["webpack", "babel"],"dataTypes": ["collective", "members"],"maxMembers": 100}'
After the run completes, retrieve results:
curl "https://api.apify.com/v2/datasets/{DATASET_ID}/items?format=csv" \-H "Authorization: Bearer YOUR_APIFY_TOKEN"
Use with AI agents via MCP
Open Collective Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).
Add the Apify MCP server to your AI client — this gives you access to all Apify actors, including this one:
Setup for Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com"
Setup for Claude Desktop, Cursor, or VS Code
Add this to your MCP config file:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com"}}}
Your AI assistant will use OAuth to authenticate with your Apify account on first use.
Example prompts
Once connected, try asking your AI assistant:
- "Use automation-lab/open-collective-scraper to fetch the top 200 backers of webpack and tell me which organizations are sponsoring it"
- "Scrape the last 100 transactions for vuejs and summarize the monthly donation trends"
- "Get collective details for babel, jest, and prettier and compare their current balances and total funding raised"
Learn more in the Apify MCP documentation.
Is it legal to scrape Open Collective?
Open Collective is a transparent platform — financial data is intentionally public to foster trust in open-source funding. The actor exclusively uses Open Collective's official public GraphQL API (api.opencollective.com/graphql/v2), which is designed for programmatic access.
Key points:
- ✅ Only public data is accessed — the same data visible to anyone on the website
- ✅ Uses the official API, not HTML scraping — respectful and stable
- ✅ No authentication bypassed — no login, session cookies, or private data accessed
- ✅ Rate limiting is respected — built-in delays between requests to avoid overloading the server
- ⚠️ Do not store or redistribute personal data in violation of GDPR — backer names and profile info are personal data when combined
- ⚠️ Always review Open Collective's Terms of Service before using data commercially
This actor is intended for research, analytics, and automation of publicly available data. Use it responsibly.
FAQ
How fast does it run? Very fast — purely HTTP API calls, no browser. Expect 100 records in under 5 seconds, 1,000 records in 30-60 seconds (including built-in rate-limit delays of ~200ms per pagination request).
How much does it cost to scrape 1,000 backers? On the free plan: $0.005 (start fee) + 1,001 × $0.00115 ≈ $1.16. On the Scale plan: ~$0.79. The first $5 in free credits gets you ~4,000 records.
Does it work for organizations and projects too, not just collectives?
Yes — the collective query endpoint in Open Collective's API handles all account types. You can use it for organizations, projects, events, and funds as long as their slug is valid and the account is public.
Why are the expenses list empty for some collectives? Not all collectives use Open Collective's expense management feature. Many collectives only use OC for receiving donations and handle payouts through other tools. This is normal and not a bug.
Why do some transactions show 0 netAmount?
Platform fees, host fees, and payment processor fees can reduce the net amount to zero or even negative. This is especially common for HOST_FEE and PAYMENT_PROCESSOR_FEE transaction kinds. These are real transactions — they represent fee deductions.
I'm getting rate limit errors. What should I do? The built-in delays (200ms between pagination calls, 500ms between collectives) handle normal usage. If you're running many collectives in a single job, consider splitting into smaller batches or using Apify's scheduler to run separate jobs. You can also obtain a personal token from Open Collective to increase your rate limits.
How do I get all backers for a collective with thousands of members?
Set maxMembers: 0 — this disables the limit and fetches all pages automatically. For webpack (3,000+ backers) this takes approximately 30-45 seconds.
Other Open Source & Developer Tools scrapers
Looking for complementary data? Here are other automation-lab actors you might find useful:
- Apify Store Analyzer — Analyze Apify actor performance, pricing, and reviews
- ArXiv Scraper — Research academic papers related to your open-source domain
- Bing Search Scraper — Search the web via Bing for projects, funding pages, and more
- JSON Schema Generator — Generate JSON schemas from sample data
- Caniuse Browser Compatibility Checker — Check browser support for web APIs
- Broken Link Checker — Find broken links in documentation sites
- Color Contrast Checker (WCAG) — Validate accessibility of design systems