# Tickets

Get and submit tickets.

## GET /v3/tickets/categories

> Get a list of all ticket categories

```json
{"openapi":"3.0.1","info":{"title":"i3D.net Endpoints","version":"3.0.0"},"tags":[{"name":"Tickets","description":"Get and submit tickets."}],"servers":[{"url":"https://api.i3d.net"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"PRIVATE-TOKEN","in":"header"}},"schemas":{"Error":{"type":"object","required":["errorCode","errorMessage","errors"],"properties":{"errorCode":{"type":"integer","format":"integer","description":"Error code"},"errorMessage":{"type":"string","format":"","description":"Error message"},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"},"description":"Error details"}},"additionalProperties":false},"ErrorDetails":{"type":"object","required":["property","message"],"properties":{"property":{"type":"string","format":"","description":"Property in which there is an error"},"message":{"type":"string","format":"","description":"Error message"}},"additionalProperties":false}}},"paths":{"/v3/tickets/categories":{"get":{"tags":["Tickets"],"summary":"Get a list of all ticket categories","operationId":"getTicketsCategories","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"string","format":""}}}}},"403":{"description":"Invalid credentials"},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## GET /v3/tickets

> Get a list of all ticket meta data (no actual contents)

```json
{"openapi":"3.0.1","info":{"title":"i3D.net Endpoints","version":"3.0.0"},"tags":[{"name":"Tickets","description":"Get and submit tickets."}],"servers":[{"url":"https://api.i3d.net"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"PRIVATE-TOKEN","in":"header"}},"schemas":{"Ticket":{"type":"object","required":["title","categoryName","status"],"properties":{"id":{"type":"integer","format":"integer","description":"Ticket ID"},"hash":{"type":"string","format":"","description":"Ticket hash"},"readHash":{"type":"string","format":"","description":"Ticket read hash"},"title":{"type":"string","format":"","description":"Ticket title"},"categoryName":{"type":"string","format":"","description":"Ticket category name"},"priorityName":{"type":"string","format":"","description":"Ticket priority name"},"createdAt":{"type":"integer","format":"integer","description":"Ticket creation unix timestamp"},"updatedAt":{"type":"integer","format":"integer","description":"Ticket last update unix timestamp"},"clientLastRepliedAt":{"type":"integer","format":"integer","description":"Time at which the client last replied to the ticket"},"clientLastReadAt":{"type":"integer","format":"integer","description":"Time at which the client last read the ticket"},"status":{"type":"string","format":"","description":"Ticket status"},"numUserReplies":{"type":"integer","format":"integer","description":"Number of replies in ticket"},"replies":{"type":"array","items":{"$ref":"#/components/schemas/TicketReply"},"description":"All replies in this ticket"}},"additionalProperties":false},"TicketReply":{"type":"object","required":["id","title","fullUserName","content","createdAt","replyByI3d","attachments"],"properties":{"id":{"type":"integer","format":"integer","description":"Ticket reply ID"},"title":{"type":"string","format":"","description":"Reply title"},"fullUserName":{"type":"string","format":"","description":"Poster full name"},"content":{"type":"string","format":"","description":"Reply text"},"createdAt":{"type":"integer","format":"integer","description":"Reply creation unix timestamp"},"replyByI3d":{"type":"integer","format":"integer","description":"When 1, there has been a response from the helpdesk person","readOnly":true},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/TicketReplyAttachment"},"description":"Reply attachments"}},"additionalProperties":false},"TicketReplyAttachment":{"type":"object","required":["id","name","mime","size","uploadedTime"],"properties":{"id":{"type":"integer","format":"integer","description":"Attachment ID"},"name":{"type":"string","format":"","description":"Attachment file name"},"mime":{"type":"string","format":"","description":"Attachment mime type"},"size":{"type":"integer","format":"integer","description":"Size in bytes"},"uploadedTime":{"type":"integer","format":"integer","description":"Attachment creation unix timestamp"}},"additionalProperties":false},"Error":{"type":"object","required":["errorCode","errorMessage","errors"],"properties":{"errorCode":{"type":"integer","format":"integer","description":"Error code"},"errorMessage":{"type":"string","format":"","description":"Error message"},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"},"description":"Error details"}},"additionalProperties":false},"ErrorDetails":{"type":"object","required":["property","message"],"properties":{"property":{"type":"string","format":"","description":"Property in which there is an error"},"message":{"type":"string","format":"","description":"Error message"}},"additionalProperties":false}}},"paths":{"/v3/tickets":{"get":{"tags":["Tickets"],"summary":"Get a list of all ticket meta data (no actual contents)","operationId":"getTickets","parameters":[{"name":"RANGED-DATA","in":"header","description":"Example header and default range: RANGED-DATA:start=0,results=25","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Ticket"}}}}},"403":{"description":"Invalid credentials"},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /v3/tickets

