Create a new person
curl --request POST \
--url https://api.wellapp.ai/v1/people \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "people",
"attributes": {
"first_name": "Sophie",
"last_name": "Martin"
},
"relationships": {
"emails": {
"data": [
{
"type": "email",
"id": "temp-email-1"
},
{
"type": "email",
"id": "temp-email-2"
}
]
},
"phones": {
"data": [
{
"type": "phone",
"id": "temp-phone-1"
}
]
},
"social_links": {
"data": [
{
"type": "social_link",
"id": "temp-social-1"
}
]
},
"companies": {
"data": [
{
"type": "company",
"id": "temp-company-1",
"meta": {
"relationship_type": "employee"
}
}
]
}
},
"included": [
{
"type": "email",
"id": "temp-email-1",
"attributes": {
"value": "sophie.martin@example.com",
"label": "work",
"is_primary": true
}
},
{
"type": "email",
"id": "temp-email-2",
"attributes": {
"value": "sophie@personal.com",
"label": "personal",
"is_primary": false
}
},
{
"type": "phone",
"id": "temp-phone-1",
"attributes": {
"e164_number": "+33123456789",
"label": "mobile",
"is_primary": true
}
},
{
"type": "social_link",
"id": "temp-social-1",
"attributes": {
"url": "https://linkedin.com/in/sophie-martin",
"platform": "linkedin"
}
},
{
"type": "company",
"id": "temp-company-1",
"attributes": {
"name": "Example Corp",
"description": "Tech company",
"workspace_id": "550e8400-e29b-41d4-a716-446655440001"
}
}
]
}
'import requests
url = "https://api.wellapp.ai/v1/people"
payload = {
"type": "people",
"attributes": {
"first_name": "Sophie",
"last_name": "Martin"
},
"relationships": {
"emails": { "data": [
{
"type": "email",
"id": "temp-email-1"
},
{
"type": "email",
"id": "temp-email-2"
}
] },
"phones": { "data": [
{
"type": "phone",
"id": "temp-phone-1"
}
] },
"social_links": { "data": [
{
"type": "social_link",
"id": "temp-social-1"
}
] },
"companies": { "data": [
{
"type": "company",
"id": "temp-company-1",
"meta": { "relationship_type": "employee" }
}
] }
},
"included": [
{
"type": "email",
"id": "temp-email-1",
"attributes": {
"value": "sophie.martin@example.com",
"label": "work",
"is_primary": True
}
},
{
"type": "email",
"id": "temp-email-2",
"attributes": {
"value": "sophie@personal.com",
"label": "personal",
"is_primary": False
}
},
{
"type": "phone",
"id": "temp-phone-1",
"attributes": {
"e164_number": "+33123456789",
"label": "mobile",
"is_primary": True
}
},
{
"type": "social_link",
"id": "temp-social-1",
"attributes": {
"url": "https://linkedin.com/in/sophie-martin",
"platform": "linkedin"
}
},
{
"type": "company",
"id": "temp-company-1",
"attributes": {
"name": "Example Corp",
"description": "Tech company",
"workspace_id": "550e8400-e29b-41d4-a716-446655440001"
}
}
]
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
type: 'people',
attributes: {first_name: 'Sophie', last_name: 'Martin'},
relationships: {
emails: {
data: [{type: 'email', id: 'temp-email-1'}, {type: 'email', id: 'temp-email-2'}]
},
phones: {data: [{type: 'phone', id: 'temp-phone-1'}]},
social_links: {data: [{type: 'social_link', id: 'temp-social-1'}]},
companies: {
data: [{type: 'company', id: 'temp-company-1', meta: {relationship_type: 'employee'}}]
}
},
included: [
{
type: 'email',
id: 'temp-email-1',
attributes: {value: 'sophie.martin@example.com', label: 'work', is_primary: true}
},
{
type: 'email',
id: 'temp-email-2',
attributes: {value: 'sophie@personal.com', label: 'personal', is_primary: false}
},
{
type: 'phone',
id: 'temp-phone-1',
attributes: {e164_number: '+33123456789', label: 'mobile', is_primary: true}
},
{
type: 'social_link',
id: 'temp-social-1',
attributes: {url: 'https://linkedin.com/in/sophie-martin', platform: 'linkedin'}
},
{
type: 'company',
id: 'temp-company-1',
attributes: {
name: 'Example Corp',
description: 'Tech company',
workspace_id: '550e8400-e29b-41d4-a716-446655440001'
}
}
]
})
};
fetch('https://api.wellapp.ai/v1/people', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.wellapp.ai/v1/people",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'type' => 'people',
'attributes' => [
'first_name' => 'Sophie',
'last_name' => 'Martin'
],
'relationships' => [
'emails' => [
'data' => [
[
'type' => 'email',
'id' => 'temp-email-1'
],
[
'type' => 'email',
'id' => 'temp-email-2'
]
]
],
'phones' => [
'data' => [
[
'type' => 'phone',
'id' => 'temp-phone-1'
]
]
],
'social_links' => [
'data' => [
[
'type' => 'social_link',
'id' => 'temp-social-1'
]
]
],
'companies' => [
'data' => [
[
'type' => 'company',
'id' => 'temp-company-1',
'meta' => [
'relationship_type' => 'employee'
]
]
]
]
],
'included' => [
[
'type' => 'email',
'id' => 'temp-email-1',
'attributes' => [
'value' => 'sophie.martin@example.com',
'label' => 'work',
'is_primary' => true
]
],
[
'type' => 'email',
'id' => 'temp-email-2',
'attributes' => [
'value' => 'sophie@personal.com',
'label' => 'personal',
'is_primary' => false
]
],
[
'type' => 'phone',
'id' => 'temp-phone-1',
'attributes' => [
'e164_number' => '+33123456789',
'label' => 'mobile',
'is_primary' => true
]
],
[
'type' => 'social_link',
'id' => 'temp-social-1',
'attributes' => [
'url' => 'https://linkedin.com/in/sophie-martin',
'platform' => 'linkedin'
]
],
[
'type' => 'company',
'id' => 'temp-company-1',
'attributes' => [
'name' => 'Example Corp',
'description' => 'Tech company',
'workspace_id' => '550e8400-e29b-41d4-a716-446655440001'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.wellapp.ai/v1/people"
payload := strings.NewReader("{\n \"type\": \"people\",\n \"attributes\": {\n \"first_name\": \"Sophie\",\n \"last_name\": \"Martin\"\n },\n \"relationships\": {\n \"emails\": {\n \"data\": [\n {\n \"type\": \"email\",\n \"id\": \"temp-email-1\"\n },\n {\n \"type\": \"email\",\n \"id\": \"temp-email-2\"\n }\n ]\n },\n \"phones\": {\n \"data\": [\n {\n \"type\": \"phone\",\n \"id\": \"temp-phone-1\"\n }\n ]\n },\n \"social_links\": {\n \"data\": [\n {\n \"type\": \"social_link\",\n \"id\": \"temp-social-1\"\n }\n ]\n },\n \"companies\": {\n \"data\": [\n {\n \"type\": \"company\",\n \"id\": \"temp-company-1\",\n \"meta\": {\n \"relationship_type\": \"employee\"\n }\n }\n ]\n }\n },\n \"included\": [\n {\n \"type\": \"email\",\n \"id\": \"temp-email-1\",\n \"attributes\": {\n \"value\": \"sophie.martin@example.com\",\n \"label\": \"work\",\n \"is_primary\": true\n }\n },\n {\n \"type\": \"email\",\n \"id\": \"temp-email-2\",\n \"attributes\": {\n \"value\": \"sophie@personal.com\",\n \"label\": \"personal\",\n \"is_primary\": false\n }\n },\n {\n \"type\": \"phone\",\n \"id\": \"temp-phone-1\",\n \"attributes\": {\n \"e164_number\": \"+33123456789\",\n \"label\": \"mobile\",\n \"is_primary\": true\n }\n },\n {\n \"type\": \"social_link\",\n \"id\": \"temp-social-1\",\n \"attributes\": {\n \"url\": \"https://linkedin.com/in/sophie-martin\",\n \"platform\": \"linkedin\"\n }\n },\n {\n \"type\": \"company\",\n \"id\": \"temp-company-1\",\n \"attributes\": {\n \"name\": \"Example Corp\",\n \"description\": \"Tech company\",\n \"workspace_id\": \"550e8400-e29b-41d4-a716-446655440001\"\n }\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.wellapp.ai/v1/people")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"people\",\n \"attributes\": {\n \"first_name\": \"Sophie\",\n \"last_name\": \"Martin\"\n },\n \"relationships\": {\n \"emails\": {\n \"data\": [\n {\n \"type\": \"email\",\n \"id\": \"temp-email-1\"\n },\n {\n \"type\": \"email\",\n \"id\": \"temp-email-2\"\n }\n ]\n },\n \"phones\": {\n \"data\": [\n {\n \"type\": \"phone\",\n \"id\": \"temp-phone-1\"\n }\n ]\n },\n \"social_links\": {\n \"data\": [\n {\n \"type\": \"social_link\",\n \"id\": \"temp-social-1\"\n }\n ]\n },\n \"companies\": {\n \"data\": [\n {\n \"type\": \"company\",\n \"id\": \"temp-company-1\",\n \"meta\": {\n \"relationship_type\": \"employee\"\n }\n }\n ]\n }\n },\n \"included\": [\n {\n \"type\": \"email\",\n \"id\": \"temp-email-1\",\n \"attributes\": {\n \"value\": \"sophie.martin@example.com\",\n \"label\": \"work\",\n \"is_primary\": true\n }\n },\n {\n \"type\": \"email\",\n \"id\": \"temp-email-2\",\n \"attributes\": {\n \"value\": \"sophie@personal.com\",\n \"label\": \"personal\",\n \"is_primary\": false\n }\n },\n {\n \"type\": \"phone\",\n \"id\": \"temp-phone-1\",\n \"attributes\": {\n \"e164_number\": \"+33123456789\",\n \"label\": \"mobile\",\n \"is_primary\": true\n }\n },\n {\n \"type\": \"social_link\",\n \"id\": \"temp-social-1\",\n \"attributes\": {\n \"url\": \"https://linkedin.com/in/sophie-martin\",\n \"platform\": \"linkedin\"\n }\n },\n {\n \"type\": \"company\",\n \"id\": \"temp-company-1\",\n \"attributes\": {\n \"name\": \"Example Corp\",\n \"description\": \"Tech company\",\n \"workspace_id\": \"550e8400-e29b-41d4-a716-446655440001\"\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.wellapp.ai/v1/people")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"people\",\n \"attributes\": {\n \"first_name\": \"Sophie\",\n \"last_name\": \"Martin\"\n },\n \"relationships\": {\n \"emails\": {\n \"data\": [\n {\n \"type\": \"email\",\n \"id\": \"temp-email-1\"\n },\n {\n \"type\": \"email\",\n \"id\": \"temp-email-2\"\n }\n ]\n },\n \"phones\": {\n \"data\": [\n {\n \"type\": \"phone\",\n \"id\": \"temp-phone-1\"\n }\n ]\n },\n \"social_links\": {\n \"data\": [\n {\n \"type\": \"social_link\",\n \"id\": \"temp-social-1\"\n }\n ]\n },\n \"companies\": {\n \"data\": [\n {\n \"type\": \"company\",\n \"id\": \"temp-company-1\",\n \"meta\": {\n \"relationship_type\": \"employee\"\n }\n }\n ]\n }\n },\n \"included\": [\n {\n \"type\": \"email\",\n \"id\": \"temp-email-1\",\n \"attributes\": {\n \"value\": \"sophie.martin@example.com\",\n \"label\": \"work\",\n \"is_primary\": true\n }\n },\n {\n \"type\": \"email\",\n \"id\": \"temp-email-2\",\n \"attributes\": {\n \"value\": \"sophie@personal.com\",\n \"label\": \"personal\",\n \"is_primary\": false\n }\n },\n {\n \"type\": \"phone\",\n \"id\": \"temp-phone-1\",\n \"attributes\": {\n \"e164_number\": \"+33123456789\",\n \"label\": \"mobile\",\n \"is_primary\": true\n }\n },\n {\n \"type\": \"social_link\",\n \"id\": \"temp-social-1\",\n \"attributes\": {\n \"url\": \"https://linkedin.com/in/sophie-martin\",\n \"platform\": \"linkedin\"\n }\n },\n {\n \"type\": \"company\",\n \"id\": \"temp-company-1\",\n \"attributes\": {\n \"name\": \"Example Corp\",\n \"description\": \"Tech company\",\n \"workspace_id\": \"550e8400-e29b-41d4-a716-446655440001\"\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"type": "people",
"id": "3e29b483-e8a0-4871-906e-5ddfc9b7ed6b",
"attributes": {
"first_name": "Sophie",
"last_name": "Martin",
"full_name": "Sophie Martin",
"created_at": "2025-09-15T14:09:40.942Z"
},
"relationships": {
"emails": {
"data": [
{
"type": "email",
"id": "471604cd-8de8-4576-97f7-7c4656d7b6b4"
},
{
"type": "email",
"id": "9cbefca9-32bb-48d0-aeee-c07fa84ad0b8"
}
]
},
"phones": {
"data": [
{
"type": "phone",
"id": "11175a7a-df1a-4f9d-bb2a-9d6023f15bf8"
},
{
"type": "phone",
"id": "ae72063c-861f-489e-973d-83e31cef24f8"
}
]
},
"social_links": {
"data": [
{
"type": "social_link",
"id": "c401d53e-ca36-47e7-a861-83443599eb4c"
}
]
},
"companies": {
"data": [
{
"type": "company",
"id": "b6c22e98-c8d0-485e-9d3d-caa2bbaff77a"
}
]
}
}
},
"included": [
{
"type": "email",
"id": "471604cd-8de8-4576-97f7-7c4656d7b6b4",
"attributes": {
"value": "sophie.perso@gmail.com",
"label": "personal",
"is_primary": false,
"created_at": "2025-09-15T14:09:40.963Z"
}
},
{
"type": "email",
"id": "9cbefca9-32bb-48d0-aeee-c07fa84ad0b8",
"attributes": {
"value": "sophie.martin@company.com",
"label": "work",
"is_primary": true,
"created_at": "2025-09-15T14:09:40.953Z"
}
},
{
"type": "phone",
"id": "11175a7a-df1a-4f9d-bb2a-9d6023f15bf8",
"attributes": {
"e164_number": "+33646020535",
"country_code": 33,
"national_number": "646020535",
"is_primary": true,
"is_verify": false,
"label": "mobile",
"created_at": "2025-09-15T14:09:40.973Z"
}
},
{
"type": "phone",
"id": "ae72063c-861f-489e-973d-83e31cef24f8",
"attributes": {
"e164_number": "+33142356789",
"country_code": 33,
"national_number": "142356789",
"is_primary": false,
"is_verify": false,
"label": "work",
"created_at": "2025-09-15T14:09:40.981Z"
}
},
{
"type": "social_link",
"id": "c401d53e-ca36-47e7-a861-83443599eb4c",
"attributes": {
"url": "https://linkedin.com/in/sophie-martin",
"platform": "linkedin",
"created_at": "2025-09-15T14:09:40.990Z"
}
},
{
"type": "company",
"id": "b6c22e98-c8d0-485e-9d3d-caa2bbaff77a",
"attributes": {
"name": "TechCorp Solutions",
"description": "Leading technology consulting company",
"workspace_id": "550e8400-e29b-41d4-a716-446655440000",
"created_at": "2025-09-15T14:09:40.995Z"
}
}
]
}{
"code": "SCHEMA_VALIDATION_ERROR",
"status": 400,
"title": "Validation Error",
"message": "The request is invalid",
"meta": {
"log_id": "65c669d4-679c-4a8b-b8c0-fbe37699bb5b"
},
"details": [
{
"instancePath": "<string>",
"schemaPath": "<string>",
"keyword": "<string>",
"params": {},
"message": "<string>"
}
]
}{
"code": "UNAUTHORIZED",
"status": 401,
"title": "Unauthorized",
"message": "You are not authorized to access this resource",
"meta": {
"log_id": "65c669d4-679c-4a8b-b8c0-fbe37699bb5b"
}
}People
Create Person
Create a new person record with optional emails, phone numbers, company relationships, and social links. If a person with the same name and primary email already exists, returns the existing person instead of creating a duplicate.
POST
/
v1
/
people
Create a new person
curl --request POST \
--url https://api.wellapp.ai/v1/people \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "people",
"attributes": {
"first_name": "Sophie",
"last_name": "Martin"
},
"relationships": {
"emails": {
"data": [
{
"type": "email",
"id": "temp-email-1"
},
{
"type": "email",
"id": "temp-email-2"
}
]
},
"phones": {
"data": [
{
"type": "phone",
"id": "temp-phone-1"
}
]
},
"social_links": {
"data": [
{
"type": "social_link",
"id": "temp-social-1"
}
]
},
"companies": {
"data": [
{
"type": "company",
"id": "temp-company-1",
"meta": {
"relationship_type": "employee"
}
}
]
}
},
"included": [
{
"type": "email",
"id": "temp-email-1",
"attributes": {
"value": "sophie.martin@example.com",
"label": "work",
"is_primary": true
}
},
{
"type": "email",
"id": "temp-email-2",
"attributes": {
"value": "sophie@personal.com",
"label": "personal",
"is_primary": false
}
},
{
"type": "phone",
"id": "temp-phone-1",
"attributes": {
"e164_number": "+33123456789",
"label": "mobile",
"is_primary": true
}
},
{
"type": "social_link",
"id": "temp-social-1",
"attributes": {
"url": "https://linkedin.com/in/sophie-martin",
"platform": "linkedin"
}
},
{
"type": "company",
"id": "temp-company-1",
"attributes": {
"name": "Example Corp",
"description": "Tech company",
"workspace_id": "550e8400-e29b-41d4-a716-446655440001"
}
}
]
}
'import requests
url = "https://api.wellapp.ai/v1/people"
payload = {
"type": "people",
"attributes": {
"first_name": "Sophie",
"last_name": "Martin"
},
"relationships": {
"emails": { "data": [
{
"type": "email",
"id": "temp-email-1"
},
{
"type": "email",
"id": "temp-email-2"
}
] },
"phones": { "data": [
{
"type": "phone",
"id": "temp-phone-1"
}
] },
"social_links": { "data": [
{
"type": "social_link",
"id": "temp-social-1"
}
] },
"companies": { "data": [
{
"type": "company",
"id": "temp-company-1",
"meta": { "relationship_type": "employee" }
}
] }
},
"included": [
{
"type": "email",
"id": "temp-email-1",
"attributes": {
"value": "sophie.martin@example.com",
"label": "work",
"is_primary": True
}
},
{
"type": "email",
"id": "temp-email-2",
"attributes": {
"value": "sophie@personal.com",
"label": "personal",
"is_primary": False
}
},
{
"type": "phone",
"id": "temp-phone-1",
"attributes": {
"e164_number": "+33123456789",
"label": "mobile",
"is_primary": True
}
},
{
"type": "social_link",
"id": "temp-social-1",
"attributes": {
"url": "https://linkedin.com/in/sophie-martin",
"platform": "linkedin"
}
},
{
"type": "company",
"id": "temp-company-1",
"attributes": {
"name": "Example Corp",
"description": "Tech company",
"workspace_id": "550e8400-e29b-41d4-a716-446655440001"
}
}
]
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
type: 'people',
attributes: {first_name: 'Sophie', last_name: 'Martin'},
relationships: {
emails: {
data: [{type: 'email', id: 'temp-email-1'}, {type: 'email', id: 'temp-email-2'}]
},
phones: {data: [{type: 'phone', id: 'temp-phone-1'}]},
social_links: {data: [{type: 'social_link', id: 'temp-social-1'}]},
companies: {
data: [{type: 'company', id: 'temp-company-1', meta: {relationship_type: 'employee'}}]
}
},
included: [
{
type: 'email',
id: 'temp-email-1',
attributes: {value: 'sophie.martin@example.com', label: 'work', is_primary: true}
},
{
type: 'email',
id: 'temp-email-2',
attributes: {value: 'sophie@personal.com', label: 'personal', is_primary: false}
},
{
type: 'phone',
id: 'temp-phone-1',
attributes: {e164_number: '+33123456789', label: 'mobile', is_primary: true}
},
{
type: 'social_link',
id: 'temp-social-1',
attributes: {url: 'https://linkedin.com/in/sophie-martin', platform: 'linkedin'}
},
{
type: 'company',
id: 'temp-company-1',
attributes: {
name: 'Example Corp',
description: 'Tech company',
workspace_id: '550e8400-e29b-41d4-a716-446655440001'
}
}
]
})
};
fetch('https://api.wellapp.ai/v1/people', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.wellapp.ai/v1/people",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'type' => 'people',
'attributes' => [
'first_name' => 'Sophie',
'last_name' => 'Martin'
],
'relationships' => [
'emails' => [
'data' => [
[
'type' => 'email',
'id' => 'temp-email-1'
],
[
'type' => 'email',
'id' => 'temp-email-2'
]
]
],
'phones' => [
'data' => [
[
'type' => 'phone',
'id' => 'temp-phone-1'
]
]
],
'social_links' => [
'data' => [
[
'type' => 'social_link',
'id' => 'temp-social-1'
]
]
],
'companies' => [
'data' => [
[
'type' => 'company',
'id' => 'temp-company-1',
'meta' => [
'relationship_type' => 'employee'
]
]
]
]
],
'included' => [
[
'type' => 'email',
'id' => 'temp-email-1',
'attributes' => [
'value' => 'sophie.martin@example.com',
'label' => 'work',
'is_primary' => true
]
],
[
'type' => 'email',
'id' => 'temp-email-2',
'attributes' => [
'value' => 'sophie@personal.com',
'label' => 'personal',
'is_primary' => false
]
],
[
'type' => 'phone',
'id' => 'temp-phone-1',
'attributes' => [
'e164_number' => '+33123456789',
'label' => 'mobile',
'is_primary' => true
]
],
[
'type' => 'social_link',
'id' => 'temp-social-1',
'attributes' => [
'url' => 'https://linkedin.com/in/sophie-martin',
'platform' => 'linkedin'
]
],
[
'type' => 'company',
'id' => 'temp-company-1',
'attributes' => [
'name' => 'Example Corp',
'description' => 'Tech company',
'workspace_id' => '550e8400-e29b-41d4-a716-446655440001'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.wellapp.ai/v1/people"
payload := strings.NewReader("{\n \"type\": \"people\",\n \"attributes\": {\n \"first_name\": \"Sophie\",\n \"last_name\": \"Martin\"\n },\n \"relationships\": {\n \"emails\": {\n \"data\": [\n {\n \"type\": \"email\",\n \"id\": \"temp-email-1\"\n },\n {\n \"type\": \"email\",\n \"id\": \"temp-email-2\"\n }\n ]\n },\n \"phones\": {\n \"data\": [\n {\n \"type\": \"phone\",\n \"id\": \"temp-phone-1\"\n }\n ]\n },\n \"social_links\": {\n \"data\": [\n {\n \"type\": \"social_link\",\n \"id\": \"temp-social-1\"\n }\n ]\n },\n \"companies\": {\n \"data\": [\n {\n \"type\": \"company\",\n \"id\": \"temp-company-1\",\n \"meta\": {\n \"relationship_type\": \"employee\"\n }\n }\n ]\n }\n },\n \"included\": [\n {\n \"type\": \"email\",\n \"id\": \"temp-email-1\",\n \"attributes\": {\n \"value\": \"sophie.martin@example.com\",\n \"label\": \"work\",\n \"is_primary\": true\n }\n },\n {\n \"type\": \"email\",\n \"id\": \"temp-email-2\",\n \"attributes\": {\n \"value\": \"sophie@personal.com\",\n \"label\": \"personal\",\n \"is_primary\": false\n }\n },\n {\n \"type\": \"phone\",\n \"id\": \"temp-phone-1\",\n \"attributes\": {\n \"e164_number\": \"+33123456789\",\n \"label\": \"mobile\",\n \"is_primary\": true\n }\n },\n {\n \"type\": \"social_link\",\n \"id\": \"temp-social-1\",\n \"attributes\": {\n \"url\": \"https://linkedin.com/in/sophie-martin\",\n \"platform\": \"linkedin\"\n }\n },\n {\n \"type\": \"company\",\n \"id\": \"temp-company-1\",\n \"attributes\": {\n \"name\": \"Example Corp\",\n \"description\": \"Tech company\",\n \"workspace_id\": \"550e8400-e29b-41d4-a716-446655440001\"\n }\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.wellapp.ai/v1/people")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"people\",\n \"attributes\": {\n \"first_name\": \"Sophie\",\n \"last_name\": \"Martin\"\n },\n \"relationships\": {\n \"emails\": {\n \"data\": [\n {\n \"type\": \"email\",\n \"id\": \"temp-email-1\"\n },\n {\n \"type\": \"email\",\n \"id\": \"temp-email-2\"\n }\n ]\n },\n \"phones\": {\n \"data\": [\n {\n \"type\": \"phone\",\n \"id\": \"temp-phone-1\"\n }\n ]\n },\n \"social_links\": {\n \"data\": [\n {\n \"type\": \"social_link\",\n \"id\": \"temp-social-1\"\n }\n ]\n },\n \"companies\": {\n \"data\": [\n {\n \"type\": \"company\",\n \"id\": \"temp-company-1\",\n \"meta\": {\n \"relationship_type\": \"employee\"\n }\n }\n ]\n }\n },\n \"included\": [\n {\n \"type\": \"email\",\n \"id\": \"temp-email-1\",\n \"attributes\": {\n \"value\": \"sophie.martin@example.com\",\n \"label\": \"work\",\n \"is_primary\": true\n }\n },\n {\n \"type\": \"email\",\n \"id\": \"temp-email-2\",\n \"attributes\": {\n \"value\": \"sophie@personal.com\",\n \"label\": \"personal\",\n \"is_primary\": false\n }\n },\n {\n \"type\": \"phone\",\n \"id\": \"temp-phone-1\",\n \"attributes\": {\n \"e164_number\": \"+33123456789\",\n \"label\": \"mobile\",\n \"is_primary\": true\n }\n },\n {\n \"type\": \"social_link\",\n \"id\": \"temp-social-1\",\n \"attributes\": {\n \"url\": \"https://linkedin.com/in/sophie-martin\",\n \"platform\": \"linkedin\"\n }\n },\n {\n \"type\": \"company\",\n \"id\": \"temp-company-1\",\n \"attributes\": {\n \"name\": \"Example Corp\",\n \"description\": \"Tech company\",\n \"workspace_id\": \"550e8400-e29b-41d4-a716-446655440001\"\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.wellapp.ai/v1/people")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"people\",\n \"attributes\": {\n \"first_name\": \"Sophie\",\n \"last_name\": \"Martin\"\n },\n \"relationships\": {\n \"emails\": {\n \"data\": [\n {\n \"type\": \"email\",\n \"id\": \"temp-email-1\"\n },\n {\n \"type\": \"email\",\n \"id\": \"temp-email-2\"\n }\n ]\n },\n \"phones\": {\n \"data\": [\n {\n \"type\": \"phone\",\n \"id\": \"temp-phone-1\"\n }\n ]\n },\n \"social_links\": {\n \"data\": [\n {\n \"type\": \"social_link\",\n \"id\": \"temp-social-1\"\n }\n ]\n },\n \"companies\": {\n \"data\": [\n {\n \"type\": \"company\",\n \"id\": \"temp-company-1\",\n \"meta\": {\n \"relationship_type\": \"employee\"\n }\n }\n ]\n }\n },\n \"included\": [\n {\n \"type\": \"email\",\n \"id\": \"temp-email-1\",\n \"attributes\": {\n \"value\": \"sophie.martin@example.com\",\n \"label\": \"work\",\n \"is_primary\": true\n }\n },\n {\n \"type\": \"email\",\n \"id\": \"temp-email-2\",\n \"attributes\": {\n \"value\": \"sophie@personal.com\",\n \"label\": \"personal\",\n \"is_primary\": false\n }\n },\n {\n \"type\": \"phone\",\n \"id\": \"temp-phone-1\",\n \"attributes\": {\n \"e164_number\": \"+33123456789\",\n \"label\": \"mobile\",\n \"is_primary\": true\n }\n },\n {\n \"type\": \"social_link\",\n \"id\": \"temp-social-1\",\n \"attributes\": {\n \"url\": \"https://linkedin.com/in/sophie-martin\",\n \"platform\": \"linkedin\"\n }\n },\n {\n \"type\": \"company\",\n \"id\": \"temp-company-1\",\n \"attributes\": {\n \"name\": \"Example Corp\",\n \"description\": \"Tech company\",\n \"workspace_id\": \"550e8400-e29b-41d4-a716-446655440001\"\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"type": "people",
"id": "3e29b483-e8a0-4871-906e-5ddfc9b7ed6b",
"attributes": {
"first_name": "Sophie",
"last_name": "Martin",
"full_name": "Sophie Martin",
"created_at": "2025-09-15T14:09:40.942Z"
},
"relationships": {
"emails": {
"data": [
{
"type": "email",
"id": "471604cd-8de8-4576-97f7-7c4656d7b6b4"
},
{
"type": "email",
"id": "9cbefca9-32bb-48d0-aeee-c07fa84ad0b8"
}
]
},
"phones": {
"data": [
{
"type": "phone",
"id": "11175a7a-df1a-4f9d-bb2a-9d6023f15bf8"
},
{
"type": "phone",
"id": "ae72063c-861f-489e-973d-83e31cef24f8"
}
]
},
"social_links": {
"data": [
{
"type": "social_link",
"id": "c401d53e-ca36-47e7-a861-83443599eb4c"
}
]
},
"companies": {
"data": [
{
"type": "company",
"id": "b6c22e98-c8d0-485e-9d3d-caa2bbaff77a"
}
]
}
}
},
"included": [
{
"type": "email",
"id": "471604cd-8de8-4576-97f7-7c4656d7b6b4",
"attributes": {
"value": "sophie.perso@gmail.com",
"label": "personal",
"is_primary": false,
"created_at": "2025-09-15T14:09:40.963Z"
}
},
{
"type": "email",
"id": "9cbefca9-32bb-48d0-aeee-c07fa84ad0b8",
"attributes": {
"value": "sophie.martin@company.com",
"label": "work",
"is_primary": true,
"created_at": "2025-09-15T14:09:40.953Z"
}
},
{
"type": "phone",
"id": "11175a7a-df1a-4f9d-bb2a-9d6023f15bf8",
"attributes": {
"e164_number": "+33646020535",
"country_code": 33,
"national_number": "646020535",
"is_primary": true,
"is_verify": false,
"label": "mobile",
"created_at": "2025-09-15T14:09:40.973Z"
}
},
{
"type": "phone",
"id": "ae72063c-861f-489e-973d-83e31cef24f8",
"attributes": {
"e164_number": "+33142356789",
"country_code": 33,
"national_number": "142356789",
"is_primary": false,
"is_verify": false,
"label": "work",
"created_at": "2025-09-15T14:09:40.981Z"
}
},
{
"type": "social_link",
"id": "c401d53e-ca36-47e7-a861-83443599eb4c",
"attributes": {
"url": "https://linkedin.com/in/sophie-martin",
"platform": "linkedin",
"created_at": "2025-09-15T14:09:40.990Z"
}
},
{
"type": "company",
"id": "b6c22e98-c8d0-485e-9d3d-caa2bbaff77a",
"attributes": {
"name": "TechCorp Solutions",
"description": "Leading technology consulting company",
"workspace_id": "550e8400-e29b-41d4-a716-446655440000",
"created_at": "2025-09-15T14:09:40.995Z"
}
}
]
}{
"code": "SCHEMA_VALIDATION_ERROR",
"status": 400,
"title": "Validation Error",
"message": "The request is invalid",
"meta": {
"log_id": "65c669d4-679c-4a8b-b8c0-fbe37699bb5b"
},
"details": [
{
"instancePath": "<string>",
"schemaPath": "<string>",
"keyword": "<string>",
"params": {},
"message": "<string>"
}
]
}{
"code": "UNAUTHORIZED",
"status": 401,
"title": "Unauthorized",
"message": "You are not authorized to access this resource",
"meta": {
"log_id": "65c669d4-679c-4a8b-b8c0-fbe37699bb5b"
}
}Headers
Bearer token for authentication
Body
application/json
Central entity representing individuals with comprehensive contact information
Unique person identifier (UUID v4)
Example:
"550e8400-e29b-41d4-a716-446655440000"
JSON:API resource type identifier
Allowed value:
"people"Person attribute data
Show child attributes
Show child attributes
Person relationship references
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
Person created successfully
Show child attributes
Show child attributes
⌘I