Fetch Contact
Retrieve a single contact by ID with optional related data
Returns a single contact record along with optional related data including notes, profile, signals, and entity information.
Requires a valid `api_key` and `developer_secret` in the JSON request body. Requests must originate from a whitelisted IP address.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
api_key |
body | string |
Yes | Your Zyntro API key |
developer_secret |
body | string |
Yes | Your developer secret (zdk_XXX). Issued during developer onboarding. |
org_id |
body | string |
Yes | Your organization UUID |
member_id |
body | string |
Yes | The member UUID performing the request |
contact_id |
body | string |
Yes | The UUID of the contact to retrieve |
include_notes |
body | integer |
No | Set to `1` to include the contact's notes in the response. Default: `0` |
include_profile |
body | integer |
No | Set to `1` to include enrichment profile data. Default: `0` |
include_signals |
body | integer |
No | Set to `1` to include engagement signals. Default: `0` |
include_entity |
body | integer |
No | Set to `1` to include the associated entity (company) data. Default: `0` |
Request Body
Content-Type: application/json
Example
json
{
"org_id": "YOUR_ORG_ID",
"api_key": "YOUR_API_KEY",
"member_id": "YOUR_MEMBER_ID",
"contact_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"include_notes": 1,
"include_entity": 1,
"include_profile": 0,
"include_signals": 0,
"developer_secret": "YOUR_DEVELOPER_SECRET"
}
Code Samples
bash
curl -X POST https://app.zyntrohq.com/apis/v2/public/crm/fetchContact \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_API_KEY",
"developer_secret": "YOUR_DEVELOPER_SECRET",
"org_id": "YOUR_ORG_ID",
"member_id": "YOUR_MEMBER_ID",
"contact_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"include_notes": 1,
"include_entity": 1
}'
php
$response = file_get_contents('https://app.zyntrohq.com/apis/v2/public/crm/fetchContact', false,
stream_context_create(['http' => [
'method' => 'POST',
'header' => 'Content-Type: application/json',
'content' => json_encode([
'api_key' => 'YOUR_API_KEY',
'developer_secret' => 'YOUR_DEVELOPER_SECRET',
'org_id' => 'YOUR_ORG_ID',
'member_id' => 'YOUR_MEMBER_ID',
'contact_id' => 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
'include_notes' => 1
])
]])
);
$data = json_decode($response, true);
javascript
const response = await fetch('https://app.zyntrohq.com/apis/v2/public/crm/fetchContact', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
api_key: 'YOUR_API_KEY',
developer_secret: 'YOUR_DEVELOPER_SECRET',
org_id: 'YOUR_ORG_ID',
member_id: 'YOUR_MEMBER_ID',
contact_id: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
include_notes: 1
})
});
const data = await response.json();
Response
200
Contact retrieved successfully
json
{
"data": {
"notes": [
{
"note_maker": "f2470c7f-60b1-4491-b117-8ba0e3e2a53b",
"note_content": "Expressed interest in the enterprise plan during the demo call.",
"note_date_created": "2025-03-10 11:00:00"
}
],
"entity": {
"entity_name": "Acme Corp",
"entity_tags": "[]",
"entity_label": "Company",
"entity_socials": "{}",
"entity_website": "https://acme.com",
"entity_location": "San Francisco, CA",
"entity_custom_fields": "{}"
},
"contact": {
"contact_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"contact_dnc": "0",
"contact_zip": "94105",
"contact_city": "San Francisco",
"contact_name": "Jane Smith",
"contact_tags": "[\"prospect\", \"webinar-attendee\"]",
"contact_email": "[email protected]",
"contact_owner": "f2470c7f-60b1-4491-b117-8ba0e3e2a53b",
"contact_phone": "+1-555-0123",
"contact_stage": "Nurturing",
"contact_state": "CA",
"contact_source": "Website Form",
"contact_status": "Active",
"contact_address": "123 Main St",
"contact_country": "United States",
"contact_is_test": "0",
"contact_stageid": "stage-uuid",
"contact_timezone": "America/Los_Angeles",
"contact_last_name": "Smith",
"contact_first_name": "Jane",
"contact_role_label": "Decision Maker",
"contact_salutation": "Ms",
"contact_sms_optout": "0",
"contact_auto_engage": "1",
"contact_country_code": "US",
"contact_date_created": "2025-01-15 09:30:00",
"contact_date_updated": "2025-03-20 14:22:00",
"contact_email_optout": "0",
"contact_custom_fields": "{\"industry\": \"Technology\"}",
"contact_email_verified": "1",
"contact_phone_verified": "0"
},
"signals": null,
"contact_profile": null
},
"status": "success"
}
200
Error — contact not found or invalid parameters
json
{
"data": [
"No such contact"
],
"status": "error"
}
Errors
| Code | Message | Resolution |
|---|---|---|
MISSING_API_KEY |
Missing service instance The `api_key` field is missing or empty. |
Include your API key in the request body. |
INVALID_API_KEY |
Invalid API Key No active user account matches the provided API key. |
Verify your API key in **Me > API & Webhooks**. |
MISSING_DEVELOPER_SECRET |
Missing developer_secret The `developer_secret` field is missing or empty. |
Include your developer secret in the request body. This is issued during developer onboarding. |
INVALID_DEVELOPER_SECRET |
Invalid developer_secret The developer secret does not match any active key. |
Verify your developer secret. If lost, have your client revoke and reissue the key. |
IP_NOT_WHITELISTED |
IP address not whitelisted The request originated from an IP not in the key's allowed list. |
Contact your client to add your IP to the developer key whitelist. |
USER_INACTIVE |
User is not active The account tied to this API key has been deactivated. |
Contact your organization admin. |
MISSING_CONTACT_ID |
Missing contact ID The `contact_id` field is missing or empty. |
Provide a valid contact UUID. |
MISSING_ORG_ID |
Missing org ID The `org_id` field is missing or empty. |
Include your organization ID. |
MISSING_MEMBER_ID |
Missing member ID The `member_id` field is missing or empty. |
Include your member ID. |
NOT_FOUND |
No such contact No contact with that ID exists in the specified organization. |
Check the contact_id value and ensure it belongs to your organization. |
Tip:
Use the `include_*` flags selectively. Fetching only the data you need keeps responses fast. If you only need the contact's name and email, omit all include flags.