Get a ticket with its messages
const url = 'https://api.nsin.ir/tickets/1';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.nsin.ir/tickets/1 \ --header 'Authorization: Bearer <token>'Fetching a ticket marks it read for you, so the unread count drops.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Responses
Section titled “ Responses ”The ticket, including its message thread.
object
For example open or closed.
The thread. Populated when fetching a single ticket.
object
The message author.
object
True when written by support staff.
object
Where to download the attachment.
Example generated
{ "id": 1, "user_id": 1, "subject": "example", "status": "example", "closed_at": "2026-04-15T12:00:00Z", "closed_by_user_id": 1, "user_last_read_message_id": 1, "staff_last_read_message_id": 1, "messages": [ { "id": 1, "ticket_id": 1, "author_user_id": 1, "author": {}, "body": "example", "is_staff": true, "attachments": [ { "id": 1, "message_id": 1, "original_name": "example", "content_type": "example", "size_bytes": 1, "url": "example" } ], "created_at": "2026-04-15T12:00:00Z" } ], "created_at": "2026-04-15T12:00:00Z", "updated_at": "2026-04-15T12:00:00Z"}Invalid id.
The single error shape used by every endpoint.
object
Human-readable description of what went wrong.
Example
{ "error": "read-only API key"}Missing, malformed, revoked or expired API key — or the owning account is inactive.
The single error shape used by every endpoint.
object
Human-readable description of what went wrong.
Examples
{ "error": "invalid API key"}No such ticket on this account.
The single error shape used by every endpoint.
object
Human-readable description of what went wrong.
Example
{ "error": "read-only API key"}The key exceeded its request budget (300 requests per minute by default).
The single error shape used by every endpoint.
object
Human-readable description of what went wrong.
Examples
{ "error": "rate limit exceeded"}