---
title: "Get a contact"
method: GET
path: "/v3/contacts/{id}"
tags: ["Contacts"]
---

# Get a contact

`GET /v3/contacts/{id}`

<small>_Requires the `contacts:read` scope (or a broader one that includes it)._</small>

Use this endpoint when you need the full record of a single contact, identified by its Reply contact id — including profile fields, owner, opt-out, call and meeting status, and all custom field values.

## Path parameters

- `id` integer, required

## Response `200`

Contact details retrieved successfully

- object — Contact response model
  - `id` integer — Unique ID
  - `email` string, email — Primary email address
  - `domain` string — Email domain (derived from email)
  - `firstName` string — First name
  - `lastName` string — Last name
  - `phone` string — Phone number
  - `title` string — Job title
  - `company` string — Organization name
  - `companySize` 'empty' | 'selfEmployed' | 'ten' | 'fifty' | 'twoHundred' | 'fiveHundred' | 'oneThousand' | 'fiveThousand' | 'tenThousand' | 'overTenThousand' — Organization employee count range
  - `industry` string — Business sector
  - `city` string — City of residence
  - `state` string — State/province
  - `country` string — Country
  - `timeZoneId` string — Timezone identifier
  - `linkedInUrl` string, uri — LinkedIn profile URL
  - `linkedInSalesNavigatorUrl` string, uri — Sales Navigator URL
  - `linkedInRecruiterUrl` string, uri — Recruiter URL
  - `phoneStatus` 'pending' | 'invalid' | 'valid' | 'validationFailed' | 'notValidated' — Phone validation status
  - `notes` string — Additional information
  - `ownerUserId` integer — ID of the user who owns this contact
  - `accountId` integer, nullable — ID of the contact account this contact belongs to
  - `isOptedOut` boolean — Whether the contact has opted out of communications
  - `callStatus` 'none' | 'toCall' | 'called' — Contact-level call status. Set via `PATCH /v3/contacts/{id}` (`callStatus` field). Pass `none` to clear.
  - `meetingStatus` 'none' | 'meetingBooked' — Contact-level meeting status. Set via `PATCH /v3/contacts/{id}` (`meetingStatus` field). Pass `none` to clear.
  - `addingDate` string, date-time, nullable — Date the contact was added
  - `createdAt` string, date-time, nullable — Creation timestamp
  - `lastModifiedAt` string, date-time, nullable — Last modification timestamp
  - `customFields` object[] — User-defined fields
    - `key` string, required — Field identifier
    - `value` string, nullable — Field content

## Other responses

- `400` — Route-parameter validation failure (e.g. non-positive `id`) or a business rule rejection.
- `401` — Unauthorized. The response body is empty; check the `WWW-Authenticate` header for the expected scheme.
- `403` — User lacks required feature scope to view this contact
- `404` — Contact not found
- `429` — Too Many Requests

---

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