---
title: "POST /v1/workspaces/{workspaceId}/contacts/import-validation"
method: POST
path: "/v1/workspaces/{workspaceId}/contacts/import-validation"
---

# POST /v1/workspaces/{workspaceId}/contacts/import-validation

`POST /v1/workspaces/{workspaceId}/contacts/import-validation`

## Request

- Base URL: `https://api.bangermail.com`
- URL: `https://api.bangermail.com/v1/workspaces/{workspaceId}/contacts/import-validation`
- Auth: HTTP bearer

## Request body

- object
  - `rows` object[], required
    - `email` string, email, required
    - `display_name` string
    - `attributes` object
    - `status` 'subscribed' | 'unsubscribed' | 'bounced' | 'complained', required
    - `consent_evidence` object
      - `source` string
      - `reference` string
      - `observed_at` string, date-time
      - `statement` string
  - `consent_confirmed` boolean

## Response `200`

Canonical read-back or idempotent receipt. Provider acceptance is sent; delivered requires a delivery event and does not prove inbox placement.

- object
  - `data` object, required
    - `valid` boolean, required
    - `total_rows` integer, required
    - `valid_rows` integer, required
    - `errors` object[], required
      - `row` integer, required
      - `code` string, required
      - `message` string, required

## Other responses

- `400`: Invalid input or missing operating product.
- `403`: Existing OAuth scope or product boundary denied.
- `409`: Stale version or idempotency conflict.
- `422`: Consent, suppression, personalization, or readiness blocker.

---

[API](https://skmtc.dev/bangermail/apis/banger-api.md) · [All operations](https://skmtc.dev/bangermail/apis/banger-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bangermail/apis/banger-api/revisions/a149909267f9?raw)
