Catalog

Find API specifications and record their owners

apigenie-catalog finds API specifications in a Git repository. Keep their names and owners next to the code, without hosting a catalog service.Experimental: outside the 1.0 compatibility promise, so its commands and output can still change.

List your APIsRead the reference

From the files Git tracks to the owners in CI

list reads the repository as Git sees it, init writes the names and owners you keep, and the JSON output hands both to scripts.

apigenie-catalog list finds the specifications among the files Git tracks and prints an inventory; init writes their names and owners to apigenie.yaml, which the inventory then shows From the files Git tracks to the owners in CIGit-tracked filesapis/orders/openapi.yamlapis/events.jsonproto/pricing.protoapigenie-catalog listInventoryname, format, version, pathlast commit, owner--json for scripts and CIapigenie-catalog initapigenie.yamlnames and owners, reviewed in Gitowner
No service and nothing uploaded: the repository is the catalog, and a change of owner is a commit.

What list finds, with no configuration

In a Git repository the catalog looks at the files Git tracks, so build output and ignored files stay out. Each row says what the specification is, its version, where it lives and when it last changed.

$ apigenie-catalog list
NAME             FORMAT           VERSION  PATH                      COMMIT
order-events     AsyncAPI 3.0.0   2.0.0    apis/events.json          96175d8 2026-10-12
orders-api       OpenAPI 3.1.0    1.2.0    apis/orders/openapi.yaml  4d0c2e1 2026-10-14
acme-pricing-v1  Protobuf proto3  -        proto/pricing.proto       96175d8 2026-10-12

Then give them names and owners

apigenie-catalog init writes one entry per specification for you to fill in. Run it again after adding specifications: new ones are added, your edits stay, and entries of files that are gone are reported.

catalog:
  specs:
    - name: orders-api
      path: apis/orders/openapi.yaml
      owner: team-commerce

Read owners from your scripts

apigenie-catalog list --json includes the names and owners you recorded, alongside each specification's format and path. This excerpt from an entry in the report's specs array shows what a dashboard or CI job can read.

{
  "name": "orders-api",
  "format": "openapi",
  "path": "apis/orders/openapi.yaml",
  "owner": "team-commerce",
  "listed": true
}

Use the inventory in reviews and CI

  • An inventory for reviewsSee every API of a repository with its format, version and last commit, in a table or as JSON.
  • Ownership in code reviewOwners live next to the code, so a change of owner is a commit, reviewed like any other.
  • Input for your toolsThe JSON output has a published schema, for scripts, dashboards and CI jobs that work on every API of a repository.

Install

The CLI packages include apigenie-catalog. It currently inventories one repository at a time. Cross-repository catalogs, release tags and pinned consumers are planned; commands and output remain experimental.

Use cases

List your APIsRead the reference