---
title: "Update AI Config"
method: PATCH
path: "/api/v2/projects/{projectKey}/ai-configs/{configKey}"
tags: ["AI Configs (beta)"]
---

# Update AI Config

`PATCH /api/v2/projects/{projectKey}/ai-configs/{configKey}`

Edit an existing AI Config.

The request body must be a JSON object of the fields to update. The values you include replace the existing values for the fields.

Here's an example:
  ```
    {
      "description": "Example updated description",
      "tags": ["new-tag"]
    }
  ```

## Path parameters

- `projectKey` string, required
- `configKey` string, required

## Headers

- `LD-API-Version` 'beta', required

## Request body

- AIConfigPatch
  - `description` string
  - `maintainerId` string
  - `maintainerTeamKey` string
  - `name` string
  - `tags` string[]

## Response `200`

AI Config updated

- AIConfig
  - `_access` AiConfigsAccess
    - `denied` AiConfigsAccessDenied[], required
      - `action` string, required
      - `reason` AiConfigsAccessDeniedReason, required
        - `resources` string[] — Resource specifier strings
        - `notResources` string[] — Targeted resources are the resources NOT in this list. The <code>resources</code> and <code>notActions</code> fields must be empty to use this field.
        - `actions` ActionSpecifier[] — Actions to perform on a resource
        - `notActions` ActionSpecifier[] — Targeted actions are the actions NOT in this list. The <code>actions</code> and <code>notResources</code> fields must be empty to use this field.
        - `effect` 'allow' | 'deny', required — Whether this statement should allow or deny actions on the resources.
        - `role_name` string
    - `allowed` AiConfigsAccessAllowedRep[], required
      - `action` string, required
      - `reason` AiConfigsAccessAllowedReason, required
        - `resources` string[] — Resource specifier strings
        - `notResources` string[] — Targeted resources are the resources NOT in this list. The <code>resources</code> and <code>notActions</code> fields must be empty to use this field.
        - `actions` ActionSpecifier[] — Actions to perform on a resource
        - `notActions` ActionSpecifier[] — Targeted actions are the actions NOT in this list. The <code>actions</code> and <code>notResources</code> fields must be empty to use this field.
        - `effect` 'allow' | 'deny', required — Whether this statement should allow or deny actions on the resources.
        - `role_name` string
  - `_links` ParentAndSelfLinks — The location and content type of related resources
    - `self` CoreLink, required
      - `href` string, required
      - `type` string, required
    - `parent` CoreLink, required
      - `href` string, required
      - `type` string, required
  - `description` string, required
  - `key` string, required
  - `_maintainer` union
    - object
      - `_id` string, required
      - `email` string, required
      - `firstName` string
      - `lastName` string
      - `role` string, required
      - `kind` string, required
    - object
      - `key` string, required
      - `name` string, required
      - `kind` string, required
  - `mode` 'agent' | 'completion'
  - `name` string, required
  - `tags` string[], required
  - `version` integer, required
  - `variations` AIConfigVariation[], required
    - `_links` ParentLink
      - `parent` CoreLink, required
        - `href` string, required
        - `type` string, required
    - `color` string
    - `comment` string
    - `description` string — Returns the description for the agent. This is only returned for agent variations.
    - `instructions` string — Returns the instructions for the agent. This is only returned for agent variations.
    - `key` string, required
    - `_id` string, required
    - `messages` Message[]
      - `content` string, required
      - `role` string, required
    - `model` object, required
    - `modelConfigKey` string
    - `name` string, required
    - `createdAt` integer, required
    - `version` integer, required
    - `state` string
    - `_archivedAt` integer
    - `_publishedAt` integer
  - `createdAt` integer, required
  - `updatedAt` integer, required

## Other responses

- `400` — Bad request
- `403` — Forbidden
- `404` — Not found
- `500` — Internal server error

## Changes

- **2025-07-08** `b2724c5174d1` — 1 breaking, 4 info
  - the response property `variations/items/messages` became optional for the status `200`
  - added the optional property `mode` to the response with the `200` status
  - added the optional property `variations/items/description` to the response with the `200` status
  - added the optional property `variations/items/instructions` to the response with the `200` status
  - …1 more

[Change history](https://skmtc.dev/launchdarkly/apis/launchdarkly-rest-api/changes/api/v2/projects/:projectKey/ai-configs/:configKey/patch.md)

---

[API](https://skmtc.dev/launchdarkly/apis/launchdarkly-rest-api.md) · [All operations](https://skmtc.dev/launchdarkly/apis/launchdarkly-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/launchdarkly/launchdarkly-rest-api/revisions/b2724c5174d1/schema)