> Create a new ticket

```json
{"openapi":"3.0.1","info":{"title":"i3D.net Endpoints","version":"3.0.0"},"tags":[{"name":"Tickets","description":"Get and submit tickets."}],"servers":[{"url":"https://api.i3d.net"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"PRIVATE-TOKEN","in":"header"}},"schemas":{"TicketNew":{"type":"object","required":["title","content","category","department","emailCc","emailTo"],"properties":{"title":{"type":"string","format":"","description":"Ticket title"},"content":{"type":"string","format":"","description":"Ticket content"},"category":{"type":"string","format":"","description":"Ticket category name, must be one of [GET /v3/tickets/categories](all#/tickets/categories)"},"department":{"type":"string","format":"","description":"Ticket department name"},"emailCc":{"type":"string","format":"","description":"Ticket's \"Carbon Copy\" email addresses in CSV format"},"emailTo":{"type":"string","format":"","description":"Ticket's destination email addresses in CSV format"},"attachmentIds":{"type":"array","items":{"type":"integer","format":"integer"},"description":"The IDs of attachments that have been uploaded through [POST /v3/tickets/attachment](all#/Tickets/createTicketsAttachment)"}},"additionalProperties":false},"Ticket":{"type":"object","required":["title","categoryName","status"],"properties":{"id":{"type":"integer","format":"integer","description":"Ticket ID"},"hash":{"type":"string","format":"","description":"Ticket hash"},"readHash":{"type":"string","format":"","description":"Ticket read hash"},"title":{"type":"string","format":"","description":"Ticket title"},"categoryName":{"type":"string","format":"","description":"Ticket category name"},"priorityName":{"type":"string","format":"","description":"Ticket priority name"},"createdAt":{"type":"integer","format":"integer","description":"Ticket creation unix timestamp"},"updatedAt":{"type":"integer","format":"integer","description":"Ticket last update unix timestamp"},"clientLastRepliedAt":{"type":"integer","format":"integer","description":"Time at which the client last replied to the ticket"},"clientLastReadAt":{"type":"integer","format":"integer","description":"Time at which the client last read the ticket"},"status":{"type":"string","format":"","description":"Ticket status"},"numUserReplies":{"type":"integer","format":"integer","description":"Number of replies in ticket"},"replies":{"type":"array","items":{"$ref":"#/components/schemas/TicketReply"},"description":"All replies in this ticket"}},"additionalProperties":false},"TicketReply":{"type":"object","required":["id","title","fullUserName","content","createdAt","replyByI3d","attachments"],"properties":{"id":{"type":"integer","format":"integer","description":"Ticket reply ID"},"title":{"type":"string","format":"","description":"Reply title"},"fullUserName":{"type":"string","format":"","description":"Poster full name"},"content":{"type":"string","format":"","description":"Reply text"},"createdAt":{"type":"integer","format":"integer","description":"Reply creation unix timestamp"},"replyByI3d":{"type":"integer","format":"integer","description":"When 1, there has been a response from the helpdesk person","readOnly":true},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/TicketReplyAttachment"},"description":"Reply attachments"}},"additionalProperties":false},"TicketReplyAttachment":{"type":"object","required":["id","name","mime","size","uploadedTime"],"properties":{"id":{"type":"integer","format":"integer","description":"Attachment ID"},"name":{"type":"string","format":"","description":"Attachment file name"},"mime":{"type":"string","format":"","description":"Attachment mime type"},"size":{"type":"integer","format":"integer","description":"Size in bytes"},"uploadedTime":{"type":"integer","format":"integer","description":"Attachment creation unix timestamp"}},"additionalProperties":false},"Error":{"type":"object","required":["errorCode","errorMessage","errors"],"properties":{"errorCode":{"type":"integer","format":"integer","description":"Error code"},"errorMessage":{"type":"string","format":"","description":"Error message"},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"},"description":"Error details"}},"additionalProperties":false},"ErrorDetails":{"type":"object","required":["property","message"],"properties":{"property":{"type":"string","format":"","description":"Property in which there is an error"},"message":{"type":"string","format":"","description":"Error message"}},"additionalProperties":false}}},"paths":{"/v3/tickets":{"post":{"tags":["Tickets"],"summary":"Create a new ticket","operationId":"createTicket","requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketNew"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ticket"}}}},"403":{"description":"Invalid credentials"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## GET /v3/tickets/openOrUnread

> Get a list of all ticket meta data (no actual contents) that are open or unread

```json
{"openapi":"3.0.1","info":{"title":"i3D.net Endpoints","version":"3.0.0"},"tags":[{"name":"Tickets","description":"Get and submit tickets."}],"servers":[{"url":"https://api.i3d.net"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"PRIVATE-TOKEN","in":"header"}},"schemas":{"Ticket":{"type":"object","required":["title","categoryName","status"],"properties":{"id":{"type":"integer","format":"integer","description":"Ticket ID"},"hash":{"type":"string","format":"","description":"Ticket hash"},"readHash":{"type":"string","format":"","description":"Ticket read hash"},"title":{"type":"string","format":"","description":"Ticket title"},"categoryName":{"type":"string","format":"","description":"Ticket category name"},"priorityName":{"type":"string","format":"","description":"Ticket priority name"},"createdAt":{"type":"integer","format":"integer","description":"Ticket creation unix timestamp"},"updatedAt":{"type":"integer","format":"integer","description":"Ticket last update unix timestamp"},"clientLastRepliedAt":{"type":"integer","format":"integer","description":"Time at which the client last replied to the ticket"},"clientLastReadAt":{"type":"integer","format":"integer","description":"Time at which the client last read the ticket"},"status":{"type":"string","format":"","description":"Ticket status"},"numUserReplies":{"type":"integer","format":"integer","description":"Number of replies in ticket"},"replies":{"type":"array","items":{"$ref":"#/components/schemas/TicketReply"},"description":"All replies in this ticket"}},"additionalProperties":false},"TicketReply":{"type":"object","required":["id","title","fullUserName","content","createdAt","replyByI3d","attachments"],"properties":{"id":{"type":"integer","format":"integer","description":"Ticket reply ID"},"title":{"type":"string","format":"","description":"Reply title"},"fullUserName":{"type":"string","format":"","description":"Poster full name"},"content":{"type":"string","format":"","description":"Reply text"},"createdAt":{"type":"integer","format":"integer","description":"Reply creation unix timestamp"},"replyByI3d":{"type":"integer","format":"integer","description":"When 1, there has been a response from the helpdesk person","readOnly":true},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/TicketReplyAttachment"},"description":"Reply attachments"}},"additionalProperties":false},"TicketReplyAttachment":{"type":"object","required":["id","name","mime","size","uploadedTime"],"properties":{"id":{"type":"integer","format":"integer","description":"Attachment ID"},"name":{"type":"string","format":"","description":"Attachment file name"},"mime":{"type":"string","format":"","description":"Attachment mime type"},"size":{"type":"integer","format":"integer","description":"Size in bytes"},"uploadedTime":{"type":"integer","format":"integer","description":"Attachment creation unix timestamp"}},"additionalProperties":false},"Error":{"type":"object","required":["errorCode","errorMessage","errors"],"properties":{"errorCode":{"type":"integer","format":"integer","description":"Error code"},"errorMessage":{"type":"string","format":"","description":"Error message"},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"},"description":"Error details"}},"additionalProperties":false},"ErrorDetails":{"type":"object","required":["property","message"],"properties":{"property":{"type":"string","format":"","description":"Property in which there is an error"},"message":{"type":"string","format":"","description":"Error message"}},"additionalProperties":false}}},"paths":{"/v3/tickets/openOrUnread":{"get":{"tags":["Tickets"],"summary":"Get a list of all ticket meta data (no actual contents) that are open or unread","operationId":"getTicketsOpenOrUnreads","parameters":[{"name":"RANGED-DATA","in":"header","description":"Example header and default range: RANGED-DATA:start=0,results=25","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Ticket"}}}}},"403":{"description":"Invalid credentials"},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## GET /v3/tickets/{ticketId}

