# Retrieve a contact

Returns one contact: phones, email, type, assigned agents, notes and custom fields.

Source: https://dev.alterestate.com/contacts/retrieve
Last updated: 2026-10-13

```http
GET https://secure.alterestate.com/api/v1/contacts/view/{uid}/
```

Authentication: `Authorization: Token your_api_key_here`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `uid` | path | string | yes | Public contact identifier. List contacts and Leads both return it. |

Example request:

```bash
curl --request GET \
  --url 'https://secure.alterestate.com/api/v1/contacts/view/D9dEML2g39/' \
  --header 'Authorization: Token your_api_key_here' \
  --header 'Accept: application/json'
```

Response 200 OK:

```json
{
  "uid": "D9dEML2g39",
  "full_name": "Ana Martinez",
  "first_name": "Ana",
  "last_name": "Martinez",
  "email": "ana@example.com",
  "phone": "+18095550123",
  "phones": [
    {
      "id": 88,
      "phone": "+18095550999",
      "description": "3"
    }
  ],
  "language": "es_ES",
  "is_company": false,
  "ctype": "Buyer",
  "description": "Looking for a 2-bedroom apartment in Naco.",
  "ced_rnc": null,
  "doc_type": null,
  "address": null,
  "job_position": null,
  "job_place": "Martinez Group",
  "birthdate": null,
  "tag": {
    "uid": "TAG01HOT",
    "name": "Hot",
    "color": "#42916F"
  },
  "via": "Website",
  "related": [
    {
      "id": 42,
      "uid": "IZHIZ6C3Z6",
      "first_name": "John",
      "last_name": "Smith",
      "full_name": "John Smith",
      "email": "john@agency.com"
    }
  ],
  "created_by": {
    "id": 42,
    "uid": "IZHIZ6C3Z6",
    "first_name": "John",
    "last_name": "Smith",
    "full_name": "John Smith",
    "email": "john@agency.com"
  },
  "custom_fields": {
    "original_source": "instagram",
    "has_financing": true
  },
  "can_edit": true,
  "is_owner": true,
  "timestamp": "2026-03-01T23:26:53.402000-04:00",
  "updated": "2026-03-04T15:12:01.110000-04:00"
}
```

Response 404 Not Found:

```json
{
  "detail": "Not found."
}
```

You can open a contact when it appears in your list, or when you have a deal with that person. A uid from someone else’s contact returns 404.

## Key fields

| Field | Description |
| --- | --- |
| uid | Public identifier. Use it in Edit a contact. |
| email | Stored lowercase. |
| phone | Main phone in E.164, for example +18095550123. |
| phones | Extra phones. description is 1 work, 2 home, 3 mobile, 4 other. |
| ctype | Contact type name configured by the agency, or null. |
| language | es_ES or en_US. |
| related | Agents assigned to the contact. |
| created_by | User who registered the contact. The contact stays with that user. |
| tag | Tag with uid, name and color, or null. |
| via | Lead source name. |
| custom_fields | Every contact custom field value, keyed by field key. |
| can_edit | true when this token can PATCH the contact. |
| is_owner | true when this user is allowed to change the contact. |

## Status codes

| Status | Meaning |
| --- | --- |
| 200 | The request succeeded. |
| 400 | A parameter or the body is invalid. The response names the field. |
| 401 | The token is missing or invalid. |
| 403 | The contact already exists, or this user cannot edit it. |
| 404 | The contact does not exist, or this account cannot open it. |
| 429 | Too many requests. Wait and retry. |
| 500 | Server error while processing the request. |

- [List contacts](https://dev.alterestate.com/contacts/list)
- [Edit a contact](https://dev.alterestate.com/contacts/edit)

## FAQ

### Where do I find a contact uid?

Each result of GET /api/v1/contacts/ includes uid. Creating a lead also returns contact_uid.

### Is the retrieve URL /api/v1/contacts/{uid}/?

No. The contact lives at GET /api/v1/contacts/view/{uid}/.
