---
title: "Resolve Import Contacts"
method: POST
path: "/api/v1/contacts/import/resolve"
tags: ["contact-import"]
---

# Resolve Import Contacts

`POST /api/v1/contacts/import/resolve`

Create or resolve CSV-imported contacts using backend-owned TCPA logic.

The frontend remains responsible for CSV preview/campaign linking. This
endpoint owns canonical contact creation and the table-backed TCPA mapping.

## Request body

- ContactImportRequest
  - `campaign_id` string, required
  - `contacts` ContactImportItem[], required
    - `row_id` string, nullable
    - `first_name` string, required
    - `last_name` string, required
    - `phone_number` string, required
    - `email` string, nullable
    - `preferred_name` string, nullable
    - `city` string, nullable
    - `state` string, nullable
    - `zip_code` string, nullable
    - `county` string, nullable
    - `personalization_fields` object, nullable
    - `exportable_fields` object, nullable

## Response `200`

Successful Response

- ContactImportResponse
  - `total` integer, required
  - `created` integer, required
  - `existing` integer, required
  - `updated_existing_tcpa` integer, required
  - `failed` integer, required
  - `contacts` ContactImportResult[], required
    - `row_id` string, required
    - `phone_number` string, required
    - `contact_id` string, nullable
    - `status` 'created' | 'existing' | 'existing_tcpa_updated' | 'failed', required
    - `city` string, nullable
    - `state` string, nullable
    - `time_zone` string, nullable
    - `contact_window` object, nullable
    - `tcpa_call_window_id` string, nullable
    - `error` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/outrival/apis/fastapi.md) · [All operations](https://skmtc.net/outrival/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/outrival/fastapi/revisions/2ccec534ffce/schema)
