omnipulse / liberapay
Omnipulse's Liberapay, under any PHP host: an account's public profile read from Liberapay's public.json - patrons counted, weekly income, goal, summary (no key; Liberapay keeps patrons and tiers private).
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/liberapay: 1.x-dev
This package is auto-updated.
Last update: 2026-11-10 08:18:55 UTC
README
Liberapay for omnisense/omnipulse, under any PHP
host: an account's public profile read from https://liberapay.com/<user>/public.json - patrons
counted, what it receives and its goal (by the week, as Liberapay counts), its summary. No key.
Formerly omnifund/liberapay (omnifund merged into omnipulse on 2026-11-10: Omnifund\Liberapay\ is now
Omnipulse\Liberapay\; this package replaces the former name).
use Omnipulse\Liberapay\LiberapayFactory; use Omnipulse\Registry; $registry = new Registry([new LiberapayFactory($httpClient)], [ 'liberapay' => ['factory' => 'liberapay', 'options' => ['account' => 'Liberapay']], ]); $registry->profile('liberapay')->profile()->income?->monthly();
Options: account (the username, required), language (the summary's, en; else the first
one), base_url, user_agent.
A profile only: Liberapay shows no patron by name and has no tiers, so sponsors() and
tiers() are refused by the registry (NotSupportedException). An account may hide what it
receives: income and the goal's percentage are then null.
No library is wrapped: there is none, and the endpoint is one JSON document.
Terms
Liberapay's legal information and privacy policy. Liberapay is run by a non-profit on donations: send a User-Agent naming your application, and cache what you read (its data changes weekly).
Usage policy
Liberapay'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://liberapay.com/about/faq): no rate limit declared, rights unknown: Liberapay publishes no API terms; no key. 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 Liberapay team's public.json of 2026-10-24, shortened): the
profile, a weekly income by the month, the goal's percentage, an account hiding its income, the
summary's language, an unknown account, the capability refused;
BareTest; PHPStan at the highest level. - Verified live without a key (2026-10-24): the Liberapay team's profile.
Responsibility
This package is an independent, unofficial client: it is not affiliated with, endorsed by or sponsored by Liberapay. 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 Liberapay'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.