Skip to main content

REST API

Help Desk MX exposes a REST API that lets you integrate your store's support system with external tools, mobile applications, and other services. Using this API, external systems can create and update tickets, exchange messages, manage drafts, and read reference data (statuses, priorities, departments, custom fields, and more) without going through the Magento admin panel.

All endpoints listed below are admin-authenticated endpoints — they are not anonymous or customer-token endpoints. Every request must carry a valid Magento admin/integration bearer token, and the token's user or integration must be granted the corresponding ACL resource (mostly Mirasvit_Helpdesk::helpdesk_ticket, plus helpdesk_status, helpdesk_priority, helpdesk_department, and helpdesk_field for those resource groups). The ACL resource required by each route is noted in its description below.

Authentication

Help Desk MX does not introduce its own authentication mechanism — it relies entirely on Magento's built-in REST authentication. Obtain an admin token via POST /V1/integration/admin/token (or use an integration access token) and send it as a Bearer token in the Authorization header of every request. For details on generating and using admin tokens, refer to the Authentication guide on the Magento DevDocs page.

Filtering, sorting, and pagination

Every getList-style endpoint (/V1/helpdesk/tickets, /V1/helpdesk/statuses, /V1/helpdesk/priorities, and so on) accepts a standard Magento searchCriteria query parameter for filtering, sorting, and pagination — the same convention used by core Magento REST endpoints (searchCriteria[filterGroups]..., searchCriteria[sortOrders]..., searchCriteria[pageSize], searchCriteria[currentPage]). Refer to the Search using REST APIs guide on the Magento DevDocs page for the full syntax; it is not repeated here.

Tickets

Requires the Mirasvit_Helpdesk::helpdesk_ticket ACL resource.

MethodURLDescription
POST/V1/helpdesk/ticketCreates a new ticket.
PUT/V1/helpdesk/ticket/{code}Updates an existing ticket.
DELETE/V1/helpdesk/ticket/{code}Deletes a ticket.
GET/V1/helpdesk/ticket/{code}Returns a ticket together with its messages and custom fields.
GET/V1/helpdesk/ticketsReturns a filtered, sorted, paginated list of tickets.

The {code} path parameter is the ticket's code (e.g. 000000001), not its numeric ticket_id.

Request body — POST /V1/helpdesk/ticket

AttributeData TypeDescription
customer_emailStringEmail address of the ticket's customer. This field is required.
subjectStringThe subject line of the ticket. This field is required.
messageStringThe body of the initial ticket message. This field is required.
store_idIntThe store view the ticket belongs to.
priority_idIntThe ID of the priority assigned to the ticket.
department_idIntThe ID of the department handling the ticket.
status_idIntThe ID of the initial status assigned to the ticket.
order_idIntThe ID of the order associated with the ticket.
customer_idIntThe ID of the customer, if the ticket belongs to a registered customer.
customer_nameStringName of the customer (used for guest tickets).
ownerStringName of the ticket owner/agent to display.
ccStringComma-separated list of CC email addresses.
bccStringComma-separated list of BCC email addresses.
tagsArray of StringTag names to attach to the new ticket.

Request parameters — PUT /V1/helpdesk/ticket/{code}

AttributeData TypeDescription
codeStringTicket code identifier, passed in the URL. This field is required.
statusIdIntNew status ID for the ticket.
priorityIdIntNew priority ID for the ticket.
userIdIntID of the admin user (agent) to assign the ticket to.
subjectStringNew subject line for the ticket.
tagsArray of StringReplaces the ticket's tags with this list.
folderIntFolder to move the ticket to: 1 = Inbox, 2 = Archive, 3 = Spam.
customFieldsObjectMap of custom field code to value, e.g. {"f_product_id": "42"}. Each code must match an active row in mst_helpdesk_field.

Response object — TicketInterface (returned by create, update, addMessage; and nested in the ticket node of GET)

