---
title: "Create a contact"
method: POST
path: "/public/api/v1/inboxes/{inbox_identifier}/contacts"
tags: ["Contacts API"]
---

# Create a contact

`POST /public/api/v1/inboxes/{inbox_identifier}/contacts`

## Request

- Base URL: `https://app.chatwoot.com`
- URL: `https://app.chatwoot.com/public/api/v1/inboxes/{inbox_identifier}/contacts`
- Auth: none required

Create a contact

## Request body

- PublicContactCreateUpdatePayload
  - `identifier` string: External identifier of the contact
  - `identifier_hash` string: Identifier hash prepared for HMAC authentication
  - `email` string: Email of the contact
  - `name` string: Name of the contact
  - `phone_number` string: Phone number of the contact
  - `avatar` string, binary: Send the form data with the avatar image binary or use the avatar_url
  - `custom_attributes` object: Custom attributes of the customer

## Response `200`

Success

- PublicContact
  - `id` integer: Id of the contact
  - `source_id` string: The session identifier of the contact
  - `name` string, nullable: Name of the contact when available
  - `email` string, nullable: Email of the contact
  - `phone_number` string, nullable: Phone number of the contact
  - `pubsub_token` string: The token to be used to connect to chatwoot websocket

## Other responses

- `401`: Unauthorized

## Changes

- **2026-03-19** `9d0afdc7de05`: 2 breaking, 1 info
  - the response property `email` became nullable for the status `200`
  - the response property `name` became nullable for the status `200`
  - added the optional property `phone_number` to the response with the `200` status

[Operation history](https://skmtc.dev/chatwoot/apis/chatwoot-3/changes/public/api/v1/inboxes/:inbox_identifier/contacts/post.md)

---

[API](https://skmtc.dev/chatwoot/apis/chatwoot-3.md) - [All operations](https://skmtc.dev/chatwoot/apis/chatwoot-3/llms.txt) - [OpenAPI document](https://skmtc.dev/chatwoot/apis/chatwoot-3/revisions/024ce1ca0eab?raw)
