Open Collective API
Free Open Collective GraphQL API with no key: transparent budgets, expenses, contributors and balances for thousands of open source projects. Tested example included.
Endpoint tested and returned HTTP 200 on 21 Aug 2026
What is the Open Collective API?
The Open Collective API is a free GraphQL API exposing the finances of collectives that fund open source and community projects. Public data — balances, transactions, expenses, contributor lists and tiers — is readable with no API key, since radical financial transparency is the platform's founding premise.
Open Collective's entire model is that a project's finances are public: who contributed, how much, what was spent and on what. The API is the machine-readable expression of that, and it means you can query a project's real budget and burn rate rather than guessing at its sustainability.
It is GraphQL rather than REST, which suits the data — a collective's finances involve members, tiers, transactions, expenses and updates, and a REST design would either over-fetch or force many round trips. Collectives are addressed by `slug`, the same identifier that appears in their profile URL, so moving from a project's page to an API query is direct. Writes (submitting an expense, for instance) require a personal token, but the read layer used here does not.
Quick facts
- Base URL
https://api.opencollective.com/graphql/v2- Authentication
- No API key for public read queries. A personal token is required only for writes and for private data such as unapproved expenses.
- Rate limit
- Unauthenticated queries are throttled per IP; supplying a free personal token raises the ceiling substantially.
- Pricing
- Free.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Open Collective API
Every request below was executed against the live API on 21 Aug 2026, and the response shown is the real body it returned — not an illustration.
1. Fetch a collective's name and currency with GraphQL
POST https://api.opencollective.com/graphql/v2
curl -X POST 'https://api.opencollective.com/graphql/v2' \
-H 'Content-Type: application/json' \
-d '{"query":"{collective(slug:\"webpack\"){name slug currency}}"}'const res = await fetch("https://api.opencollective.com/graphql/v2", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({"query":"{collective(slug:\"webpack\"){name slug currency}}"}),
});
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
headers = {
"Content-Type": "application/json",
}
payload = {"query":"{collective(slug:\"webpack\"){name slug currency}}"}
res = requests.post("https://api.opencollective.com/graphql/v2", headers=headers, json=payload, timeout=20)
res.raise_for_status()
print(res.json()){
"data": {
"collective": {
"name": "webpack",
"slug": "webpack",
"currency": "USD"
}
}
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Required | The GraphQL query document, sent in the JSON body. {collective(slug:"webpack"){name slug currency}} |
variables | object | Optional | Values for variables declared in the query — the clean way to parameterise rather than string-building. {"slug":"webpack"} |
slug | argument | Optional | The collective's identifier, matching the last segment of its profile URL. webpack |
limit / offset | argument | Optional | Pagination on nested collections such as transactions and members. 10 |
Response fields
dataobject- The GraphQL result, shaped exactly like the query you sent — nothing extra is returned.
collective.name / slugstring- Display name and URL identifier.
collective.currencystring- The collective's base currency. Amounts elsewhere are denominated in it, so read this before comparing figures across collectives.
collective.stats.balanceobject- Current balance, returned as an amount in cents plus a currency — not a float.
transactionsobject- Paginated financial history with type, amount, description and counterparty.
expensesobject- Submitted expenses with status, amount and payee, which is where the transparency really shows.
membersobject- Contributors and backers with roles and contribution totals.
errorsarray- GraphQL returns HTTP 200 even for query errors — always check this array before reading `data`.
What you can build with the Open Collective API
- Display a project's real funding and expenses on its own site
- Research the financial sustainability of open source projects
- Build a sponsor or backer wall from live contributor data
- Track monthly recurring funding for a collective over time
Common errors and how to fix them
HTTP 200 with an errors array
The query was malformed or named an unknown field.
Fix: GraphQL reports errors in the body, never in the status code. Inspect `errors` first — a 200 does not mean success here.
Null collective
The slug does not exist or the collective is not public.
Fix: The slug is the last segment of the profile URL and is case-sensitive.
429
Unauthenticated rate limit reached.
Fix: Generate a free personal token and send it as an `Api-Key` header. Read queries still work without one, just with a lower ceiling.
Open Collective API — frequently asked questions
Is the Open Collective API free?
Yes. Public read queries need no API key, because financial transparency is the platform's whole premise. A free personal token is only needed for writes, private data, or to raise the rate limit.
Why does Open Collective use GraphQL?
Because the data is deeply connected — a collective has members, tiers, transactions, expenses and updates. REST would mean either over-fetching enormous objects or making many round trips; GraphQL lets you name exactly the fields you need in one request.
How do I find a collective's slug?
It is the last segment of its Open Collective profile URL. A project at opencollective.com/webpack has the slug `webpack`, which is what the `collective` query expects.
Are amounts returned as decimals?
No — amounts come back in cents alongside a currency code, which avoids floating-point rounding on money. Divide by 100 for display, and read the collective's `currency` field before comparing across collectives.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
JSON Path Finder
Evaluate a dot/bracket path against your JSON and list every leaf path for discovery. Free online JSON path finder that runs 100% in your browser.
Percentage Calculator
Calculate what X% of a number is, what percent one number is of another, and percentage increase or decrease between two values — instantly and free.
Alternatives to Open Collective API
If Open Collective does not fit, these social media apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| Mastodon | Free Mastodon API: public timelines, instance metadata, trending hashtags and account data from any Mastodon server with no key for public endpoints. Tested. | No key | No | 19 Aug 2026 |
| Lemmy | Free Lemmy API with no key: posts, comments, communities and site data from any federated Lemmy instance. A Reddit-style API without gatekeeping. Tested. | No key | No | 19 Aug 2026 |
| DEV Community | Free DEV.to API with no key for public content: articles, tags, users and comments from the developer community platform. Tested curl example and live JSON. | No key | Yes | 19 Aug 2026 |
| Bluesky Public API | Free Bluesky public API with no key: profiles, posts, followers and feeds from the AT Protocol network. No authentication for public data. Tested example. | No key | Yes | 19 Aug 2026 |
| 4chan Read-Only API | Free read-only 4chan API with no key: board metadata, thread catalogs, full threads and post data as JSON, served from a static CDN. Tested example included. | No key | No | 21 Aug 2026 |
| Lanyard (Discord Presence) | Free Discord presence API with no key: online status, activities, Spotify track and a per-user key-value store, over REST or WebSocket. Tested example included. | No key | Yes | 21 Aug 2026 |
Open Collective is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 21 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.