---
title: "PUT /v1/contactBooks/{contactBookId}/contacts/{contactId}"
method: PUT
path: "/v1/contactBooks/{contactBookId}/contacts/{contactId}"
---

# PUT /v1/contactBooks/{contactBookId}/contacts/{contactId}

`PUT /v1/contactBooks/{contactBookId}/contacts/{contactId}`

## Request

- Base URL: `https://app.usesend.com/api`
- URL: `https://app.usesend.com/api/v1/contactBooks/{contactBookId}/contacts/{contactId}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/usesend/apis/usesend-api/docs/v1/contactBooks/:contactBookId/contacts/:contactId/put.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `contactBookId` string, required

## Request body

- object
  - `email` string, required
  - `firstName` string
  - `lastName` string
  - `properties` object
  - `subscribed` boolean

## Response `200`

Contact upserted successfully

- object
  - `contactId` string, required

## Changes

- **2026-07-17** `ee7832fe66a6`: 1 warning
  - deleted the `path` request parameter `contactId`
- **2026-01-17** `da09bf6f14b1`: 1 breaking
  - added the new path request parameter `contactId`
- **2025-02-05** `7f3418c476d5`: 1 breaking, 1 warning, 1 info
  - for the `path` request parameter `contactBookId`, the minLength was increased from `0` to `3`
  - deleted the `path` request parameter `contactId`
  - the response property `contactId` became required for the status `200`
- **2024-09-04** `3982831cd427`: 1 info
  - endpoint added
- **2024-05-21** `ad91eadfd8ee`: 1 breaking
  - api path removed without deprecation

[Operation history](https://skmtc.dev/usesend/apis/usesend-api/changes/v1/contactBooks/:contactBookId/contacts/:contactId/put.md)

---

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