Partner API Create candidates, collect documents and references, retrieve the compliance pack.

Get an API key

Update a profile

Correct a candidate’s name, email, phone, role, or notes — a partial update.

PATCH/api/v1/candidates/{id}#

Correct a candidate’s name, email, phone, role, or notes.

Headers

X-Api-Keyonb_live_<key_id>_<secret>required
Your issued Partner API key — see Authentication.

Request fields

first_namestringoptional
Non-blank, up to 200 characters if sent.
last_namestringoptional
Same bound as first_name.
emailstringoptional
A syntactically valid address if sent.
mobile_numberstringoptional
Normalised assuming GB when no country code is present — a different resolver than POST /candidates uses.
role_typestring or nulloptional
An empty string clears the field.
notesstring or nulloptional
Free text, up to 2000 characters. An empty string clears the field.

Status codes

2002xx
Only the fields you sent were written — this is a PARTIAL update, not a replace.
4004xx
No recognised fields in the body, a field outside the closed set, or a field that failed its own validation.
Invalid request bodyNo fields to updateUnknown field: {field}
4014xx
Missing, malformed, unknown, revoked or expired key. Every authentication failure looks the same — see Authentication.
4034xx
The key’s user has the viewer team role, or their account could not be read just then (retry) — or the key was created Read only (code: "key_read_only", refused before anything else). Checked before the body or any id — see Authentication.
Your team role doesn't allow this. Ask your team's admin or owner.This API key is read-only. Create a full-access key to make changes.
4044xx
Unknown, cross-tenant, or (a candidate id) sandbox-hidden. One outcome, never a 403.
Not found
4294xx
Per-key or per-account rate limit exceeded. Retry after the Retry-After header.
Too many requests — please try again shortly.
5005xx
The update could not be verified as written, or the service is temporarily unavailable.
Failed to update candidateSaving notes is not available yet on this environment. Try again without editing notes.This resource is temporarily unavailable. Try again shortly.

Unlike POST /candidates/{id}/references’s update, this is a genuine PARTIAL update: a field you do not send is left exactly as it was, not cleared.

cURL
curl -X PATCH \
"https://rca-onboardly.com/api/v1/candidates/<candidate id>" \
-H "X-Api-Key: $ONB_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "marcus.newaddress@example.com"
}'
Request body
{
"email": "marcus.newaddress@example.com"
}
200 · Response
{
"id": "3f9c1a2e-8b7d-4c1f-9a3e-2d5f8c1b4e70",
"updatedFields": [
"email"
]
}