curl --request POST \
--url https://{host}/v2/workspaces/slug:llm-gateway/webhooks/v1/models \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model_id": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({model_id: '<string>'})
};
fetch('https://{host}/v2/workspaces/slug:llm-gateway/webhooks/v1/models', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{host}/v2/workspaces/slug:llm-gateway/webhooks/v1/models"
payload = { "model_id": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"model_id": "<string>",
"type": "completion",
"display": {
"name": "<string>",
"brand": "<string>",
"hidden": true
},
"capabilities": {
"vision": true,
"audio": true,
"text": true,
"image": true
},
"limits": {},
"failover": "<string>",
"region": "<string>",
"dimensions": "<unknown>",
"supported_dimensions": [
123
],
"metrics": "<unknown>",
"provider_config": {},
"pricing": {
"input_per_1m_tokens": 123,
"output_per_1m_tokens": 123
},
"tags": [
"<string>"
],
"org_slugs": [
"<string>"
],
"enabled": true
}{
"error": "<string>",
"message": "<string>",
"code": "<string>",
"details": {},
"status": 123,
"retryAfter": 123,
"provider": "<string>",
"model": "<string>",
"provider_error_type": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>",
"details": {},
"status": 123,
"retryAfter": 123,
"provider": "<string>",
"model": "<string>",
"provider_error_type": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>",
"details": {},
"status": 123,
"retryAfter": 123,
"provider": "<string>",
"model": "<string>",
"provider_error_type": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>",
"details": {},
"status": 123,
"retryAfter": 123,
"provider": "<string>",
"model": "<string>",
"provider_error_type": "<string>"
}Create a model in the catalogue
Inserts a new model entry. model_id and type are required. Returns
409 if a model with the same model_id already exists.
curl --request POST \
--url https://{host}/v2/workspaces/slug:llm-gateway/webhooks/v1/models \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model_id": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({model_id: '<string>'})
};
fetch('https://{host}/v2/workspaces/slug:llm-gateway/webhooks/v1/models', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{host}/v2/workspaces/slug:llm-gateway/webhooks/v1/models"
payload = { "model_id": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"model_id": "<string>",
"type": "completion",
"display": {
"name": "<string>",
"brand": "<string>",
"hidden": true
},
"capabilities": {
"vision": true,
"audio": true,
"text": true,
"image": true
},
"limits": {},
"failover": "<string>",
"region": "<string>",
"dimensions": "<unknown>",
"supported_dimensions": [
123
],
"metrics": "<unknown>",
"provider_config": {},
"pricing": {
"input_per_1m_tokens": 123,
"output_per_1m_tokens": 123
},
"tags": [
"<string>"
],
"org_slugs": [
"<string>"
],
"enabled": true
}{
"error": "<string>",
"message": "<string>",
"code": "<string>",
"details": {},
"status": 123,
"retryAfter": 123,
"provider": "<string>",
"model": "<string>",
"provider_error_type": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>",
"details": {},
"status": 123,
"retryAfter": 123,
"provider": "<string>",
"model": "<string>",
"provider_error_type": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>",
"details": {},
"status": 123,
"retryAfter": 123,
"provider": "<string>",
"model": "<string>",
"provider_error_type": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>",
"details": {},
"status": 123,
"retryAfter": 123,
"provider": "<string>",
"model": "<string>",
"provider_error_type": "<string>"
}Authorizations
User-bound credential carrying an identity: either a session JWT
or a user access token (at:*) generated from the user settings UI.
Send as Authorization: Bearer <token>.
Org API keys (iak_*) are not accepted here - they carry
no user identity. Use the x-prismeai-api-key header instead
(see OrgApiKeyAuth).
Body
Write-shape for POST /v1/models and each item of PUT /v1/models.
model_id and type are required.
128completion, embeddings, image_generation 6412864Response
Model created. Returns the inserted document.
Model catalogue document. The catalogue is the source of truth for provider routing, capabilities, pricing, and per-org availability.
Stable identifier (matches the value sent in request.model).
128Model family.
completion, embeddings, image_generation 64Provider-side limits (e.g. context window, max tokens).
Optional model_id to route to when the primary fails.
128Hosting region (free-text).
64Default embedding dimensionality (embeddings models only).
Allowed values for the request dimensions parameter.
Free-form metrics block (latency, throughput hints, …).
Provider-specific configuration (batch size, parallelism, …).
Free-form tags used by the search/filter UI.
When set and non-empty, restricts the model to the listed organizations. Empty / missing means the model is available to all orgs (subject to governance overlays).
When false, the model is hidden from routing.
Was this page helpful?