Skip to content

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.

  1. 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.
  2. 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.
  3. Prove it runs outside any frameworkTests/BareTest.php loads every class with the package’s own requirements; no framework in require, an HTTP client always accepted from outside.
  4. 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.
  5. 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.

Propose a provider Read “Writing a provider”

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.

  1. 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.
  2. 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.
  3. Co-maintain itBe named in its CODEOWNERS: your changes to the API reach the package when they ship, not when a user notices.
  4. 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'

Review or declare your API See the released providers

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

  • omnistate

    INSEE (BDM, SDMX)EurostatECB Data Portal

  • omnilab

    OpenWeatherMET Norway (api.met.no)Météo-France

  • omnisign

    Stripe IdentityVeriffEntrust Identity Verification (Onfido)DossierFacile

  • omnibill

    PennylaneXeroQuickBooks OnlineOdoo

  • omnifood

    Open Food Facts

  • omnipost

    MastodonBluesky

  • omnisong

    MusicBrainzPodcast Index

  • omnisearch

    MeilisearchElasticsearch / OpenSearch

All the cards looking for a maintainer

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