v1

latestOpenAPI 3.1.02026-07-247601.0 MB
Contacts

Bulk Create Contacts

This endpoint doesn't consume Apollo credits. Learn more about API pricing and credits.

<a href="https://knowledge.apollo.io/hc/en-us/articles/5995459280525-View-and-Edit-Contacts" target="_blank">Contacts</a> are people saved in Apollo.<br><br>Use the Bulk Create Contacts endpoint to create up to 100 contacts in a single API request. This endpoint supports intelligent deduplication and returns separated arrays for newly created and existing contacts. <br><br>Important: This endpoint creates new contacts but doesn't update existing ones (except for placeholder contacts from email imports). Existing contacts that match the criteria are returned in the <code>existing_contacts</code> array without modification.<br><br>To update existing contacts, use the <a href="https://docs.apollo.io/reference/bulk-update-contacts">Bulk Update Contacts endpoint</a>.

post/contacts/bulk_create

Request body

append_label_namesstring[]

Array of label names to add to ALL contacts in this request

owner_idstring

Owner user ID applied to all contacts in this batch. Defaults to current user if omitted. Returns 422 if the ID does not belong to the current team.

run_dedupeboolean

Enable full deduplication across all sources. When false (default), creates duplicates for non-email_import sources and merges with email_import placeholders only. When true, returns existing contacts without modifying them (except email_import placeholders which are still merged). Matches by email, CRM IDs, or name + organization

Example request

{
  "contacts": [
    {
      "first_name": "John",
      "last_name": "Doe",
      "email": "john.doe@example.com",
      "title": "Senior Manager",
      "primary_title": "VP of Sales",
      "organization_name": "Acme Corporation",
      "phone": "+1-555-0135",
      "present_raw_address": "San Francisco, CA",
      "linkedin_url": "https://www.linkedin.com/in/john-doe-3f9a7c21",
      "facebook_url": "https://www.facebook.com/johndoe",
      "twitter_url": "https://twitter.com/johndoe",
      "photo_url": "https://example.com/photo.jpg",
      "account_id": "507f1f77bcf86cd799439011",
      "organization_id": "507f1f77bcf86cd799439012",
      "contact_stage_id": "507f1f77bcf86cd799439014",
      "salesforce_id": "003xx000004TmiQAAS",
      "hubspot_id": "12345678",
      "salesforce_lead_id": "00Qxx000001abcDEFG",
      "salesforce_contact_id": "003xx000004TmiQAAS",
      "salesforce_account_id": "001pJNj9pix2idKsfj",
      "outreach_id": "98765",
      "salesloft_id": "54321",
      "typed_custom_fields": {
        "60c39ed82bd02f01154c470a": "2025-08-07"
      },
      "contact_emails": [
        {
          "email": "john.doe@example.com"
        }
      ],
      "phone_numbers": [
        {
          "raw_number": "+1-555-0135"
        }
      ],
      "contact_role_type_ids": [
        "507f1f77bcf86cd799439020"
      ]
    }
  ],
  "append_label_names": [
    "Hot Lead",
    "Q1 2024"
  ],
  "owner_id": "507f1f77bcf86cd799439013",
  "run_dedupe": true
}

Response

200 - Successful bulk create operation

Example response

{
  "created_contacts": [
    {
      "id": "507f1f77bcf86cd799439011",
      "first_name": "John",
      "last_name": "Doe",
      "email": "john.doe@example.com",
      "title": "Senior Manager",
      "organization_name": "Acme Corporation",
      "team_id": "507f1f77bcf86cd799439012",
      "owner_id": "507f1f77bcf86cd799439013",
      "contact_stage_id": "507f1f77bcf86cd799439014",
      "created_at": "2025-10-16T18:30:00Z",
      "updated_at": "2025-10-16T18:30:00Z"
    }
  ],
  "existing_contacts": [
    {
      "id": "507f1f77bcf86cd799439015",
      "first_name": "Original",
      "last_name": "Name",
      "email": "existing@example.com",
      "title": "Original Title",
      "team_id": "507f1f77bcf86cd799439012",
      "owner_id": "507f1f77bcf86cd799439013",
      "created_at": "2025-09-01T10:00:00Z",
      "updated_at": "2025-09-15T14:30:00Z"
    }
  ]
}