---
title: "Bulk update contacts, updating contacts with matching phone numbers or creating new contacts for new phone numbers."
method: POST
path: "/dashboards/{dashboard_id}/contacts"
tags: ["Contacts"]
---

# Bulk update contacts, updating contacts with matching phone numbers or creating new contacts for new phone numbers.

`POST /dashboards/{dashboard_id}/contacts`

Only the dashboard specified will have contacts added; contacts are organized by dashboard, and there is no account level search for a number available.

## Path parameters

- `dashboard_id` integer, required

## Request body

- UpdateContactRequest[]
  - `phone_number` string — The contact's identifying phone number.
  - `first_name` string — The contact's first name.
  - `last_name` string — The contact's last name.
  - `display_name` string — The contact's display name.
  - `is_suppressed` boolean — Whether the contact is suppressed.
  - `is_archived` boolean — Whether the contact is archived.
  - `is_blocked` boolean — Whether the contact is blocked.
  - `suppressed_reason` string — For notekeeping, a reason why the contact was suppressed.
  - `note` string — Any text notes for the contact.
  - `groups` integer[] — An array of group identifiers that reference group membership.
  - `contact_tags` string[] — An array of contact tag unique identifiers that reference tags that should be attached to this contact. This argument is optional and can be omitted or set to null. An empty array will remove all tags from the contact.
  - `custom_fields` CustomFieldEntry[] — An array of custom field identifiers that override the current custom field values by id. This argument is optional and can be omitted or set to null. An empty array will remove all custom fields from the contact.
    - `id` string — The custom field's guid you can use to edit the value.
    - `value` string — Current value of the custom field.
  - `is_resolved` boolean — Whether or not their conversation thread is currently resolved.

## Response `200`

A list of contacts.

- Contact[]
  - `phone_number` string — The contact's phone number.
  - `first_name` string — The contact's first name.
  - `last_name` string — The contact's last name.
  - `display_name` string — The contact's display name.
  - `thread_id` string — The id of the thread for this contact's conversation on this dashboard. To access the thread of this contact in the webapp, go to https://app.textrequest.com/app/thread/<thread_id>
  - `is_suppressed` boolean — Whether the contact is suppressed.
  - `is_archived` boolean — Whether the contact is archived.
  - `is_blocked` boolean — Whether the contact is blocked.
  - `suppressed_reason` string — For notekeeping, a reason why the contact was suppressed.
  - `note` string — Any text notes for the contact.
  - `groups` integer[] — An array of group identifiers that reference group membership.
  - `contact_tags` string[] — An array of the contact's tags.
  - `custom_fields` CustomFieldEntry[] — An array of the contact's custom field values.
    - `id` string — The custom field's guid you can use to edit the value.
    - `value` string — Current value of the custom field.
  - `is_resolved` boolean — Whether or not their conversation thread is currently resolved.
  - `first_contact_utc` string — When the contact was first messaged. All dates are UTC.
  - `opted_out_utc` string — When the contact opted out. Null if the contact has not and can receive messages.
  - `last_msg_sent_utc` string, date-time — When the contact was last sent a message.
  - `last_msg_received_utc` string, date-time — When this dashboard last received a message from a contact.
  - `total_msgs_sent` integer — Total messages sent to a contact.
  - `total_msgs_received` integer — Total messages received from a contact.
  - `response_count` integer — Total number of response messages from the contact.
  - `date_created_utc` string, date-time — When the contact was created.
  - `last_contact_date_utc` string, date-time — When the contact was last contacted.
  - `last_message` object — Last message sent to or from this contact.

## Other responses

- `400` — Bad request. Sent if a query is invalid.
- `401` — Unauthorized. Sent if the API key is omitted or invalid.

---

[API](https://skmtc.net/textrequest/apis/text-request-api-v3.md) · [All operations](https://skmtc.net/textrequest/apis/text-request-api-v3/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/textrequest/text-request-api-v3/revisions/e4e42efcd650/schema)
