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.