---
title: "Update a plugin"
method: PATCH
path: "/v1/orgs/{org_id}/plugins/{plugin_id}"
tags: ["Plugins"]
---

# Update a plugin

`PATCH /v1/orgs/{org_id}/plugins/{plugin_id}`

## Request

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

Updates an existing plugin configuration

## Path parameters

- `org_id` string, required
- `plugin_id` string, required

## Request body

- SchemasPatchPluginRequest
  - `description` string
  - `group_access_config` SchemasPatchGroupAccessConfigRequest
    - `backend` 'okta' | 'entra' | 'sailpoint'
    - `entra` SchemasPatchEntraBackendRequest
      - `client_id` string
      - `client_secret` string
      - `tenant_id` string
    - `okta` SchemasPatchOktaBackendRequest
      - `api_token` string
      - `org_url` string
    - `rules` SchemasGroupAccessRuleRequest[]
      - `allow_on_unavailable` boolean
      - `match` string, required
      - `required_groups` string[], required
    - `sailpoint` SchemasPatchSailPointBackendRequest
      - `client_id` string
      - `client_secret` string
      - `tenant_url` string
  - `name` string
  - `rate_limit_config` SchemasPatchRateLimitConfigRequest
    - `rules` SchemasRateLimitRuleRequest[]
      - `allow_on_unavailable` boolean
      - `limit` integer, required
      - `match` string, required
      - `time_unit` 's' | 'm' | 'h' | 'd' | 'mo', required
  - `retry` SchemasPatchRetryConfigRequest
    - `backoff` 'fixed' | 'exponential'
    - `base_delay_ms` integer
    - `enabled` boolean
    - `max_attempts` integer
    - `retry_on` string[]
  - `status` 'inactive' | 'active'
  - `webhook_config` SchemasPatchWebhookConfigRequest
    - `auth` SchemasWebhookAuthRequest
      - `ca_cert` string
      - `client_cert` string
      - `client_key` string
      - `token` string
      - `type` 'bearer' | 'mtls' | 'none'
    - `endpoints` SchemasPatchWebhookEndpointsRequest
      - `access` SchemasPatchWebhookEndpointRequest
        - `cache_enabled` boolean
        - `cache_ttl_ms` integer: 1s to 1 week
        - `failure_mode` 'fail_closed' | 'fail_open'
        - `phase` 'before' | 'after'
        - `priority` integer
        - `status` 'inactive' | 'active'
        - `timeout_ms` integer: 100ms to 2 minutes
        - `url` string
      - `post` SchemasPatchWebhookEndpointRequest
        - `cache_enabled` boolean
        - `cache_ttl_ms` integer: 1s to 1 week
        - `failure_mode` 'fail_closed' | 'fail_open'
        - `phase` 'before' | 'after'
        - `priority` integer
        - `status` 'inactive' | 'active'
        - `timeout_ms` integer: 100ms to 2 minutes
        - `url` string
      - `pre` SchemasPatchWebhookEndpointRequest
        - `cache_enabled` boolean
        - `cache_ttl_ms` integer: 1s to 1 week
        - `failure_mode` 'fail_closed' | 'fail_open'
        - `phase` 'before' | 'after'
        - `priority` integer
        - `status` 'inactive' | 'active'
        - `timeout_ms` integer: 100ms to 2 minutes
        - `url` string
    - `health_check_path` string

## Response `200`

OK

- SchemasPluginResponse
  - `binding` SchemasBindingResponse
    - `id` string
    - `type` 'static' | 'tenant' | 'project' | 'account'
  - `created_at` string
  - `created_by` string
  - `description` string
  - `group_access_config` SchemasGroupAccessConfigResponse
    - `backend` string
    - `entra` SchemasEntraBackendResponse
      - `client_id` string
      - `client_secret` SchemasSecretResponse
        - `binding` 'static' | 'tenant' | 'project' | 'account'
        - `editable` boolean
        - `exists` boolean
        - `value` string
      - `tenant_id` string
    - `okta` SchemasOktaBackendResponse
      - `api_token` SchemasSecretResponse
        - `binding` 'static' | 'tenant' | 'project' | 'account'
        - `editable` boolean
        - `exists` boolean
        - `value` string
      - `org_url` string
    - `rules` SchemasGroupAccessRuleResponse[]
      - `allow_on_unavailable` boolean
      - `match` string
      - `required_groups` string[]
    - `sailpoint` SchemasSailPointBackendResponse
      - `client_id` string
      - `client_secret` SchemasSecretResponse
        - `binding` 'static' | 'tenant' | 'project' | 'account'
        - `editable` boolean
        - `exists` boolean
        - `value` string
      - `tenant_url` string
  - `health_status` string
  - `id` string
  - `name` string
  - `plugin_type` string
  - `rate_limit_config` SchemasRateLimitConfigResponse
    - `rules` SchemasRateLimitRuleResponse[]
      - `allow_on_unavailable` boolean
      - `limit` integer
      - `match` string
      - `time_unit` string
  - `retry` SchemasRetryConfigResponse
    - `backoff` string
    - `base_delay_ms` integer
    - `enabled` boolean
    - `max_attempts` integer
    - `retry_on` string[]
  - `status` 'inactive' | 'active'
  - `updated_at` string
  - `updated_by` string
  - `version` integer
  - `webhook_config` SchemasWebhookConfigResponse
    - `auth` SchemasWebhookAuthResponse
      - `ca_cert` string
      - `client_cert_configured` boolean
      - `client_key_configured` boolean
      - `token` SchemasSecretResponse
        - `binding` 'static' | 'tenant' | 'project' | 'account'
        - `editable` boolean
        - `exists` boolean
        - `value` string
      - `type` string
    - `endpoints` SchemasWebhookEndpointsResponse
      - `access` SchemasWebhookEndpointResponse
        - `cache_enabled` boolean
        - `cache_ttl_ms` integer
        - `timeout_ms` integer
        - `url` string
      - `post` SchemasWebhookEndpointResponse
        - `cache_enabled` boolean
        - `cache_ttl_ms` integer
        - `timeout_ms` integer
        - `url` string
      - `pre` SchemasWebhookEndpointResponse
        - `cache_enabled` boolean
        - `cache_ttl_ms` integer
        - `timeout_ms` integer
        - `url` string
    - `health_check_path` string

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `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/plugins/:plugin_id/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)
