---
title: ProxyOptions
description: A proxy to which a ClientHandler or ReverseProxyHandler can submit requests, and an AmService can submit Websocket notifications.
component: pinggateway
version: 2026
page_id: pinggateway:reference:ProxyOptions
canonical_url: https://docs.pingidentity.com/pinggateway/2026/reference/ProxyOptions.html
revdate: 2024-10-29T12:58:20Z
section_ids:
  ProxyOptions-usage: Usage
  ProxyOptions-properties: Properties
  ProxyOptions-example: Example
---

# ProxyOptions

A proxy to which a [ClientHandler](ClientHandler.html) or [ReverseProxyHandler](ReverseProxyHandler.html) can submit requests, and an [AmService](AmService.html) can submit Websocket notifications.

Use this object to configure a proxy for AM notifications, and use it in a ClientHandler or ReverseProxyHandler, and again in an AmService notifications block.

## Usage

Use one of the following ProxyOption types with the `proxyOptions` option of [ClientHandler](ClientHandler.html), [ReverseProxyHandler](ReverseProxyHandler.html), and [AmService](AmService.html):

* No proxy.

  ```json
  {
    "name": string,
    "type": "NoProxyOptions"
  }
  ```

* System defined proxy options.

  ```json
  {
    "name": string,
    "type": "SystemProxyOptions"
  }
  ```

* Custom proxy

  ```json
  {
    "name": string,
    "type": "CustomProxyOptions",
    "config": {
      "uri": configuration expression<url>,
      "username": configuration expression<string>,
      "passwordSecretId": configuration expression<secret-id>,
      "secretsProvider": SecretsProvider reference
    }
  }
  ```

Default: NoProxyOptions

## Properties

* `"uri"`: *configuration expression<[url](preface.html#definition-url)>, required*

  URI of a server to use as a proxy for outgoing requests.

  The result of the expression must be a string that represents a valid URI, but isn't a real `java.net.URI` object.

* `"username"`: *configuration expression<[string](preface.html#definition-string)>, required if the proxy requires authentication*

  Username to access the proxy server.

* `"passwordSecretId"`: *configuration expression<[secret-id](preface.html#definition-secretid)>, required if the proxy requires authentication*

  The secret ID of the password to access the proxy server.

  This secret ID must point to a [GenericSecret](../security-guide/keys.html#secret-types).

* `"secretsProvider"`: \_ SecretsProvider <[reference](preface.html#definition-reference)>, required

  The [SecretsProvider](SecretsProvider.html) to query for the proxy's password.

## Example

In the following example, the handler passes outgoing requests to the proxy server, which requires authentication:

```json
"handler": {
  "type": "ClientHandler" or "ReverseProxyHandler",
  "config": {
     "proxyOptions": {
       "type": "CustomProxyOptions",
       "config": {
          "uri": "https://proxy.example.com:3128",
          "username": "proxyuser",
          "passwordSecretId": "myproxy.secret.id",
          "secretsProvider": "SystemAndEnvSecretStore"
       }
    }
  }
}
```

In the following example, the AmService notification service passes Websocket notifications to the proxy server, which requires authentication:

```json
"type": "AmService",
   "config": {
     ...
     "notifications": {
       "proxyOptions": {
         "type": "CustomProxyOptions",
         "config": {
           "uri": "https://proxy.example.com:3128",
           "username": "proxyuser",
           "passwordSecretId": "myproxy.secret.id",
           "secretsProvider": "SystemAndEnvSecretStore"
         }
      }
    }
  }
}
```
