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

# Bulk upsert hooks

`PATCH /v1/orgs/{org_id}/hooks/bulk`

## Request

- Base URL: `https://api.arcade.dev`
- URL: `https://api.arcade.dev/v1/orgs/{org_id}/hooks/bulk`
- Auth: API key in header `Authorization`

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

## Path parameters

- `org_id` string, required

## 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-10-16** `4c694686f453`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/arcadeai/apis/arcade-api/changes/v1/orgs/:org_id/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.dev/arcadeai/apis/arcade-api/revisions/f487ce74dc56?raw)
