---
title: "Maximum 500 records can be bulk inserted at a time"
method: POST
path: "/v1/contacts/insertbulk"
tags: ["Contact"]
---

# Maximum 500 records can be bulk inserted at a time

`POST /v1/contacts/insertbulk`

## Query parameters

- `returnFullData` boolean

## Request body

- unknown[]
  - unknown

## Response `201`

Created

- ContactInsertBulkResponseWithData
  - `upsertedData` Contact[], nullable — Returned only if "returnFullData" query parameter is set to true
    - `id` integer
    - `departmentId` integer
    - `firstName` string, required
    - `lastName` string, nullable
    - `fullName` string, nullable
    - `email` string, email, nullable
    - `phone` string, nullable — Phone number of the contact, with country code, without leading + (plus) sign
    - `companyId` integer, nullable
    - `companyName` string, nullable
    - `groupIds` string, nullable — Contact group ids separated by commas
    - `countryCode` string, nullable — ISO Alpha-2 country code, see <a href="https://www.iban.com/country-codes">https://www.iban.com/country-codes</a>
    - `state` string, nullable
    - `city` string, nullable
    - `town` string, nullable
    - `zip` string, nullable
    - `address` string, nullable
    - `status` string, nullable — <p>Enum values:</p><ul><li><i>C = Customer</i></li><li><i>L = Lead</i></li><li><i>P = Prospect</i></li><li><i>O = Lost</i></li><li><i>R = Reseller</i></li><li><i>T = Partner</i></li><li><i>S = Supplier</i></li></ul>
    - `department` string, nullable
    - `job` string, nullable
    - `createdUserId` integer
    - `createdDate` string, date-time
    - `updatedUserId` integer
    - `updatedDate` string, date-time, nullable
    - `color` string, nullable — Contact's background color, only used if there's no PhotoUrl
    - `photoUrl` string, nullable — Contact's photo URL
    - `customFields` string, nullable — A stringified JSON object mapping custom field names to values Example: {"My Text Custom Field":"Field Value","My Numeric Custom Field":2}
    - `blocked` integer, nullable — Whether the contact is blocked. If true; emails, chats, calls etc. from this contact will be ignored.
    - `visitor` string, nullable — Contact's unique identifier for chat conversations
    - `isEmailAllowed` integer, nullable
    - `isCallAllowed` integer, nullable
    - `isSmsAllowed` integer, nullable
    - `isWaMarketingAllowed` integer, nullable — Read-only provider consent state; it is surfaced on the contact model for filtering but is deliberately excluded from contact editing.
    - `waUserId` string, nullable — Allows identity lookup to continue when Meta no longer exposes the phone number.
    - `waUsername` string, nullable — Provides a display fallback without replacing the contact's user-managed name.
    - `lastSeen` string, date-time, nullable
    - `lastContacted` string, date-time, nullable
    - `lastHeard` string, date-time, nullable
  - `inserted` integer
  - `updated` integer
  - `errors` InsertBulkError[], nullable
    - `row` integer — Starts from 0, the index of the element in the list that caused the error
    - `error` string, nullable — Error message

## Other responses

- `400` — Bad Request
- `409` — Conflict
- `503` — Service Unavailable

---

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