---
title: "Create Contact With Permissions"
method: POST
path: "/api/v1/contacts/with-permissions"
tags: ["Contacts"]
---

# Create Contact With Permissions

`POST /api/v1/contacts/with-permissions`

## Request body

- ContactCreateRequest
  - `preferred_name` string, nullable
  - `name_prefix` string, nullable
  - `given_name` string, nullable
  - `middle_name` string, nullable
  - `family_name` string, nullable
  - `name_suffix` string, nullable
  - `company_name` string, nullable
  - `job_title` string, nullable
  - `birthday` string, date, nullable
  - `notes` string, nullable
  - `emails` ContactEmailItem[]
    - `value` string, email, required
    - `label` string, nullable
    - `is_primary` boolean
  - `phones` ContactPhoneItemRequest[]
    - `value_e164` string, required — Phone number in E.164 format (e.g. '+15551234567').
    - `label` string, nullable
    - `is_primary` boolean
  - `websites` ContactWebsiteItem[]
    - `url` string, required
    - `label` string, nullable
  - `dates` ContactDateItem[]
    - `date` string, date, required
    - `label` string, required
  - `addresses` ContactAddressItem[]
    - `street` string, nullable
    - `city` string, nullable
    - `region` string, nullable
    - `postal` string, nullable
    - `country` string, nullable
    - `label` string, nullable
  - `custom_fields` ContactCustomFieldItem[]
    - `label` string, required
    - `value` string, required
  - `access_identity_ids` string[], nullable — Deprecated. Non-null values are rejected; use contact communication policies instead.
  - `permissions` union, required — Initial permissions for one agent, saved atomically. Requires an admin API key or the Console.
    - ContactInitialPermissions
      - `emails` object
      - `phones` object
      - `inbound_emails` object
      - `outbound_emails` object
      - `inbound_phones` object
      - `outbound_phones` object
      - `profile` boolean
      - `memories` boolean
      - `identity_id` string, uuid, required
    - ContactCreatePermissions
      - `identity_id` string, uuid, required
      - `addresses` ContactInitialAddressPermission[]
        - `kind` 'email' | 'phone', required
        - `value` string, required
        - `action` 'inherit' | 'allow' | 'block', required
        - `direction` 'inbound' | 'outbound' | 'both'
        - `expected_inbound_action` 'inherit' | 'allow' | 'block', nullable
        - `expected_outbound_action` 'inherit' | 'allow' | 'block', nullable
      - `profile` 'inherit' | 'allow' | 'block', nullable
      - `memories` 'inherit' | 'allow' | 'block', nullable
    - ContactInitialAccess
      - `email` ContactChannelAccessUpdate
        - `visible` boolean
        - `contactable` string[]
        - `inbound_contactable` string[]
        - `outbound_contactable` string[]
      - `phone` ContactChannelAccessUpdate
        - `visible` boolean
        - `contactable` string[]
        - `inbound_contactable` string[]
        - `outbound_contactable` string[]
      - `profile` boolean
      - `memories` boolean
      - `identity_id` string, uuid, required

## Response `201`

Successful Response

- ContactMutationResponse
  - `id` string, uuid, required
  - `organization_id` string, required
  - `preferred_name` string, nullable, required
  - `name_prefix` string, nullable, required
  - `given_name` string, nullable, required
  - `middle_name` string, nullable, required
  - `family_name` string, nullable, required
  - `name_suffix` string, nullable, required
  - `company_name` string, nullable, required
  - `job_title` string, nullable, required
  - `birthday` string, date, nullable, required
  - `notes` string, nullable, required
  - `emails` ContactEmailItem[], required
    - `value` string, email, required
    - `label` string, nullable
    - `is_primary` boolean
  - `phones` ContactPhoneItemResponse[], required
    - `value_e164` string, required
    - `label` string, nullable
    - `is_primary` boolean
  - `websites` ContactWebsiteItem[], required
    - `url` string, required
    - `label` string, nullable
  - `dates` ContactDateItem[], required
    - `date` string, date, required
    - `label` string, required
  - `addresses` ContactAddressItem[], required
    - `street` string, nullable
    - `city` string, nullable
    - `region` string, nullable
    - `postal` string, nullable
    - `country` string, nullable
    - `label` string, nullable
  - `custom_fields` ContactCustomFieldItem[], required
    - `label` string, required
    - `value` string, required
  - `creation_source` 'manual' | 'vcard' | 'communication' | 'backfill', required
  - `review_status` 'unreviewed' | 'confirmed', required
  - `reviewed_at` string, date-time, nullable, required
  - `reviewed_by` string, nullable, required
  - `preferred_name_source` 'manual' | 'vcard' | 'provider' | 'mail_header' | 'identifier_fallback', required
  - `preferred_name_locked_at` string, date-time, nullable, required
  - `created_by_identity_id` string, uuid, nullable, required
  - `merged_into_contact_id` string, uuid, nullable, required
  - `is_auto_created` boolean, required
  - `is_confirmed` boolean, required
  - `status` 'active' | 'paused' | 'deleted', required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `access` ContactAccessResponse[] — Raw ``contact_access`` rows for this contact, inlined so the console can skip a follow-up ``GET /contacts/{id}/access`` per row. Either a single wildcard row (``identity_id=null``), an explicit per-identity list, or empty when the contact has zero legacy rows. These rows do not determine communication permissions. Always populated by the list and single-contact read paths; empty does not mean 'not loaded'.
    - `id` string, uuid, required
    - `contact_id` string, uuid, required
    - `identity_id` string, uuid, nullable, required
    - `created_at` string, date-time, required
  - `memory_count` integer, required
  - `latest_memory` ContactMemorySummary, required
    - `id` string, uuid, required
    - `content` string, required
    - `updated_at` string, date-time, required

## Other responses

- `422` — Validation Error
- `4XX` — Client error with Support Agent information.
- `5XX` — Server error with Support Agent information.

## Changes

- **2026-09-22** `f3dcdb50fbaa` — 11 info
  - added the new optional request property `permissions/anyOf[subschema #1: ContactInitialPermissions]/inbound_emails`
  - added the new optional request property `permissions/anyOf[subschema #1: ContactInitialPermissions]/inbound_phones`
  - added the new optional request property `permissions/anyOf[subschema #1: ContactInitialPermissions]/outbound_emails`
  - added the new optional request property `permissions/anyOf[subschema #1: ContactInitialPermissions]/outbound_phones`
  - …7 more
- **2026-09-15** `1393694554cc` — 1 info
  - endpoint added

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

---

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