API reference
Feedback
A thumbs up or down on one answer, with an optional comment. The widget sends it when a visitor taps a thumb; your server reads the ratings back to find the answers that went wrong.
POST /v1/chat/feedback
GET /v1/chat/feedback
Rate an answer
curl -X POST https://api.trytether.ge/v1/chat/feedback \
-H "X-Api-Key: $TETHER_PUBLISHABLE_KEY" \
-H "Content-Type: application/json" \
-d '{
"sessionId": "0f2c8b41-6d3e-4a19-9c77-1b2a3e4f5d60",
"requestId": "7d1e4c0a9b2f4e6d8a1c3b5e7f9d2a4c",
"rating": "down",
"comment": "It sent me to a branch that closed an hour ago."
}'
| Field | Required | Notes |
|---|---|---|
sessionId | yes | The conversation, from the complete frame of the stream |
requestId | yes | The answer being rated, from the same frame |
rating | yes | up or down |
comment | no | At most 1,000 characters |
A publishable key may call this route, so it works from a page. It is accepted only for a
conversation of that key's own tenant, and, when the conversation belongs to a
verified customer, only with that customer's token. Anything
else is 404 session_not_found. One rating is kept per answer: a second replaces the first.
{ "recorded": true, "rating": "down", "replaced": false }
Read the ratings
With the tenant's secret key, newest first. A publishable key cannot read them.
curl "https://api.trytether.ge/v1/chat/feedback?rating=down&limit=50" \
-H "X-Api-Key: $TETHER_SECRET_KEY"
| Query | Notes |
|---|---|
rating | up or down; absent for both |
limit | 1 to 200, default 50 |
{ "feedback": [
{ "sessionId": "0f2c…", "requestId": "7d1e…", "rating": "down",
"comment": "It sent me to a branch that closed an hour ago.", "customerId": null,
"createdAt": "2026-10-15T21:04:11Z", "updatedAt": "2026-10-15T21:04:11Z" } ],
"count": 1 }
Related
- Streaming: where
sessionIdandrequestIdcome from - The widget: the thumbs under every answer