---
title: "update llm"
method: PUT
path: "/v1/llms/{id}"
tags: ["LLMs"]
---

# update llm

`PUT /v1/llms/{id}`

Update an LLM configuration

## Path parameters

- `id` string, required

## Request body

- object
  - `displayName` string
  - `description` string
  - `url` string
  - `llmFormat` 'openai' | 'azure_openai' | 'groq_openai' | 'anthropic' | 'custom'
  - `modelName` string
  - `secret` string
  - `metadata` object
  - `reasoningEffort` string, nullable — Reasoning effort for models that accept it. The value is forwarded verbatim to the provider/engine (e.g. default, none, minimal, low, medium, high, xhigh — supported values depend on the model). Set null to clear and use the model default.
  - `reasoningFormat` 'parsed' | 'hidden' | 'null', nullable — Groq reasoning format hint. Set null to clear and use the model default.

## Response `200`

Successfully updated LLM

- LLM — An LLM configuration a persona can use. Secrets are never returned.
  - `id` string, uuid — Unique identifier for the LLM configuration.
  - `displayName` string — Human-readable name shown in the Lab.
  - `description` string, nullable — Free-form description of the LLM configuration.
  - `llmFormat` 'openai' | 'azure_openai' | 'groq_openai' | 'gemini' | 'advanced_voice' | 'none' — Wire format used to call the upstream LLM.
  - `urls` LlmUrl[] — Endpoints configured for this LLM.
    - `url` string, uri — Upstream URL for the LLM endpoint.
    - `region` string — Region hint used to pick this URL when the persona is streamed from a specific region.
  - `modelName` string, nullable — Upstream model identifier (e.g. `gpt-4o`).
  - `temperature` number, nullable — Sampling temperature applied when calling the LLM.
  - `maxTokens` integer, nullable — Maximum tokens generated per response.
  - `deploymentName` string, nullable — Azure OpenAI deployment name. Only used when `llmFormat` is `azure_openai`.
  - `apiVersion` string, nullable — Azure OpenAI API version. Only used when `llmFormat` is `azure_openai`.
  - `metadata` object — Free-form provider-specific metadata.
  - `displayTags` string[] — Tags used to categorise the LLM in the Lab UI.
  - `isDefault` boolean — Whether this LLM is a built-in default available to every organization.
  - `isGlobal` boolean — Whether this LLM is visible to every organization.
  - `isZdr` boolean — Whether this LLM meets the Zero Data Retention requirements.
  - `isDeprecated` boolean — Whether this stock LLM is deprecated. Deprecated LLMs remain available to ephemeral sessions but cannot be newly assigned to personas.
  - `reasoningEffort` string, nullable — Reasoning effort hint for models that accept it. Forwarded verbatim to the provider/engine; supported values depend on the model. Null means the model default is used.
  - `reasoningFormat` 'parsed' | 'hidden' | 'null', nullable — Reasoning format hint for models that accept it. Null means the model default is used.
  - `createdByOrganizationId` string, nullable — ID of the organization that created the LLM, or `null` for global defaults. IDs may be either UUIDs or nanoid-style strings depending on when the organization was created.
  - `createdAt` string, date-time — Timestamp when the LLM was created.
  - `updatedAt` string, date-time, nullable — Timestamp when the LLM was last updated.

## Other responses

- `400` — Bad request - Invalid LLM data
- `401` — Unauthorized - Invalid or missing API key
- `403` — Forbidden - Cannot update default LLMs or API key lacks the required permission
- `404` — LLM not found
- `500` — Server error

---

[API](https://skmtc.net/anam/apis/anam-ai-api.md) · [All operations](https://skmtc.net/anam/apis/anam-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/anam/anam-ai-api/revisions/dae97e8eb063/schema)
