Contacts
The Contacts API allows you to create, read, update contacts and trigger AI-powered profile enrichment.
List Contacts
GET /api/contacts
Retrieves a paginated list of contacts visible to the authenticated user.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit |
integer | No | Number of contacts to return (1-100, default: 50) |
offset |
integer | No | Number of contacts to skip (default: 0) |
search |
string | No | Search by name or email |
companyId |
string | No | Filter by company ID |
Response
Success Response (200)
{
"success": true,
"data": {
"contacts": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "john@acme.com",
"firstName": "John",
"lastName": "Doe",
"phoneNumber": "+1 555-123-4567",
"address": "123 Main St, San Francisco, CA 94102",
"isFullUser": false,
"company": {
"id": "company-uuid",
"name": "Acme Inc",
"industry": "Technology"
},
"createdAt": "2024-01-15T10:00:00.000Z",
"updatedAt": "2024-01-15T10:30:00.000Z"
}
],
"total": 150,
"limit": 50,
"offset": 0,
"hasMore": true
}
}
Create Contact
POST /api/contacts
Creates a new contact in your organization.
Request Body
{
"email": "john@acme.com",
"firstName": "John",
"lastName": "Doe",
"phoneNumber": "+1 555-123-4567",
"address": "123 Main St, San Francisco, CA 94102",
"companyName": "Acme Inc"
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
email |
string | Yes | Valid email address |
firstName |
string | Yes | Contact's first name (1-100 characters) |
lastName |
string | No | Contact's last name (max 100 characters) |
phoneNumber |
string | No | Phone number (max 50 characters) |
address |
string | No | Full address (max 500 characters) |
companyId |
string | No | Link to existing company (UUID) |
companyName |
string | No | Auto-create company with this name |
Response
Success Response (201)
{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "john@acme.com",
"firstName": "John",
"lastName": "Doe",
"phoneNumber": "+1 555-123-4567",
"address": "123 Main St, San Francisco, CA 94102",
"isFullUser": false,
"company": {
"id": "company-uuid",
"name": "Acme Inc"
},
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-15T10:30:00.000Z"
},
"message": "Contact created successfully"
}
Error Response (409)
{
"success": false,
"error": "Contact with this email already exists in your organization"
}
Get Contact
GET /api/contacts/{id}
Retrieves details for a specific contact.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Contact UUID |
Response
Success Response (200)
{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "john@acme.com",
"firstName": "John",
"lastName": "Doe",
"phoneNumber": "+1 555-123-4567",
"address": "123 Main St, San Francisco, CA 94102",
"latitude": 37.7749,
"longitude": -122.4194,
"isConnector": false,
"isSolutionProvider": false,
"isFullUser": false,
"company": {
"id": "company-uuid",
"name": "Acme Inc",
"industry": "Technology",
"website": "https://acme.com"
},
"createdAt": "2024-01-15T10:00:00.000Z",
"updatedAt": "2024-01-15T10:30:00.000Z"
}
}
Update Contact
PATCH /api/contacts/{id}
Updates an existing contact. Only provided fields are updated.
Request Body
{
"firstName": "Jane",
"phoneNumber": "+1 555-987-6543"
}
Response
Success Response (200)
{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "john@acme.com",
"firstName": "Jane",
"lastName": "Doe",
"phoneNumber": "+1 555-987-6543"
},
"message": "Contact updated successfully"
}
Note: Email cannot be changed for contacts with active user accounts.
Enrich Contact
POST /api/contacts/{id}/enrich
Triggers AI enrichment for a contact. The enrichment job runs asynchronously and updates the contact's profile with professional information.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Contact UUID |
Response
Success Response (200)
{
"success": true,
"data": {
"jobId": "job_abc123",
"contactId": "550e8400-e29b-41d4-a716-446655440000",
"contactName": "John Doe",
"contactEmail": "john@acme.com"
},
"message": "Enrichment job created for John Doe"
}
Error Response (400)
{
"success": false,
"error": "Contact email is required for enrichment"
}
Example Usage
# List contacts with search
curl -X GET "https://beta-api.introzy.com/api/contacts?search=john&limit=10" \
-H "Authorization: Bearer introzy_your_api_key"
# Create a new contact
curl -X POST "https://beta-api.introzy.com/api/contacts" \
-H "Authorization: Bearer introzy_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"email": "jane@acme.com",
"firstName": "Jane",
"lastName": "Smith",
"companyName": "Acme Inc"
}'
# Update a contact
curl -X PATCH "https://beta-api.introzy.com/api/contacts/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer introzy_your_api_key" \
-H "Content-Type: application/json" \
-d '{"phoneNumber": "+1 555-123-4567"}'
# Trigger enrichment
curl -X POST "https://beta-api.introzy.com/api/contacts/550e8400-e29b-41d4-a716-446655440000/enrich" \
-H "Authorization: Bearer introzy_your_api_key"
Use Cases
- Lead Management: Create and manage leads in your CRM pipeline
- Contact Enrichment: Automatically gather professional information about contacts
- Sales Intelligence: Get insights about prospects before outreach
- Data Sync: Sync contacts from external systems via API