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

# Create a new contact

`POST /contacts`

Create a new contact for the customer.

## Request body

- object
  - `first_name` string
  - `last_name` string
  - `display_name` string
  - `company` string
  - `job_title` string
  - `source` 'manual' | 'import' | 'api' | 'sync'
  - `external_id` string
  - `notes` string
  - `phone_numbers` object[]
    - `number` string
    - `type` 'mobile' | 'work' | 'home' | 'fax' | 'other'
    - `is_primary` boolean
  - `emails` object[]
    - `address` string, email
    - `type` 'work' | 'personal' | 'other'
    - `is_primary` boolean
  - `tag_ids` string[]

## Response `201`

Contact created successfully.

- ContactManagerContact
  - `id` string, uuid — Unique identifier for the contact.
  - `customer_id` string, uuid — Unique identifier of the associated customer.
  - `first_name` string — First name of the contact.
  - `last_name` string — Last name of the contact.
  - `display_name` string — Display name of the contact.
  - `company` string — Company name associated with the contact.
  - `job_title` string — Job title of the contact.
  - `source` 'manual' | 'import' | 'api' | 'sync' — Source of the contact.
  - `external_id` string — External identifier for the contact.
  - `phone_numbers` ContactManagerPhoneNumber[] — List of phone numbers associated with the contact.
    - `id` string, uuid — Unique identifier for the phone number.
    - `number` string — Phone number as entered.
    - `number_e164` string — Phone number in E.164 format.
    - `type` 'mobile' | 'work' | 'home' | 'fax' | 'other' — Type of the phone number.
    - `is_primary` boolean — Indicates if this is the primary phone number.
    - `tm_create` string, date-time — Timestamp when the phone number was created.
  - `emails` ContactManagerEmail[] — List of email addresses associated with the contact.
    - `id` string, uuid — Unique identifier for the email address.
    - `address` string, email — Email address.
    - `type` 'work' | 'personal' | 'other' — Type of the email address.
    - `is_primary` boolean — Indicates if this is the primary email address.
    - `tm_create` string, date-time — Timestamp when the email was created.
  - `tag_ids` string[] — List of tag IDs associated with the contact.
  - `tm_create` string, date-time — Timestamp when the contact was created.
  - `tm_update` string, date-time — Timestamp when the contact was last updated.
  - `tm_delete` string, date-time — Timestamp when the contact was deleted.

## Other responses

- `400` — Invalid request (INVALID_ARGUMENT).
- `401` — Authentication required (UNAUTHENTICATED).
- `500` — Internal error (INTERNAL).

## Changes

- **2026-05-30** `995c56ba9219` — 3 warning, 4 info
  - removed the request property `addresses`
  - removed the optional property `addresses` from the response with the `201` status
  - removed the optional property `notes` from the response with the `201` status
  - added the new optional request property `emails`
  - …3 more

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

---

[API](https://skmtc.dev/voipbin/apis/voipbin-api.md) · [All operations](https://skmtc.dev/voipbin/apis/voipbin-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/voipbin/voipbin-api/revisions/707e8a5ee736/schema)
