---
title: "Assign an E911 address to a phone number"
method: POST
path: "/api/relay/rest/phone_numbers/{id}/e911_address"
tags: ["E911 Addresses"]
---

# Assign an E911 address to a phone number

`POST /api/relay/rest/phone_numbers/{id}/e911_address`

## Request

- Base URL: `https://{Your_Space_Name}.signalwire.com`
- URL: `https://{Your_Space_Name}.signalwire.com/api/relay/rest/phone_numbers/{id}/e911_address`
- Auth: HTTP basic

Assigns a validated E911 address to the phone number and begins provisioning at the carrier. The number's `e911_status` becomes `pending`; it moves to `active` asynchronously once the carrier confirms. The address is re-validated at the carrier and must be valid.

Use this operation after [Create E911 address](/docs/apis/rest/e-911-addresses/create-address) when emergency calls from the number must present that physical service location. Resource addresses and SIP Addresses are routing handles and cannot be assigned for E911.

The address `label` is sent to the carrier as the caller name presented to the dispatcher. The emergency network limits that field to 32 characters, so a longer label is truncated to the first 32 characters. Truncation never affects the street address used to route the call, and does not cause the assignment to fail.

#### Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Numbers_.

[Learn more about API scopes](/docs/platform/your-signalwire-api-space).

## Path parameters

- `id` string, uuid, required: Universal Unique Identifier.

## Request body

- AssignE911AddressRequest: Request body for assigning an E911 address to a phone number.
  - `e911_address_id` string, uuid, required: Universal Unique Identifier.

## Response `200`

The request has succeeded.