> Get a specific ticket with all replies.

```json
{"openapi":"3.0.1","info":{"title":"i3D.net Endpoints","version":"3.0.0"},"tags":[{"name":"Tickets","description":"Get and submit tickets."}],"servers":[{"url":"https://api.i3d.net"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"PRIVATE-TOKEN","in":"header"}},"schemas":{"Ticket":{"type":"object","required":["title","categoryName","status"],"properties":{"id":{"type":"integer","format":"integer","description":"Ticket ID"},"hash":{"type":"string","format":"","description":"Ticket hash"},"readHash":{"type":"string","format":"","description":"Ticket read hash"},"title":{"type":"string","format":"","description":"Ticket title"},"categoryName":{"type":"string","format":"","description":"Ticket category name"},"priorityName":{"type":"string","format":"","description":"Ticket priority name"},"createdAt":{"type":"integer","format":"integer","description":"Ticket creation unix timestamp"},"updatedAt":{"type":"integer","format":"integer","description":"Ticket last update unix timestamp"},"clientLastRepliedAt":{"type":"integer","format":"integer","description":"Time at which the client last replied to the ticket"},"clientLastReadAt":{"type":"integer","format":"integer","description":"Time at which the client last read the ticket"},"status":{"type":"string","format":"","description":"Ticket status"},"numUserReplies":{"type":"integer","format":"integer","description":"Number of replies in ticket"},"replies":{"type":"array","items":{"$ref":"#/components/schemas/TicketReply"},"description":"All replies in this ticket"}},"additionalProperties":false},"TicketReply":{"type":"object","required":["id","title","fullUserName","content","createdAt","replyByI3d","attachments"],"properties":{"id":{"type":"integer","format":"integer","description":"Ticket reply ID"},"title":{"type":"string","format":"","description":"Reply title"},"fullUserName":{"type":"string","format":"","description":"Poster full name"},"content":{"type":"string","format":"","description":"Reply text"},"createdAt":{"type":"integer","format":"integer","description":"Reply creation unix timestamp"},"replyByI3d":{"type":"integer","format":"integer","description":"When 1, there has been a response from the helpdesk person","readOnly":true},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/TicketReplyAttachment"},"description":"Reply attachments"}},"additionalProperties":false},"TicketReplyAttachment":{"type":"object","required":["id","name","mime","size","uploadedTime"],"properties":{"id":{"type":"integer","format":"integer","description":"Attachment ID"},"name":{"type":"string","format":"","description":"Attachment file name"},"mime":{"type":"string","format":"","description":"Attachment mime type"},"size":{"type":"integer","format":"integer","description":"Size in bytes"},"uploadedTime":{"type":"integer","format":"integer","description":"Attachment creation unix timestamp"}},"additionalProperties":false},"Error":{"type":"object","required":["errorCode","errorMessage","errors"],"properties":{"errorCode":{"type":"integer","format":"integer","description":"Error code"},"errorMessage":{"type":"string","format":"","description":"Error message"},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"},"description":"Error details"}},"additionalProperties":false},"ErrorDetails":{"type":"object","required":["property","message"],"properties":{"property":{"type":"string","format":"","description":"Property in which there is an error"},"message":{"type":"string","format":"","description":"Error message"}},"additionalProperties":false}}},"paths":{"/v3/tickets/{ticketId}":{"get":{"tags":["Tickets"],"summary":"Get a specific ticket with all replies.","operationId":"getTicket","parameters":[{"name":"ticketId","in":"path","description":"Ticket ID","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ticket"}}}},"403":{"description":"Invalid credentials"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## GET /v3/tickets/{ticketId}/attachment/{attachmentId}

> Get a ticket attachment

```json
{"openapi":"3.0.1","info":{"title":"i3D.net Endpoints","version":"3.0.0"},"tags":[{"name":"Tickets","description":"Get and submit tickets."}],"servers":[{"url":"https://api.i3d.net"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"PRIVATE-TOKEN","in":"header"}},"schemas":{"Error":{"type":"object","required":["errorCode","errorMessage","errors"],"properties":{"errorCode":{"type":"integer","format":"integer","description":"Error code"},"errorMessage":{"type":"string","format":"","description":"Error message"},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"},"description":"Error details"}},"additionalProperties":false},"ErrorDetails":{"type":"object","required":["property","message"],"properties":{"property":{"type":"string","format":"","description":"Property in which there is an error"},"message":{"type":"string","format":"","description":"Error message"}},"additionalProperties":false}}},"paths":{"/v3/tickets/{ticketId}/attachment/{attachmentId}":{"get":{"tags":["Tickets"],"summary":"Get a ticket attachment","operationId":"getTicketAttachment","parameters":[{"name":"ticketId","in":"path","description":"Ticket ID","required":true,"schema":{"type":"integer"}},{"name":"attachmentId","in":"path","description":"Attachment ID","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"string","format":""}}}},"403":{"description":"Invalid credentials"},"404":{"description":"Not Found"},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /v3/tickets/contact

