curl --request PATCH \
--url https://{host}/v2/workspaces/slug:llm-gateway/webhooks/v1/models/{modelId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"display": {},
"capabilities": {},
"limits": {},
"failover": "<string>",
"region": "<string>",
"dimensions": "<unknown>",
"supported_dimensions": "<unknown>",
"metrics": "<unknown>",
"provider_config": "<unknown>",
"pricing": "<unknown>",
"tags": "<unknown>",
"org_slugs": "<unknown>",
"enabled": "<unknown>"
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
display: {},
capabilities: {},
limits: {},
failover: '<string>',
region: '<string>',
dimensions: '<unknown>',
supported_dimensions: '<unknown>',
metrics: '<unknown>',
provider_config: '<unknown>',
pricing: '<unknown>',
tags: '<unknown>',
org_slugs: '<unknown>',
enabled: '<unknown>'
})
};
fetch('https://{host}/v2/workspaces/slug:llm-gateway/webhooks/v1/models/{modelId}', 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/{modelId}"
payload = {
"display": {},
"capabilities": {},
"limits": {},
"failover": "<string>",
"region": "<string>",
"dimensions": "<unknown>",
"supported_dimensions": "<unknown>",
"metrics": "<unknown>",
"provider_config": "<unknown>",
"pricing": "<unknown>",
"tags": "<unknown>",
"org_slugs": "<unknown>",
"enabled": "<unknown>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(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>"
}Update a model
Partial update - only fields present in the request body are applied.
Updatable fields: type, display, capabilities, limits,
failover, region, dimensions, supported_dimensions, metrics,
provider_config, tags, enabled, pricing, org_slugs. Emits a
model.updated audit event and invalidates the per-key cache.
curl --request PATCH \
--url https://{host}/v2/workspaces/slug:llm-gateway/webhooks/v1/models/{modelId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"display": {},
"capabilities": {},
"limits": {},
"failover": "<string>",
"region": "<string>",
"dimensions": "<unknown>",
"supported_dimensions": "<unknown>",
"metrics": "<unknown>",
"provider_config": "<unknown>",
"pricing": "<unknown>",
"tags": "<unknown>",
"org_slugs": "<unknown>",
"enabled": "<unknown>"
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
display: {},
capabilities: {},
limits: {},
failover: '<string>',
region: '<string>',
dimensions: '<unknown>',
supported_dimensions: '<unknown>',
metrics: '<unknown>',
provider_config: '<unknown>',
pricing: '<unknown>',
tags: '<unknown>',
org_slugs: '<unknown>',
enabled: '<unknown>'
})
};
fetch('https://{host}/v2/workspaces/slug:llm-gateway/webhooks/v1/models/{modelId}', 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/{modelId}"
payload = {
"display": {},
"capabilities": {},
"limits": {},
"failover": "<string>",
"region": "<string>",
"dimensions": "<unknown>",
"supported_dimensions": "<unknown>",
"metrics": "<unknown>",
"provider_config": "<unknown>",
"pricing": "<unknown>",
"tags": "<unknown>",
"org_slugs": "<unknown>",
"enabled": "<unknown>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(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>"
}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).
Path Parameters
Identifier of the model document. Model IDs may contain forward
slashes (e.g. bedrock/anthropic.claude-3-haiku,
eu.anthropic.claude-sonnet-4-20250514-v1:0); the workspace router
declares this parameter as a catch-all so consumers SHOULD send the
slashes unencoded in the path.
Body
Partial-update shape for PATCH /v1/models/{modelId}. Only fields
present in the body are applied. model_id is taken from the path,
not the body.
completion, embeddings, image_generation 6412864Response
Updated model 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?