---
title: "Bulk creates, or bulk updates, contacts with merge options. The ID of returned object can be used to query import progress."
method: POST
path: "/v2/address-books/{addressBookId}/contacts/import/with-merge-option/{mergeOption}"
tags: ["ApiContactImport"]
---

# Bulk creates, or bulk updates, contacts with merge options. The ID of returned object can be used to query import progress.

`POST /v2/address-books/{addressBookId}/contacts/import/with-merge-option/{mergeOption}`

## Request

- Base URL: `https://api.dotdigital.com`
- URL: `https://api.dotdigital.com/v2/address-books/{addressBookId}/contacts/import/with-merge-option/{mergeOption}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/dotdigital/apis/apiconnector-com/docs/v2/address-books/:addressBookId/contacts/import/with-merge-option/:mergeOption/post.ts> (a function with typed inputs; its response is checked against the schema)

Import format can either be CSV or Excel. Must include one column called "Email". Passing a valid "mergeOption" parameter is compulsory. Any other columns will attempt to map to your custom data fields.

## Path parameters

- `addressBookId` integer, required
- `mergeOption` 'Overwrite' | 'OnlyOverwriteIfNotEmpty' | 'OnlyOverwriteIfContactDataNotPopulated' | 'NotAvailableInThisVersion', required

## Request body

- ApiFileMedia
  - `fileName` string, nullable
  - `data` string, byte, nullable

## Response `202`

- ApiContactImport
  - `id` string, guid
  - `status` 'Finished' | 'NotFinished' | 'RejectedByWatchdog' | 'InvalidFileFormat' | 'Unknown' | 'Failed' | 'ExceedsAllowedContactLimit' | 'NotAvailableInThisVersion'

---

[API](https://skmtc.dev/dotdigital/apis/apiconnector-com.md) - [All operations](https://skmtc.dev/dotdigital/apis/apiconnector-com/llms.txt) - [OpenAPI document](https://skmtc.dev/dotdigital/apis/apiconnector-com/revisions/391b93e8d24a?raw)
