---
title: "Update E911 address"
method: PUT
path: "/api/relay/rest/addresses/{id}"
tags: ["E911 Addresses"]
---

# Update E911 address

`PUT /api/relay/rest/addresses/{id}`

Updates an Address that has been previously created.

When `emergency_enabled=true` and the address is in the US (`country` = `US`), the address is validated against the carrier. A valid or auto-corrected address is stored (`validated: true`). An address the carrier cannot validate — or a correctable address when `auto_correct_address=false` — is rejected with a `422` whose body includes an `errors` array and a `candidates` array of suggested addresses (each with `street_number`, `street_name`, `city`, `state`, `postal_code`). Carrier validation applies to US addresses only: a non-US address is stored normally, with `emergency_enabled` returned as `false`. Requests without `emergency_enabled` are stored without carrier validation.

#### 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

- UpdateAddressRequest — Request body for updating an address.
  - `label` string, required — A friendly name given to the address to help distinguish and search for different addresses within your project. When the address is assigned to a phone number for E911, this label is also sent to the carrier as the caller name. The emergency network limits that field to 32 characters, so longer labels are truncated to the first 32 characters before being sent. Truncation affects only the name shown to the dispatcher, never the address used to route the call.
  - `country` string, required — The ISO 3166 Alpha 2 country code.
  - `first_name` string, required — First name of the occupant associated with this address.
  - `last_name` string, required — Last name of the occupant associated with this address.
  - `street_number` string, required — The number portion of the street address.
  - `street_name` string, required — The name portion of the street address.
  - `address_type` 'Apartment' | 'Basement' | 'Building' | 'Department' | 'Floor' | 'Office' | 'Penthouse' | 'Suite' | 'Trailer' | 'Unit' — Address type for sub-addresses.
  - `address_number` string — If the address is divided into multiple sub-addresses, this identifies the particular sub-address.
  - `city` string, required — The city portion of the street address.
  - `state` string, required — The state/province/region of the street address. In the USA and Canada, use the two-letter abbreviated form.
  - `postal_code` string, required — The postal code of the street address.
  - `emergency_enabled` boolean — Applies to US addresses only. When `true` and `country` is `US`, the address is validated against the carrier before it is stored. For any other `country` the flag is ignored and the response returns `emergency_enabled: false`. Defaults to `false`, which stores the address without carrier validation.
  - `auto_correct_address` boolean — When the carrier suggests a corrected version of the address, `true` (the default) stores the corrected address; `false` rejects the request with the suggestion returned as candidates.

## Response `200`

The request has succeeded.

- AddressResponse — Response containing a single address.
  - `id` string, uuid, required — Universal Unique Identifier.
  - `label` string, required — A friendly name given to the address to help distinguish and search for different addresses within your project.
  - `country` string, required — The ISO 3166 Alpha 2 country code.
  - `first_name` string, required — First name of the occupant associated with this address.
  - `last_name` string, required — Last name of the occupant associated with this address.
  - `street_number` string, required — The number portion of the street address.
  - `street_name` string, required — The name portion of the street address.
  - `address_type` 'Apartment' | 'Basement' | 'Building' | 'Department' | 'Floor' | 'Office' | 'Penthouse' | 'Suite' | 'Trailer' | 'Unit', required — Address type for sub-addresses.
  - `address_number` string, nullable, required — If the address is divided into multiple sub-addresses, this identifies the particular sub-address.
  - `city` string, required — The city portion of the street address.
  - `state` string, required — The state/province/region of the street address. In the USA and Canada, use the two-letter abbreviated form.
  - `postal_code` string, required — The postal code of the street address.
  - `zip_code` string, required — The postal code of the street address. Alias for postal_code for backwards compatibility.
  - `emergency_enabled` boolean, required — Whether E911 emergency calling is enabled for this address (carrier-validated when created/updated with `emergency_enabled=true` for a US address).
  - `validated` boolean, required — Whether the address was validated by the carrier (true when the carrier returned a valid or auto-corrected match).
  - `validated_at` string, nullable, required — The RFC 3339 / ISO 8601 timestamp of the last successful carrier validation, or null if never validated.

## Other responses

- `401` — Access is unauthorized.
- `404` — The server cannot find the requested resource.
- `422` — The request failed validation. See `errors` for details. When carrier validation rejected the address and the carrier returned alternatives, a `candidates` array is included alongside `errors`; the key is omitted when the carrier returned none.
- `500` — An internal server error occurred.

---

[API](https://skmtc.net/signalwire/apis/signalwire-rest-api.md) · [All operations](https://skmtc.net/signalwire/apis/signalwire-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/signalwire/signalwire-rest-api/revisions/05c5164b85c7/schema)
