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

# set_swml_webhook

> Route inbound calls to an SWML webhook URL.

[update]: /docs/server-sdks/reference/python/rest/phone-numbers/update

Route inbound calls on this phone number to an SWML webhook URL. Your backend returns
an SWML document per call. The server auto-creates a `swml_webhook` Fabric resource
keyed off this URL.

This is a typed wrapper over [`update`][update] that sets `call_handler` to
`relay_script` and populates `call_relay_script_url` for you.

## **Parameters**

<ParamField path="resource_id" type="str" required={true} toc={true}>
  ID of the phone number to bind.
</ParamField>

<ParamField path="url" type="str" required={true} toc={true}>
  Webhook URL that returns SWML. The server keys the auto-created Fabric resource off
  this value.
</ParamField>

<ParamField path="**extra" type="Any" toc={true}>
  Additional fields forwarded to `update` (e.g. `name`, `call_fallback_url`).
</ParamField>

## **Returns**

`dict` -- The updated phone number resource.

## **Example**

```python {9}
from signalwire.rest import RestClient

client = RestClient(
    project="your-project-id",
    token="your-api-token",
    host="your-space.signalwire.com",
)

client.phone_numbers.set_swml_webhook(
    "phone-number-id",
    "https://example.com/swml",
)
```