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

# Create contact

`POST /v1/contacts`

Create a new contact. Optionally create a platform channel in the same request by providing accountId, platform, and platformIdentifier.

## Request body

- object
  - `profileId` string, required
  - `name` string, required
  - `email` string
  - `company` string
  - `tags` string[]
  - `isSubscribed` boolean
  - `notes` string
  - `accountId` string — Optional. Creates a channel if provided with platform + platformIdentifier
  - `platform` 'instagram' | 'facebook' | 'telegram' | 'twitter' | 'bluesky' | 'reddit' | 'whatsapp' | 'slack' | 'sms' — Channel platform. Only the enum values support contact channels; any other platform is rejected with code platform_not_supported.
  - `platformIdentifier` string
  - `displayIdentifier` string

## Response `200`

Contact created

- object
  - `success` boolean
  - `contact` object
    - `id` string
    - `name` string
    - `email` string
    - `company` string
    - `tags` string[]
    - `isSubscribed` boolean
    - `isBlocked` boolean
    - `customFields` object
    - `notes` string
    - `createdAt` string, date-time
  - `channel` object — Created when accountId, platform, and platformIdentifier are provided
    - `id` string
    - `platform` string
    - `platformIdentifier` string
    - `displayIdentifier` string
  - `warning` string

## Other responses

- `400` — Invalid request. Channel fields are all-or-nothing: accountId, platform and platformIdentifier must be sent together (code: missing_required_field). A platform outside the enum does not support contact channels (code: platform_not_supported, details.supportedPlatforms lists the valid values).
- `401` — Unauthorized
- `409` — Duplicate channel. The platformIdentifier is already bound to a channel on this accountId.

## Changes

- **2026-09-09** `41eff0cffb2d` — 1 info
  - added the new `sms` enum value to the request property `platform`
- **2026-09-02** `017dff7e4324` — 1 breaking, 8 info
  - request property `platform` was restricted to a list of enum values
  - added the new `bluesky` enum value to the request property `platform`
  - added the new `facebook` enum value to the request property `platform`
  - added the new `instagram` enum value to the request property `platform`
  - …5 more

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/contacts/post.md)

---

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