Skip to main content

POST /sms/conversations/{line}/{number}/assign

Assign a conversation to a user

Scopesms:write
Role permissionPhone numbers — line must be one of theirs
CostFree. Cannot reach the other party.

A null or absent userId unassigns, returning the thread to the unassigned queue — which is why there is no separate unassign endpoint for one nullable field.

Assigning does not resolve, and unassigning does not reopen. They are independent axes: a resolved thread can stay assigned to whoever closed it, and an open thread can sit unassigned.

Path parameters

NameTypeRequiredExampleDescription
linestringyes12125550188One of your account's numbers — the line the thread is on. Digits.
numberstringyes13475550123The other party's number. Digits.

Request body

FieldTypeRequiredDescription
userIdintegernoThe user to hand the thread to, matching id in GET /users. Null or absent unassigns it. A user who is not on your account is a 400.

Hand it to a user:

{
"userId": 481920
}

Return it to the queue:

{
"userId": null
}

Responses

200

The thread's state after the call.

FieldTypeDescription
linestringYour account number the thread is on, normalized.
numberstringThe other party's number, normalized.
resolvedbooleanThe thread's state after this call.
resolvedByintegerThe user credited, matching id in GET /users. Absent when an integration resolved it with no person named.
resolvedAtstring (RFC 3339)When, RFC 3339 UTC. Absent when not resolved.

Errors

StatusMeaning
400invalid_request — a missing or malformed field, an unknown enum value, or an unknown field in the body. Nothing was charged.
401unauthenticated — no credential, or one that is invalid, revoked or expired. The WWW-Authenticate header names the scope the endpoint wanted.
403Two different failures share this status, and the type tells them apart:
500internal_error — something failed on our side. For a send, nothing was charged, guaranteed, which is what makes a retry safe.

See Errors for the full catalog and what to do about each.

Example

curl -X POST 'https://api.account.telebroad.com/api/public/v1/sms/conversations/12125550188/13475550123/assign' \
-H "Authorization: Bearer $TB_KEY" \
-H 'Content-Type: application/json' \
-d '{"userId":481920}'

Try it in the playground →