# Retrieve a contact

> Get one contact with its properties, email statistics, list memberships, and recent activity.

`GET https://api-connect.nxiom.com/api/v1/emails/contacts/{contactId}`

## Authorization

Requires `email.full_access`.

## Path parameters

| Field | Type | Description |
| --- | --- | --- |
| `contactId` | string · required | The contact's ID, starting with `con_`. |

## Request

### cURL

```shell
curl "https://api-connect.nxiom.com/api/v1/emails/contacts/YOUR_CONTACT_ID" \
  -H "Authorization: Bearer $NEXIOM_API_KEY"
```

### Node.js

```typescript
import { NexiomConnect } from '@nexiom/connect';

const apiKey = process.env.NEXIOM_API_KEY;
if (!apiKey) throw new Error('Set NEXIOM_API_KEY');

const nexiom = new NexiomConnect({ apiKey });

const { data, error } = await nexiom.contacts.get('YOUR_CONTACT_ID');

if (error) throw new Error(`${error.code}: ${error.message}`);
console.log(data.email, data.email_status);
```

### PHP

```php
<?php

use Nexiom\Connect\NexiomConnect;

$apiKey = getenv('NEXIOM_API_KEY');
if (!$apiKey) {
    throw new RuntimeException('Set NEXIOM_API_KEY');
}

$nexiom = new NexiomConnect($apiKey);

$contact = $nexiom->contacts->get('YOUR_CONTACT_ID');

echo $contact['email'], ' ', $contact['email_status'];
```

## Response

HTTP `200`. The contact is returned under `data`.

| Field | Type | Description |
| --- | --- | --- |
| `id` | string | Contact ID. |
| `email` | string | Email address. |
| `user_id` | string or null | Your identifier for this person. |
| `first_name` | string or null | First name. |
| `last_name` | string or null | Last name. |
| `phone_number` | string or null | Phone number. |
| `properties` | object or null | Custom property values by key. |
| `email_status` | string | `subscribed` or `unsubscribed`. |
| `email_delivery_block_reason` | string or null | Why email to this address is blocked, such as `hard_bounce`, when it is. |
| `total_emails_sent` | number | Emails sent to this contact. |
| `total_emails_opened` | number | Emails this contact opened. |
| `total_emails_clicked` | number | Emails this contact clicked. |
| `last_emailed_at` | string or null | When the contact was last emailed. |
| `last_opened_at` | string or null | When the contact last opened an email. |
| `last_clicked_at` | string or null | When the contact last clicked an email. |
| `lists` | array | Lists the contact belongs to, with `id`, `name`, and `added_at`. |
| `activities` | array | Recent activity, newest first. |

### 200 OK

Example response. Identifiers are illustrative.

```json
{
  "data": {
    "id": "con_example",
    "email": "reader@example.com",
    "user_id": "user_123",
    "first_name": "Sam",
    "last_name": "Rivera",
    "phone_number": null,
    "properties": {
      "PLAN": "pro"
    },
    "email_status": "subscribed",
    "unsubscribed": false,
    "email_delivery_block_reason": null,
    "source": "manual",
    "total_emails_sent": 3,
    "total_emails_opened": 2,
    "total_emails_clicked": 1,
    "last_emailed_at": "2026-10-02T10:00:00.000Z",
    "last_opened_at": "2026-10-02T10:05:00.000Z",
    "last_clicked_at": "2026-10-02T10:06:00.000Z",
    "lists": [],
    "activities": [
      {
        "id": "activity_example",
        "type": "contact_created",
        "description": "Contact created",
        "occurred_at": "2026-10-02T10:00:00.000Z"
      }
    ],
    "created_at": "2026-10-02T10:00:00.000Z",
    "updated_at": "2026-10-02T10:06:00.000Z"
  }
}
```

### 401 Unauthorized

The API key is missing, malformed, revoked, or expired.

```json
{
  "error": "unauthorized",
  "message": "Invalid API key",
  "correlationId": "req_example"
}
```

### 403 Forbidden

The API key lacks a required permission, or its domain restriction does not allow this sender.

```json
{
  "error": "not_allowed",
  "message": "Missing required API key permissions: email.full_access",
  "correlationId": "req_example"
}
```

### 404 Not Found

No contact with this ID exists in the API key's project.

```json
{
  "error": "not_found",
  "code": "resource_not_found",
  "message": "Contact not found",
  "correlationId": "req_example"
}
```

---

Source: https://connect.nxiom.com/docs/api/contacts/retrieve