> Create a new ticket without being logged in (public contact form)

```json
{"openapi":"3.0.1","info":{"title":"i3D.net Endpoints","version":"3.0.0"},"tags":[{"name":"Tickets","description":"Get and submit tickets."}],"servers":[{"url":"https://api.i3d.net"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"PRIVATE-TOKEN","in":"header"}},"schemas":{"TicketNewContact":{"type":"object","required":["firstName","lastName","email","phone","title","category"],"properties":{"firstName":{"type":"string","minLength":2,"maxLength":64,"format":"","description":"Contact first name"},"lastName":{"type":"string","minLength":2,"maxLength":128,"format":"","description":"Contact last name"},"companyName":{"type":"string","maxLength":120,"format":"","description":"Customer's company name (optional)"},"email":{"type":"string","maxLength":128,"format":"","description":"Contact email address"},"phone":{"type":"string","minLength":5,"maxLength":15,"format":"","description":"Contact phone number"},"title":{"type":"string","minLength":2,"maxLength":250,"format":"","description":"Ticket title"},"content":{"type":"string","format":"","description":"Ticket content"},"category":{"type":"string","format":"","description":"Ticket category name, must be one of [GET /v3/tickets/categories](all#/tickets/categories)"}},"additionalProperties":false},"Ticket":{"type":"object","required":["title","categoryName","status"],"properties":{"id":{"type":"integer","format":"integer","description":"Ticket ID"},"hash":{"type":"string","format":"","description":"Ticket hash"},"readHash":{"type":"string","format":"","description":"Ticket read hash"},"title":{"type":"string","format":"","description":"Ticket title"},"categoryName":{"type":"string","format":"","description":"Ticket category name"},"priorityName":{"type":"string","format":"","description":"Ticket priority name"},"createdAt":{"type":"integer","format":"integer","description":"Ticket creation unix timestamp"},"updatedAt":{"type":"integer","format":"integer","description":"Ticket last update unix timestamp"},"clientLastRepliedAt":{"type":"integer","format":"integer","description":"Time at which the client last replied to the ticket"},"clientLastReadAt":{"type":"integer","format":"integer","description":"Time at which the client last read the ticket"},"status":{"type":"string","format":"","description":"Ticket status"},"numUserReplies":{"type":"integer","format":"integer","description":"Number of replies in ticket"},"replies":{"type":"array","items":{"$ref":"#/components/schemas/TicketReply"},"description":"All replies in this ticket"}},"additionalProperties":false},"TicketReply":{"type":"object","required":["id","title","fullUserName","content","createdAt","replyByI3d","attachments"],"properties":{"id":{"type":"integer","format":"integer","description":"Ticket reply ID"},"title":{"type":"string","format":"","description":"Reply title"},"fullUserName":{"type":"string","format":"","description":"Poster full name"},"content":{"type":"string","format":"","description":"Reply text"},"createdAt":{"type":"integer","format":"integer","description":"Reply creation unix timestamp"},"replyByI3d":{"type":"integer","format":"integer","description":"When 1, there has been a response from the helpdesk person","readOnly":true},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/TicketReplyAttachment"},"description":"Reply attachments"}},"additionalProperties":false},"TicketReplyAttachment":{"type":"object","required":["id","name","mime","size","uploadedTime"],"properties":{"id":{"type":"integer","format":"integer","description":"Attachment ID"},"name":{"type":"string","format":"","description":"Attachment file name"},"mime":{"type":"string","format":"","description":"Attachment mime type"},"size":{"type":"integer","format":"integer","description":"Size in bytes"},"uploadedTime":{"type":"integer","format":"integer","description":"Attachment creation unix timestamp"}},"additionalProperties":false},"Error":{"type":"object","required":["errorCode","errorMessage","errors"],"properties":{"errorCode":{"type":"integer","format":"integer","description":"Error code"},"errorMessage":{"type":"string","format":"","description":"Error message"},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"},"description":"Error details"}},"additionalProperties":false},"ErrorDetails":{"type":"object","required":["property","message"],"properties":{"property":{"type":"string","format":"","description":"Property in which there is an error"},"message":{"type":"string","format":"","description":"Error message"}},"additionalProperties":false}}},"paths":{"/v3/tickets/contact":{"post":{"tags":["Tickets"],"summary":"Create a new ticket without being logged in (public contact form)","operationId":"contact","requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketNewContact"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ticket"}}}},"403":{"description":"Invalid credentials"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /v3/tickets/{ticketId}/reply

> Post a reply to an existing ticket

```json
{"openapi":"3.0.1","info":{"title":"i3D.net Endpoints","version":"3.0.0"},"tags":[{"name":"Tickets","description":"Get and submit tickets."}],"servers":[{"url":"https://api.i3d.net"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"PRIVATE-TOKEN","in":"header"}},"schemas":{"TicketNewReply":{"type":"object","required":["title","content"],"properties":{"title":{"type":"string","format":"","description":"Reply title"},"content":{"type":"string","format":"","description":"Reply content"},"attachmentIds":{"type":"array","items":{"type":"integer","format":"integer"},"description":"The IDs of attachments that have been uploaded through [POST /v3/tickets/attachment](all#/Tickets/createTicketsAttachment)"}},"additionalProperties":false},"Ticket":{"type":"object","required":["title","categoryName","status"],"properties":{"id":{"type":"integer","format":"integer","description":"Ticket ID"},"hash":{"type":"string","format":"","description":"Ticket hash"},"readHash":{"type":"string","format":"","description":"Ticket read hash"},"title":{"type":"string","format":"","description":"Ticket title"},"categoryName":{"type":"string","format":"","description":"Ticket category name"},"priorityName":{"type":"string","format":"","description":"Ticket priority name"},"createdAt":{"type":"integer","format":"integer","description":"Ticket creation unix timestamp"},"updatedAt":{"type":"integer","format":"integer","description":"Ticket last update unix timestamp"},"clientLastRepliedAt":{"type":"integer","format":"integer","description":"Time at which the client last replied to the ticket"},"clientLastReadAt":{"type":"integer","format":"integer","description":"Time at which the client last read the ticket"},"status":{"type":"string","format":"","description":"Ticket status"},"numUserReplies":{"type":"integer","format":"integer","description":"Number of replies in ticket"},"replies":{"type":"array","items":{"$ref":"#/components/schemas/TicketReply"},"description":"All replies in this ticket"}},"additionalProperties":false},"TicketReply":{"type":"object","required":["id","title","fullUserName","content","createdAt","replyByI3d","attachments"],"properties":{"id":{"type":"integer","format":"integer","description":"Ticket reply ID"},"title":{"type":"string","format":"","description":"Reply title"},"fullUserName":{"type":"string","format":"","description":"Poster full name"},"content":{"type":"string","format":"","description":"Reply text"},"createdAt":{"type":"integer","format":"integer","description":"Reply creation unix timestamp"},"replyByI3d":{"type":"integer","format":"integer","description":"When 1, there has been a response from the helpdesk person","readOnly":true},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/TicketReplyAttachment"},"description":"Reply attachments"}},"additionalProperties":false},"TicketReplyAttachment":{"type":"object","required":["id","name","mime","size","uploadedTime"],"properties":{"id":{"type":"integer","format":"integer","description":"Attachment ID"},"name":{"type":"string","format":"","description":"Attachment file name"},"mime":{"type":"string","format":"","description":"Attachment mime type"},"size":{"type":"integer","format":"integer","description":"Size in bytes"},"uploadedTime":{"type":"integer","format":"integer","description":"Attachment creation unix timestamp"}},"additionalProperties":false},"Error":{"type":"object","required":["errorCode","errorMessage","errors"],"properties":{"errorCode":{"type":"integer","format":"integer","description":"Error code"},"errorMessage":{"type":"string","format":"","description":"Error message"},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"},"description":"Error details"}},"additionalProperties":false},"ErrorDetails":{"type":"object","required":["property","message"],"properties":{"property":{"type":"string","format":"","description":"Property in which there is an error"},"message":{"type":"string","format":"","description":"Error message"}},"additionalProperties":false}}},"paths":{"/v3/tickets/{ticketId}/reply":{"post":{"tags":["Tickets"],"summary":"Post a reply to an existing ticket","operationId":"createTicketReply","parameters":[{"name":"ticketId","in":"path","description":"Ticket ID","required":true,"schema":{"type":"integer"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketNewReply"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ticket"}}}},"400":{"description":"Bad Request"},"403":{"description":"Invalid credentials"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## POST /v3/tickets/attachment

> Upload an attachment to the system

```json
{"openapi":"3.0.1","info":{"title":"i3D.net Endpoints","version":"3.0.0"},"tags":[{"name":"Tickets","description":"Get and submit tickets."}],"servers":[{"url":"https://api.i3d.net"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"PRIVATE-TOKEN","in":"header"}},"schemas":{"TicketNewAttachment":{"type":"object","required":["attachment"],"properties":{"attachment":{"type":"object","additionalProperties":false,"description":"The attachment that is uploaded through your `multipart/form-data` request."}},"additionalProperties":false},"TicketUploadedAttachment":{"type":"object","required":["attachmentId"],"properties":{"attachmentId":{"type":"integer","format":"integer","description":"The ID of the attachment that was uploaded through your `multipart/form-data` request."}},"additionalProperties":false},"Error":{"type":"object","required":["errorCode","errorMessage","errors"],"properties":{"errorCode":{"type":"integer","format":"integer","description":"Error code"},"errorMessage":{"type":"string","format":"","description":"Error message"},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"},"description":"Error details"}},"additionalProperties":false},"ErrorDetails":{"type":"object","required":["property","message"],"properties":{"property":{"type":"string","format":"","description":"Property in which there is an error"},"message":{"type":"string","format":"","description":"Error message"}},"additionalProperties":false}}},"paths":{"/v3/tickets/attachment":{"post":{"tags":["Tickets"],"summary":"Upload an attachment to the system","operationId":"createTicketsAttachment","consumes":["multipart/form-data"],"requestBody":{"description":"Upload any attachments you want to attach to a ticket reply using this endpoint. The resulting\n`attachmentId`(s) can then be sent along with your ticket reply to couple the attachment to the reply.\nAlso see [POST /v3/tickets/{ticketId}/reply](all#/Tickets/createTicketReply)","content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/TicketNewAttachment"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketUploadedAttachment"}}}},"400":{"description":"Bad Request"},"403":{"description":"Invalid credentials"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## DELETE /v3/tickets/attachment/{attachmentId}

> Delete an attachment \*that is not coupled to a ticket or reply yet\*

```json
{"openapi":"3.0.1","info":{"title":"i3D.net Endpoints","version":"3.0.0"},"tags":[{"name":"Tickets","description":"Get and submit tickets."}],"servers":[{"url":"https://api.i3d.net"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"PRIVATE-TOKEN","in":"header"}},"schemas":{"Error":{"type":"object","required":["errorCode","errorMessage","errors"],"properties":{"errorCode":{"type":"integer","format":"integer","description":"Error code"},"errorMessage":{"type":"string","format":"","description":"Error message"},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"},"description":"Error details"}},"additionalProperties":false},"ErrorDetails":{"type":"object","required":["property","message"],"properties":{"property":{"type":"string","format":"","description":"Property in which there is an error"},"message":{"type":"string","format":"","description":"Error message"}},"additionalProperties":false}}},"paths":{"/v3/tickets/attachment/{attachmentId}":{"delete":{"tags":["Tickets"],"summary":"Delete an attachment *that is not coupled to a ticket or reply yet*","operationId":"deleteTicketsAttachment","parameters":[{"name":"attachmentId","in":"path","description":"Attachment ID","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No Content"},"403":{"description":"Invalid credentials"},"404":{"description":"When the attachment was not found"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## PUT /v3/tickets/{ticketId}/open

> Open a ticket (if it isn't force-closed)

```json
{"openapi":"3.0.1","info":{"title":"i3D.net Endpoints","version":"3.0.0"},"tags":[{"name":"Tickets","description":"Get and submit tickets."}],"servers":[{"url":"https://api.i3d.net"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"PRIVATE-TOKEN","in":"header"}},"schemas":{"Error":{"type":"object","required":["errorCode","errorMessage","errors"],"properties":{"errorCode":{"type":"integer","format":"integer","description":"Error code"},"errorMessage":{"type":"string","format":"","description":"Error message"},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"},"description":"Error details"}},"additionalProperties":false},"ErrorDetails":{"type":"object","required":["property","message"],"properties":{"property":{"type":"string","format":"","description":"Property in which there is an error"},"message":{"type":"string","format":"","description":"Error message"}},"additionalProperties":false}}},"paths":{"/v3/tickets/{ticketId}/open":{"put":{"tags":["Tickets"],"summary":"Open a ticket (if it isn't force-closed)","operationId":"openTicket","parameters":[{"name":"ticketId","in":"path","description":"Ticket ID","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request"},"403":{"description":"Invalid credentials"},"422":{"description":"Unprocessable Entity"},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## PUT /v3/tickets/{ticketId}/close

> Close a ticket

```json
{"openapi":"3.0.1","info":{"title":"i3D.net Endpoints","version":"3.0.0"},"tags":[{"name":"Tickets","description":"Get and submit tickets."}],"servers":[{"url":"https://api.i3d.net"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","name":"PRIVATE-TOKEN","in":"header"}},"schemas":{"Error":{"type":"object","required":["errorCode","errorMessage","errors"],"properties":{"errorCode":{"type":"integer","format":"integer","description":"Error code"},"errorMessage":{"type":"string","format":"","description":"Error message"},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"},"description":"Error details"}},"additionalProperties":false},"ErrorDetails":{"type":"object","required":["property","message"],"properties":{"property":{"type":"string","format":"","description":"Property in which there is an error"},"message":{"type":"string","format":"","description":"Error message"}},"additionalProperties":false}}},"paths":{"/v3/tickets/{ticketId}/close":{"put":{"tags":["Tickets"],"summary":"Close a ticket","operationId":"closeTicket","parameters":[{"name":"ticketId","in":"path","description":"Ticket ID","required":true,"schema":{"type":"integer"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request"},"403":{"description":"Invalid credentials"},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.i3d.net/api-references/general/tickets-1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
