Skip to content

About

The models the Inferit API knows, as open data: ids, names, aliases, context windows and licence classes.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

Inferit model catalog

The models the Inferit API knows, as open data: ids, names, aliases, context windows and licence classes.

The same rows GET /v1/models serves, without the prices and seller data the API serves live.

Website Docs X Data licence: CC BY 4.0 CI

Status: Inferit is a testnet demo on Whitechain Sepolia. Prices settle in Inferit Test Credit (ITC), a test token with no monetary value. The contracts are not audited.

Inferit is a peer-to-peer market for AI inference. Anyone can sell inference at their own price, and buyers and agents pay per request through one OpenAI-compatible API. This repository is that API's model list in one JSON file, checked against the live API on 2026-10-13.

Contents

What is in it

File What
catalog.json 26 models: 23 open-weight models and 3 closed-weight reference rows
licenses.json The 9 licences those models use: name, link and the class the API applies when a seller lists an offer
schema/catalog.schema.json, schema/licenses.schema.json JSON Schemas (draft 2020-12) for both files
scripts/validate.mjs The rules a schema cannot express: unique ids and aliases, licence links between the files
scripts/check-live.mjs Compares catalog.json with the live GET /v1/models

A row

{
  "id": "qwen/qwen-2.5-14b-instruct",
  "name": "Qwen: Qwen2.5 14B Instruct",
  "owned_by": "qwen",
  "aliases": ["qwen2.5:14b-instruct", "qwen2.5:14b", "qwen2.5-14b-instruct", "Qwen/Qwen2.5-14B-Instruct"],
  "context_length": 32768,
  "license": "apache-2.0",
  "license_class": "permissive",
  "open_weight": true,
  "servable": true
}

Fields

The field names are the API's own, so a row here parses like a row of GET /v1/models. license_class is the one field this file adds.

Field Type Meaning
id string The model id to send as model in POST /v1/chat/completions: publisher/model, lowercase
name string Display name
owned_by string The publisher: the part of the id before the /
aliases string[] Other names the API accepts for the model, matched case-insensitively: an Ollama tag (qwen2.5:14b-instruct) or a Hugging Face repo id (Qwen/Qwen2.5-14B-Instruct). The seller app uses them to match local model names to catalog ids
context_length integer The model's context window, in tokens. A seller may serve a smaller window: each offer's own is in GET /v1/models/{id}/endpoints
license string The licence of the model's weights, an id in licenses.json
license_class string How the API treats an offer on this model when a seller lists it: permissive, conditional or not_allowed (next section)
open_weight boolean true when the weights are published; false exactly when license is proprietary
servable boolean false for a reference row: no seller can list the model on Inferit, and a request for it answers 404 model_not_servable

Licence classes

Class When a seller lists an offer Licences in this catalog
permissive It lists with no acknowledgement Apache License 2.0, MIT License
conditional The seller accepts the licence's conditions with licenseAck: true Qwen License Agreement, Llama 3.1, 3.3 and 4 Community License Agreements, Gemma Terms of Use, Modified MIT License (Kimi)
not_allowed The API refuses it (license_not_listable) Proprietary (closed weights): the 3 reference rows

The classes are Inferit's reading of each licence text, read on 2026-10-02. They are not legal advice: read the licence licenses.json links. The seller is responsible for having the right to serve what it lists; the licence terms are between the seller and the model's lab.

Prices and sellers: ask the API

This file holds no prices, no seller data and no quality scores. Those change while the market runs, so they come from the API:

You want Ask
List price, the cheapest healthy offer's price, seller counts and health per model GET /v1/models: pricing, best_price, live
Every seller's offer of one model: all-in price, context window, health GET /v1/models/{id}/endpoints, with the id URL-encoded (qwen%2Fqwen-2.5-14b-instruct)
One model's order book GET /api/markets/{model}
The quality ranking model auto uses GET /v1/routing and inferit.cc/docs/routing

API prices are integers in µ per 1M tokens: one µ is a micro-dollar, a millionth of a dollar. On the testnet it is a micro-ITC, a test token with no monetary value.

GET /v1/models also lists three rows that are not models: auto, auto:cheap and auto:best. They are model auto's policies, where Inferit picks the model and then the cheapest healthy seller of it, so this file leaves them out. The routing docs describe them.

Use it

The file is plain JSON. Read it from this repository:

const url = 'https://raw.githubusercontent.com/InferitAI/model-catalog/main/catalog.json';
const { models } = await (await fetch(url)).json();

// Resolve any name the API accepts (id or alias, any case) to a catalog row.
const byName = new Map(models.flatMap((m) => [m.id, ...m.aliases].map((k) => [k.toLowerCase(), m])));
byName.get('qwen2.5:14b-instruct').id; // 'qwen/qwen-2.5-14b-instruct'

// Models a seller can list today.
const servable = models.filter((m) => m.servable);

Or ask the live API for the same rows with their prices:

curl -s https://api-production-c74b9.up.railway.app/v1/models \
  | jq '.data[] | select(.auto == null) | {id, context_length, license, servable, best_price}'

Sell one of these models

Sellers may list any model at their own price. Today the API accepts an offer only for a model in this catalog; any other model answers model_not_found.

To ask for a model, open an issue with its Hugging Face repo id and a link to its licence. A model joins the API's catalog first; this file follows it.

Check it

Node 18 or newer. No install needed:

node scripts/validate.mjs      # unique ids and aliases, licence links, open_weight and servable rules
node scripts/check-live.mjs    # every row against the live GET /v1/models (exit 1 on a difference)
npx --yes ajv-cli@5.0.0 validate --spec=draft2020 -s schema/catalog.schema.json -d catalog.json
npx --yes ajv-cli@5.0.0 validate --spec=draft2020 -s schema/licenses.schema.json -d licenses.json

CI runs the schema checks and validate.mjs on every push to main and on every pull request.

Sources

  • The rows: Inferit's catalog, as GET /v1/models served it on 2026-10-13. check-live.mjs matched all 26 rows that day.
  • Ids, names and context windows: first read from OpenRouter's public model list on 2026-10-02, a data source and not a relationship. The Qwen 2.5 14B row was added by hand.
  • Licences: read from each model's card and licence file on 2026-10-02.

Licence

  • Data (catalog.json, licenses.json): Creative Commons Attribution 4.0 (CC BY 4.0). Credit it as "Inferit model catalog (github.com/InferitAI/model-catalog), CC BY 4.0".
  • Schemas and scripts (schema/, scripts/, .github/): Apache License 2.0.
  • Model names belong to their publishers. Each model's weights carry their own licence, which licenses.json links; this repository grants no rights to any model.
  • The Inferit name and logo are not covered by either licence: see InferitAI/branding.

More from Inferit

Inference, by the µ.

About

The models the Inferit API knows, as open data: ids, names, aliases, context windows and licence classes.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages