Update customer
PUT https://api.weav.com/v1/customers/{id}
Requires a token with the external-api:write ability.
Path parameters
idstringrequiredFormat: uuid.
Body
emailstringFormat: email.
first_namestring | nulllast_namestring | nullphonestring | nulllocalestring | nullcountrystring | nullregionstring | nullMaximum length: 10.
citystring | nullMaximum length: 64.
timezonestring | nullMaximum length: 64.
languagestring | nullMaximum length: 35.
company_idstring | nullFormat: uuid.
Request
cURL
curl --request PUT \
--url 'https://api.weav.com/v1/customers/{id}' \
--header "Authorization: Bearer ${WEAV_API_TOKEN}" \
--header 'Content-Type: application/json' \
--data '{
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"phone": "string",
"locale": "string",
"country": "string",
"region": "string",
"city": "string",
"timezone": "string",
"language": "string",
"company_id": "9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d"
}'
JavaScript
const body = {
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"phone": "string",
"locale": "string",
"country": "string",
"region": "string",
"city": "string",
"timezone": "string",
"language": "string",
"company_id": "9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d"
};
const response = await fetch("https://api.weav.com/v1/customers/{id}", {
method: "PUT",
headers: {
Authorization: `Bearer ${process.env.WEAV_API_TOKEN}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(body)
});
console.log(await response.json());
Python
import os
import requests
headers = {"Authorization": f"Bearer {os.environ['WEAV_API_TOKEN']}"}
body = {"email": "user@example.com", "first_name": "string", "last_name": "string", "phone": "string", "locale": "string", "country": "string", "region": "string", "city": "string", "timezone": "string", "language": "string", "company_id": "9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d"}
response = requests.put("https://api.weav.com/v1/customers/{id}", headers=headers, json=body)
print(response.json())
PHP
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('PUT', 'https://api.weav.com/v1/customers/{id}', [
'headers' => ['Authorization' => 'Bearer '.getenv('WEAV_API_TOKEN')],
'json' => array (
'email' => 'user@example.com',
'first_name' => 'string',
'last_name' => 'string',
'phone' => 'string',
'locale' => 'string',
'country' => 'string',
'region' => 'string',
'city' => 'string',
'timezone' => 'string',
'language' => 'string',
'company_id' => '9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d',
),
]);
echo $response->getBody();
Response
200 OK
{
"id": "9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d",
"first_name": "John",
"last_name": "Doe",
"email": "john@example.com",
"phone": "string",
"locale": "en",
"country": "string",
"region": "string",
"city": "string",
"timezone": "string",
"language": "string",
"company_id": "9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d",
"avatar_url": "https://example.com",
"first_seen_at": "2026-01-01T00:00:00Z",
"last_seen_at": "2026-01-01T00:00:00Z",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z"
}
400Bad Request404Not Found401Unauthorized
Response fields
idstringFormat: uuid.
first_namestring | nulllast_namestring | nullemailstringFormat: email.
phonestring | nulllocalestring | nullcountrystring | nullregionstring | nullcitystring | nulltimezonestring | nulllanguagestring | nullcompany_idstring | nullFormat: uuid.
avatar_urlstring | nullFormat: url.
first_seen_atstring | nullFormat: date-time.
last_seen_atstring | nullFormat: date-time.
created_atstring | nullFormat: date-time.
updated_atstring | nullFormat: date-time.
