Weav

Update customer

PUT https://api.weav.com/v1/customers/{id}

Requires a token with the external-api:write ability.

Path parameters

idstringrequired

Format: uuid.

Body

emailstring

Format: email.

first_namestring | null
last_namestring | null
phonestring | null
localestring | null
countrystring | null
regionstring | null

Maximum length: 10.

citystring | null

Maximum length: 64.

timezonestring | null

Maximum length: 64.

languagestring | null

Maximum length: 35.

company_idstring | null

Format: 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"
}
  • 400 Bad Request
  • 404 Not Found
  • 401 Unauthorized

Response fields

idstring

Format: uuid.

first_namestring | null
last_namestring | null
emailstring

Format: email.

phonestring | null
localestring | null
countrystring | null
regionstring | null
citystring | null
timezonestring | null
languagestring | null
company_idstring | null

Format: uuid.

avatar_urlstring | null

Format: url.

first_seen_atstring | null

Format: date-time.

last_seen_atstring | null

Format: date-time.

created_atstring | null

Format: date-time.

updated_atstring | null

Format: date-time.