status-message only carries a reason (Break, Lunch, a custom label). Agent Login, Agent Logout, Agent Single Call and the manual action all clear it, so End shift, single call mode and plain offline are one empty string there. The agent log keeps them apart, and that is what this endpoint reads.callqueue-agent-status is the same token the action endpoints accept, so a client restoring a status dropdown after a page reload can match it directly with no reverse lookup. Custom statuses stay cust1-cust8; their per-domain display text comes back separately as callqueue-agent-status-label.Authorization: Bearer ********************curl --location --globoff 'https://awqacore01.crexendocloud.com/ns-api/v2/domains/{{domain}}/agents/{{callqueue-agent-id}}/status' \
--header 'Authorization: Bearer <token>'{
"domain": "example.com",
"user": "2050",
"callqueue-agent-id": "sip:2050@example.com",
"callqueue-agent-status": "cust1",
"callqueue-agent-status-label": "WFH",
"callqueue-agent-status-since-datetime": "2026-09-09T14:22:03+00:00",
"callqueue-agent-logged-in": "yes",
"callqueue-agent-availability-type": "manual",
"callqueue-agent-queue-count": 3
}