> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Emergency Address (E911)

> Register and validate a dispatchable emergency address for each provisioned number

# Emergency Address (E911)

Register an emergency (E911 / PSAP) dispatchable address against each provisioned number so an emergency call carries the correct civic location. The address is stored on the number and gated by org ownership — a sibling subaccount sharing your tenant schema can neither read nor mutate another subaccount's dispatchable location.

<Warning>
  Orbit's outbound 911 posture is **block-and-disclaim** (see [ADR-010](/adr/010-e911-block-and-disclaim)). Registering an emergency address records and validates the dispatchable location; it does **not** by itself enable outbound emergency dialing. Treat E911 as a compliance/record-keeping surface, not a live emergency-calling guarantee.
</Warning>

## Get the Registered Address

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/numbers/num_abc123/emergency-address" \
  -H "X-API-Key: dv_live_sk_..."
```

Returns `{ "id": "...", "address": null }` when nothing is registered.

## Register or Update the Address

```bash theme={null}
curl -X PUT https://api.orbit.devotel.io/api/v1/numbers/num_abc123/emergency-address \
  -H "X-API-Key: dv_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "caller_name": "Acme Inc",
    "street_line_1": "1 Market St",
    "city": "San Francisco",
    "region": "CA",
    "postal_code": "94105",
    "country": "US"
  }'
```

Owner/admin only. An invalid address returns `422 VALIDATION_ERROR` with field-level details.

## Verify the Address

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/numbers/num_abc123/emergency-address/verify \
  -H "X-API-Key: dv_live_sk_..."
```

Runs a **local structural dispatch-readiness check** and returns a `validation_status` plus any `validation_issues`.

<Note>
  Verification is deliberately local-only — it does **not** call any provider address-verification API. Upstream PSAP/MSAG confirmation is recorded separately (below).
</Note>

## Record a PSAP/MSAG Confirmation

Ingest the carrier/PSAP MSAG confirmation **result** to flip the address to `dispatchable` (confirmed) or `invalid` (rejected). This records an inbound, out-of-band result — it does not initiate a provider verification call.

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/numbers/num_abc123/emergency-address/psap-confirmation \
  -H "X-API-Key: dv_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "carrier_name",
    "confirmed": true,
    "dispatchable_address_id": "dispatch_xyz"
  }'
```

Owner/admin only.

## Remove the Address

```bash theme={null}
curl -X DELETE https://api.orbit.devotel.io/api/v1/numbers/num_abc123/emergency-address \
  -H "X-API-Key: dv_live_sk_..."
```
