List contacts
GET /v1/contacts: Returns a paginated list of contacts. Parameters: limit (default 25, max 100), cursor (for pagination), search (full-text search), filter (JSON filter object), sort (field name, prefix with - for descending).
Get a contact
GET /v1/contacts/:id: Returns a single contact by ID. Includes all standard fields, custom fields, and the IDs of associated deals and companies. Use ?expand=deals,activities to include full nested objects.
Create a contact
POST /v1/contacts: Creates a new contact. Required: email. Optional: first_name, last_name, phone, title, company_id, source, owner_id, and any custom field keys. Returns the created contact with its assigned ID.
Update a contact
PATCH /v1/contacts/:id: Partial update. Only the fields you include in the request body are updated. Supports all standard and custom fields. Returns the full updated contact object.
Delete a contact
DELETE /v1/contacts/:id: Soft-deletes the contact. The contact is removed from all views but can be recovered from Settings → Trash within 30 days. Associated deals are not deleted.
