---
title: "Create or update a contact"
method: POST
path: "/v1/contacts"
tags: ["Contacts"]
---

# Create or update a contact

`POST /v1/contacts`

## Request

- Base URL: `https://api.volanea.com`
- URL: `https://api.volanea.com/v1/contacts`
- Auth: HTTP bearer

Upsert by email (addresses are lowercased). Only the provided fields are changed on update.

## Request body

- object
  - `email` string, email, required
  - `firstName` string
  - `lastName` string
  - `subscribed` boolean
  - `data` object: Arbitrary custom fields (replaces the stored object).

## Response `200`

Existing contact updated.

- Contact
  - `contactId` string, required
  - `projectId` string
  - `email` string, email, required
  - `firstName` string, nullable
  - `lastName` string, nullable
  - `subscribed` boolean, required
  - `data` object, nullable: Arbitrary custom fields.
  - `locale` string, nullable
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

## Other responses

- `201`: Contact created.
- `401`: Missing or invalid API key.
- `422`: Request validation failed (code `validation_error`, 422).

---

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