curl --request GET \
--url https://app.usertick.com/api/public/v1/responses \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.usertick.com/api/public/v1/responses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.usertick.com/api/public/v1/responses"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "9b1c2d3e-4f50-4a61-8b72-93a4b5c6d7e8",
"url": "https://app.usertick.com/inbox/9b1c2d3e-4f50-4a61-8b72-93a4b5c6d7e8",
"survey": {
"id": "11111111-1111-4111-8111-111111111111",
"name": "Checkout feedback"
},
"site": {
"id": "22222222-2222-4222-8222-222222222222",
"domain": "shop.example.com"
},
"createdAt": "2026-09-30T10:00:00.123Z",
"updatedAt": "2026-09-30T12:31:05.120Z",
"source": "widget",
"language": "en",
"country": "US",
"pageUrl": "https://shop.example.com/checkout",
"device": {
"type": "desktop",
"browser": "Chrome",
"os": "macOS"
},
"variant": null,
"variantName": null,
"contact": {
"id": "77777777-7777-4777-8777-777777777777",
"email": "[email protected]"
},
"respondent": {
"userId": "user_8271",
"anonymousId": "5f0c7a2b-8d4e-4c1a-9e3f-2b6d8a0c4e1f",
"verified": true,
"email": "[email protected]",
"emailSource": "identify",
"name": "Maya Chen",
"company": "Example Inc.",
"traits": {
"company": "Example Inc.",
"plan": "pro"
},
"traitsVerified": false,
"contactQuestion": null,
"contact": {
"id": "77777777-7777-4777-8777-777777777777"
}
},
"answers": [
{
"questionId": "q_nps",
"question": "How likely are you to recommend us?",
"type": "nps",
"value": 4,
"text": "4"
},
{
"questionId": "q_comment",
"question": "What went wrong?",
"type": "text",
"value": "Checkout rejects my card every time",
"text": "Checkout rejects my card every time"
}
],
"answerText": {
"q_nps": "4",
"q_comment": "Checkout rejects my card every time"
},
"attachments": [],
"status": "in_progress",
"assignees": [
{
"id": "66666666-6666-4666-8666-666666666666",
"name": "Ana Ruiz",
"email": "[email protected]"
}
],
"ai": {
"type": "bug",
"urgency": "high",
"theme": {
"id": "44444444-4444-4444-8444-444444444444",
"name": "Checkout errors"
},
"category": {
"id": "55555555-5555-4555-8555-555555555555",
"name": "Payments"
},
"sentiment": "negative",
"analyzedAt": "2026-09-30T10:00:07.250Z",
"corrected": false
},
"commentsCount": 2
}
],
"nextCursor": "<string>"
}List responses
Every filter of the inbox the API offers, combined, paged by cursor.
Scopes: responses:read.
curl --request GET \
--url https://app.usertick.com/api/public/v1/responses \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.usertick.com/api/public/v1/responses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.usertick.com/api/public/v1/responses"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "9b1c2d3e-4f50-4a61-8b72-93a4b5c6d7e8",
"url": "https://app.usertick.com/inbox/9b1c2d3e-4f50-4a61-8b72-93a4b5c6d7e8",
"survey": {
"id": "11111111-1111-4111-8111-111111111111",
"name": "Checkout feedback"
},
"site": {
"id": "22222222-2222-4222-8222-222222222222",
"domain": "shop.example.com"
},
"createdAt": "2026-09-30T10:00:00.123Z",
"updatedAt": "2026-09-30T12:31:05.120Z",
"source": "widget",
"language": "en",
"country": "US",
"pageUrl": "https://shop.example.com/checkout",
"device": {
"type": "desktop",
"browser": "Chrome",
"os": "macOS"
},
"variant": null,
"variantName": null,
"contact": {
"id": "77777777-7777-4777-8777-777777777777",
"email": "[email protected]"
},
"respondent": {
"userId": "user_8271",
"anonymousId": "5f0c7a2b-8d4e-4c1a-9e3f-2b6d8a0c4e1f",
"verified": true,
"email": "[email protected]",
"emailSource": "identify",
"name": "Maya Chen",
"company": "Example Inc.",
"traits": {
"company": "Example Inc.",
"plan": "pro"
},
"traitsVerified": false,
"contactQuestion": null,
"contact": {
"id": "77777777-7777-4777-8777-777777777777"
}
},
"answers": [
{
"questionId": "q_nps",
"question": "How likely are you to recommend us?",
"type": "nps",
"value": 4,
"text": "4"
},
{
"questionId": "q_comment",
"question": "What went wrong?",
"type": "text",
"value": "Checkout rejects my card every time",
"text": "Checkout rejects my card every time"
}
],
"answerText": {
"q_nps": "4",
"q_comment": "Checkout rejects my card every time"
},
"attachments": [],
"status": "in_progress",
"assignees": [
{
"id": "66666666-6666-4666-8666-666666666666",
"name": "Ana Ruiz",
"email": "[email protected]"
}
],
"ai": {
"type": "bug",
"urgency": "high",
"theme": {
"id": "44444444-4444-4444-8444-444444444444",
"name": "Checkout errors"
},
"category": {
"id": "55555555-5555-4555-8555-555555555555",
"name": "Payments"
},
"sentiment": "negative",
"analyzedAt": "2026-09-30T10:00:07.250Z",
"corrected": false
},
"commentsCount": 2
}
],
"nextCursor": "<string>"
}Authorizations
An API key (utk_live_...) or an app's OAuth access token (uto_...).
Query Parameters
One or more surveys (repeat the parameter, at most 50).
One site.
Received at or after (RFC 3339).
Received at or before (RFC 3339; UTC when no offset). A date alone (2026-10-14) includes that whole UTC day.
Updated at or after (see updatedAt): received, analyzed or changed by a person since then. Use it to sync. Every change is listed; a time with more than 100,000 responses changed by people since then is refused (PUB-003-009).
One or more statuses (repeat the parameter); every status when left out.
open, planned, in_progress, resolved, archived A feedback type, or none for the untyped pile. A response matches when any answer has it.
bug, idea, complaint, question, praise, none One urgency band.
high, medium, low A theme id (GET /themes), or none.
A category id (GET /themes), or none.
Any answer reads with this sentiment.
negative, neutral, positive Only responses with an open text answer.
The respondent: an answer that is exactly this address (any case), the email identify sent, the contact with it (its email link answers and its linked responses). Every linked response is listed; a contact with more than 100,000 linked responses in the window is refused (PUB-003-010), and from and to narrow it.
The site's user id the response was sent with (identify), exactly.
256desc (newest first, default) or asc.
desc, asc Items per page, 1 to 100 (default 25). Out of range is 400 PUB-001-001.
1 <= x <= 100The nextCursor of the previous page. Opaque: send it back as it came.