Skip to main content
Outcome: clean contact records in your workspace, deduplicated, validated, and organized into a list ready for sequencing.

Best interface

API for bulk import — one POST /v3/contacts/import call handles dedupe, list assignment, and per-item outcomes. Drive it from your own code, or from the terminal with reply api. MCP for conversational, one-at-a-time creation.

Steps

1

Build the import payload

Import takes JSON, not CSV — convert your spreadsheet first. The body is {"items": [...], "options": {...}}, where each item uses the contact fields and options controls dedupe and list assignment. Maximum 1000 items per request — batch anything larger.
2

Import, then read the per-item outcome

The response reports added / updated / skipped / failed counts with a per-item outcome — report exact numbers rather than “done”. Nothing is written until you send this call, so validate the payload locally first: there is no server-side dry-run.
3

Or create contacts programmatically (API / MCP)

For one-at-a-time or system-to-system sync, use the Contacts endpoints in the API Reference, or reply_create_contact / reply_update_contact via MCP (needs a name plus email or LinkedIn URL).
4

Validate emails before sending

Schedule email validation on the list — never send to a dead address. Available today via the API; part of the list-hygiene loop.
5

Verify list membership

Availability notes

  • CSV import, contact CRUD, lists, and email validation: available today.
  • Waterfall enrichment of imported records (fill missing emails/phones/firmographics): coming soon — see Find prospects.