Skip to main content
GET
Get a candidate

Authorizations

Authorization
string
header
required

An Enrik API key, sent as Authorization: Bearer <key>. A key reaches public operations only, and only those whose scopes it holds. A few parameters need a scope beyond their operation’s, which the parameter names. The scopes:

  • setup:read: Read the workspace setup and its company profile.
  • setup:run: Change the setup: confirm the company profile, authorize sponsored drafting and background company research, choose what to set up and complete setup.
  • workspace:read: Read the workspace’s own profile: its health summary and setup state.
  • crm:read: Read companies with their signals, contacts and the saved views over them.
  • crm:write: Create, update and restore companies and contacts, and create, update and delete saved views.
  • crm:delete: Delete companies and contacts.
  • twin:read: Read the Company Twin: structured company knowledge and its signals.
  • discovery:read: Read ICP profiles, ICP assessments, discovery briefs, discovery jobs, candidates and the signal library.
  • discovery:write: Create and change ICP profiles, discovery briefs and signal-definition drafts, and review discovery candidates.
  • discovery:run: Create, start and cancel discovery jobs, and edit a draft one. Uses provider budget.
  • enrichment:read: Read the enrichment configuration and its results, including a record’s enrichment, formula and custom-API cells.
  • enrichment:run: Launch and cancel enrichment. Spends enrichment credits.
  • automation:read: Read workflows and agents with their run history, including a record’s agent cells.
  • automation:run: Run existing workflows and agents.
  • exports:read: Read export jobs and the fields an export can carry.
  • exports:run: Create, preview, start, cancel and archive CSV exports of companies, contacts and candidates, and download the file. Also needs crm:read. Delivering an export to a webhook destination stays in the app.
  • integrations:read: Read connections, field mappings, CRM sync jobs and webhook destinations.
  • webhooks:read: Read webhook subscriptions, the event types they can name and their delivery log.
  • webhooks:write: Subscribe a receiver URL to webhook events; edit, test, pause, resume and archive a subscription and rotate its signing secret; redeliver an event. Only workspace owners and admins can grant it.
  • reporting:read: Read analytics and dashboards.
  • assistant:read: Read the Assistant: its threads, messages and pending approvals.
  • assistant:run: Converse with the Assistant. Uses the workspace’s AI quota.
  • assistant:write: Approve or reject the changes the Assistant proposes.

Headers

If-None-Match
string

The ETag of an answer you kept. While the answer is still the same, the API answers 304 Not Modified with no body. Several tags, separated by commas, a weak tag (W/"…") and * are accepted.

Path Parameters

candidateId
string<uuid>
required

The candidate’s id.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$

Response

A company a discovery job found (or a user added), waiting for review.

A company a discovery job found (or a user added), waiting for review.

id
string
required

The candidate’s id.

discoveryJobId
string | null
required

The discovery job that found the candidate; null for one added by hand.

icpProfileId
string | null
required

The ICP profile the candidate was found for; null when there was none.

icpProfileVersionId
string | null
required

The exact version of that ICP profile; null when there was none.

discoveryBriefId
string | null
required

The discovery brief the candidate was found for; null when there was none.

name
string
required

The company’s name.

normalizedName
string
required

The name normalised for matching.

website
string | null
required

The company’s website; null when unknown.

domain
string | null
required

The website’s domain; null when unknown.

normalizedDomain
string | null
required

The domain normalised for matching; null when unknown.

country
string | null
required

The company’s country; null when unknown.

description
string | null
required

What the company does; null when unknown.

sourceType
enum<string>
required

The kind of source the candidate came from.

Available options:
pasted_list,
manual_candidate,
user_provided_source_page,
controlled_source,
csv_upload,
enrik_data,
infobel_firmographics
sourceLabel
string | null
required

A label for the source; null when there is none.

sourceUrl
string | null
required

The page the candidate was found on; null when there is none.

sourceRowIndex
integer | null
required

The candidate’s row in a pasted or uploaded list; null otherwise.

Required range: -9007199254740991 <= x <= 9007199254740991
sourcePayload
object
required

What the source said about the candidate. Its shape depends on sourceType.

status
enum<string>
required

Where the candidate is in review: new, accepted, rejected, promoted and so on.

Available options:
new,
needs_review,
accepted,
rejected,
archived,
promoted,
linked_existing,
failed
dedupeStatus
enum<string>
required

Whether the candidate matches a company or candidate the workspace already has.

Available options:
unchecked,
no_match,
possible_duplicate,
existing_company_match,
duplicate_candidate
domainVerificationStatus
enum<string>
required

Whether the website was checked to belong to the company.

Available options:
unchecked,
verified,
inferred,
failed,
not_available
confidence
enum<string>
required

How confident the source is about the candidate.

Available options:
low,
medium,
high
matchedCompanyId
string | null
required

The workspace company the candidate matches; null when none.

promotedCompanyId
string | null
required

The company the candidate was promoted to; null until it is.

createdBy
string | null
required

The user who added the candidate; null when no user did.

updatedBy
string | null
required

The user who last changed the candidate; null when no user did.

createdAt
string<date-time>
required

When the candidate was added.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
updatedAt
string<date-time>
required

When the candidate last changed.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
candidateQualityScore
integer | null
required

How complete and usable the record is, 0 to 100; null until scored.

Required range: -9007199254740991 <= x <= 9007199254740991
candidateIcpFitScore
integer | null
required

How well the candidate fits the ICP profile, 0 to 100; null until scored.

Required range: -9007199254740991 <= x <= 9007199254740991
candidateEvidenceScore
number | null
required

How well the fit is supported by evidence, 0 to 100; null until scored.

sourceConfidenceScore
number | null
required

How far the source can be trusted, 0 to 100; null until scored.

reviewPriorityScore
integer | null
required

How urgently the candidate should be reviewed, 0 to 100; null until scored.

Required range: -9007199254740991 <= x <= 9007199254740991
reviewPriorityTier
enum<string> | null
required

The review-priority band; null until scored.

Available options:
high_priority,
medium_priority,
low_priority,
reject_likely,
insufficient_data

What to do with the candidate next; null until scored.

Available options:
promote_candidate,
review_manually,
verify_domain,
possible_duplicate_review,
reject_candidate,
insufficient_data
scoringStatus
enum<string>
required

Whether the candidate is unscored, scored, failed to score, or stale.

Available options:
unscored,
scored,
failed,
stale
scoredAt
string<date-time> | null
required

When the candidate was scored; null until.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
scoringVersion
string | null
required

The scoring algorithm’s version; null until scored.

scoringMetadata
object | null
required

How the scores were reached; null until scored.

canonicalCompanyId
string | null
required

The company in Enrik’s company data the candidate is; null for other sources.

entityCompanyId
string | null
required

The registered entity behind the candidate; null when unknown.

sourceProfileStatus
enum<string> | null
required

How complete the company profile from Enrik’s data is; null for other sources.

Available options:
enriched,
registry_only,
profile_fetch_failed
workspaceMatchStatus
enum<string> | null
required

already_linked when the workspace already has the company; null otherwise.

Available options:
already_linked
workspaceCompanyId
string | null
required

The workspace company already linked to it; null when none.

enrikSnapshotVersion
string | null
required

The version of Enrik’s data the candidate came from; null for other sources.

profileFetchedAt
string<date-time> | null
required

When the company profile was fetched; null when it was not.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
retrievalQuery
string | null
required

The search that found the candidate; null for other sources.

retrievalReasons
string[] | null
required

Why the search returned the candidate; null for other sources.