---
title: "List a contact's addresses"
description: "Every address the contact can be reached at: its email addresses and SMS numbers, each with its status and, for a number, its SMS consent state. `GET /api/v1/contacts/{id}/addresses`"
url: https://www.unitpost.com/docs/platform/get-contacts-id-addresses
section: "Platform API reference"
updated: 2026-10-13
---
# List a contact's addresses

`GET /api/v1/contacts/{id}/addresses`

Every address the contact can be reached at: its email addresses and SMS numbers, each with its status and, for a number, its SMS consent state. The contact's `phone` is its primary number; this lists all of them, including numbers the person texted in from. The full consent history is [Get a contact's SMS consent](https://www.unitpost.com/docs/sms/get-contacts-id-sms-consent). The `{id}` accepts a contact id or email. Not paginated. Requires the `contacts:read` capability.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | — |

## Response fields (200)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | string | yes | — |
| `channel` | string | yes | `email` for an email address, `sms` for a phone number. |
| `address` | string | yes | The email address, or the phone number in E.164. |
| `primary` | boolean | yes | The address sends use for this channel. |
| `status` | string | yes | `active`, or why it can't be used (e.g. `opted_out`, `bounced`). |
| `country` | string \| null | yes | ISO country of a phone number. |
| `verified_at` | string \| null | yes | — |
| `consented_at` | string \| null | yes | When SMS consent was recorded (see `/contacts/{id}/sms-consent`). |
| `consent_source` | string \| null | yes | — |
| `consent_purpose` | string \| null | yes | — |
| `carrier_opt_out_at` | string \| null | yes | When the carrier last refused a text to this number because it opted out at the carrier. Not a consent record. |
| `created_at` | string | yes | — |

## Responses

| Status | Description |
| --- | --- |
| 200 | The contact's addresses (`has_more` is always false). |
| 401 | Missing or invalid API key. |
| 403 | Insufficient scope. |
| 404 | Contact not found. |

## Example request

```bash
curl -X GET 'https://www.unitpost.com/api/v1/contacts/con_123/addresses' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'User-Agent: my-app/1.0'
```

## Example response (200)

```json
{
  "object": "list",
  "has_more": false,
  "data": [
    {
      "object": "contact_address",
      "channel": "string",
      "address": "string",
      "primary": false,
      "status": "queued",
      "country": "string",
      "verified_at": "2026-01-01T00:00:00.000Z",
      "consented_at": "2026-01-01T00:00:00.000Z",
      "consent_source": "string",
      "consent_purpose": "string",
      "carrier_opt_out_at": "2026-01-01T00:00:00.000Z",
      "created_at": "2026-01-01T00:00:00.000Z"
    }
  ]
}
```

## Links

- HTML reference (with Node.js, Python, Ruby, PHP, Laravel, Go, Java, Rust, .NET and CLI examples): https://www.unitpost.com/docs/platform/get-contacts-id-addresses
- OpenAPI 3.1 (full schemas): https://www.unitpost.com/api/v1/openapi.json
