Open a support ticket
const url = 'https://api.nsin.ir/tickets';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"subject":"example","message":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.nsin.ir/tickets \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "subject": "example", "message": "example" }'Send JSON for a text-only ticket, or multipart/form-data to attach
files. See TicketAttachmentUpload for what may be attached.
With multipart/form-data, message may be empty as long as at least
one file is attached; with JSON it is required.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
Example generated
{ "subject": "example", "message": "example"}object
Up to 8 files per message.
Responses
Section titled “ Responses ”The created ticket and its first message.
object
object
Why the ticket is closed: staff when a person closed it, auto when it closed itself after ticket_auto_close_days without a new message. Absent while open. Posting a message to an auto closed ticket reopens it; a staff close is final.
The newest message you have read; replies after it are unread.
The newest message support has read.
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.
When the message was last edited. Absent on a message that has never
been edited — render the “edited” marker off this field, not off
updated_at.
Who made the last edit. Absent on a message that has never been edited.
How many times the message has been edited. 0 for an untouched message.
object
The message author.
object
True when written by support staff.
object
Where to download the attachment.
When the message was last edited. Absent on a message that has never
been edited — render the “edited” marker off this field, not off
updated_at.
Who made the last edit. Absent on a message that has never been edited.
How many times the message has been edited. 0 for an untouched message.
Example
{ "ticket": { "status": "open" }}Invalid body, a missing/oversized subject or message, or a rejected attachment — wrong type, over its size cap, more than eight files, or a file whose contents do not match its extension.
The single error shape used by every endpoint.
object
Human-readable description of what went wrong.
Examples
{ "error": "only JPEG, PNG, GIF, WebP images or .txt/.log/.json files are allowed (images up to 3 MB, text up to 1 MB)"}Missing, malformed, revoked or expired API key. (A valid key whose
account has been deactivated gets 403 account is inactive instead.)
The single error shape used by every endpoint.
object
Human-readable description of what went wrong.
Examples
{ "error": "invalid API key"}The key is read-only and this endpoint is a write. Read-only keys may
only issue GET, HEAD and OPTIONS.
The single error shape used by every endpoint.
object
Human-readable description of what went wrong.
Examples
{ "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"}