---
title: "Bulk upsert hooks"
method: PATCH
path: "/v1/hooks/bulk"
tags: ["Hooks"]
---

# Bulk upsert hooks

`PATCH /v1/hooks/bulk`

Creates or updates multiple hooks at once. The operation is transactional.

## Request body

- SchemasBulkUpsertHooksRequest
  - `configs` SchemasBulkHookConfig[], required
    - `failure_mode` 'fail_closed' | 'fail_open'
    - `hook_point` 'tool.access' | 'tool.pre' | 'tool.post', required
    - `phase` 'before' | 'after'
    - `plugin_id` string, required
    - `priority` integer
    - `status` 'inactive' | 'active'

## Response `200`

OK

- SchemasBulkUpsertHooksResponse
  - `failed` integer
  - `results` SchemasBulkHookResult[]
    - `action` string
    - `error` string
    - `hook_id` string
    - `hook_point` string
    - `plugin_id` string
  - `success` integer

## Other responses

- `400` — Bad Request
- `500` — Internal Server Error

## Changes

- **2026-01-24** `ba1aa76b5489` — 1 info
  - the `configs/items/priority` request property's min was decreased from `1.00` to `0.00`
- **2026-01-17** `26fe911710c2` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/arcadeai/apis/arcade-api/changes/v1/hooks/bulk/patch.md)

---

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