AttributeData TypeDescription
ticket_idIntThe internal numeric ID of the ticket.
codeStringThe ticket's code identifier, used in the URL for all other ticket endpoints.
external_idStringExternal identifier of the ticket, if set by an integration.
user_idIntID of the admin user (agent) currently assigned to the ticket.
subjectStringThe subject line of the ticket.
descriptionStringThe body of the first ticket message.
priority_idIntThe ID of the ticket's priority.
status_idIntThe ID of the ticket's current status.
department_idIntThe ID of the department handling the ticket.
customer_idIntThe ID of the customer who owns the ticket, if registered.
customer_emailStringThe email address of the ticket's customer.
customer_nameStringThe name of the ticket's customer.
order_idIntThe ID of the order associated with the ticket.
last_reply_nameStringName of the person who posted the last reply.
last_reply_atStringDate and time of the last reply.
reply_cntIntNumber of replies posted on the ticket.
store_idIntThe store view the ticket belongs to.
created_atStringDate and time the ticket was created.
updated_atStringDate and time the ticket was last updated.
folderIntCurrent folder: 1 = Inbox, 2 = Archive, 3 = Spam.
channelStringChannel through which the ticket was created (e.g. email, contact form, offline chat).
channel_dataStringAdditional channel-specific data, serialized.
third_party_emailStringEmail address used when the ticket originates from a third-party channel.
ccArray of StringCC email addresses on the ticket.
bccArray of StringBCC email addresses on the ticket.
merged_ticket_idIntID of the ticket this one was merged into, if applicable.

Response object — GET /V1/helpdesk/ticket/{code} (TicketGetResponseInterface)

AttributeData TypeDescription
ticketTicketInterfaceThe ticket object, described in the table above.
messagesArray of MessageItemInterfaceAll messages on the ticket. See the fields of MessageItemInterface in the Ticket Messages section below.
customFieldsArray of CustomFieldItemInterfaceThe ticket's custom field values, each with field_code, name, and field_value.

Response object — GET /V1/helpdesk/tickets (TicketSearchResultsInterface)

AttributeData TypeDescription
itemsArray of TicketInterfaceThe list of tickets matching the search criteria.
search_criteriaSearchCriteriaThe search criteria echoed back, per the standard Magento REST convention.
total_countIntTotal number of tickets matching the filters, ignoring pagination.

Ticket Messages

Requires the Mirasvit_Helpdesk::helpdesk_ticket ACL resource.

MethodURLDescription
POST/V1/helpdesk/ticket/{code}/messageAdds a message to an existing ticket.
GET/V1/helpdesk/ticket/{code}/messageReturns a paginated list of messages for a ticket.

Request parameters — POST /V1/helpdesk/ticket/{code}/message

AttributeData TypeDescription
codeStringTicket code identifier, passed in the URL. This field is required.
messageStringThe message body to add to the ticket. This field is required.
typeStringMessage type: public or internal. Defaults to public.

This endpoint returns the updated TicketInterface object (see the Tickets section above).

Response object — MessageItemInterface (items in GET /V1/helpdesk/ticket/{code}/message, and in the messages node of GET /V1/helpdesk/ticket/{code})

AttributeData TypeDescription
message_idIntThe internal numeric ID of the message.
ticket_idIntThe ID of the ticket the message belongs to.
user_idIntID of the admin user (agent) who posted the message, if applicable.
customer_idIntID of the customer who posted the message, if applicable.
customer_emailStringEmail address of the customer who posted the message.
customer_nameStringName of the customer who posted the message.
bodyStringThe message content.
body_formatStringFormat of the message body (e.g. html, text).
typeStringMessage type: public or internal.
triggered_byStringIndicates who triggered the message (e.g. customer, admin, system).
is_readIntWhether the message has been read.
created_atStringDate and time the message was created.
updated_atStringDate and time the message was last updated.
user_nameStringName of the admin user (agent) who posted the message.
third_party_emailStringEmail address used when the message originates from a third-party channel.
third_party_nameStringName used when the message originates from a third-party channel.
attachmentsArray of AttachmentMetadataInterfaceAttachments on this message. Each item exposes attachment_id, name, type, size, and a downloadable url — a lighter shape than the full Attachment object described in the Attachments section below.

Ticket Drafts

Requires the Mirasvit_Helpdesk::helpdesk_ticket ACL resource. Drafts let an agent save an in-progress reply that is visible in the ticket edit page for review before it is sent.

MethodURLDescription
PUT/V1/helpdesk/ticket/{code}/draftSaves (creates or overwrites) the draft reply for a ticket.
GET/V1/helpdesk/ticket/{code}/draftReturns the current draft reply for a ticket.
DELETE/V1/helpdesk/ticket/{code}/draftDeletes the draft reply for a ticket.

Request parameters — PUT /V1/helpdesk/ticket/{code}/draft

AttributeData TypeDescription
codeStringTicket code identifier, passed in the URL. This field is required.
bodyStringThe draft message body. This field is required.

PUT and DELETE return a Boolean. GET returns the draft body as a plain String (empty string if no draft exists).

Statuses

Requires the Mirasvit_Helpdesk::helpdesk_status ACL resource.

