---
title: "Update Proxy Profile"
method: PATCH
path: "/v1/proxy-profiles/{proxyProfileId}"
tags: ["Proxy Profiles"]
---

# Update Proxy Profile

`PATCH /v1/proxy-profiles/{proxyProfileId}`

This endpoint updates a Proxy Profile identified by the `proxyProfileId` parameter with a collection of [JSON Patch](https://jsonpatch.com) operations.

The advantage of using JSON Patch is that you can describe individual update operations on a resource without touching attributes that you don't want to change.

For example: We have the following resource.
```json
{
  "proxyProfileId": "4ebe288d-6415-44a8-85c8-7b9f78316a86",
  "name": "production",
  "description": "profile for production environments",
  "lastAccessedAt": "2019-08-24T14:15:22Z",
  "connectionPreferences": {
    "sdkPollInterval": 60,
    "webhookNotification": null
  },
  "sdkKeySelectionRules": []
}
```
If we send an update request body as below (it changes the `sdkPollInterval` field and adds a new Proxy Webhook URL):
```json
[
  {
    "op": "replace", 
    "path": "/connectionPreferences/sdkPollInterval", 
    "value": 120
  }, 
  {
    "op": "add",
    "path": "/connectionPreferences/webhookNotification",
    "value": {
      "webhookProxyUrl": "https://my-proxy-url.com"
    }
  }
]
```
Only the `sdkPollInterval` and `webhookProxyUrl` are updated and all the other attributes remain unchanged.
So we get a response like this:
```json
{
  "proxyProfileId": "4ebe288d-6415-44a8-85c8-7b9f78316a86",
  "name": "production",
  "description": "profile for production environments",
  "lastAccessedAt": "2019-08-24T14:15:22Z",
  "connectionPreferences": {
    "sdkPollInterval": 120,
    "webhookNotification": {
      "webhookProxyUrl": "https://my-proxy-url.com",
      "signingKey1": "<generated-signing-key>",
      "signingKey2": null
    }
  },
  "sdkKeySelectionRules": []
}
```

## Path parameters

- `proxyProfileId` string, uuid, required

## Request body

- JsonPatchOperation[]
  - `op` 'unknown' | 'add' | 'remove' | 'replace' | 'move' | 'copy' | 'test', required
  - `path` string, required — The source path.
  - `from` string, nullable — The target path.
  - `value` unknown

## Response `200`

When the update was successful.

- ProxyProfileModel
  - `proxyProfileId` string, uuid, required — The unique identifier of the proxy profile.
  - `name` string, required — The name of the proxy profile.
  - `description` string, nullable, required — The description of the proxy profile.
  - `lastAccessedAt` string, date-time, nullable, required — The date and time when the proxy profile was last accessed.
  - `connectionPreferences` ConnectionPreferences, required — The connection preferences for the proxy profile, including SDK poll interval and webhook proxy URL.
    - `sdkPollInterval` integer, required — The SDK poll interval in seconds that determines how often SDKs should fetch config JSON updates.
    - `webhookNotification` WebhookNotification, required — The webhook notification settings, including the proxy URL and signing keys.
      - `webhookProxyUrl` string, required — The webhook proxy URL for receiving config JSON change notifications.
      - `signingKey1` string, required — The primary signing key used for verifying the authenticity of webhook requests.
      - `signingKey2` string, nullable, required — The secondary signing key used for verifying the authenticity of webhook requests.
  - `sdkKeySelectionRules` ProxyProfileSelectionRule[], required
    - `kind` 'include' | 'exclude', required — Defines the types of SDK selection rules that can be applied to proxy profiles.
    - `productIdFilter` string, uuid, nullable, required — Defines the filter for matching Products by their unique identifier.
    - `configIdFilter` string, uuid, nullable, required — Defines the filter for matching Configs by their unique identifier.
    - `environmentIdFilter` string, uuid, nullable, required — Defines the filter for matching Environments by their unique identifier.
    - `productNameMatchFilter` string, nullable, required — Specifies a filter to match Product names in the proxy profile selection rule. It accepts wildcards (*).
    - `configNameMatchFilter` string, nullable, required — Specifies a filter to match Config names in the proxy profile selection rule. It accepts wildcards (*).
    - `environmentNameMatchFilter` string, nullable, required — Specifies a filter to match Environment names in the proxy profile selection rule. It accepts wildcards (*).

## Other responses

- `400` — Bad request.
- `404` — Not found.
- `429` — Too many requests. In case of the request rate exceeds the rate limits.

---

[API](https://skmtc.net/configcat/apis/configcat-public-management-api.md) · [All operations](https://skmtc.net/configcat/apis/configcat-public-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/configcat/configcat-public-management-api/versions/6b4d53bc1455/schema)
