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

# Create or update a contact

`POST /api/v1/contacts`

## Request

- Base URL: `https://app.convertflow.co`
- URL: `https://app.convertflow.co/api/v1/contacts`
- Auth: HTTP bearer

Upserts a contact by email/phone. At least one of email or phone is required; additional custom fields are accepted and stored on the contact.

## Request body

- object
  - `email` string
  - `phone` string
  - `first_name` string
  - `last_name` string

## Response `200`

contact created or synced

- object
  - `id` integer
  - `created_at` string, date-time
  - `updated_at` string, date-time
  - `website_id` integer
  - `visitor_token` string
  - `email` string
  - `name` string
  - `last_name` string
  - `phone` string
  - `city` string
  - `avatar_url` string
  - `company_name` string
  - `company_title` string
  - `url` string
  - `state` string
  - `address` string
  - `zip_code` string
  - `country` string
  - `source_url` string
  - `bio` string
  - `utm_source` string
  - `utm_medium` string
  - `utm_campaign` string
  - `utm_term` string
  - `utm_content` string
  - `referral_source` string
  - `first_visit` string
  - `privacy_consent` string
  - `marketing_consent` string
  - `sms_consent` string
  - `ip_address` string
  - `latest_score` string
  - `extra` object
  - `data` object
  - `tags` string
  - `link` string

## Other responses

- `400`: neither email nor phone provided
- `401`: missing or invalid credentials

---

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