omnipulse / opencollective
Omnipulse's Open Collective, under any PHP host: a collective read through Open Collective's GraphQL API v2 - its profile and yearly budget, its tiers, its backers (public data, no key needed; a personal token raises the rate limit).
Package info
github.com/glitchr-omnisense/omnipulse-opencollective
pkg:composer/omnipulse/opencollective
Requires
- php: >=8.2
- omnisense/contracts: ^1.0@dev
- omnisense/omnipulse: ^1.0@dev
- symfony/http-client-contracts: ^3.0
Requires (Dev)
- phpunit/phpunit: ^11.0
- symfony/http-client: ^6.4|^7.0|^8.0
Suggests
None
Provides
None
Conflicts
None
Replaces
- omnifund/opencollective: 1.x-dev
This package is auto-updated.
Last update: 2026-11-10 08:18:56 UTC
README
Open Collective for omnisense/omnipulse, under any PHP host: a collective read through Open Collective's GraphQL API v2 - its profile and yearly budget, its tiers, its backers. Public data: no key needed.
Formerly omnifund/opencollective (omnifund merged into omnipulse on 2026-11-10: Omnifund\OpenCollective\ is now
Omnipulse\OpenCollective\; this package replaces the former name).
use Omnipulse\OpenCollective\OpenCollectiveFactory; use Omnipulse\Registry; $registry = new Registry([new OpenCollectiveFactory($httpClient)], [ 'oc' => ['factory' => 'opencollective', 'options' => ['account' => 'webpack']], ]); $registry->tiers('oc')->tiers();
Options: account (the collective's slug, required), token (a personal token, sent as
Personal-Token, optional: it raises the rate limit), endpoint, user_agent.
- Profile: name, description, page, logo, the backers counted, the yearly budget Open
Collective estimates (
Incomeby the year). No goal: the API gives none in a stable form. - Sponsors: the members with the BACKER role, 100 a page (offset), each with since when, its
tier and its total given; individuals, organizations, and other collectives as
other. - Tiers: monthly, yearly or one-time; a flexible amount marked as custom, with its minimum.
No library is wrapped: none on Packagist covers Open Collective's API v2.
Terms
Open Collective's Terms of Service and its
API documentation. Without a token the API allows
10 calls a minute (answered x-ratelimit-limit: 10): cache what you read; the profile and
tiers cost one call, each page of backers one more.
Usage policy
Open Collective's usage policy is declared as data in policy.json (omnisense/contracts'
schema, named in composer.json's extra.omnisense.policy), its terms read on
2026-11-10 (https://graphql-docs-v2.opencollective.com/): no rate limit declared (none published); commercial use and redistribution under contract (Terms of Service 11, 13(b)); no key required. omnipulse's registry enforces it - a call over a
limit is never made, a 429 and its Retry-After hold every next call
(UsageLimitReachedException) - and a site may tighten it, never loosen it
(omnisense/omnipulse's docs/policies.md).
Verified, and not
- Verified on recorded answers (the shapes of live answers of 2026-10-24, the people invented):
the profile and its budget by the month, the tiers (fixed, flexible, yearly), the backers page
after page, a limit, an unknown collective, the rate limit, the token header sent only when
given;
BareTest; PHPStan at the highest level. - Verified live without a key (2026-10-24): webpack's profile, tiers and three backers.
- Not verified: a personal token.
Responsibility
This package is an independent, unofficial client: it is not affiliated with, endorsed by or sponsored by Open Collective. Its MIT licence covers this package's code only and grants no right to the service or its data. Whoever installs and runs it is responsible for complying with Open Collective's terms and for any use made of what it returns; the authors accept no liability for how it is used (see LICENSE).
Licence
MIT.