A valid request URL is required to generate request examples{
"environment": "live",
"conversation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"contact": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"email": "<string>",
"identified": true,
"email_verified": true,
"first_seen_at": "2023-11-07T05:31:56Z",
"last_seen_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z"
},
"billing": {
"customer": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
},
"subscriptions": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>",
"plan_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"plan_name": "<string>",
"provider": "<string>",
"cancel_at_period_end": true,
"current_period_end": "2023-11-07T05:31:56Z",
"trial_ends_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"mrr_estimate_minor": 123,
"currency": "<string>"
}
],
"invoices": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>",
"currency": "<string>",
"amount_minor": 123,
"issued_at": "2023-11-07T05:31:56Z",
"paid_at": "2023-11-07T05:31:56Z",
"hosted_url": "<string>"
}
]
},
"entitlements": {
"plan": "<string>",
"resolved": true,
"features": {}
},
"auth_events": [
{
"type": "<string>",
"method": "<string>",
"ip": "<string>",
"user_agent": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
],
"past_conversations": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subject": "<string>",
"channel": "email",
"status": "open",
"created_at": "2023-11-07T05:31:56Z",
"last_message_at": "2023-11-07T05:31:56Z"
}
]
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}Read a conversation's context
Requires support:read. The sidebar aggregate: who the contact is, what their team pays (from the subscription mirror), what their plan entitles them to, their recent sign-in trail, and their past conversations — one read, five sections.
Each section degrades alone. A section that could not be read answers null and the rest still render; an absence inside a section (a contact on no team, an empty trail) is data, not a failure — so an organization that never connected billing sees billing.customer: null, never an error. entitlements is null when there is no customer to resolve, and otherwise carries resolved saying whether the grant was asserted or assumed: the resolver fails open by design, so an entitlements outage never darkens the sidebar.
Each subscription’s mrr_estimate_minor is an estimate, declared as such: recurring lines normalized to one monthly figure from the immutable price rows. What was actually charged — proration, tax, a discount — is the invoices’ own money, listed beside it with real amounts. null when the subscription has no recurring line to estimate from.
An id from another environment or another organization answers the same 404 as one that never existed.
A valid request URL is required to generate request examples{
"environment": "live",
"conversation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"contact": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"email": "<string>",
"identified": true,
"email_verified": true,
"first_seen_at": "2023-11-07T05:31:56Z",
"last_seen_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z"
},
"billing": {
"customer": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
},
"subscriptions": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>",
"plan_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"plan_name": "<string>",
"provider": "<string>",
"cancel_at_period_end": true,
"current_period_end": "2023-11-07T05:31:56Z",
"trial_ends_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"mrr_estimate_minor": 123,
"currency": "<string>"
}
],
"invoices": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "<string>",
"currency": "<string>",
"amount_minor": 123,
"issued_at": "2023-11-07T05:31:56Z",
"paid_at": "2023-11-07T05:31:56Z",
"hosted_url": "<string>"
}
]
},
"entitlements": {
"plan": "<string>",
"resolved": true,
"features": {}
},
"auth_events": [
{
"type": "<string>",
"method": "<string>",
"ip": "<string>",
"user_agent": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
],
"past_conversations": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"subject": "<string>",
"channel": "email",
"status": "open",
"created_at": "2023-11-07T05:31:56Z",
"last_message_at": "2023-11-07T05:31:56Z"
}
]
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}Authorizations
A staff session token, uk_st_…. Minted by sign-up, sign-in or the two-factor exchange. Only a 401 means it is spent; not_a_member (403) is about the organization named in X-Organization-Id and leaves the token good for the others.
Headers
The organization the caller is acting on — the org_… code that appears in the panel URL. It identifies; the membership JOIN is what authorizes, so a forged code reads nothing: the answer is not_a_member (403), which does not mean the session is over. Absent, the session's default organization answers, or — if that membership was revoked while the session was open — any other one the caller still holds.
Path Parameters
Query Parameters
Which environment to act in. A view parameter, valid only on the staff surface — a machine credential never chooses its environment, it is resolved from the key.
live, test Response
The five sections. null on a section means it could not be read right now; the others still answer.
live, test Show child attributes
Show child attributes
From the subscription mirror. customer: null with empty lists means the contact belongs to no team — an answer, not a failure.
Show child attributes
Show child attributes
The customer's grant, resolved fail-open: resolved: false means the resolver did not answer and the grant shown is the open one.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes