---
title: "Create a contact"
method: POST
path: "/contacts"
tags: ["Contacts"]
---

# Create a contact

`POST /contacts`

## Request

- Base URL: `https://www.unitpost.com/api/v1`
- URL: `https://www.unitpost.com/api/v1/contacts`
- Auth: HTTP bearer

Add a single contact to your workspace. Set an `email` plus any standard or custom field values; custom fields must already exist (define them with [Create a custom contact field](#post-contact-fields)). Emails are unique per workspace, so creating one that already exists returns `409` — use [Update a contact](#patch-contacts-id) to change an existing contact, or [Start an async contact import](#post-contacts-imports) to add many at once. Requires the `contacts:write` capability.

## Request body

- ContactCreate
  - `email` string, required
  - `first_name` string
  - `last_name` string
  - `unsubscribed` boolean
  - `custom_fields` object

## Response `201`

Created.

- Contact
  - `object` 'contact', required
  - `id` string, required
  - `email` string, nullable, required
  - `first_name` string, nullable, required
  - `last_name` string, nullable, required
  - `unsubscribed` boolean, required
  - `unsubscribed_at` string, nullable, required
  - `unsubscribe_reason` 'USER' | 'MANUAL' | 'IMPORT' | 'BOUNCE' | 'COMPLAINT', nullable, required
  - `custom_fields` object, required
  - `created_at` string, required
  - `updated_at` string, required

## Other responses

- `401`: Missing or invalid API key.
- `409`: A contact with that email already exists.
- `422`: Validation error.

---

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