Leads

Update one lead’s identity fields, status, notes, custom_fields, or tags

Same underlying core as the MCP updateLead tool, reused verbatim so REST and MCP callers get identical semantics. An allowlist, not a blocklist: any key not in the request body schema below (including workspace_id/lead_id/id) is rejected as an unknown field. Pass at least one field. status/notes/custom_fields live on workspace_leads (this workspace only); first_name/last_name/email/position/headline/company/linkedin_url edit the single row shared by every workspace holding this lead. custom_fields REPLACES the whole object for this workspace, it is not merged key by key. company is freetext, resolved to a company record the same way CSV import resolves it; an empty string clears the link. linkedin_url is globally unique, so setting it to a URL already used by a different lead fails (code duplicate_linkedin_url) instead of overwriting. add_tags/remove_tags go through the apply_lead_tag RPC: every tag except follow_up_later permanently ends this lead’s active campaign sequences when added, and removing it never restarts them.

patch/api/v1/leads/{id}

Request

  • Base URL: https://app.reachium.io
  • URL: https://app.reachium.io/api/v1/leads/{id}
  • Auth: HTTP bearer

Path parameters

idstring required

Lead id.

Request body

status'new' | 'active' | 'contacted' | 'qualified' | 'lost' | 'unsubscribed'
notesstring

Replaces the lead notes. Pass an empty string to clear.

custom_fieldsobject

Replaces the whole object for this workspace (not merged key by key).

first_namestring
last_namestring
emailstring
positionstring
headlinestring
companystring

Freetext; resolved to a company record. Empty string clears the link.

linkedin_urlstring

Globally unique. Fails with duplicate_linkedin_url if another lead already has it.

add_tagsstring[]
remove_tagsstring[]

Response

Updated.

errorunknown required

Changes

No recorded changes to this operation across all 1 revision of this API.