Get Contact
Returns a single CRM contact by ID.
GET /v1/funnels/{funnelId}/contacts/{contactId}
Authentication
Requires the x-perspective-api-key header. See Authentication for details.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
funnelId | string | Yes | The ID of the funnel the contact belongs to. |
contactId | string | Yes | The ID of the contact to retrieve. |
Example request
- cURL
- JavaScript
curl https://api.perspective.co/v1/funnels/fnl_abc123/contacts/cnt_abc123 \
-H "x-perspective-api-key: $PERSPECTIVE_API_KEY"
const funnelId = 'fnl_abc123';
const contactId = 'cnt_abc123';
const response = await fetch(
`https://api.perspective.co/v1/funnels/${funnelId}/contacts/${contactId}`,
{
headers: {
'x-perspective-api-key': process.env.PERSPECTIVE_API_KEY,
},
}
);
const { data } = await response.json();
Response
Returns { data: Contact }. See the Contact object for a full description of every field.
Example response
{
"data": {
"id": "cnt_abc123",
"status": "lead",
"email": "jane.doe@example.com",
"phone": "+49151234567890",
"firstName": "Jane",
"lastName": "Doe",
"name": "Jane Doe",
"website": "https://janedoe.com",
"birthday": "1990-06-15",
"address": {
"postalCode": "10115",
"city": "Berlin",
"state": "Berlin",
"country": "DE",
"street": "Unter den Linden",
"houseNumber": "1"
},
"meta": {
"ps_timezone": "Europe/Berlin",
"ps_converted_at": "2025-05-01T14:32:00.000Z",
"ps_first_seen_at": "2025-05-01T14:30:00.000Z",
"ps_last_seen_at": "2025-05-02T09:15:00.000Z",
"ps_source": "funnel",
"ps_start_slug": "start",
"ps_end_slug": "result",
"ps_email_verified": true,
"ps_embed": false
},
"utmParams": {
"utm_source": "google",
"utm_medium": "cpc",
"utm_campaign": "spring-launch"
},
"properties": {
"quiz_answer": "Option A",
"score": 42
}
}
}
Errors
See Errors for the full list of status codes and handling guidance.
| Status | Meaning |
|---|---|
400 | Missing or invalid funnelId or contactId. |
401 | Missing or invalid API key. |
403 | Your API key does not have crm:read permission. |
500 | Internal server error. |