Standard REST surface for contacts. All endpoints scoped to the authenticated user's org via the auth dependency.
Create
POST /api/v1/crm/contacts Body: {"email": "...", "first_name": "...", "last_name": "...", "company_id": "uuid?"} Returns 201 + created contact with auto-computed lead_score.
List
GET /api/v1/crm/contacts?limit=100&cursor=... Returns paginated list, sorted by created_at DESC by default. Filter by stage, tag, segment via query params.
Update
PATCH /api/v1/crm/contacts/{id} Body: any subset of fields. Triggers re-scoring if fields used by the AI scorer change.