PATCH /v1/contacts/{id}
Update a contact (partial)
Update a contact (partial)
Changes only the fields that are sent; omitted fields keep their values (no defaults are applied). Requires scope write:deals.
- Authentication: header
Authorization: Bearer rv_live_...(API keys and scopes) - Required scope:
write:deals
openapi.json).Parameters
| Field | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string (uuid) | yes | Resource id (UUID). |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
type | "lead" | "client" | "partner" | no | |
fullName | string | no | |
ownerUserId | string | null (uuid) | no | |
tags | string[] | no | |
consentMarketing | boolean | no | |
preferredChannel | "telegram" | "viber" | "email" | "sms" | "webhook" | "in_app" | null | no | |
locale | "uk" | "pl" | "en" | no | |
notes | string | null | no | |
utm | object | null | no |
Responses
200
The updated contact.
application/json · Schema: ContactDetail
| Field | Type | Required | Description |
|---|---|---|---|
contact | object | yes | |
contact.id | string (uuid) | yes | |
contact.type | "lead" | "client" | "partner" | yes | |
contact.fullName | string | yes | |
contact.phones | string[] | yes | E.164. |
contact.emails | string[] | yes | |
contact.telegramId | string | null | yes | |
contact.telegramUsername | string | null | yes | |
contact.viberId | string | null | yes | |
contact.source | "site" | "telegram" | "instagram" | "referral" | "ads" | "manual" | "viber" | "widget" | "extension" | "api" | "import" | "marketplace" | yes | |
contact.ownerUserId | string | null (uuid) | yes | |
contact.tags | string[] | yes | |
contact.consentMarketing | boolean | yes | |
contact.preferredChannel | "telegram" | "viber" | "email" | "sms" | "webhook" | "in_app" | null | yes | |
contact.locale | "uk" | "pl" | "en" | yes | |
contact.notes | string | null | yes | |
contact.createdAt | string | yes | ISO 8601 date-time (UTC). |
contact.updatedAt | string | yes | ISO 8601 date-time (UTC). |
owner | object | yes | |
owner.id | string (uuid) | yes | |
owner.name | string | yes | |
counts | object | yes | |
counts.deals | integer | yes | |
counts.openDeals | integer | yes | |
counts.requests | integer | yes | |
counts.openTasks | integer | yes |
400
Invalid request parameters or body (code validation_error).
application/problem+json · Schema: Problem
401
Missing, malformed, unknown, revoked or expired API key (code unauthorized).
application/problem+json · Schema: Problem
403
The API key lacks the scope required by this endpoint (code insufficient_scope).
application/problem+json · Schema: Problem
404
No such contact in this tenant.
application/problem+json · Schema: Problem
422
Invalid phone/email or other field.
application/problem+json · Schema: Problem
429
Rate limit exceeded for the tenant plan (code rate_limited). Wait Retry-After seconds.
application/problem+json · Schema: Problem