---
title: "Post Widget Identity"
method: POST
path: "/core/public/web-widgets/{widget_id}/identity"
tags: ["Public Web Widgets"]
---

# Post Widget Identity

`POST /core/public/web-widgets/{widget_id}/identity`

## Request

- Base URL: `https://api.anyreach.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.anyreach.ai/core/public/web-widgets/{widget_id}/identity`
- Auth: none declared

Verify the host page's identify() payload, or sign out with ``null``.

## Path parameters

- `widget_id` string, required

## Request body

- WidgetIdentityRequest: Body of ``POST /public/web-widgets/{id}/identity``.
  - `user_context` object, nullable: The host page's identify() payload, proof included. Null signs the visitor out.
  - `conversation_id` string, nullable: The chat open in the widget: signed in (or out) with the visitor, by the rules the response's conversation field reports.
  - `token` string, nullable: Capability token for conversation_id.
  - `bind_ticket` string, nullable: The bind_ticket the create of conversation_id returned. While valid, a sign-in binds that chat to the account's history.

## Response `200`

Successful Response

- WidgetIdentityResponse
  - `identity_token` string, nullable
  - `expires_at` string, date-time, nullable
  - `identities` WidgetIdentitySummary[]
    - `subject_type` string, required
    - `method` string, nullable
    - `email` string, nullable
    - `phone` string, nullable
  - `retryable` boolean: Without a token: the platform could not answer (a verifier timed out or failed); says nothing about why a proof failed. With a token: the sign-in stands, but conversation_id could not be updated; send it again.
  - `conversation` 'bound' | 'continued' | 'refused' | 'signed_out', nullable: What happened to conversation_id: bound (signed in and in the account's history), continued (signed in on this device only), refused (it belongs to someone else: start a new chat), signed_out (its sign-in entries were removed). Null when none was sent, it was left as it was, or it could not be updated (retryable).
  - `check_ticket` string, nullable: Without a token, when no conversation_id was sent: send it as identity_check with the next create, within 30 minutes, so that conversation's Verification panel lists this check.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/anyreach/apis/anyreach-api.md) - [All operations](https://skmtc.dev/anyreach/apis/anyreach-api/llms.txt) - [OpenAPI document](https://skmtc.dev/anyreach/apis/anyreach-api/revisions/2eddf40c8c93?raw)
