Dashboard

Contacts

Auth Required

Create Contact

POSThttps://api.inboxjot.com/v1/contacts

Creates a contact, or updates the contact with the same address. The API answers 201 for a new contact and 200 for an existing one. A new contact is subscribed unless you send subscribed: false. Needs a Full key. A key limited to one domain answers 403. Send an optional Idempotency-Key header to retry safely. See Idempotency.

POST/v1/contacts
curl -X POST https://api.inboxjot.com/v1/contacts \
  -H "Authorization: Bearer $INBOXJOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "sukhamoy@example.com",
    "first_name": "Sukha",
    "last_name": "Moy",
    "properties": {
      "plan": "pro"
    }
  }'
{
  "id": "con_06d2mfk8r9wq3zh5ka2pe",
  "email": "sukhamoy@example.com",
  "first_name": "Sukha",
  "last_name": "Moy",
  "status": "subscribed",
  "language": "en",
  "properties": {
    "plan": "pro"
  },
  "segments": [
    {
      "id": "seg_06d2mfk8r2kd7fq4mx9ab",
      "name": "Customers"
    }
  ],
  "topics": [
    {
      "id": "top_06d2mfk8r6pn2tc8yw3hd",
      "name": "Product Updates",
      "status": "subscribed",
      "subscribed": true
    }
  ],
  "created_at": "2026-10-12T09:41:07.000Z",
  "updated_at": "2026-10-15T14:02:33.000Z",
  "created": false
}

Updated the contact that has this email address.

Body Parameters

emailstringrequired

The contact address, up to 320 characters. Invalid and disposable addresses are refused.

first_namestring | null

First name, up to 200 characters. Send null to clear it.

last_namestring | null

Last name, up to 200 characters. Send null to clear it.

languagestring | null

A language code, such as en or pt-BR.

notesstring | null

Private notes, up to 5,000 characters. Send null to clear them.

propertiesobject | null

Values for properties you added in Settings, keyed by the property key. Each value must match the property type: text up to 2,000 characters, a number, true or false, a date, or one of a choice property’s options. null clears a value. The values merge with the ones the contact has.

subscribedboolean | null

A new contact is subscribed. Send false to unsubscribe the contact from all email. Leave it out to keep the status of an existing contact.

segment_idsstring[] | null

Static segments to add the contact to, up to 50. Each one must exist.

Response

The contact as Retrieve Contact returns it, with a created field.

idstring

The contact id.

emailstring

The contact address.

first_namestring | null

First name.

last_namestring | null

Last name.

statusstring

One of subscribed, pending or unsubscribed.

languagestring

Language code.

propertiesobject

Property values, keyed by the property key.

segmentsobject[]

The segments the contact is in.

topicsobject[]

Every topic in the workspace, with the contact’s choice.

created_atstring

ISO 8601 time.

updated_atstring

ISO 8601 time.

createdboolean

True when the contact is new.

Responses

POST/v1/contacts
curl -X POST https://api.inboxjot.com/v1/contacts \
  -H "Authorization: Bearer $INBOXJOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "sukhamoy@example.com",
    "first_name": "Sukha",
    "last_name": "Moy",
    "properties": {
      "plan": "pro"
    }
  }'
{
  "id": "con_06d2mfk8r9wq3zh5ka2pe",
  "email": "sukhamoy@example.com",
  "first_name": "Sukha",
  "last_name": "Moy",
  "status": "subscribed",
  "language": "en",
  "properties": {
    "plan": "pro"
  },
  "segments": [
    {
      "id": "seg_06d2mfk8r2kd7fq4mx9ab",
      "name": "Customers"
    }
  ],
  "topics": [
    {
      "id": "top_06d2mfk8r6pn2tc8yw3hd",
      "name": "Product Updates",
      "status": "subscribed",
      "subscribed": true
    }
  ],
  "created_at": "2026-10-12T09:41:07.000Z",
  "updated_at": "2026-10-15T14:02:33.000Z",
  "created": false
}

Updated the contact that has this email address.