> For the complete documentation index, see [llms.txt](https://api-docs.helloaviary.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://api-docs.helloaviary.ai/actions.md).

# Actions

Internal-only CRUD for `configured_actions` — the per-client instantiations of an entry in the `action_definitions` catalog. Create/update validate `action_params` against the linked definition's `params_schema` (JSON Schema).

## List configured actions (internal)

> Lists \`configured\_actions\` rows. Both filters optional. When\
> \`use\_case\_id\` is set the query joins through \`action\_attachments\`\
> and DISTINCTs by configured\_action.id so a re-attached action only\
> shows up once.<br>

```json
{"openapi":"3.0.3","info":{"title":"Aviary v1 API (merged — Osprey v1 + legacy clientApi)","version":"1.0.0"},"tags":[{"name":"Actions","description":"Internal-only CRUD for `configured_actions` — the per-client\ninstantiations of an entry in the `action_definitions` catalog.\nCreate/update validate `action_params` against the linked\ndefinition's `params_schema` (JSON Schema).\n"},{"name":"Internal","description":"Internal-only endpoints. Forbidden for external client keys."}],"servers":[{"url":"https://osprey.helloaviary.com/api","description":"Production"},{"url":"https://osprey-dev.helloaviary.com/api","description":"Development"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"API key for authentication"}},"parameters":{"Limit":{"name":"limit","in":"query","required":false,"description":"Page size (1-500). Default 50.","schema":{"type":"integer","minimum":1,"maximum":500,"default":50}},"Cursor":{"name":"cursor","in":"query","required":false,"description":"Opaque cursor returned in `meta.page.next_cursor` from the previous page.\nCurrently the last id of the previous page; treat as opaque.\n","schema":{"type":"string"}}},"schemas":{"ConfiguredActionInternalListResponse":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ConfiguredActionInternal"}},"meta":{"$ref":"#/components/schemas/ListMeta"}}},"ConfiguredActionInternal":{"type":"object","required":["id","external_id","client_id","action_definition_id","name","status","is_post_call","action_params","created_at","updated_at"],"description":"Full internal projection of a `configured_actions` row.","properties":{"id":{"type":"integer","format":"int64"},"external_id":{"type":"string","format":"uuid"},"client_id":{"type":"integer","format":"int64"},"action_definition_id":{"type":"integer","format":"int64"},"name":{"type":"string"},"status":{"type":"string","description":"e.g. \"draft\", \"live\", \"paused\"."},"description":{"type":"string","nullable":true},"is_post_call":{"type":"boolean"},"monitor_required":{"type":"string","nullable":true},"value_required":{"type":"boolean","nullable":true},"action_params":{"nullable":true,"description":"Free-form JSONB that must satisfy the linked action_definitions.params_schema."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"action_definition":{"allOf":[{"$ref":"#/components/schemas/ActionDefinitionInternal"}],"nullable":true,"description":"Hydrated only when `?include=definition` is passed on the GET."}}},"ActionDefinitionInternal":{"type":"object","required":["id","external_id","action_name","display_name","type","category","integration_required"],"description":"Trimmed `action_definitions` projection returned alongside a\nconfigured action when `?include=definition` is set on the GET.\n","properties":{"id":{"type":"integer","format":"int64"},"external_id":{"type":"string","format":"uuid"},"action_name":{"type":"string"},"display_name":{"type":"string"},"type":{"type":"string"},"category":{"type":"string"},"description":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"output_variable_name":{"type":"string","nullable":true},"integration_required":{"type":"boolean"},"integration_id":{"type":"integer","format":"int64","nullable":true},"params_schema":{"nullable":true,"description":"JSON Schema document used to validate action_params on POST/PATCH."}}},"ListMeta":{"type":"object","required":["request_id","page"],"properties":{"request_id":{"type":"string","format":"uuid"},"page":{"$ref":"#/components/schemas/PageInfo"}}},"PageInfo":{"type":"object","required":["limit"],"properties":{"limit":{"type":"integer"},"next_cursor":{"type":"string","description":"Pass back as `?cursor=` to get the next page. Absent on the last page."}}},"ErrorEnvelope":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"$ref":"#/components/schemas/ErrorCode"},"message":{"type":"string"},"request_id":{"type":"string","format":"uuid"}}}}},"ErrorCode":{"type":"string","enum":["bad_request","unauthorized","forbidden","not_found","conflict","internal_error","field_not_editable","call_already_started"]}}},"paths":{"/internal/v1/actions":{"get":{"summary":"List configured actions (internal)","description":"Lists `configured_actions` rows. Both filters optional. When\n`use_case_id` is set the query joins through `action_attachments`\nand DISTINCTs by configured_action.id so a re-attached action only\nshows up once.\n","operationId":"listActionsInternalV1","tags":["Actions","Internal"],"parameters":[{"name":"client_id","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"use_case_id","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Cursor"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfiguredActionInternalListResponse"}}}},"400":{"description":"Bad filter input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"Missing or invalid X-Api-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"External key cannot reach internal scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}}}}
```

## Create a configured action (internal)

> Creates a \`configured\_actions\` row. \`action\_params\` must satisfy\
> the target action\_definition's \`params\_schema\`. Validation\
> failures return 400 with code \`invalid\_action\_params\` and a\
> message that includes the validator's failure tree.<br>

```json
{"openapi":"3.0.3","info":{"title":"Aviary v1 API (merged — Osprey v1 + legacy clientApi)","version":"1.0.0"},"tags":[{"name":"Actions","description":"Internal-only CRUD for `configured_actions` — the per-client\ninstantiations of an entry in the `action_definitions` catalog.\nCreate/update validate `action_params` against the linked\ndefinition's `params_schema` (JSON Schema).\n"},{"name":"Internal","description":"Internal-only endpoints. Forbidden for external client keys."}],"servers":[{"url":"https://osprey.helloaviary.com/api","description":"Production"},{"url":"https://osprey-dev.helloaviary.com/api","description":"Development"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"API key for authentication"}},"schemas":{"ConfiguredActionCreateRequest":{"type":"object","required":["client_id","action_definition_id","name","action_params"],"description":"Body for POST /internal/v1/actions. `action_params` must satisfy\nthe target action_definition's `params_schema`. Any field-level\nvalidation errors are reported with code `invalid_action_params`.\n","properties":{"client_id":{"type":"integer","format":"int64"},"action_definition_id":{"type":"integer","format":"int64"},"name":{"type":"string"},"action_params":{"description":"Free-form JSON that will be validated against params_schema."},"status":{"type":"string","default":"draft"},"description":{"type":"string","nullable":true},"is_post_call":{"type":"boolean","default":false},"monitor_required":{"type":"string","nullable":true},"value_required":{"type":"boolean","nullable":true}}},"ConfiguredActionInternalResponse":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ConfiguredActionInternal"},"meta":{"$ref":"#/components/schemas/Meta"}}},"ConfiguredActionInternal":{"type":"object","required":["id","external_id","client_id","action_definition_id","name","status","is_post_call","action_params","created_at","updated_at"],"description":"Full internal projection of a `configured_actions` row.","properties":{"id":{"type":"integer","format":"int64"},"external_id":{"type":"string","format":"uuid"},"client_id":{"type":"integer","format":"int64"},"action_definition_id":{"type":"integer","format":"int64"},"name":{"type":"string"},"status":{"type":"string","description":"e.g. \"draft\", \"live\", \"paused\"."},"description":{"type":"string","nullable":true},"is_post_call":{"type":"boolean"},"monitor_required":{"type":"string","nullable":true},"value_required":{"type":"boolean","nullable":true},"action_params":{"nullable":true,"description":"Free-form JSONB that must satisfy the linked action_definitions.params_schema."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"action_definition":{"allOf":[{"$ref":"#/components/schemas/ActionDefinitionInternal"}],"nullable":true,"description":"Hydrated only when `?include=definition` is passed on the GET."}}},"ActionDefinitionInternal":{"type":"object","required":["id","external_id","action_name","display_name","type","category","integration_required"],"description":"Trimmed `action_definitions` projection returned alongside a\nconfigured action when `?include=definition` is set on the GET.\n","properties":{"id":{"type":"integer","format":"int64"},"external_id":{"type":"string","format":"uuid"},"action_name":{"type":"string"},"display_name":{"type":"string"},"type":{"type":"string"},"category":{"type":"string"},"description":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"output_variable_name":{"type":"string","nullable":true},"integration_required":{"type":"boolean"},"integration_id":{"type":"integer","format":"int64","nullable":true},"params_schema":{"nullable":true,"description":"JSON Schema document used to validate action_params on POST/PATCH."}}},"Meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string","format":"uuid","description":"Unique ID for this request. Echoed in the `X-Request-ID` response\nheader. Send this back to support to debug a specific call.\n"}}},"ErrorEnvelope":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"$ref":"#/components/schemas/ErrorCode"},"message":{"type":"string"},"request_id":{"type":"string","format":"uuid"}}}}},"ErrorCode":{"type":"string","enum":["bad_request","unauthorized","forbidden","not_found","conflict","internal_error","field_not_editable","call_already_started"]}}},"paths":{"/internal/v1/actions":{"post":{"summary":"Create a configured action (internal)","description":"Creates a `configured_actions` row. `action_params` must satisfy\nthe target action_definition's `params_schema`. Validation\nfailures return 400 with code `invalid_action_params` and a\nmessage that includes the validator's failure tree.\n","operationId":"postActionInternalV1","tags":["Actions","Internal"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfiguredActionCreateRequest"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfiguredActionInternalResponse"}}}},"400":{"description":"Bad body, unknown action_definition_id, or params validation failure (`invalid_action_params`)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"Missing or invalid X-Api-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"External key cannot reach internal scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}}}}
```

## Get a configured action (internal)

> Returns the row by id. Pass \`?include=definition\` to hydrate the\
> linked action\_definition into the response so callers don't need\
> a follow-up call to render an admin UI.<br>

```json
{"openapi":"3.0.3","info":{"title":"Aviary v1 API (merged — Osprey v1 + legacy clientApi)","version":"1.0.0"},"tags":[{"name":"Actions","description":"Internal-only CRUD for `configured_actions` — the per-client\ninstantiations of an entry in the `action_definitions` catalog.\nCreate/update validate `action_params` against the linked\ndefinition's `params_schema` (JSON Schema).\n"},{"name":"Internal","description":"Internal-only endpoints. Forbidden for external client keys."}],"servers":[{"url":"https://osprey.helloaviary.com/api","description":"Production"},{"url":"https://osprey-dev.helloaviary.com/api","description":"Development"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"API key for authentication"}},"schemas":{"ConfiguredActionInternalResponse":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ConfiguredActionInternal"},"meta":{"$ref":"#/components/schemas/Meta"}}},"ConfiguredActionInternal":{"type":"object","required":["id","external_id","client_id","action_definition_id","name","status","is_post_call","action_params","created_at","updated_at"],"description":"Full internal projection of a `configured_actions` row.","properties":{"id":{"type":"integer","format":"int64"},"external_id":{"type":"string","format":"uuid"},"client_id":{"type":"integer","format":"int64"},"action_definition_id":{"type":"integer","format":"int64"},"name":{"type":"string"},"status":{"type":"string","description":"e.g. \"draft\", \"live\", \"paused\"."},"description":{"type":"string","nullable":true},"is_post_call":{"type":"boolean"},"monitor_required":{"type":"string","nullable":true},"value_required":{"type":"boolean","nullable":true},"action_params":{"nullable":true,"description":"Free-form JSONB that must satisfy the linked action_definitions.params_schema."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"action_definition":{"allOf":[{"$ref":"#/components/schemas/ActionDefinitionInternal"}],"nullable":true,"description":"Hydrated only when `?include=definition` is passed on the GET."}}},"ActionDefinitionInternal":{"type":"object","required":["id","external_id","action_name","display_name","type","category","integration_required"],"description":"Trimmed `action_definitions` projection returned alongside a\nconfigured action when `?include=definition` is set on the GET.\n","properties":{"id":{"type":"integer","format":"int64"},"external_id":{"type":"string","format":"uuid"},"action_name":{"type":"string"},"display_name":{"type":"string"},"type":{"type":"string"},"category":{"type":"string"},"description":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"output_variable_name":{"type":"string","nullable":true},"integration_required":{"type":"boolean"},"integration_id":{"type":"integer","format":"int64","nullable":true},"params_schema":{"nullable":true,"description":"JSON Schema document used to validate action_params on POST/PATCH."}}},"Meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string","format":"uuid","description":"Unique ID for this request. Echoed in the `X-Request-ID` response\nheader. Send this back to support to debug a specific call.\n"}}},"ErrorEnvelope":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"$ref":"#/components/schemas/ErrorCode"},"message":{"type":"string"},"request_id":{"type":"string","format":"uuid"}}}}},"ErrorCode":{"type":"string","enum":["bad_request","unauthorized","forbidden","not_found","conflict","internal_error","field_not_editable","call_already_started"]}}},"paths":{"/internal/v1/actions/{id}":{"get":{"summary":"Get a configured action (internal)","description":"Returns the row by id. Pass `?include=definition` to hydrate the\nlinked action_definition into the response so callers don't need\na follow-up call to render an admin UI.\n","operationId":"getActionInternalV1","tags":["Actions","Internal"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"include","in":"query","required":false,"description":"Comma-separated list of relations to hydrate. Currently only \"definition\" is supported.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfiguredActionInternalResponse"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"Missing or invalid X-Api-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"External key cannot reach internal scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}}}}
```

## Delete a configured action (internal, soft delete)

> Soft-deletes the row by setting \`deleted\_at\` (matches the GORM\
> soft-delete column on \`configured\_actions\`). The associated\
> \`action\_attachments\` are NOT pruned — that's a separate ops\
> decision and would otherwise risk silently breaking active calls.<br>

```json
{"openapi":"3.0.3","info":{"title":"Aviary v1 API (merged — Osprey v1 + legacy clientApi)","version":"1.0.0"},"tags":[{"name":"Actions","description":"Internal-only CRUD for `configured_actions` — the per-client\ninstantiations of an entry in the `action_definitions` catalog.\nCreate/update validate `action_params` against the linked\ndefinition's `params_schema` (JSON Schema).\n"},{"name":"Internal","description":"Internal-only endpoints. Forbidden for external client keys."}],"servers":[{"url":"https://osprey.helloaviary.com/api","description":"Production"},{"url":"https://osprey-dev.helloaviary.com/api","description":"Development"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"API key for authentication"}},"schemas":{"ErrorEnvelope":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"$ref":"#/components/schemas/ErrorCode"},"message":{"type":"string"},"request_id":{"type":"string","format":"uuid"}}}}},"ErrorCode":{"type":"string","enum":["bad_request","unauthorized","forbidden","not_found","conflict","internal_error","field_not_editable","call_already_started"]}}},"paths":{"/internal/v1/actions/{id}":{"delete":{"summary":"Delete a configured action (internal, soft delete)","description":"Soft-deletes the row by setting `deleted_at` (matches the GORM\nsoft-delete column on `configured_actions`). The associated\n`action_attachments` are NOT pruned — that's a separate ops\ndecision and would otherwise risk silently breaking active calls.\n","operationId":"deleteActionInternalV1","tags":["Actions","Internal"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"Missing or invalid X-Api-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"External key cannot reach internal scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}}}}
```

## Update a configured action (internal)

> Partial update. Touching \`action\_params\` OR \`action\_definition\_id\`\
> re-validates against the (possibly new) \`params\_schema\`. Returns\
> \`invalid\_action\_params\` (400) on schema failure.<br>

```json
{"openapi":"3.0.3","info":{"title":"Aviary v1 API (merged — Osprey v1 + legacy clientApi)","version":"1.0.0"},"tags":[{"name":"Actions","description":"Internal-only CRUD for `configured_actions` — the per-client\ninstantiations of an entry in the `action_definitions` catalog.\nCreate/update validate `action_params` against the linked\ndefinition's `params_schema` (JSON Schema).\n"},{"name":"Internal","description":"Internal-only endpoints. Forbidden for external client keys."}],"servers":[{"url":"https://osprey.helloaviary.com/api","description":"Production"},{"url":"https://osprey-dev.helloaviary.com/api","description":"Development"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"API key for authentication"}},"schemas":{"ConfiguredActionPatchRequest":{"type":"object","description":"Body for PATCH /internal/v1/actions/:id. Empty body returns 400.\nUnknown top-level keys return 400 `field_not_editable`. Touching\neither `action_params` OR `action_definition_id` re-validates the\nparams against the (possibly new) definition.\n","properties":{"name":{"type":"string"},"status":{"type":"string"},"description":{"type":"string","nullable":true},"action_definition_id":{"type":"integer","format":"int64"},"action_params":{"description":"Free-form JSON that will be validated against the (possibly new) params_schema."},"is_post_call":{"type":"boolean"},"monitor_required":{"type":"string","nullable":true},"value_required":{"type":"boolean","nullable":true}}},"ConfiguredActionInternalResponse":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/ConfiguredActionInternal"},"meta":{"$ref":"#/components/schemas/Meta"}}},"ConfiguredActionInternal":{"type":"object","required":["id","external_id","client_id","action_definition_id","name","status","is_post_call","action_params","created_at","updated_at"],"description":"Full internal projection of a `configured_actions` row.","properties":{"id":{"type":"integer","format":"int64"},"external_id":{"type":"string","format":"uuid"},"client_id":{"type":"integer","format":"int64"},"action_definition_id":{"type":"integer","format":"int64"},"name":{"type":"string"},"status":{"type":"string","description":"e.g. \"draft\", \"live\", \"paused\"."},"description":{"type":"string","nullable":true},"is_post_call":{"type":"boolean"},"monitor_required":{"type":"string","nullable":true},"value_required":{"type":"boolean","nullable":true},"action_params":{"nullable":true,"description":"Free-form JSONB that must satisfy the linked action_definitions.params_schema."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"action_definition":{"allOf":[{"$ref":"#/components/schemas/ActionDefinitionInternal"}],"nullable":true,"description":"Hydrated only when `?include=definition` is passed on the GET."}}},"ActionDefinitionInternal":{"type":"object","required":["id","external_id","action_name","display_name","type","category","integration_required"],"description":"Trimmed `action_definitions` projection returned alongside a\nconfigured action when `?include=definition` is set on the GET.\n","properties":{"id":{"type":"integer","format":"int64"},"external_id":{"type":"string","format":"uuid"},"action_name":{"type":"string"},"display_name":{"type":"string"},"type":{"type":"string"},"category":{"type":"string"},"description":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"output_variable_name":{"type":"string","nullable":true},"integration_required":{"type":"boolean"},"integration_id":{"type":"integer","format":"int64","nullable":true},"params_schema":{"nullable":true,"description":"JSON Schema document used to validate action_params on POST/PATCH."}}},"Meta":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string","format":"uuid","description":"Unique ID for this request. Echoed in the `X-Request-ID` response\nheader. Send this back to support to debug a specific call.\n"}}},"ErrorEnvelope":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"$ref":"#/components/schemas/ErrorCode"},"message":{"type":"string"},"request_id":{"type":"string","format":"uuid"}}}}},"ErrorCode":{"type":"string","enum":["bad_request","unauthorized","forbidden","not_found","conflict","internal_error","field_not_editable","call_already_started"]}}},"paths":{"/internal/v1/actions/{id}":{"patch":{"summary":"Update a configured action (internal)","description":"Partial update. Touching `action_params` OR `action_definition_id`\nre-validates against the (possibly new) `params_schema`. Returns\n`invalid_action_params` (400) on schema failure.\n","operationId":"patchActionInternalV1","tags":["Actions","Internal"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfiguredActionPatchRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfiguredActionInternalResponse"}}}},"400":{"description":"Bad body, unknown field, or params validation failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"401":{"description":"Missing or invalid X-Api-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"403":{"description":"External key cannot reach internal scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://api-docs.helloaviary.ai/actions.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
