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

# Create a contact

`POST /v1/contacts/create`

Add a contact to your audience.

## Request body

- ContactRequest
  - `email` string, required — The contact's email address.
  - `firstName` string — The contact's first name.
  - `lastName` string — The contact's last name.
  - `source` string — A custom source value to replace the default “API”.
  - `subscribed` boolean — Whether the contact will receive campaign and workflow emails. All new contacts are subscribed by default.
  - `userGroup` string — The contact's user group.
  - `userId` string — A unique user ID (for example, from an external application).
  - `mailingLists` MailingListSubscriptions — Manage mailing list subscriptions. Include key-value pairs of mailing list IDs and a `boolean` denoting if the contact should be added (`true`) or removed (`false`) from the list.

## Response `200`

Successful create.

- ContactSuccessResponse
  - `success` boolean, required
  - `id` string, required

## Other responses

- `400` — Bad request (e.g. invalid email address).
- `405` — Wrong HTTP request method.
- `409` — Email or `userId` already exists.

## Changes

> 9 revisions in range; 1 not diffed, 2 could not be searched.

- **2026-07-21** `df77516a130a` — 2 breaking, 7 warning
  - added `#/components/schemas/ContactFields, subschema #2` to the request body `allOf` list
  - the request's body type/format changed from `object`/`` to ``/``
  - removed the request property `email`
  - removed the request property `firstName`
  - …5 more

[Change history](https://skmtc.dev/loops/apis/loops-openapi-spec/changes/v1/contacts/create/post.md)

---

[API](https://skmtc.dev/loops/apis/loops-openapi-spec.md) · [All operations](https://skmtc.dev/loops/apis/loops-openapi-spec/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/loops/loops-openapi-spec/revisions/8bd0098300ec/schema)
