DOCS / API REFERENCE / MODELS

Models

http
Authorization: Bearer lattice_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Requires an application API key. Not filtered by the application's model allowlist — this always lists the full registry; the allowlist is enforced at request time on chat completions, not here.

Response

json
type ProviderAdapter = {
  id: ProviderId;
  createChatCompletion(
    request: ChatCompletionRequest,
    ctx: ProviderRequestContext,
  ): Promise<ChatCompletionResponse>;
  streamChatCompletion(
    request: ChatCompletionRequest,
    ctx: ProviderRequestContext,
  ): AsyncGenerator<ChatCompletionChunk, void, void>;
};

type ProviderRequestContext = {
  apiKey?: string;
  providerModel: string;
  signal: AbortSignal;
};

created is the gateway process's boot time (unix seconds), identical across every entry in a given response — it's not a per-model release date.

Aliases appear as separate entries

If a registry model declares aliases, each alias produces its own row in data with the same owned_by, sharing the underlying model:

json
{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "created": 1755878400,
  "model": "gpt-4o",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "..." },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 42,
    "completion_tokens": 118,
    "total_tokens": 160
  }
}

Both gpt-4o and company/smart resolve to the exact same registry entry when used as model in a chat completion request. See Model Registry & Routing.

LATTICE — INTERNAL AI INFRASTRUCTURE
GITHUB © 2026