Skip to content
Open app

Set a contact's lead score

PUT
/v1/contacts/{id}/score

Manually sets the lead score (0-100); marks it a manual override and logs an activity. Requires scope contacts:write.

id
required
integer
object
score
required
integer
<= 100

Updated contact.

A CRM contact record.

object
id
integer
platform

Social platform the contact belongs to.

string
Allowed values: telegram twitter
name
string
nullable
username

Handle without the leading @.

string
nullable
phone
string
nullable
email
string
nullable
company
string
nullable
notes
string
nullable
stage

CRM pipeline stage.

string
leadScore

Lead score 0-100 (higher = hotter). Null when not scored.

integer
nullable
leadScoreIsAi

True when the score was last set by AI, false for a manual override.

boolean
assignedToUserId

Team member the contact is assigned to.

integer
nullable
createdAt
string format: date-time
lastMessageAt
string format: date-time
nullable
hasUnreadMessages
boolean
tags

Attached tags (populated on GET by id, omitted in list responses).

Array<object>
nullable
object
id
integer
name
string
color

Hex color

string

The request body or parameters failed validation.

Standard error envelope for all v1 error responses.

object
error

Machine-readable error code.

string
Allowed values: bad_request not_found conflict unauthorized forbidden rate_limited internal_error
message

Human-readable explanation of the error.

string
details

Optional structured context (field-level validation errors, etc.).

nullable
Example
{
"error": "bad_request",
"message": "at least one of name, username, phone is required"
}

Missing or invalid bearer token.

Standard error envelope for all v1 error responses.

object
error

Machine-readable error code.

string
Allowed values: bad_request not_found conflict unauthorized forbidden rate_limited internal_error
message

Human-readable explanation of the error.

string
details

Optional structured context (field-level validation errors, etc.).

nullable
Example
{
"error": "unauthorized",
"message": "Invalid bearer principal"
}

The API key does not have the required scope for this operation.

Standard error envelope for all v1 error responses.

object
error

Machine-readable error code.

string
Allowed values: bad_request not_found conflict unauthorized forbidden rate_limited internal_error
message

Human-readable explanation of the error.

string
details

Optional structured context (field-level validation errors, etc.).

nullable
Example
{
"error": "forbidden",
"message": "scope contacts:write is required"
}

The requested resource does not exist or is not owned by the caller.

Standard error envelope for all v1 error responses.

object
error

Machine-readable error code.

string
Allowed values: bad_request not_found conflict unauthorized forbidden rate_limited internal_error
message

Human-readable explanation of the error.

string
details

Optional structured context (field-level validation errors, etc.).

nullable
Example
{
"error": "not_found",
"message": "contact not found"
}