List the SynapseX models on the API
This page shows you how to read the SynapseX model catalog at runtime and which id to try first. At the end you will have a list of model ids printed from your own code, instead of a table copied out of documentation that may already be stale.
The endpoint
GET https://platform.synapsex.ai/api/v1/modelsAuthenticate with your key. The response is OpenAI-shaped:
{
"object": "list",
"data": [
{
"id": "synapsex-forge-code-14b-v1",
"object": "model",
"owned_by": "synapsex",
"context_window": 256000
}
]
}Each entry carries id, object, owned_by and context_window.
What this list is, and what it is not
/models returns the SynapseX model catalog. It is not filtered down to the
models your key is allowed to call. An id can appear here and still be
refused with HTTP 403 when you send it to /chat/completions. Treat the
response as a catalog, not as a permission list.
Read it at runtime anyway, rather than hard-coding a table out of documentation: availability is controlled server-side and can change without a client update, and the catalog is not the same list the SynapseX Chat interface shows.
Which model should you start with?
Start with:
synapsex-forge-code-14b-v1It is the safest first id to try on the API. If a call is refused with an
HTTP 403 that names the model rather than the scope, read the error message
— it lists the model ids that are available on the public API. Pick one of
those. Do not work through the /models list by trial and error.
List the models
With curl:
export SYNAPSEX_API_KEY=sk-synapsex-YOUR-API-KEY
curl -sS https://platform.synapsex.ai/api/v1/models \
-H "Authorization: Bearer $SYNAPSEX_API_KEY"With the Python SDK:
from synapsex_platform import LLMClient
client = LLMClient() # reads SYNAPSEX_API_KEY
for model in client.list_models().get("data", []):
print(model["id"], model.get("context_window"))A useful pattern is to check once, at startup, that the id you intend to send is still in the catalog, and fail loudly instead of silently falling back to another id that may not be callable:
PREFERRED = "synapsex-forge-code-14b-v1"
catalog = {m["id"] for m in client.list_models().get("data", [])}
if PREFERRED not in catalog:
raise SystemExit(f"{PREFERRED} is no longer in the SynapseX catalog: {sorted(catalog)}")How model choice affects cost and speed
In general terms, and without publishing an API price table:
- Larger context windows cost more per request for the same conversation, because you can — and usually do — send more tokens.
- Stronger reasoning models cost more per token and are slower; compact models are cheaper and faster.
The practical approach is to default to the smallest model that passes your
evaluation, and route only the hard requests to a stronger one. Because the API
is stateless, switching models is just changing the model field on the next
call.
Related
- Models reference — the six models verified in SynapseX
Chat, with their context windows and prices. That is the Chat catalog; check
the API catalog separately with
GET /modelsas described above. - Chat completions and streaming
- API errors and how to handle them