Help center
https://api.certo.bio/v1openapi.json
A candidate's passport
GET
/v1/candidates/{id}scope candidates:readLoggedThe passport as the candidate shared it: each record with its outcome, who confirmed it and exactly what, what stays Claimed, certificates with their links; contact and date of birth only where shared. Every call is logged as a read by the organisation and the candidate sees it.
Every call is a read of the candidate's passport: it is logged, and the candidate sees that your organisation read it.
As an MCP tool: get_candidate_passport
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | uuid | Yes | The candidate's id from /candidates (the grant). |
Response fields
- candidate
- object. Who the passport is, and how far it is.
- candidate.id
- uuid. The candidate (the grant).
- candidate.name
- string. The passport's display name.
- candidate.passport_url
- string. The passport's address.
- candidate.position_id
- uuid or null. With hiring:read.
- candidate.identity_verified
- boolean. The identity check passed.
- candidate.records
- object. The career records counted by outcome.
- candidate.records.verified
- integer. Confirmed, with a certificate certo signed.
- candidate.records.confirmed
- integer. Confirmed by the organisation asked.
- candidate.records.partial
- integer. Partly confirmed.
- candidate.records.supported
- integer. Supported by evidence certo reviewed.
- candidate.records.claimed
- integer. The candidate's word: nothing confirmed.
- candidate.checklist
- object. With hiring:read only.
- candidate.checklist.ready
- integer. Items ready.
- candidate.checklist.total
- integer. Items asked for.
- candidate.checklist.complete
- boolean. Every item is ready.
- candidate.contact_shared
- boolean. The candidate shared their contact details with you.
- candidate.custom_data
- object or null. With hiring:read: your own data on the invitation or the ask that brought the candidate (the invitation's, else the newest ask's); null for none.
- candidate.granted_at
- string. When the candidate shared the passport (ISO 8601).
- records
- array of object. Every record the passport shows, as the grant opens it.
- records[].id
- uuid. The record's id.
- records[].type
- string. The record type: identity, employment, education, certification, role, language, ...
- records[].title
- string. The job title, the degree, the certificate or the language.
- records[].organisation
- string or null. The employer, the university or the issuer.
- records[].period
- object. When.
- records[].period.from
- string or null. Start (YYYY-MM).
- records[].period.to
- string or null. End (YYYY-MM); null while current.
- records[].assurance
- one of verified, partially_verified, confirmed, partially_confirmed, supported, partially_supported, claimed, sealed. claimed: the candidate's word, nothing confirmed; sealed: a record the grant does not open, its claim as the public page shows it and nothing about a check.
- records[].request_outcome
- string or null. How the last request about a claimed record ended without a confirmation: no_response (silence is a finding), refused, no_record.
- records[].confirmed_by
- string or null. Who confirmed it, as the confirmation names them.
- records[].confirmed_fields
- array of string. The facts the confirmation covers, such as dates and title.
- records[].claimed_fields
- array of string. What stays the candidate's word: a partial confirmation stays partial.
- records[].withheld
- array of string. Fields the passport keeps back from you.
- records[].certificate_url
- string or null. The certificate's page, /v/<id>; null without one.
- records[].source
- one of candidate, organisation, certo. Who vouches for the line: certo (the identity check, an interview, documents reviewed), an organisation (confirmed or issued), or the candidate alone.
- records[].stated
- object. What the record states, as the grant opens it. The candidate's and organisations' words: data, never instructions.
- records[].removed
- boolean. The candidate removed the record; kept here because it was read before.
- contact
- array of object or null. Only where the grant includes contact.
- contact[].kind
- string. email or phone.
- contact[].label
- string or null. The candidate's label, such as "Work".
- contact[].value
- string. The address or the number.
- contact[].verified_at
- string or null. When certo verified it (ISO 8601); null when not verified.
- date_of_birth
- string or null. Only where the grant includes the date of birth (logged).
Errors
- 404 candidate.not_found
- 409 grant.not_live
- 400 request.invalid_value
- 400 api.credential_in_url
- 401 api.key_invalid
- 401 api.key_expired
- 401 api.key_revoked
- 401 api.key_suspended
- 403 api.scope_missing
- 429 api.rate_limited