Contribute
Maintain a provider, or bring your API
No single team can follow every API. Each provider is a small package of its own, under one family’s contract; it lives best with a named maintainer, and with the company that runs the API looking over it.
For developers
A provider implements one family’s contract for one service, and nothing else.
- Start from the templateomni-provider-template has a skeleton per family;
bin/init <family> <service>fills the names, and its suite is green before a line is written. - Run the family’s conformance suiteEach core ships its suite as a PHPUnit trait (
<Core>\Testing). The provider is built over recorded answers (MockHttpClient): the suite never reaches the network. - Prove it runs outside any framework
Tests/BareTest.phploads every class with the package’s own requirements; no framework inrequire, an HTTP client always accepted from outside. - Keep the CI greenThe skeleton’s workflows call glitchr-studio/ci, pinned to a commit: tests on each push, a release with its notes, its archive checksum and a provenance attestation on each tag.
- Propose itOpen a “Provider” issue: the family, the service, its usage policy, what can be checked live. The name is agreed there, then the repository is created under glitchr-omnisense.
Who maintains what
- Every provider repository lives under the glitchr-omnisense organisation, MIT licensed, so that it outlives any one person’s availability.
- Each provider names its maintainer in its README and in CODEOWNERS; a company that runs the API can be a co-maintainer.
- A change is merged after the review of the family’s maintainer and a green CI that runs the conformance suite; a change to a family’s contract needs the family’s maintainer, never a provider alone.
- The README’s “Verified, and not” says what was tried against the real service and when; the catalogue shows it as it is written.
- A maintainer who steps back says so in an issue; the provider is marked “help wanted” until someone takes it over.
For the companies behind the APIs
An integration you have read is one your users can trust. Three ways in, from an hour to an ongoing role.
- Review your providerRead the package that calls your API: the endpoints, the errors it maps, the limits it respects. An issue or a pull request is enough.
- Declare your usage policy as dataEach provider carries its policy as data: the access it needs, a free tier, commercial use on it, the credit to show (
Policy: auth, free, commercial, attribution, credit, terms). An application reads it before it calls you, and shows your credit as you ask. - Co-maintain itBe named in its CODEOWNERS: your changes to the API reach the package when they ship, not when a user notices.
- Be listedYour API gets its card in the catalogue, with your policy and a link to your terms; a reviewed provider says so.
policy:
auth: key # none | key | oauth | contract
free: true
commercial: yes # yes | no | conditional | unclear
attribution: required
credit: 'Data from Example'
terms: 'https://example.org/api-terms'
Wanted
43 providers are looking for a maintainer: new families, and services missing from the released ones.
New families
-
omniphoto Wanted
Find a photo to illustrate a page, with the credit it asks for.
UnsplashPexelsPixabayOpenverseWikimedia Commons
-
omnijob Wanted
Read the job offers of the job boards.
USAJOBSAdzunaArbeitnowFrance Travail
-
omnisport Wanted
Read the fixtures, results and standings of a competition.
football-data.orgTheSportsDBOpenF1
-
omnitravel Reserved
Read timetables, journeys and real time, by train, plane or city transit.
GTFS and GTFS-RealtimeNavitiaTransitous
-
omnistay Reserved
Find stays and their rates, and book them.
Amadeus HotelsA site’s own listings
-
omnilang Reserved
Translate a text or a page, whatever the engine.
DeepL APIGoogle Cloud TranslationAzure AI TranslatorAmazon TranslateLibreTranslate
-
omnical Reserved
Read and write a calendar, and know the public holidays.
Google CalendarMicrosoft Graph calendarCalDAV (iCloud, Fastmail, Nextcloud…)OpenHolidays APINager.Date
In the released families
-
INSEE (BDM, SDMX)EurostatECB Data Portal
-
OpenWeatherMET Norway (api.met.no)Météo-France
-
Stripe IdentityVeriffEntrust Identity Verification (Onfido)DossierFacile
-
PennylaneXeroQuickBooks OnlineOdoo
-
Open Food Facts
-
MastodonBluesky
-
MusicBrainzPodcast Index
-
MeilisearchElasticsearch / OpenSearch
Get in touch
Everything goes through the site’s repository on GitHub, in the open: one issue template per kind of request.
- Maintain a providerA family, a service, a proposal to maintain it.Open an issue
- An API companyA review, a usage policy to declare, a co-maintainer to name.Open an issue
- A defect in a packageIts own repository’s issues: each package page links to it.github.com/glitchr-omnisense