> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nedzo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a custom action

> Change a custom action. Send only the fields to change.

> [!NOTE]
>
> This endpoint is for the VIP plan only. Other plans get a `403`. See [Plan access](https://docs.nedzo.ai/api-reference/introduction.md#plan-access).

Send only the fields to change.

## Path Parameters

**id** `string` *required*

Custom action UUID

## Body

**name** `string`

The action's name.

**condition** `string`

When the agent should use it.

**method** `string`

`GET`, `POST`, `PUT`, `PATCH` or `DELETE`.

**url** `string`

Your endpoint. It must be a public address. We refuse private and internal addresses.

**parameters** `object[]`

What the agent fills in from the conversation. Each has `name`, `description`, `type` (`string`, `number` or `boolean`) and `required`.

**isActive** `boolean`

Whether agents can use it.

**headers** `object`

Headers to send with every call. This replaces all headers. A name may only use letters, digits and `!#$%&'*+-.^_`|\~`, a value can't hold a line break, and you can't set `Host`, `Content-Length`, `Transfer-Encoding`or`Connection`.</ParamField> <ParamField body="authType" type="string">`bearer`, `api\_key`or`basic`. Send `null`to remove the auth.</ParamField> <ParamField body="authValue" type="string">The secret for`authType`. Needed when you set `authType\` for the first time.

> [!WARNING]
>
> `authValue` and header values are write only. We never send them back. A response shows `hasAuth` and the header names.

If you change `url` to another address (a different host, http or https, or port), send `authValue` and `headers` again in the same request, or set `authType` to `null` and `headers` to `{}` to remove them. The saved ones stay with the old address, and we refuse the change with a `400`.

```bash cURL theme={null}
curl -X PATCH "https://api.nedzo.ai/v1/custom-actions/5a3c1e2b-8d7f-4b6a-9c0e-1f2a3b4c5d6e" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{ "condition": "The caller gives a zip code" }'
```

```json Response theme={null}
{
  "id": "5a3c1e2b-8d7f-4b6a-9c0e-1f2a3b4c5d6e",
  "workspaceId": "789e4567-e89b-12d3-a456-426614174000",
  "name": "Check zip code",
  "condition": "The caller gives a zip code",
  "method": "POST",
  "url": "https://example.com/coverage",
  "parameters": [{ "name": "zip", "type": "string", "required": true }],
  "isActive": true,
  "authType": "bearer",
  "hasAuth": true,
  "headerNames": ["X-Team"],
  "createdAt": "2026-10-11T10:00:00Z",
  "updatedAt": "2026-10-11T10:00:00Z"
}
```

## Errors

| Status | When |
| - | - |
| `400` | A field is wrong, the URL is not a public address, `authType` came without `authValue`, a header is not allowed, or `url` moved to another address without the auth and headers. |
| `404` | The action is not in your API key's scope. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.