---
title: "updateSecureProxyWhitelist"
method: PUT
path: "/v2/integrations/{integrationId}/use-cases/{useCaseId}/secure-proxy-whitelist"
tags: ["integrations", "proxy"]
---

# updateSecureProxyWhitelist

`PUT /v2/integrations/{integrationId}/use-cases/{useCaseId}/secure-proxy-whitelist`

Replaces allowed_domains and/or allowed_ips on a secure_proxy use case.
At least one of the two fields is required. Validation mirrors the CLI's
`validateDomainPatterns` / `validateCidrs`. Writes a USECASE_HISTORY row
with the admin user's email as `changed_by`.

Update semantics per field:
  - **omitted** — field is not modified; the stored value is preserved.
  - **non-empty array** — the stored value is replaced with the supplied list.
  - **empty array (`[]`)** — the list is cleared (stored as `[]`). This is
    the canonical way to remove all entries. `null` is not accepted.

Staff-only — same auth gates as GET.

## Path parameters

- `integrationId` string, uuid, required
- `useCaseId` string, uuid, required

## Request body

- SecureProxyWhitelistUpdate — Partial update for a secure_proxy whitelist. At least one of `allowed_domains` or `allowed_ips` must be provided. Per-field semantics: - **omitted** — the field is not modified; the stored value is preserved. - **non-empty array** — the stored value is replaced with the supplied list. - **empty array (`[]`)** — the list is cleared (stored as `[]`). This is the canonical way to remove all entries from a list. `null` is not accepted.
  - `allowed_domains` string[] — Exact domain ("api.example.com") or wildcard prefix ("*.example.com"). Wildcards must have at least 2 labels in the suffix. Pass `[]` to clear all allowed domains.
  - `allowed_ips` string[] — CIDR-notation IP ranges, e.g. "10.0.0.0/24". Pass `[]` to clear all allowed IPs.

## Response `200`

Updated whitelist (same shape as GET)

- SecureProxyWhitelist — Current whitelist state for a secure_proxy use case. vpc_mode is read-only context so the UI can show the user what mode the pool is in.
  - `vpc_mode` 'static_ip' | 'secure_link', nullable, required — VPC routing mode (read-only). `null` if not yet set.
  - `allowed_domains` string[], required — Exact domain ("api.example.com") or wildcard prefix ("*.example.com"). Wildcards must have at least 2 labels in the suffix.
  - `allowed_ips` string[], required — CIDR-notation IP ranges, e.g. "10.0.0.0/24".

## Other responses

- `400` — Bad request
- `401` — Unauthorized request
- `403` — Forbidden - insufficient permissions
- `404` — Use case not found or not of type secure_proxy

---

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