Get Contact by ID
This endpoint retrieves detailed information about a specific contact by its unique identifier.Endpoint Details
- URL:
/contacts/{id} - Method:
GET - Authentication: Required (
API KEYorJWT Token) - Source:
src/api/public_apis_v1/contact/contact_by_id/contact_by_id_controller.rs
Path Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
id | UUID | Yes | The unique identifier of the contact to retrieve | 550e8400-e29b-41d4-a716-446655440000 |
Request Headers
| Header | Value | Description |
|---|---|---|
Authorization | Bearer <api_key> | Your API KEY or JWT Token |
Content-Type | application/json | Request content type |
Example Request
cURL
JavaScript
Python
Response
Success Response
Status Code:200 OK
Error Response
Status Code:200 OK (with error status)
When a contact is not found or an error occurs:
Response Fields
| Field | Type | Description |
|---|---|---|
id | UUID | Unique identifier for the contact |
company_id | UUID | Company that owns this contact |
firstname | String | Contact’s first name |
lastname | String | Contact’s last name |
phone_number | String | Contact’s phone number in E.164 format |
metadata | Object or null | Custom metadata fields (email, company, job title, etc.) |
number_country_code | String | Country code of the phone number (e.g., “+1”, “+44”) |
last_call_status | String | Status of most recent call (completed, busy, no-answer, in-progress) |
last_call_at | DateTime or null | Timestamp of the last call made to this contact |
last_call_duration | Integer or null | Duration of last call in seconds |
last_call_feedback | String or null | Feedback from the most recent call |
source_name | String | Source where contact was acquired (Manual, CSV Import, Website, etc.) |
tag_name | String | Tag label for categorization (hot_lead, cold_lead, etc.) |
category_name | String | Category classification (sales_qualified, marketing_qualified, etc.) |
notes | String or null | Additional notes about the contact |
created_at | DateTime | Timestamp when contact was created |
updated_at | DateTime | Timestamp when contact was last updated |
campaign_id | UUID or null | Associated campaign identifier if contact is in a campaign |
status | String | Contact status (active, inactive, deleted) |
workspace_id | String | Workspace identifier (e.g., “default”, “production”) |
Metadata Field
Themetadata field is a flexible JSON object that can contain any custom fields. Common fields include:
| Field | Type | Description |
|---|---|---|
email | String | Contact’s email address |
company_name | String | Company or organization name |
job_title | String | Contact’s job title or role |
property_interest | String | For real estate: type of property interested in |
source | String | Specific source within the source_name (e.g., “landing_page”, “facebook_ad”) |
custom_field | Any | Any additional custom fields your business requires |
Use Cases
1. Contact Details Retrieval
Fetch complete information about a specific contact for display in your CRM or application.2. Pre-Call Context
Retrieve contact details before making a call to provide agents with customer context.3. Contact Verification
Verify contact information and check their call history before adding to a new campaign.4. CRM Integration
Sync contact data between Callab AI and your external CRM system using the contact ID.5. Lead Qualification
Review contact metadata, tags, and categories to assess lead quality and prioritization.6. Call History Review
Check the last call status, duration, and feedback to inform follow-up strategies.Notes
- The endpoint returns a standard success response even when the contact is not found (with error status)
- All timestamps are returned in UTC format
- The
metadatafield is flexible and can contain any custom JSON data your business requires - The
last_call_statusfield will benullif no calls have been made to this contact yet - The
campaign_idwill benullif the contact is not currently assigned to any campaign - Phone numbers are stored in E.164 format but the API accepts various formats on input
- The
workspace_idallows for multi-tenant or environment-specific contact management - Tags and categories help organize and segment contacts for targeted campaigns
- The
source_namefield tracks where the contact originated from for attribution purposes