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 or revoked key. Every authentication failure looks the same — see Authentication.
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"
]
}