***

title: manual_set_proxy_url
slug: /reference/python/agents/swml-service/manual-set-proxy-url
description: Manually set the proxy URL base for webhook callback generation.
max-toc-depth: 3
---------------------

For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

Manually set the proxy URL base used for generating webhook callback URLs. Call this
when automatic proxy detection does not work for your deployment (e.g., behind a
custom load balancer or tunneling service).

This overrides any value set via the `SWML_PROXY_URL_BASE` environment variable or
auto-detected from request headers.

<Note>
  The proxy URL affects how webhook URLs are generated for SWAIG function callbacks,
  post-prompt URLs, and other webhook endpoints. Without a correct proxy URL, SignalWire
  cannot reach your service's webhook endpoints when deployed behind a reverse proxy or
  tunnel.
</Note>

## **Parameters**

<ParamField path="proxy_url" type="str" required={true} toc={true}>
  The base URL to use for webhook generation (e.g., `"https://my-agent.ngrok.io"`).
  Trailing slashes are stripped automatically.
</ParamField>

## **Returns**

`None`

## **Example**

```python {6}
from signalwire import SWMLService

service = SWMLService(name="my-service")

# Set proxy URL for ngrok tunnel
service.manual_set_proxy_url("https://abc123.ngrok.io")

service.add_verb("answer", {})
service.serve()
```