Prima Get an API key

Prima API

Models and aliases

Four aliases naming four jobs, each with a pinned sibling, listed by GET /models.

Live Built and working today on the surface this card describes.

What it does

GET /models lists what the gateway will serve. Eight model ids: four floating aliases and one pinned -2026-08 sibling of each.

An alias names a job, not a model. The model behind an alias may change. A pinned sibling never does, which is what makes a run reproducible later.

The listing self-describes. Every entry carries prima_kind, prima_floating and prima_pinned_variant, so a client can tell a floating alias from a pin, and find the pin for a given alias, by reading those fields. Do not parse the suffix.

Inputs and outputs

Request GET https://api.prima.li/api/prima/v1/models, with the X-API-Key header.
Response The OpenAI models list shape, with prima_kind, prima_floating and prima_pinned_variant added to each entry.
The four jobs prima-quick high volume and mechanical · prima-core the default workhorse · prima-deep hard judgement · prima-embed embeddings.
Context length, as published by GET /models
Context window, measured 2026-08-04 Binary-searched against the live gateway. prima-quick accepted 60,004 tokens and refused 64,000, so about 64k. prima-core accepted 250,016 and refused 350,000. prima-deep accepted 200,011 and was not probed higher, so at least 200k. prima-embed was not probed.
Price per model

Configuration

Base URL https://api.prima.li/api/prima/v1
Choosing a model The model field on the request. An alias for work that should follow the current model, a pinned id for work that must not move.
Finding the pin for an alias Read prima_pinned_variant off the alias's entry in the listing.

Limits

  • The listing publishes no context limits, no maximum output tokens, no pricing and no capabilities block. The context windows above are measurements, not something the API states, and they differ by roughly a factor of four between aliases. There is nowhere in the API to read them from.
  • There is no version or capability signal a client can read. stream: true went from being refused with a 400 to working, with no announcement, so a client cannot ask the gateway what it can do today.
  • There is no health endpoint. GET /models is being used as one, which conflates "the gateway is up" with "the catalog is available".

Example

list the models

curl https://api.prima.li/api/prima/v1/models \
  -H "X-API-Key: $PRIMA_API_KEY"

Source of truth

  • philosophers_stone/platform/primaapi.md § The aliases
  • philosophers_stone/platform/primaapi.md § Context windows, measured (probed 2026-08-04)
  • philosophers_stone/platform/primaapi.md § Open items (no limits, pricing, capability signal or health endpoint)
  • primacode/packages/primacode/src/config.ts (DEFAULT_BASE_URL)