Bondery Docs
Guides

Bulk import custom contacts

Import contacts from vCard files or your own data using the REST API.

Use the import endpoints when you have contact data outside LinkedIn or Instagram exports — for example a vCard (.vcf) export from another app, or contacts you build programmatically.

The flow is always parse → preview → commit. Parsing validates and normalizes rows; committing writes selected contacts to the account.

Prerequisites

  • A full-access API key or a user session token
  • Contacts shaped like the API import schemas (vCard is the simplest starting point)

vCard import

Parse the file

POST /api/contacts/import/vcard/parse

Send the vCard file as multipart/form-data (field name per the OpenAPI spec). The response lists parsed contacts with validation metadata so you can preview before writing anything.

curl -X POST "https://api.usebondery.com/api/contacts/import/vcard/parse" \
  -H "Authorization: Bearer bondery_key_<keyId>_<secret>" \
  -F "file=@contacts.vcf"

Review the preview

Check each contact in the response. Drop invalid rows or duplicates before commit. The webapp import UI follows the same parse/commit pattern.

Commit selected contacts

POST /api/contacts/import/vcard/commit

Send the contacts you want to import in the request body. Each commit accepts up to 25 contacts per request — batch larger imports in chunks.

curl -X POST "https://api.usebondery.com/api/contacts/import/vcard/commit" \
  -H "Authorization: Bearer bondery_key_<keyId>_<secret>" \
  -H "Content-Type: application/json" \
  -d '{"contacts": [/* parsed contact objects from step 1 */]}'

Repeat until all batches are committed.

Platform exports (LinkedIn / Instagram)

For native platform ZIP exports, use the dedicated endpoints instead of vCard:

PlatformParseCommit
LinkedInPOST /api/contacts/import/linkedin/parsePOST /api/contacts/import/linkedin/commit
InstagramPOST /api/contacts/import/instagram/parsePOST /api/contacts/import/instagram/commit

See the Import guide for what each export contains and how the webapp presents previews.

Create contacts one at a time

For small scripts, POST /api/contacts creates a single contact without the import pipeline. Prefer parse/commit when you have many rows or need the same validation as the webapp importer.

Errors

Import failures return the standard API error envelope. Look up error.code in Error codes — common cases include validation_error and auth_required.

On this page