Ricky logorickyDocs

Update a contact

PATCH
/contacts/{contact_id}

Changes only the fields in the body. tag_ids replaces the whole tag set; custom_values merges by key.

Scope: contacts:write.

Authorization

bearerAuth
headerAuthorizationBearer <token>

An organization API key, rky_live_…, created in Settings → API. Send it only from a server.

contact_id*string

Contact ID.

Formatuuid
Idempotency-Key*string

Unique per logical write, 8–200 characters. Retrying with the same key and body replays the first response.

Length8 <= length <= 200

Request Body

application/json
  1. body

Only the fields you send change. Send null to clear one.

first_name?|

First name.

last_name?|

Last name.

primary_email?|

Email.

primary_phone?|

Phone with country code, for example +507 6000-1234.

company?|

Company.

job_title?|

Job title.

birthday?|

Birthday as YYYY-MM-DD.

city?|

City.

region?|

State, province or region.

country?|

Country.

street_address?|

Street address.

postal_code?|

Postal code.

website_url?|

Website URL.

linkedin_url?|

LinkedIn profile URL.

source?|

Where the contact came from.

notes?|

Free-form notes.

owner_user_id?|

Member who owns the contact.

lead_status?|null
lifecycle_stage?|null
custom_values?

Values keyed by contact field ID. Keys you omit keep their value.

tag_ids?array<>

The complete set of tag IDs. Replaces the current tags.

Itemsitems <= 30

Response Body

Success.

application/json
  1. response
data*

A person in the CRM.

curl -X PATCH 'https://getricky.ai/api/v1/contacts/497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -H 'Idempotency-Key: order-10482-ready' \  -H 'Content-Type: application/json' \  -d '{  "job_title": "Gerente de compras",  "notes": null,  "tag_ids": [    "5c6d7e8f-9a0b-4c1d-8e2f-3a4b5c6d7e8f"  ]}'
{  "data": {    "id": "3f6c2b1e-8d4a-4b7e-9a51-2c7d8e9f0a1b",    "first_name": "Ana",    "last_name": "Pérez",    "primary_email": "ana.perez@example.com",    "primary_phone": "+50760001234",    "company": "Casa Nativa",    "job_title": "Gerente de compras",    "birthday": "1990-08-13",    "city": "Panamá",    "region": "Panamá",    "country": "Panamá",    "street_address": "Calle 50, Edificio Global, piso 3",    "postal_code": null,    "website_url": "https://example.com",    "linkedin_url": null,    "source": "WhatsApp",    "notes": "Prefiere que la contacten por la tarde.",    "owner_user_id": "2d4f6a8c-1b3d-4e5f-8a7b-9c0d1e2f3a4b",    "lead_status": "new",    "lifecycle_stage": "customer",    "custom_values": {      "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d": "Albrook Mall"    },    "identities": [      {        "id": "4b5c6d7e-8f9a-4b0c-9d1e-2f3a4b5c6d7e",        "channel_type": "whatsapp",        "external_id": "50760001234",        "display_name": "Ana Pérez",        "username": null      }    ],    "tags": [      {        "id": "5c6d7e8f-9a0b-4c1d-8e2f-3a4b5c6d7e8f",        "name": "Cliente frecuente",        "color": "gray"      }    ],    "last_activity_at": "2026-10-14T15:30:00.000Z",    "last_activity_preview": "¿Ya están mis lentes?",    "last_conversation_id": "9b2e4c61-7a3f-4d18-b5c2-6e0f1a2b3c4d",    "updated_at": "2026-10-14T15:30:00.000Z"  }}