<!-- Source: https://docs.vinsi.ai/api-docs/crm-contact-id -->
# Get Contact by ID

Fetch a single CRM contact by its numeric ID. Returns 404 if the contact does not exist in your organization.

```http
GET https://dashboard.vinsi.ai/api/crm/contacts/{contactId}
```

## Authentication

Send your API key in the `x-api-key` header. Create keys in the VINSI dashboard under Settings → API Keys.

## Headers

| Name | Type | Required |
|---|---|---|
| Content-Type | string | yes (application/json) |
| x-api-key | string | yes |

## Path parameters

| Name | Example |
|---|---|
| contactId | 1042 |

## Example request

```bash
curl -X GET 'https://dashboard.vinsi.ai/api/crm/contacts/1042' \
  -H 'x-api-key: YOUR_API_KEY'
```

## Example response

```json
{
  "id": 1042,
  "organizationId": "cmexampleorg00000000000001",
  "firstName": "Alex",
  "lastName": "Morgan",
  "email": "alex.morgan@example.com",
  "phone": "+15555550142",
  "company": "Acme Dental",
  "leadStatus": "New",
  "type": "lead",
  "source": "Website",
  "notes": "Asked for a callback next week.",
  "ownerId": "cmexampleuser0000000000001",
  "createdAt": "2026-09-10T17:22:57.000Z",
  "updatedAt": "2026-09-12T15:04:11.000Z",
  "ext": "",
  "disposition": "",
  "lastWorkDate": null,
  "state": "CA",
  "phone2": "",
  "phone2Ext": "",
  "phone3": "",
  "phone3Ext": "",
  "title": "Office Manager",
  "isUnsubscribed": false,
  "unsubscribedAt": null,
  "email2": "",
  "companyId": 318,
  "address": "100 Main St",
  "city": "San Diego",
  "zip": "92101",
  "country": "US",
  "avatarUrl": null,
  "phoneNorm": "5555550142",
  "phone2Norm": null,
  "phone3Norm": null
}
```

