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