MethodURLDescription
POST/V1/helpdesk/statusCreates or updates a helpdesk status.
GET/V1/helpdesk/status/{statusId}Returns a status by ID.
GET/V1/helpdesk/statusesReturns a filtered, sorted, paginated list of statuses.

Request body / response object — StatusInterface

AttributeData TypeDescription
status_idIntThe ID of the status. Omit when creating a new status.
nameStringThe display name of the status.
codeStringThe unique code of the status.
colorStringThe color associated with the status, used in the admin grid.
sort_orderIntPosition of the status relative to others.

GET /V1/helpdesk/statuses returns a StatusSearchResultsInterface with items (array of StatusInterface), search_criteria, and total_count, following the same shape as the ticket list response above.

Priorities

Requires the Mirasvit_Helpdesk::helpdesk_priority ACL resource.

MethodURLDescription
POST/V1/helpdesk/priorityCreates or updates a helpdesk priority.
GET/V1/helpdesk/priority/{priorityId}Returns a priority by ID.
GET/V1/helpdesk/prioritiesReturns a filtered, sorted, paginated list of priorities.

Request body / response object — PriorityInterface

AttributeData TypeDescription
priority_idIntThe ID of the priority. Omit when creating a new priority.
nameStringThe display name of the priority.
colorStringThe color associated with the priority, used in the admin grid.
sort_orderIntPosition of the priority relative to others.

GET /V1/helpdesk/priorities returns a PrioritySearchResultsInterface with items (array of PriorityInterface), search_criteria, and total_count.

Departments

Requires the Mirasvit_Helpdesk::helpdesk_department ACL resource. Departments are read-only through this API — there is no save endpoint.

MethodURLDescription
GET/V1/helpdesk/department/{departmentId}Returns a department by ID.
GET/V1/helpdesk/departmentsReturns a filtered, sorted, paginated list of departments.

Response object — DepartmentInterface

AttributeData TypeDescription
department_idIntThe ID of the department.
nameStringThe display name of the department.
notification_emailStringEmail address notified about activity in the department.
sort_orderIntPosition of the department relative to others.
is_activeIntWhether the department is active (1) or disabled (0).

GET /V1/helpdesk/departments returns a DepartmentSearchResultsInterface with items (array of DepartmentInterface), search_criteria, and total_count.

Tags

Requires the Mirasvit_Helpdesk::helpdesk_ticket ACL resource. Tags are read-only through this API.

MethodURLDescription
GET/V1/helpdesk/tagsReturns a filtered, sorted, paginated list of tags.

Response object — TagInterface

AttributeData TypeDescription
tag_idIntThe ID of the tag.
nameStringThe name of the tag.

GET /V1/helpdesk/tags returns a TagSearchResultsInterface with items (array of TagInterface), search_criteria, and total_count.

Custom Fields

Requires the Mirasvit_Helpdesk::helpdesk_field ACL resource. Custom field definitions are read-only through this API; a ticket's custom field values are read and written through the Tickets endpoints above (the customFields node in a ticket's GET response, and the customFields request parameter of update).

MethodURLDescription
GET/V1/helpdesk/field/{fieldId}Returns a custom field definition by ID.
GET/V1/helpdesk/fieldsReturns a filtered, sorted, paginated list of custom field definitions.

Response object — FieldInterface

AttributeData TypeDescription
field_idIntThe ID of the custom field.
nameStringThe display name of the custom field.
codeStringThe unique code of the custom field, used as the key in a ticket's customFields map.
typeStringThe input type of the custom field (e.g. text, select, textarea).
descriptionStringDescription/help text of the custom field.
valuesStringSerialized list of options, for fields of a choice type (select, multiselect, etc.).
is_activeIntWhether the custom field is active (1) or disabled (0).
sort_orderIntPosition of the custom field relative to others.

GET /V1/helpdesk/fields returns a FieldSearchResultsInterface with items (array of FieldInterface), search_criteria, and total_count.

Satisfaction Surveys

Requires the Mirasvit_Helpdesk::helpdesk_ticket ACL resource. Satisfaction survey results are read-only through this API.

MethodURLDescription
GET/V1/helpdesk/satisfaction/{satisfactionId}Returns a satisfaction survey result by ID.
GET/V1/helpdesk/satisfactionsReturns a filtered, sorted, paginated list of satisfaction survey results.

Response object — SatisfactionInterface

