LLM Registry

Operations of the LLM Registry API. Paths are relative to your deployment's API host.

POST /api/llm-registry-api/model-config/preview

Preview which model a lane resolves to in an organisation Space (org admin)

Authentication: bearer token (Authorization: Bearer <token>)

Request body: application/json PreviewModelResolutionDto

StatusDescriptionBody
200application/json ModelResolutionPreviewResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

POST /api/llm-registry-api/model-config/resolve

Resolve the model for one invocation, in a given Space (internal)

Authentication: bearer token (Authorization: Bearer <token>)

Request body: application/json ResolveModelForInvocationDto

StatusDescriptionBody
200application/json ResolvedPhaseConfigDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

GET /api/llm-registry-api/models

List the organisation's models across its providers, each with its provider and whether resolution would serve it

Authentication: bearer token (Authorization: Bearer <token>)

StatusDescriptionBody
200application/json ListedModelResponseDtoDataArrayEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

GET /api/llm-registry-api/models/{id}

Get a model by id (org-scoped, across providers)

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
200application/json ModelResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

DELETE /api/llm-registry-api/models/{id}

Delete a model by id (org-scoped, across providers)

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
idpathstringyes
confirmquerystringnoWhen true, rules and org default models that still point at the deleted models are removed with them. Absent or false refuses a delete that has such dependants (409) and answers with the impact counts.
StatusDescriptionBody
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

PATCH /api/llm-registry-api/models/{modelId}

Update a model (toggle active, change display name, etc.)

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
modelIdpathstringyes

Request body: application/json UpdateModelDto

StatusDescriptionBody
200application/json ModelResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

PUT /api/llm-registry-api/models/{modelId}/retirement

Retire a model from an instant, optionally naming the successor resolutions use instead

For a model under the organisation's own provider; a platform-catalogue model is refused 403 MODEL_RETIREMENT_PLATFORM_MODEL, an unknown one 404. From retiresAt on, every resolution that would pick the model resolves to successorModelId and records the substitution (retirement, reason model-retired); with no successor it is refused with MODEL_RETIRED_NO_SUCCESSOR. Answers 422 MODEL_RETIREMENT_SUCCESSOR_IS_SELF, MODEL_RETIREMENT_SUCCESSOR_CYCLE, MODEL_RETIREMENT_SUCCESSOR_RETIRED, MODEL_RETIREMENT_SUCCESSOR_NOT_SERVED or MODEL_RETIREMENT_SUCCESSOR_CHAIN_TOO_LONG; nothing is written.

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
modelIdpathstringyes

Request body: application/json SetModelRetirementDto

StatusDescriptionBody
200application/json ModelResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

DELETE /api/llm-registry-api/models/{modelId}/retirement

Clear a model's retirement (instant and successor)

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
modelIdpathstringyes
StatusDescriptionBody
200application/json ModelResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

GET /api/llm-registry-api/projects/{projectId}/model-config/resolved

Get resolved model config for project (with defaults)

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
projectIdpathstringyes
StatusDescriptionBody
200application/json object
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

GET /api/llm-registry-api/providers

List LLM providers

Authentication: bearer token (Authorization: Bearer <token>)

StatusDescriptionBody
200application/json ProviderResponseDtoDataArrayEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

POST /api/llm-registry-api/providers

Create an LLM provider

Authentication: bearer token (Authorization: Bearer <token>)

Request body: application/json CreateProviderDto

StatusDescriptionBody
201application/json ProviderResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422The provider baseUrl is not admitted (PROVIDER_BASE_URL_NOT_ADMITTED) or the body failed validation (REQUEST_VALIDATION_FAILED).application/problem+json ProviderWriteRefusedProblemDto
500application/problem+json ProblemDetailsDto
503A policy needed to admit the request could not be read; nothing was sent.application/problem+json ProviderWriteUnavailableProblemDto

POST /api/llm-registry-api/providers/probe

Probe an unsaved provider endpoint for its model list (pre-create autofill)

Authentication: bearer token (Authorization: Bearer <token>)

Request body: application/json ProbeProviderDto

StatusDescriptionBody
200application/json ProviderProbeResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422The provider baseUrl is not admitted (PROVIDER_BASE_URL_NOT_ADMITTED), redirected (PROVIDER_BASE_URL_REDIRECTED) or the body failed validation (REQUEST_VALIDATION_FAILED).application/problem+json ProviderFetchBodyRefusedProblemDto
500application/problem+json ProblemDetailsDto
503A policy needed to admit the request could not be read; nothing was sent.application/problem+json ProviderEgressUnavailableProblemDto

GET /api/llm-registry-api/providers/{id}

Get LLM provider details

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
200application/json ProviderResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

PATCH /api/llm-registry-api/providers/{id}

Update an LLM provider

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
idpathstringyes

Request body: application/json UpdateProviderDto

StatusDescriptionBody
200application/json ProviderResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422The provider baseUrl is not admitted (PROVIDER_BASE_URL_NOT_ADMITTED) or the body failed validation (REQUEST_VALIDATION_FAILED).application/problem+json ProviderWriteRefusedProblemDto
500application/problem+json ProblemDetailsDto
503A policy needed to admit the request could not be read; nothing was sent.application/problem+json ProviderWriteUnavailableProblemDto

DELETE /api/llm-registry-api/providers/{id}

Delete an LLM provider

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
idpathstringyes
confirmquerystringnoWhen true, rules and org default models that still point at the deleted models are removed with them. Absent or false refuses a delete that has such dependants (409) and answers with the impact counts.
StatusDescriptionBody
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

GET /api/llm-registry-api/providers/{id}/deletion-impact

Get impact analysis before deleting a provider

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
200application/json ProviderDeletionImpactResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

POST /api/llm-registry-api/providers/{id}/test

Test LLM provider connectivity

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
idpathstringyes
StatusDescriptionBody
200application/json ProviderTestResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422The provider baseUrl is not admitted (PROVIDER_BASE_URL_NOT_ADMITTED) or redirected (PROVIDER_BASE_URL_REDIRECTED).application/problem+json ProviderFetchRefusedProblemDto
500application/problem+json ProblemDetailsDto
503A policy needed to admit the request could not be read; nothing was sent.application/problem+json ProviderEgressUnavailableProblemDto

GET /api/llm-registry-api/providers/{providerId}/models

List models on a provider

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
providerIdpathstringyes
StatusDescriptionBody
200application/json ModelResponseDtoDataArrayEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

POST /api/llm-registry-api/providers/{providerId}/models

Register a model on a provider

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
providerIdpathstringyes

Request body: application/json CreateModelDto

StatusDescriptionBody
201application/json ModelResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422application/problem+json ProblemDetailsDto
500application/problem+json ProblemDetailsDto

POST /api/llm-registry-api/providers/{providerId}/models/sync

Sync models from provider endpoint

Authentication: bearer token (Authorization: Bearer <token>)

ParameterInTypeRequiredDescription
providerIdpathstringyes
StatusDescriptionBody
200application/json SyncModelsResponseDtoDataEnvelope
400application/problem+json ProblemDetailsDto
401application/problem+json ProblemDetailsDto
403application/problem+json ProblemDetailsDto
404application/problem+json ProblemDetailsDto
409application/problem+json ProblemDetailsDto
422The provider baseUrl is not admitted (PROVIDER_BASE_URL_NOT_ADMITTED) or redirected (PROVIDER_BASE_URL_REDIRECTED).application/problem+json ProviderFetchRefusedProblemDto
500application/problem+json ProblemDetailsDto
503A policy needed to admit the request could not be read; nothing was sent.application/problem+json ProviderEgressUnavailableProblemDto