Bulk-replace the entire model catalogue
curl --request PUT \
--url https://{host}/v2/workspaces/slug:llm-gateway/webhooks/v1/models \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"models": [
{
"model_id": "<string>",
"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: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
models: [
{
model_id: '<string>',
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', 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 = { "models": [
{
"model_id": "<string>",
"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.put(url, json=payload, headers=headers)
print(response.text){
"deleted": 123,
"inserted": 123
}{
"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>"
}Models
Bulk-replace the entire model catalogue
Destructive. Deletes the entire models collection and inserts the provided list. Used by the platform Models page “Import” flow.
- Body must be
{ "models": [...] }(max 500 items). Each item must carry at leastmodel_idandtype. - Per-key cache (
global.models_cache) is fully invalidated. - Emits a
model.bulk_replacedaudit event. - Rate-limited: 5 calls per 3600 seconds per consumer
(
ModelsBulkReplace).
PUT
/
v1
/
models
Bulk-replace the entire model catalogue
curl --request PUT \
--url https://{host}/v2/workspaces/slug:llm-gateway/webhooks/v1/models \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"models": [
{
"model_id": "<string>",
"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: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
models: [
{
model_id: '<string>',
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', 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 = { "models": [
{
"model_id": "<string>",
"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.put(url, json=payload, headers=headers)
print(response.text){
"deleted": 123,
"inserted": 123
}{
"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
BearerAuthOrgApiKeyAuth
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
application/json
Replacement catalogue (max 500 items).
Maximum array length:
500Hide child attributes
Hide child attributes
Maximum string length:
128Available options:
completion, embeddings, image_generation Maximum string length:
64Maximum string length:
128Maximum string length:
64Was this page helpful?
⌘I