Endpoints
Before you can access any of the available endpoints, make sure to create a valid access token. Also make sure to read the introduction to get familiar with our API.
We’re open to suggestions about additional endpoints. Let us know if you need anything specific.
Tickets (open)
Method
GETEndpoint
https://tinydub.com/api/v1/tickets
A list of all currently open tickets.
$access_token = 't8ZMQLQiquuyMjHFqfqW0hlEvQsNioCQLLe9npgZ'; curl https://tinydub.com/api/v1/tickets \ -H "Authorization: Bearer $access_token" \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response
[ { "id": "KPlaQw1c", "name": "Maxim Pool", "email": "m.poold@example.com", "status": "pending", "has_unread_messages": true, "created_at": "2026-01-20T12:51:32.000000Z" }, { "id": "FHERJvPv", "name": "Jake Jakeson", "email": "jake@example.com", "status": "pending", "has_unread_messages": false, "created_at": "2026-01-19T11:03:28.000000Z" }, { "id": "nS5M8d52", "name": "Olaf", "email": "olaf@example.com", "status": "pending", "has_unread_messages": true, "created_at": "2026-01-17T10:43:02.000000Z" }]
Tickets (self-assigned)
Method
GETEndpoint
https://tinydub.com/api/v1/tickets/self
A list of all tickets currently assigned to the authenticated user.
$access_token = 't8ZMQLQiquuyMjHFqfqW0hlEvQsNioCQLLe9npgZ'; curl https://tinydub.com/api/v1/tickets/self \ -H "Authorization: Bearer $access_token" \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Tickets (unassigned)
Method
GETEndpoint
https://tinydub.com/api/v1/tickets/unassigned
A list of all tickets currently unassigned.
$access_token = 't8ZMQLQiquuyMjHFqfqW0hlEvQsNioCQLLe9npgZ'; curl https://tinydub.com/api/v1/tickets/unassigned \ -H "Authorization: Bearer $access_token" \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Tickets (resolved)
Method
GETEndpoint
https://tinydub.com/api/v1/tickets/resolved
A list of all resolved tickets.
$access_token = 't8ZMQLQiquuyMjHFqfqW0hlEvQsNioCQLLe9npgZ'; curl https://tinydub.com/api/v1/tickets/resolved \ -H "Authorization: Bearer $access_token" \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Ticket detail
Method
GETEndpoint
https://tinydub.com/api/v1/ticket/{id}
Get the details and messages of a ticket.
$access_token = 't8ZMQLQiquuyMjHFqfqW0hlEvQsNioCQLLe9npgZ'; curl https://tinydub.com/api/v1/ticket/{id} \ -H "Authorization: Bearer $access_token" \ -H 'Accept: application/json' \ -H 'Content-Type: application/json'
Response
{ "id": "P1wLN0xU", "name": "Evan", "email": "evan@example.com", "status": "pending", "priority": "low", "has_unread_messages": false, "replied_to_customer": false, "closed_at": null, "last_contact_at": "2026-01-05T08:39:03.000000Z", "created_at": "2026-01-05T08:39:03.000000Z", "updated_at": "2026-01-05T10:03:01.000000Z", "assigned_to": null, "widget": { "id": "ZdN9zLuL", "name": "Widget Name" }, "ai_summary": null, "attachments": [ { "id": "FpFSmyL0", "name": "IMG_1215.png", "mime_type": "png", "size": 554149, "url": "https://tinydub.6dfd0b6f840a32839f5aec34331e3d77.eu.r2.cloudflarestorage.com/..." } ], "messages": [ { "id": "GeG3CPz5", "message_type": "inbound", "ticket_status": "pending", "message": "Layout issue on Apple Safari (16 pro max)\nNo need to reply to me.", "outbound_sent": false, "outbound_delivered_at": null, "outbound_bounced": false, "outbound_spam_complaint": false, "outbound_error": null, "created_at": "2026-01-05T08:39:03.000000Z", "user": null, "attachments": [ { "id": "FpFSmyL0", "name": "IMG_1215.png", "mime_type": "png", "size": 554149, "url": "https://tinydub.6dfd0b6f840a32839f5aec34331e3d77.eu.r2.cloudflarestorage.com/..." } ] } ]}
Attachment URLs are absolute links and expire after 10 minutes. You will need to make a new API request to renew the signature.
Ticket reply
Method
POSTEndpoint
https://tinydub.com/api/v1/ticket/{id}/reply
Send a reply as the authenticated user.
Request body
{ "message": "Your reply message here (min 3 characters)"}
Response (201 created)
{ "id": "FTsuHoDS", "created_at": "2026-01-20T18:44:11.000000Z"}