---
title: "Get And Enrich Contact"
method: POST
path: "/v1/contacts/get-and-enrich"
tags: ["contacts"]
---

# Get And Enrich Contact

`POST /v1/contacts/get-and-enrich`

Load a contact and complete whatever it is missing with a provider.

Values already stored in the workspace always win; enrichment only fills
the gaps and is not written back onto the contact. A provider is only
called when the match is missing an email, a job title, or a company
domain — or when nothing matches but the email or LinkedIn URL given is
enough to enrich from scratch — so this can spend enrichment credits. Use
`GET /v1/contacts/{contact_id}` for a free, read-only load.

Requires the `contacts:write` scope on the API key.

## Request body

- GetAndEnrichContactPublicInput
  - `contact_id` string, uuid, nullable — Contact to load, if you have its id.
  - `email` string, nullable — Load the contact by email instead.
  - `linkedin_url` string, nullable — Load the contact by LinkedIn profile URL instead.

## Response `200`

Successful Response

- GetAndEnrichContactPublicOutput
  - `found` boolean, required — Whether a contact matching the input exists in the workspace.
  - `completed` boolean, required — Whether enrichment finished. `false` when a provider answers later.
  - `pending_provider` string, nullable — Provider still working on the missing fields.
  - `contact_id` string, uuid, nullable — Matched contact in this workspace.
  - `account_id` string, uuid, nullable — Account the matched contact belongs to.
  - `email` string, nullable — Email.
  - `first_name` string, nullable — First name.
  - `last_name` string, nullable — Last name.
  - `job_title` string, nullable — Job title.
  - `linkedin_url` string, nullable — LinkedIn profile URL.
  - `phone_number` string, nullable — Phone number.
  - `company_name` string, nullable — Employer name.
  - `company_domain` string, nullable — Employer's primary domain.
  - `city` string, nullable — City.
  - `country` string, nullable — Country.
  - `enriched` boolean, required — Whether email, job title, and company domain are all known.
  - `active_sequence_count` integer, required — Sequences the contact is currently enrolled in.
  - `active_sequence_names` string[], required — Names of the sequence templates currently running.

---

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