WundertreOS

Create contact

Create a new contact in your organization.

POST/api-contacts
Try it
POST

Create an API key in your workspace under Settings → Integrations & API.

Requires the contacts:write scope. Returns 201 Created with the new contact.

Request body

Only first_name is required. Unspecified fields default to null, except tags ([]), status ("active"), and source ("api"). Any unknown fields are ignored.

Body
NameTypeDescription
first_namerequiredstringGiven name.
last_namestringFamily name. Stored as empty string if omitted.
emailstringPrimary email.
phonestringPhone number.
companystringFree‑text company name.
company_iduuidLink to an existing company record.
job_titlestringJob title.
industrystring
address_line1string
address_line2string
citystring
statestring
zipstring
countrystring
tagsstring[]Tags to apply on creation. Defaults to [].
statusstringLifecycle status. Defaults to active.
stagestringPipeline stage label.
sourcestringWhere the contact came from. Defaults to api.
notesstring
linkedin_urlstring

Example request

bash
curl -X POST \
  'https://api.wundertreos.com/functions/v1/api-contacts' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "first_name": "Jane",
    "last_name": "Doe",
    "email": "jane@example.com",
    "company": "Acme Inc",
    "job_title": "Head of Growth",
    "tags": ["lead"]
  }'

Response

json
{
  "data": {
    "id": "c8b1f3a0-4d2e-4f9a-9b1c-2d4e5f6a7b8c",
    "org_id": "a1b2c3d4-1111-2222-3333-444455556666",
    "first_name": "Jane",
    "last_name": "Doe",
    "email": "jane@example.com",
    "company": "Acme Inc",
    "job_title": "Head of Growth",
    "tags": ["lead"],
    "status": "active",
    "source": "api",
    "created_at": "2026-05-17T14:00:00Z",
    "updated_at": "2026-05-17T14:00:00Z"
  }
}

Errors

StatuserrorWhen
400invalid_requestfirst_name is missing, or the body is not valid JSON.
403forbiddenThe credential lacks the contacts:write scope.
500server_errorDatabase write failed.