---
title: "Read one contact"
method: GET
path: "/v1/contacts/{id}"
tags: ["contacts"]
---

# Read one contact

`GET /v1/contacts/{id}`

## Request

- Base URL: `https://api.indraft.io`
- URL: `https://api.indraft.io/v1/contacts/{id}`
- Auth: HTTP bearer

One contact by its id. A person's company affiliation is a separate record, so a contact moving employer keeps their history rather than being duplicated.

## Path parameters

- `id` string, required

## Response `200`

Success

- object
  - `contact` object, required
    - `id` string, required
    - `displayName` string, required
    - `primaryEmail` string, required
    - `emailNormalized` string, required
    - `phone` string, required
    - `phoneNormalized` string, required
    - `title` string, required
    - `companyName` string
    - `lifecycle` object, required
      - `category` string, required
      - `label` string
    - `ownerActorId` string, required
    - `externalProvider` string, required
    - `externalId` string, required
    - `version` integer, required
    - `createdAt` string, required
    - `updatedAt` string, required
    - `archivedAt` string, required
  - `customFields` object, required
  - `tags` string[], required
  - `derived` object[], required
    - `name` string, required
    - `value` integer, required
    - `unit` 'minor_units' | 'days', required
    - `currency` string, required
    - `inputs` object, required
  - `standing` object, required: Per field: which kind of claim is standing on it, who asserted it, and when. This is the provenance the product is sold on, keyed by column name so it lines up with `changes`, `held[]` and the unconfirmed queue. `confirmed` means a person checked it and outranks everything an agent can assert; `inferred` is the weakest and is what an agent's own conclusion should carry. A write whose claim ranks below what is here is held rather than applied.
  - `requestId` string, required

## Other responses

- `401`: No credential, or one that has been revoked.
- `403`: Authenticated, and this capability is not held.
- `404`: No such record, or it belongs to another workspace.
- `429`: Infrastructure protection tripped. This is not a product quota.
- `500`: A defect on our side. The hint says so, and carries an incident id.

---

[API](https://skmtc.dev/indraft/apis/indraft-api.md) · [All operations](https://skmtc.dev/indraft/apis/indraft-api/llms.txt) · [OpenAPI document](https://skmtc.dev/indraft/apis/indraft-api/revisions/d9bb05346d66?raw)
