Skip to main content
POST
Create Contact

Authorizations

Authorization
string
header
required

Your API key (ta_live_…) from Settings → API keys, sent as Authorization: Bearer <key>. Keep it on a server: it can message every customer you have. A key is full, build or read-only; a request its level does not allow is refused with 403.

Headers

Thinnest-Workspace
string

Developers only: the customer workspace this request acts in — its org_… id from POST /customers. Leave it out to act in your own workspace.

Example:

"org_3fKq9TzQ1mN8vB2xR7cLpA"

Body

application/json
phone
string
required

Their number, with or without the +; spaces are fine. Without a +, ten digits or fewer — or a leading 0 — is read as an Indian number. The number is the contact's identity: a second create on it updates the first.

Example:

"+91 98765 43210"

name
string | null

Their name.

Maximum string length: 120
Example:

"Asha Rao"

email
string<email> | null

Their email. Stored lower-cased.

Maximum string length: 200
Example:

"asha.rao@gmail.com"

externalId
string | null

Your CRM's id for them, unique in your workspace. GET /contacts?externalId= finds them by it.

Maximum string length: 200
Example:

"LSQ-42"

tags
string[]

Tags, normalised as the console stores them: lower case, spaces to hyphens, duplicates dropped, 40 characters and 20 tags at most. Replaces the list.

Maximum array length: 20
Example:
language
enum<string> | null

The language to write to them in, by its English name as the console offers it, auto to match theirs, or null.

Available options:
auto,
English,
Hindi,
Assamese,
Bengali,
Bodo,
Dogri,
French,
German,
Gujarati,
Indonesian,
Italian,
Japanese,
Kannada,
Kashmiri,
Konkani,
Korean,
Maithili,
Malayalam,
Manipuri,
Marathi,
Nepali,
Odia,
Polish,
Portuguese,
Punjabi,
Russian,
Sanskrit,
Santali,
Sindhi,
Spanish,
Swahili,
Tamil,
Telugu,
Thai,
Turkish,
Urdu,
Vietnamese,
null
Example:

"Hindi"

note
string | null

Free-text notes about them.

Maximum string length: 2000

Their word on marketing messages, recorded with the time and where it came from — what a regulator asks.

Response

Someone was already on that number; they were updated.

id
string
required

The contact's id (cust_…).

Example:

"cust_4e7b1c9d-2a6f-4385-b0d2-9f6a3e8c1b74"

phone
string | null
required

Digits only, with the country code — 919876543210.

name
string | null
required

Their name.

email
string | null
required

Their email, lower-cased.

externalId
string | null
required

Your CRM's id for them, unique in your workspace.

tags
string[]
required

Their tags, lower-case and hyphenated.

language
string | null
required

The language to write to them in, e.g. Hindi, or auto to match theirs.

note
string | null
required

Free-text notes.

source
string
required

How you came to have them: agent (they spoke to an agent), import, api, whatsapp_app.

acquiredFrom
string | null
required

Where the lead came from, when recorded.

createdAt
string<date-time>
required

When the contact was created.