- PhoneNumberResponse: Response containing a single phone number.
  - `id` string, uuid, required: Universal Unique Identifier.
  - `number` string, required: The phone number in E.164 format.
  - `name` string, nullable, required: The name given to the phone number. Helps to distinguish different phone numbers within your project.
  - `capabilities` PhoneNumberCapability[], required: A list of communication methods this phone number supports.
  - `number_type` 'toll-free' | 'longcode', required: Phone number type.
  - `e911_address_id` string, uuid, required: Universal Unique Identifier.
  - `e911_status` 'pending' | 'active' | 'failed' | 'pending_removal' | 'unregistered', required: E911 provisioning status of a phone number.
  - `cnam` string, nullable, required: The caller ID name currently applied at the carrier for this phone number, or `null` when none is set. This is the name call recipients can see. Change it with [Request a caller ID name](/docs/apis/rest/caller-id-name/request-caller-id-name). This value changes only after a request is approved and applied at the carrier, so it can differ from the requested `name` while a request is being reviewed or after one is rejected or fails.
  - `created_at` string, date-time, required: The date the number was added to your project.
  - `updated_at` string, date-time, required: The date the number was last updated.
  - `next_billed_at` string, date-time, nullable, required: The next date the number will be billed for.
  - `call_handler` 'relay_context' | 'relay_topic' | 'relay_script' | 'relay_application' | 'relay_connector' | 'relay_sip_endpoint' | 'relay_verto_endpoint' | 'laml_webhooks' | 'laml_application' | 'dialogflow' | 'video_room' | 'call_flow' | 'ai_agent' | 'fabric_subscriber' | 'sip_gateway' | 'call_queue', required: Call handler type for phone numbers.
  - `calling_handler_resource_id` string, uuid, required: Universal Unique Identifier.
  - `call_receive_mode` 'voice' | 'fax', required: Call receive mode.
  - `call_request_url` string, nullable, required: The URL to make a request to when using the laml_webhooks call handler.
  - `call_request_method` 'GET' | 'POST', required: HTTP method type.
  - `call_fallback_url` string, nullable, required: The fallback URL to make a request to when using the laml_webhooks call handler and the call_request_url fails.
  - `call_fallback_method` 'GET' | 'POST', required: HTTP method type.
  - `call_status_callback_url` string, nullable, required: The URL to make status callbacks to when using the laml_webhooks call handler.
  - `call_status_callback_method` 'GET' | 'POST', required: HTTP method type.
  - `call_laml_application_id` string, nullable, required: The ID of the LaML Application to use when using the laml_application call handler.
  - `call_dialogflow_agent_id` string, nullable, required: The ID of the Dialogflow Agent to start when using the dialogflow call handler.
  - `call_relay_topic` string, nullable, required: A string representing the Relay topic to forward incoming calls to. This is only used (and required) when call_handler is set to relay_topic.
  - `call_relay_topic_status_callback_url` string, nullable, required: A string representing a URL to send status change messages to. This is only used (and required) when call_handler is set to relay_topic.
  - `call_relay_script_url` string, nullable, required: The URL to make a request to when using the relay_script call handler. The URL must respond with a valid SWML script.
  - `call_relay_context` string, nullable, required: The name of the Relay Context to send this call to when using the relay_context call handler.
  - `call_relay_context_status_callback_url` string, nullable, required: A string representing a URL to send status change messages to. This is only used (and required) when call_handler is set to relay_context.
  - `call_relay_application` string, nullable, required: The name of the Relay Application to send this call to when using the relay_application call handler.
  - `call_relay_connector_id` string, nullable, required: The ID of the Relay Connector to send this call to when using the relay_connector call handler.
  - `call_sip_endpoint_id` string, uuid, required: Universal Unique Identifier.
  - `call_verto_resource` string, nullable, required: The name of the Verto Relay Endpoint to send this call to when using the relay_verto_endpoint call handler.
  - `call_video_room_id` string, uuid, required: Universal Unique Identifier.
  - `message_handler` 'relay_context' | 'relay_topic' | 'relay_application' | 'laml_webhooks' | 'laml_application', required: Message handler type for phone numbers.
  - `messaging_handler_resource_id` string, uuid, required: Universal Unique Identifier.
  - `message_request_url` string, nullable, required: The URL to make a request to when using the laml_webhooks message handler.
  - `message_request_method` 'GET' | 'POST', required: HTTP method type.
  - `message_fallback_url` string, nullable, required: The fallback URL to make a request to when using the laml_webhooks message handler and the message_request_url fails.
  - `message_fallback_method` 'GET' | 'POST', required: HTTP method type.
  - `message_laml_application_id` string, nullable, required: The ID of the LaML Application to use when using the laml_application message handler.
  - `message_relay_topic` string, nullable, required: The name of the Relay Topic to send this message to when using the relay_topic message handler.
  - `message_relay_context` string, nullable, required: The name of the Relay Context to send this message to when using the relay_context message handler.
  - `country_code` string, nullable, required: The ISO 3166-1 alpha-2 country code of the phone number.

## Other responses

- `401`: Access is unauthorized.
- `404`: The server cannot find the requested resource.
- `422`: The request failed validation. See errors for details.
- `500`: An internal server error occurred.

## Changes

> 173 revisions in range; 3 could not be searched.

- **2026-08-28** `09d6b41aff62`: 2 info
  - api tag `E911 Addresses` added
  - api tag `Phone Numbers` removed
- **2026-08-27** `6a0a43b3e01e`: 1 info
  - added the required property `cnam` to the response with the `200` status
- **2026-07-27** `dd526f1cd683`: 2 info
  - added `#/components/schemas/PhoneNumberE911Status` to the `e911_status` response property `anyOf` list for the response status `200`
  - removed `subschema #1` from the `e911_status` response property `anyOf` list for the response status `200`
- **2026-07-24** `e9f0b2ed4396`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/signalwire/apis/signalwire-rest-api/changes/api/relay/rest/phone_numbers/:id/e911_address/post.md)

---

[API](https://skmtc.dev/signalwire/apis/signalwire-rest-api.md) - [All operations](https://skmtc.dev/signalwire/apis/signalwire-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/signalwire/apis/signalwire-rest-api/revisions/7307749294e0?raw)
