List every model on sale, with its prices in DA.
The catalogue routes are free and take an API key: Authorization: Bearer $OPENDUNES_API_KEY.
| Method | Path | Answers |
|---|---|---|
GET | /v1/models | every model on sale, with its prices in DA |
GET | /v1/models/count | how many models are on sale |
GET | /v1/model/{lab}/{model} | one model |
GET | /v1/models/user | the models this key may call — its allowed models and its guardrails applied |
GET | /v1/embeddings/models · /v1/images/models · /v1/videos/models | one model type's list — see Embeddings, Images, Video Generation |
The providers serving one model, each with its own price, are at /v1/models/{lab}/{model}/endpoints.
curl https://opendunes.com/v1/models \
-H "Authorization: Bearer $OPENDUNES_API_KEY"/v1/models and /v1/models/user list the models that answer in text by default. output_modalities picks others: a comma-separated list such as image, audio or embeddings, or all for every model on sale.
{
"data": [
{
"id": "anthropic/claude-sonnet-5",
"canonical_slug": "anthropic/claude-sonnet-5-20260630",
"hugging_face_id": null,
"name": "Anthropic: Claude Sonnet 5",
"created": 1782843083,
"description": "Sonnet 5 is Anthropic's most capable Sonnet-class model…",
"context_length": 1000000,
"architecture": {
"modality": "text+image+file->text",
"tokenizer": "Claude",
"instruct_type": null,
"input_modalities": ["text", "image", "file"],
"output_modalities": ["text"]
},
"pricing": {
"prompt": "0.000624",
"completion": "0.00312",
"web_search": "3.12",
"input_cache_read": "0.0000624",
"input_cache_write": "0.00078",
"input_cache_write_1h": "0.001248"
},
"top_provider": {
"is_moderated": true,
"context_length": 1000000,
"max_completion_tokens": 128000
},
"per_request_limits": null,
"supported_parameters": ["max_tokens", "reasoning", "response_format", "stop", "tool_choice", "tools"],
"default_parameters": { "temperature": null, "top_p": null },
"supported_voices": null,
"expiration_date": null,
"links": { "details": "/v1/models/anthropic/claude-sonnet-5/endpoints" },
"reasoning": {
"mandatory": false,
"default_effort": "medium",
"supported_efforts": ["max", "xhigh", "high", "medium", "low"]
}
}
]
}Every figure in pricing is in DA, as a string, per unit of its meter:
| Field | DA per |
|---|---|
prompt · completion | input · output token — 0.000624 is 624 DA per million input tokens |
input_cache_read · input_cache_write · input_cache_write_1h | cached input token read · written |
web_search | search |
internal_reasoning · image · image_output · audio · audio_output · video_second · song · search … | the unit of that meter, where the model has it |
Only the meters a model has appear. output_modalities takes text, image, audio, video, speech, transcription, embeddings, rerank and decisions. A model's page at /models shows the same prices.
curl https://opendunes.com/v1/models/count \
-H "Authorization: Bearer $OPENDUNES_API_KEY"{ "data": { "count": 432 } }curl https://opendunes.com/v1/model/anthropic/claude-sonnet-5 \
-H "Authorization: Bearer $OPENDUNES_API_KEY"Answers { "data": { … } } with the same object as the list. A model that is not on sale is a 404.