Model catalog

Query current models and protocols; choose by capability and billing unit.

Models and prices change. Read the Console → Model catalog or live API instead of relying on a static list.

1. Prepare the query

Install Python 3.10+ and uv. The native GET /model/v1/models catalog needs no key. This example also queries the OpenAI-compatible catalog, so set PRAXIS_API_KEY using the quickstart.

Expected: the key environment variable is set. Examples default to https://api.deepraxis.com. To switch environments, set PRAXIS_API_BASE to the API origin without a trailing slash or API path.

2. Check the model and protocol

Save as catalog.py and run uv run -q --no-project --with openai --with anthropic --with google-genai python catalog.py.

import os
import httpx

base = os.environ.get("PRAXIS_API_BASE", "https://api.deepraxis.com")
with httpx.Client(timeout=60.0) as client:
    response = client.get(base + "/model/v1/models")
    response.raise_for_status()
    models = response.json()["data"]
    model = next(item for item in models if item["id"] == "deepseek-flash")
    assert "openai.chat.completions" in model["supported_apis"]
    for field in ("id", "type", "supported_apis", "context_window", "pricing"):
        print(field + ":", model[field])
    print("X-Request-Id:", response.headers.get("x-request-id"))

    filtered = client.get(
        base + "/openai/v1/models",
        params={"api": "responses"},
        headers={"Authorization": "Bearer " + os.environ["PRAXIS_API_KEY"]},
    )
    filtered.raise_for_status()
    ids = [item["id"] for item in filtered.json()["data"]]
    assert "deepseek-flash" in ids
    print("Responses models:", ids)
    print("X-Request-Id:", filtered.headers.get("x-request-id"))

Expected: exit code 0, the type, protocols, context, and prices for deepseek-flash, and a Responses list containing that ID. Checked on 2026-10-13; current query results take precedence. If an assertion fails, do not send a request to that protocol. Select a supporting model from the latest list first.

3. Choose from the results

Start with type for the task category, then confirm the intended protocol in supported_apis. Model names do not establish protocol support. The native list also accepts supported_api=openai.responses; api=chat,embeddings on the OpenAI-compatible list matches either API.

Check context and output limits, then prices for input, output, cache reads, or non-token units. Models and the catalog explains billing units and availability. List models API defines the fields.

Expected: the selected ID supports your protocol, its limits fit your request, and its billing unit fits the task. Then use the quickstart to make a real call and check its actual cost.

API reference → · Cookbook →

Export

On this page