AttributeData TypeDescription
satisfaction_idIntThe ID of the survey result.
ticket_idIntThe ID of the ticket the survey was submitted for.
message_idIntThe ID of the message the survey rating was attached to.
user_idIntID of the admin user (agent) associated with the rated interaction.
customer_idIntID of the customer who submitted the rating.
store_idIntThe store view the rating was submitted from.
rateIntThe numeric satisfaction rating.
commentStringOptional comment left by the customer with the rating.
created_atStringDate and time the rating was created.
updated_atStringDate and time the rating was last updated.

GET /V1/helpdesk/satisfactions returns a SatisfactionSearchResultsInterface with items (array of SatisfactionInterface), search_criteria, and total_count.

Activities

Requires the Mirasvit_Helpdesk::helpdesk_ticket ACL resource. Activities are a read-only audit trail of actions recorded against helpdesk entities.

MethodURLDescription
GET/V1/helpdesk/activitiesReturns a filtered, sorted, paginated list of activity records.

Response object — ActivityInterface

AttributeData TypeDescription
idIntThe ID of the activity record.
external_idStringExternal identifier of the related entity, if applicable.
kindStringThe kind/type of the activity.
timestampStringDate and time the activity occurred.
user_idIntID of the admin user (agent) who triggered the activity, if applicable.
titleStringShort title of the activity.
descriptionStringFull description of the activity.
urlStringURL linking to the related entity, if available.
payloadArrayAdditional structured data associated with the activity.

GET /V1/helpdesk/activities returns an ActivitySearchResultsInterface with items (array of ActivityInterface), search_criteria, and total_count.

History

Requires the Mirasvit_Helpdesk::helpdesk_ticket ACL resource. History records the change log of a ticket (status/priority/department changes, assignments, and similar system events) and is read-only through this API.

MethodURLDescription
GET/V1/helpdesk/historyReturns a filtered, sorted, paginated list of ticket history records.

Response object — HistoryInterface

AttributeData TypeDescription
history_idIntThe ID of the history record.
ticket_idIntThe ID of the ticket the history record belongs to.
triggered_byStringIndicates who/what triggered the event (e.g. customer, admin, system).
nameStringShort name of the event.
messageStringFull description of the event.
created_atStringDate and time the event was recorded.

GET /V1/helpdesk/history returns a HistorySearchResultsInterface with items (array of HistoryInterface), search_criteria, and total_count.

Attachments

Requires the Mirasvit_Helpdesk::helpdesk_ticket ACL resource. Attachments are read-only through this API — files are uploaded via the admin panel or an inbound email, not through this endpoint group.

MethodURLDescription
GET/V1/helpdesk/attachmentsReturns a filtered, sorted, paginated list of attachments.
GET/V1/helpdesk/attachment/{attachmentId}Returns an attachment's metadata by ID.
GET/V1/helpdesk/attachment/{attachmentId}/bodyReturns an attachment's content.

Response object — AttachmentInterface (used by getList and get)

AttributeData TypeDescription
attachment_idIntThe ID of the attachment.
message_idIntThe ID of the message the attachment is attached to.
email_idIntThe ID of the source email, if the attachment arrived by email.
nameStringThe file name of the attachment.
typeStringThe MIME type of the attachment.
sizeIntThe file size, in bytes.
external_idStringExternal identifier of the attachment, if set by an integration.
storageStringStorage backend the attachment's content is kept in.

Response object — AttachmentBodyInterface (returned by getBody)

AttributeData TypeDescription
contentStringPlain text content for text-based files, or base64-encoded content for binary files.
encodingStringEncoding of content (e.g. plain, base64).
nameStringThe file name of the attachment.
typeStringThe MIME type of the attachment.

GET /V1/helpdesk/attachments returns an AttachmentSearchResultsInterface with items (array of AttachmentInterface), search_criteria, and total_count.

Quick Response Templates

Requires the Mirasvit_Helpdesk::helpdesk_ticket ACL resource. Quick response templates are read-only through this API.

MethodURLDescription
GET/V1/helpdesk/template/{templateId}Returns a quick response template by ID.
GET/V1/helpdesk/templatesReturns a filtered, sorted, paginated list of quick response templates.

Response object — TemplateInterface

AttributeData TypeDescription
template_idIntThe ID of the template.
nameStringThe display name of the template.
templateStringThe template body/content, including any placeholders.
is_activeIntWhether the template is active (1) or disabled (0).
store_idsArray of IntThe store views the template is available on.
created_atStringDate and time the template was created.
updated_atStringDate and time the template was last updated.

GET /V1/helpdesk/templates returns a TemplateSearchResultsInterface with items (array of TemplateInterface), search_criteria, and total_count.