Write

Import Contacts or Blocklist Data

Imports contacts or do-not-contact entries from a CSV, a hosted file, or an array. Set target 'contacts' to load CRM records (from raw CSV text, an HTTPS URL, a storage path, or contact objects), with control over how duplicate LinkedIn URLs are merged, replaced, or skipped. Set target 'blacklist' to add exclusion entries instead. Fails if the CSV is malformed.

import_dataPOST/api/v1/contacts/import
crispy — bash

Example prompt: Import this CSV of contacts from lemlist, merge duplicates, and add them to my Q3 prospects list

{
  "target": "contacts",
  "imported": 240,
  "merged": 15,
  "skipped": 3
}
Permission scope
core
Access
Write
Category
Connections

What you can build

Migrate your entire contact database from another outreach tool in one import
Load a fresh lead list from a CSV and auto-add it to a specific list
Choose merge, replace, or skip behavior to keep duplicate contacts clean
Import a do-not-contact list to protect your outreach in a single step

Parameters

Inputs accepted by import_data.

NameTypeDescription
target"contacts" | "blacklist"What to import: 'contacts' for CRM contacts, 'blacklist' for do-not-contact entries
contactsobject[]Array of contact objects (for target='contacts'). Each must have a LinkedIn URL.
csv_contentstringRaw CSV or TSV text (for target='contacts')
csv_urlstringHTTPS URL of a CSV/TSV file (for target='contacts')
storage_pathstringPath inside the 'imports' Supabase Storage bucket (for target='contacts')
sourcestringWhere contacts came from, e.g. 'lemlist', 'heyreach' (for target='contacts')
list_idstringOptional list ID, imported contacts are automatically added (for target='contacts')
entriesstring[]Blacklist entries: URL strings or {linkedin_url, reason} objects (for target='blacklist')
merge_strategy"merge" | "replace" | "skip"How to handle duplicate linkedin_url (target='contacts' only): 'merge' (default; tags UNION, attrs deep-merge), 'replace' (overwrite + null unspecified user-facing fields: first_name,last_name,email,company,title,phone,industry,location,country,status,source,source_detail,tags,custom_attrs,external_ids), 'skip' (no-op dupes).

The complete LinkedIn API. Ready when you are.

Connect your first LinkedIn profile in under 5 minutes. Every tool, every seat, no feature gates. Safe limits, warm-up, and full permission control built in.