Mojo Helpdesk API (v2)

Download OpenAPI specification:

Welcome to the Mojo Helpdesk API reference docs. Whether you're an experienced developer and Mojo Helpdesk user or just starting out, this is where you'll find the documentation you need.

This API provides access to Mojo Helpdesk’s ticket management system, enabling the retrieval, creation, updating, and management of support tickets and related resources.

Getting Started

  • Get the API key from the Mojo Helpdesk account profile settings.
  • Use the following base URL for all requests: https://app.mojohelpdesk.com/api/v2/
  • Include the access key as a query parameter in every request: ?access_key=
  • Call the endpoints described below to retrieve, create, update, and manage helpdesk data.

Python example

A Mojo Helpdesk example API usage Python script is available here.

Support

For API support, please contact https://help.mojohelpdesk.com

Tickets

List tickets

Retrieve a list of tickets from your helpdesk. This endpoint supports pagination and sorting.

Authorizations:
AccessKey
query Parameters
sort_by
string
Default: "id"
Enum: "id" "title" "description" "user_id" "assigned_to_id" "status_id" "ticket_form_id" "priority_id" "ticket_queue_id" "company_id" "rating" "rated_on" "created_on" "updated_on" "status_changed_on" "solved_on" "assigned_on" "ticket_type_id" "due_on" "scheduled_on"
sort_order
string
Default: "desc"
Enum: "asc" "desc"
page
integer
Default: 1
per_page
integer
Default: 10

Responses

Request samples

curl -G 'https://app.mojohelpdesk.com/api/v2/tickets' \
  --data-urlencode 'access_key=<YOUR_API_KEY>' \
  --data-urlencode 'sort_by=created_on' \
  --data-urlencode 'sort_order=desc'

Response samples

Content type
application/json
[
  • {
    }
]

Create a ticket

Create a new support ticket with optional file attachments. Use multipart/form-data content type to include file attachments.

Authorizations:
AccessKey
Request Body schema:
required
title
required
string

The title of the ticket

description
string

The description or body of the ticket

ticket_queue_id
required
integer

ID of the ticket queue to assign the ticket to

priority_id
integer
Enum: 10 20 30 40

Priority level of the ticket

status_id
integer
Enum: 10 20 30 40 50 60

Current status of the ticket

ticket_type_id
integer

ID of the ticket type

assigned_to_id
integer

ID of the user assigned to the ticket

ticket_form_id
integer

ID of the ticket form to use (if omitted, the default form will be used)

user_id
integer

ID of the user who created the ticket

cc
string

Comma-separated list of email addresses to CC on ticket notifications

asset_tag
string

Asset tag to associate with the ticket

asset_id
integer

ID of the asset to associate with the ticket

due_on
string <date-time>

Due date for the ticket

scheduled_on
string <date-time>

Scheduled date for the ticket

object

User information for the ticket

custom_field_<CUSTOM_FIELD_SYSTEM_KEY>
string

Custom field value where is the name of the custom field (e.g., custom_field_my_awesome_field)

property name*
additional property
any

Responses

Request samples

Content type
{
  • "title": "string",
  • "description": "string",
  • "ticket_queue_id": 0,
  • "priority_id": 10,
  • "status_id": 10,
  • "ticket_type_id": 0,
  • "assigned_to_id": 0,
  • "ticket_form_id": 0,
  • "user_id": 0,
  • "cc": "string",
  • "asset_tag": "string",
  • "asset_id": 0,
  • "due_on": "2019-08-24T14:15:22Z",
  • "scheduled_on": "2019-08-24T14:15:22Z",
  • "user": {
    },
  • "custom_field_<CUSTOM_FIELD_SYSTEM_KEY>": "string"
}

Response samples

Content type
application/json
{
  • "id": 123,
  • "title": "Printer is jammed",
  • "description": "The printer in the office is stuck and won't print anything",
  • "status_id": 1,
  • "ticket_queue_id": 1,
  • "ticket_form_id": 1,
  • "ticket_type_id": 2,
  • "priority_id": 3,
  • "user_id": 5,
  • "assigned_to_id": 10
}

Get a ticket

Authorizations:
AccessKey
path Parameters
id
required
integer

Responses

Request samples

curl -G 'https://app.mojohelpdesk.com/api/v2/tickets/123?access_key=<YOUR_API_KEY>'

Response samples

Content type
application/json
{
  • "id": 123,
  • "title": "Printer is jammed",
  • "description": "The printer in the office is stuck and won't print anything",
  • "status_id": 1,
  • "ticket_queue_id": 1,
  • "ticket_form_id": 1,
  • "ticket_type_id": 2,
  • "priority_id": 3,
  • "user_id": 5,
  • "assigned_to_id": 10
}

Update a ticket

Authorizations:
AccessKey
path Parameters
id
required
integer
Request Body schema: application/json
required
title
string

The title of the ticket

description
string

The description or body of the ticket

ticket_queue_id
integer

ID of the ticket queue to assign the ticket to

priority_id
integer
Enum: 10 20 30 40

Priority level of the ticket

status_id
integer
Enum: 10 20 30 40 50 60

Current status of the ticket

ticket_type_id
integer

ID of the ticket type

assigned_to_id
integer

ID of the user assigned to the ticket

ticket_form_id
integer

ID of the ticket form to use (if omitted, the default form will be used)

user_id
integer

ID of the user who created the ticket

cc
string

Comma-separated list of email addresses to CC on ticket notifications

asset_tag
string

Asset tag to associate with the ticket

asset_id
integer

ID of the asset to associate with the ticket

due_on
string <date-time>

Due date for the ticket

scheduled_on
string <date-time>

Scheduled date for the ticket

custom_field_<CUSTOM_FIELD_SYSTEM_KEY>
string

Custom field value where is the name of the custom field (e.g., custom_field_my_awesome_field)

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "ticket_queue_id": 0,
  • "priority_id": 10,
  • "status_id": 10,
  • "ticket_type_id": 0,
  • "assigned_to_id": 0,
  • "ticket_form_id": 0,
  • "user_id": 0,
  • "cc": "string",
  • "asset_tag": "string",
  • "asset_id": 0,
  • "due_on": "2019-08-24T14:15:22Z",
  • "scheduled_on": "2019-08-24T14:15:22Z",
  • "custom_field_<CUSTOM_FIELD_SYSTEM_KEY>": "string"
}

Response samples

Content type
application/json
{
  • "id": 123,
  • "title": "Printer is jammed",
  • "description": "The printer in the office is stuck and won't print anything",
  • "status_id": 1,
  • "ticket_queue_id": 1,
  • "ticket_form_id": 1,
  • "ticket_type_id": 2,
  • "priority_id": 3,
  • "user_id": 5,
  • "assigned_to_id": 10
}

Destroy ticket

Permanently delete a ticket from the system. This action cannot be undone. The ticket and all its associated data (comments, attachments, etc.) will be removed.

Authorizations:
AccessKey
path Parameters
id
required
integer

The ID of the ticket to delete

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/tickets/113?access_key=<YOUR_API_KEY> -X DELETE

List events for a ticket

Retrieve a list of event log entries for a specific ticket. Events include actions like ticket creation, status changes, assignments, comments, and other activities performed on the ticket.

Authorizations:
AccessKey
path Parameters
ticket_id
required
integer

The ID of the ticket to get events for

Responses

Request samples

curl -G 'https://app.mojohelpdesk.com/api/v2/tickets/113/events?access_key=<YOUR_API_KEY>'

Response samples

Content type
application/json
[
  • {
    }
]

Add tag to a ticket

Add a tag to a specific ticket. You can specify the tag either by its ID or by its label. If a tag with the specified label doesn't exist, it will be created.

Authorizations:
AccessKey
path Parameters
id
required
integer

The ID of the ticket to add the tag to

Request Body schema: application/json
required
tag_id
integer

ID of the existing tag to add

tag_label
string

Label of the tag to add (will create if doesn't exist)

Responses

Request samples

Content type
application/json
{
  • "tag_label": "Test"
}

Response samples

Content type
application/json
[
  • {
    }
]

Remove tag from a ticket

Remove a tag from a specific ticket. You can specify the tag either by its ID or by its label. The tag will be removed from the ticket if it exists.

Authorizations:
AccessKey
path Parameters
id
required
integer

The ID of the ticket to remove the tag from

Request Body schema: application/json
required
tag_id
integer

ID of the existing tag to remove

tag_label
string

Label of the tag to remove

Responses

Request samples

Content type
application/json
{
  • "tag_label": "Test"
}

Response samples

Content type
application/json
[
  • {
    }
]

List comments for a ticket

Retrieve a list of comments for a specific ticket. Comments include user-submitted responses and internal notes associated with the ticket.

Authorizations:
AccessKey
path Parameters
ticket_id
required
integer

The ID of the ticket to get comments for

query Parameters
page
integer
Default: 1

Page number for pagination

per_page
integer
Default: 10

Number of comments per page

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/tickets/114/comments?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Create comment on ticket

Add a new comment to a specific ticket. Comments can be public (visible to ticket submitter) or internal notes (visible only to agents).

Authorizations:
AccessKey
path Parameters
ticket_id
required
integer

The ID of the ticket to add the comment to

Request Body schema: application/json
required
body
required
string

The content of the comment

time_spent
integer

Time spent on this comment in minutes

cc
string

Comma-separated list of email addresses to CC on this comment

is_internal
boolean
Default: false

Whether this is an internal note (true) or public comment (false)

Responses

Request samples

Content type
application/json
{
  • "body": "New comment",
  • "time_spent": 30,
  • "cc": "user@example.com, manager@example.com",
  • "is_internal": false
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "body": "This is a comment on the ticket",
  • "user_id": 10,
  • "ticket_id": 123,
  • "created_at": "2024-01-15T10:30:00Z"
}

List staff notes for a ticket

Retrieve a list of staff notes for a specific ticket. Staff notes are internal comments visible only to agents and managers, not to the ticket submitter.

Authorizations:
AccessKey
path Parameters
ticket_id
required
integer

The ID of the ticket to get staff notes for

query Parameters
page
integer
Default: 1

Page number for pagination

per_page
integer
Default: 10

Number of staff notes per page

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/tickets/114/staff_notes?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Create staff note on ticket

Add a new staff note to a specific ticket. Staff notes are internal comments visible only to agents and managers, not to the ticket submitter.

Authorizations:
AccessKey
path Parameters
ticket_id
required
integer

The ID of the ticket to add the staff note to

Request Body schema: application/json
required
body
required
string

The content of the staff note

time_spent
integer

Time spent on this staff note in minutes

cc
string

Comma-separated list of email addresses to CC on this staff note

Responses

Request samples

Content type
application/json
{
  • "body": "New staff note",
  • "time_spent": 30,
  • "cc": "manager@example.com"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "body": "Internal note for staff only",
  • "user_id": 10,
  • "ticket_id": 123,
  • "created_at": "2024-01-15T10:30:00Z"
}

Search tickets

Search for tickets using ElasticSearch query syntax. The search query format is the same as the one generated for the advanced search on the web interface.

Important: When using special characters in the query, use URL encoding:

  • Use %20 instead of space
  • Use \& instead of just &
  • Use \( instead of (
  • Use \< instead of <

Example Queries:

  • All open tickets: query=status.id:\(\<50\)
  • All urgent open tickets: query=priority.id:\(\<=20\)%20AND%20status.id:\(\<50\)
  • All open tickets in certain queue: query=queue.id:19647%20AND%20status.id:\(\<50\)
  • All tickets with due date: query=_exists_:due_on

Searchable Fields:

  • assignee.id, assignee.email
  • comments.body
  • company.id
  • created_by.id, created_by.name, created_by.email
  • created_on
  • custom_fields
  • description
  • due_on
  • priority.id
  • queue.id
  • rating
  • rated_on
  • scheduled_on
  • solved_on
  • status.id
  • status_changed_on
  • tags.id
  • type.id
  • title
  • updated_on
Authorizations:
AccessKey
query Parameters
query
string

ElasticSearch query in the format used by the web interface advanced search. If not provided, returns all tickets.

Search Notes:

  • Format of all date fields is: 2013-11-11T21:37:02Z
  • To search for range of date/time (i.e. for created_on field):
    • created_on:[2013-11-11T21:37:02Z TO *] (for dates after the given)
    • created_on:[* TO 2013-11-11T21:37:02Z] (for dates before the given)
    • created_on:[2013-10-11T21:37:02Z TO 2013-11-11T21:37:02Z] (for dates between the given)
  • Surround all string values with parentheses and double quotes like the following examples:
    • created_by.email:("myemail@somedomain.com")
sf
string
Enum: "created_on" "due_on" "rated_on" "scheduled_on" "solved_on" "updated_on"
r
integer
Default: 0
Enum: 0 1

Reverse sort (0 = ascending, 1 = descending)

per_page
integer >= 10
Default: 10

Results per page (minimum 10)

page
integer
Default: 1

Page number

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/tickets/search?query=status.id:\(\<50\)\&sf=created_on\&r=0\&access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Events

List events for a ticket

Retrieve a list of event log entries for a specific ticket. Events include actions like ticket creation, status changes, assignments, comments, and other activities performed on the ticket.

Authorizations:
AccessKey
path Parameters
ticket_id
required
integer

The ID of the ticket to get events for

Responses

Request samples

curl -G 'https://app.mojohelpdesk.com/api/v2/tickets/113/events?access_key=<YOUR_API_KEY>'

Response samples

Content type
application/json
[
  • {
    }
]

Tags

Add tag to a ticket

Add a tag to a specific ticket. You can specify the tag either by its ID or by its label. If a tag with the specified label doesn't exist, it will be created.

Authorizations:
AccessKey
path Parameters
id
required
integer

The ID of the ticket to add the tag to

Request Body schema: application/json
required
tag_id
integer

ID of the existing tag to add

tag_label
string

Label of the tag to add (will create if doesn't exist)

Responses

Request samples

Content type
application/json
{
  • "tag_label": "Test"
}

Response samples

Content type
application/json
[
  • {
    }
]

Remove tag from a ticket

Remove a tag from a specific ticket. You can specify the tag either by its ID or by its label. The tag will be removed from the ticket if it exists.

Authorizations:
AccessKey
path Parameters
id
required
integer

The ID of the ticket to remove the tag from

Request Body schema: application/json
required
tag_id
integer

ID of the existing tag to remove

tag_label
string

Label of the tag to remove

Responses

Request samples

Content type
application/json
{
  • "tag_label": "Test"
}

Response samples

Content type
application/json
[
  • {
    }
]

List ticket tags

Retrieve a list of ticket tags. This endpoint supports pagination.

Authorizations:
AccessKey
query Parameters
page
integer
Default: 1

Page number

per_page
integer
Default: 30

Results per page (default 30)

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/tags?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Create tag

Create a new ticket tag.

Authorizations:
AccessKey
Request Body schema: application/json
required
label
required
string

Display name of the tag

color
required
string

Color code for the tag (hex format, e.g.,

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "label": "Test",
  • "color": "#777777"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "label": "Bug",
  • "color": "#ff0000"
}

Show tag

Retrieve details of a specific tag.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the tag

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/tags/8?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
{
  • "id": 1,
  • "label": "Bug",
  • "color": "#ff0000"
}

Update tag

Update an existing tag.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the tag

Request Body schema: application/json
required
label
string

Display name of the tag

color
string

Color code for the tag (hex format, e.g.,

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "label": "Updated Tag",
  • "color": "#ff0000"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "label": "Bug",
  • "color": "#ff0000"
}

Destroy tag

Delete a tag. This action cannot be undone.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the tag

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/tags/10?access_key=<YOUR_API_KEY> -X DELETE

Comments

List comments for a ticket

Retrieve a list of comments for a specific ticket. Comments include user-submitted responses and internal notes associated with the ticket.

Authorizations:
AccessKey
path Parameters
ticket_id
required
integer

The ID of the ticket to get comments for

query Parameters
page
integer
Default: 1

Page number for pagination

per_page
integer
Default: 10

Number of comments per page

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/tickets/114/comments?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Create comment on ticket

Add a new comment to a specific ticket. Comments can be public (visible to ticket submitter) or internal notes (visible only to agents).

Authorizations:
AccessKey
path Parameters
ticket_id
required
integer

The ID of the ticket to add the comment to

Request Body schema: application/json
required
body
required
string

The content of the comment

time_spent
integer

Time spent on this comment in minutes

cc
string

Comma-separated list of email addresses to CC on this comment

is_internal
boolean
Default: false

Whether this is an internal note (true) or public comment (false)

Responses

Request samples

Content type
application/json
{
  • "body": "New comment",
  • "time_spent": 30,
  • "cc": "user@example.com, manager@example.com",
  • "is_internal": false
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "body": "This is a comment on the ticket",
  • "user_id": 10,
  • "ticket_id": 123,
  • "created_at": "2024-01-15T10:30:00Z"
}

StaffNotes

List staff notes for a ticket

Retrieve a list of staff notes for a specific ticket. Staff notes are internal comments visible only to agents and managers, not to the ticket submitter.

Authorizations:
AccessKey
path Parameters
ticket_id
required
integer

The ID of the ticket to get staff notes for

query Parameters
page
integer
Default: 1

Page number for pagination

per_page
integer
Default: 10

Number of staff notes per page

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/tickets/114/staff_notes?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Create staff note on ticket

Add a new staff note to a specific ticket. Staff notes are internal comments visible only to agents and managers, not to the ticket submitter.

Authorizations:
AccessKey
path Parameters
ticket_id
required
integer

The ID of the ticket to add the staff note to

Request Body schema: application/json
required
body
required
string

The content of the staff note

time_spent
integer

Time spent on this staff note in minutes

cc
string

Comma-separated list of email addresses to CC on this staff note

Responses

Request samples

Content type
application/json
{
  • "body": "New staff note",
  • "time_spent": 30,
  • "cc": "manager@example.com"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "body": "Internal note for staff only",
  • "user_id": 10,
  • "ticket_id": 123,
  • "created_at": "2024-01-15T10:30:00Z"
}

Attachments

List attachments for a ticket

Retrieve all attachments associated with a specific ticket.

Authorizations:
AccessKey
path Parameters
ticket_id
required
integer

ID of the ticket

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/tickets/211402/attachments?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Add attachment to a ticket

Upload a file attachment to a specific ticket. Use multipart/form-data content type.

Authorizations:
AccessKey
path Parameters
ticket_id
required
integer

ID of the ticket

query Parameters
staff_only
boolean
Default: false

When true, the attachment will only be visible to staff members

Request Body schema: multipart/form-data
required
file
string <binary>

The file to upload

Responses

Request samples

curl -F "file=@/home/user/my-file.txt" https://app.mojohelpdesk.com/api/v2/tickets/211402/attachments?staff_only=true&access_key=<YOUR_API_KEY> -X POST

Response samples

Content type
application/json
{
  • "id": 6422878,
  • "filename": "document.pdf",
  • "content_type": "application/pdf",
  • "file_size": 1024000,
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z",
  • "user_id": 10,
  • "ticket_id": 211402,
  • "staff_only": false
}

Download an attachment

Download a specific attachment by its ID.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the attachment

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/attachments/6422878?access_key=<YOUR_API_KEY>

Delete an attachment

Delete a specific attachment by its ID.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the attachment

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/attachments/6422878?access_key=<YOUR_API_KEY> -X DELETE

Ticket Queues

List ticket queues

Retrieve a list of ticket queues. This endpoint supports pagination.

Authorizations:
AccessKey
query Parameters
page
integer
Default: 1

Page number

per_page
integer
Default: 30

Results per page (default 30)

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/ticket_queues?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Create ticket queue

Create a new ticket queue.

Authorizations:
AccessKey
Request Body schema: application/json
required
name
required
string

Name of the ticket queue

email_alias
string

Email alias for the queue

email_forward
string

Email address to forward queue emails to

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "name": "My queue",
  • "email_alias": "support",
  • "email_forward": "support@company.com"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Technical Support",
  • "email_alias": "tech-support",
  • "email_forward": "tech@company.com",
  • "email_ticket_form_id": 1
}

Show ticket queue

Retrieve details of a specific ticket queue.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the ticket queue

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/ticket_queues/8?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Technical Support",
  • "email_alias": "tech-support",
  • "email_forward": "tech@company.com",
  • "email_ticket_form_id": 1
}

Update ticket queue

Update an existing ticket queue.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the ticket queue

Request Body schema: application/json
required
name
string

Name of the ticket queue

email_alias
string

Email alias for the queue

email_forward
string

Email address to forward queue emails to

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "name": "My precious queue",
  • "email_alias": "premium-support",
  • "email_forward": "premium@company.com"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Technical Support",
  • "email_alias": "tech-support",
  • "email_forward": "tech@company.com",
  • "email_ticket_form_id": 1
}

Destroy ticket queue

Delete a ticket queue. This action cannot be undone.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the ticket queue

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/ticket_queues/10?access_key=<YOUR_API_KEY> -X DELETE

Groups

List groups

Retrieve a list of groups (formerly called companies). This endpoint supports pagination.

Authorizations:
AccessKey
query Parameters
page
integer
Default: 1

Page number

per_page
integer
Default: 30

Results per page (default 30)

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/groups?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Create group

Create a new group (formerly called company).

Authorizations:
AccessKey
Request Body schema: application/json
required
name
required
string

Name of the group

primary_contact_id
integer

ID of the primary contact (existing helpdesk user)

billing_contact_id
integer

ID of the billing contact (existing helpdesk user)

support_level_id
integer

Support level ID

support_status_id
integer
Enum: 0 1

Support status (0 - active, 1 - delinquent)

support_start_date
string <date>

Support start date

support_end_date
string <date>

Support end date

support_info_url
string

URL for support information

address
string

Primary address

address2
string

Secondary address

city
string

City

state
string

State/Province

zip
string

ZIP/Postal code

country
string

Country

website_url
string

Website URL

notes
string

Additional notes

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "name": "My very own group",
  • "primary_contact_id": 10,
  • "website_url": "www.company.com"
}

Response samples

Content type
application/json
{
  • "id": 1999,
  • "name": "My very own group",
  • "primary_contact_id": 10,
  • "billing_contact_id": 11,
  • "support_level_id": 1,
  • "support_status_id": 0,
  • "support_start_date": "2024-01-01",
  • "support_end_date": "2024-12-31",
  • "support_info_url": "https://support.company.com",
  • "address": "123 Main St",
  • "address2": "Suite 100",
  • "city": "New York",
  • "state": "NY",
  • "zip": "10001",
  • "country": "USA",
  • "website_url": "www.google.com",
  • "notes": "Premium customer"
}

Update group

Update an existing group.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the group

Request Body schema: application/json
required
name
string

Name of the group

primary_contact_id
integer

ID of the primary contact (existing helpdesk user)

billing_contact_id
integer

ID of the billing contact (existing helpdesk user)

support_level_id
integer

Support level ID

support_status_id
integer
Enum: 0 1

Support status (0 - active, 1 - delinquent)

support_start_date
string <date>

Support start date

support_end_date
string <date>

Support end date

support_info_url
string

URL for support information

address
string

Primary address

address2
string

Secondary address

city
string

City

state
string

State/Province

zip
string

ZIP/Postal code

country
string

Country

website_url
string

Website URL

notes
string

Additional notes

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "name": "Updated group name",
  • "website_url": "www.google.com",
  • "support_status_id": 0
}

Response samples

Content type
application/json
{
  • "id": 1999,
  • "name": "My very own group",
  • "primary_contact_id": 10,
  • "billing_contact_id": 11,
  • "support_level_id": 1,
  • "support_status_id": 0,
  • "support_start_date": "2024-01-01",
  • "support_end_date": "2024-12-31",
  • "support_info_url": "https://support.company.com",
  • "address": "123 Main St",
  • "address2": "Suite 100",
  • "city": "New York",
  • "state": "NY",
  • "zip": "10001",
  • "country": "USA",
  • "website_url": "www.google.com",
  • "notes": "Premium customer"
}

Destroy group

Delete a group. This action cannot be undone.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the group

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/groups/1999?access_key=<YOUR_API_KEY> -X DELETE

Users

List users

Retrieve a list of users. This endpoint supports pagination.

Authorizations:
AccessKey
query Parameters
page
integer
Default: 1

Page number

per_page
integer
Default: 30

Results per page (default 30)

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/users?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Create user

Create a new user.

Authorizations:
AccessKey
query Parameters
send_welcome_email
integer
Default: 0
Enum: 0 1

Whether to send a welcome email to the new user (0 = no, 1 = yes)

Request Body schema: application/json
required
email
required
string <email>

Email address of the user

first_name
string

First name of the user

last_name
string

Last name of the user

work_phone
string

Work phone number

cell_phone
string

Cell phone number

home_phone
string

Home phone number

user_notes
string

Additional notes about the user

company_id
integer

ID of the company/group the user belongs to

password
string

Password for the user account

is_active
boolean

Whether the user account is active

role_id
integer
Enum: 10 15 20 30 35 40

Role ID of the user

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "email": "ivaylo+test@metadot.com",
  • "first_name": "Ivaylo",
  • "last_name": "Georgiev",
  • "company_id": "888",
  • "password": "111111"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "email": "john.doe@company.com",
  • "first_name": "John",
  • "last_name": "Doe",
  • "work_phone": "+1-555-123-4567",
  • "cell_phone": "+1-555-987-6543",
  • "home_phone": "+1-555-111-2222",
  • "user_notes": "Premium customer",
  • "company_id": 1,
  • "role_id": 20,
  • "is_active": true
}

List agents

Retrieve a list of agents (technicians).

Authorizations:
AccessKey

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/users/techs?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Show user

Retrieve details of a specific user.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the user

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/users/1?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
{
  • "id": 1,
  • "email": "john.doe@company.com",
  • "first_name": "John",
  • "last_name": "Doe",
  • "work_phone": "+1-555-123-4567",
  • "cell_phone": "+1-555-987-6543",
  • "home_phone": "+1-555-111-2222",
  • "user_notes": "Premium customer",
  • "company_id": 1,
  • "role_id": 20,
  • "is_active": true
}

Update user

Update an existing user.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the user

Request Body schema: application/json
required
email
string <email>

Email address of the user

first_name
string

First name of the user

last_name
string

Last name of the user

work_phone
string

Work phone number

cell_phone
string

Cell phone number

home_phone
string

Home phone number

user_notes
string

Additional notes about the user

company_id
integer

ID of the company/group the user belongs to

password
string

Password for the user account

is_active
boolean

Whether the user account is active

role_id
integer
Enum: 10 15 20 30 35 40

Role ID of the user

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "user_notes": "Thats me again.",
  • "first_name": "Updated Name",
  • "role_id": 20
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "email": "john.doe@company.com",
  • "first_name": "John",
  • "last_name": "Doe",
  • "work_phone": "+1-555-123-4567",
  • "cell_phone": "+1-555-987-6543",
  • "home_phone": "+1-555-111-2222",
  • "user_notes": "Premium customer",
  • "company_id": 1,
  • "role_id": 20,
  • "is_active": true
}

Destroy user

Delete a user. This action cannot be undone.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the user

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/users/1999?access_key=<YOUR_API_KEY> -X DELETE

Get user by email address

Retrieve a user by their email address.

Authorizations:
AccessKey
query Parameters
email
required
string <email>

Email address of the user

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/users/get_by_email?email=someone@company.com&access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
{
  • "id": 1,
  • "email": "john.doe@company.com",
  • "first_name": "John",
  • "last_name": "Doe",
  • "work_phone": "+1-555-123-4567",
  • "cell_phone": "+1-555-987-6543",
  • "home_phone": "+1-555-111-2222",
  • "user_notes": "Premium customer",
  • "company_id": 1,
  • "role_id": 20,
  • "is_active": true
}

Tasks

List ticket tasks

Retrieve a list of tasks associated with a specific ticket.

Authorizations:
AccessKey
path Parameters
ticket_id
required
integer

ID of the ticket

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/tickets/88/tasks?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Create ticket task

Create a new task for a specific ticket.

Authorizations:
AccessKey
path Parameters
ticket_id
required
integer

ID of the ticket

Request Body schema: application/json
required
title
required
string

Title of the task

notes
string

Additional notes for the task

is_completed
boolean

Whether the task is completed

assigned_to_id
integer

ID of the user assigned to the task

due_date
string <date-time>

Due date for the task

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "title": "Test",
  • "notes": "Additional task notes",
  • "is_completed": false
}

Response samples

Content type
application/json
{
  • "id": 777,
  • "title": "Check printer status",
  • "notes": "Verify if printer is online and has paper",
  • "is_completed": false,
  • "ticket_id": 88,
  • "assigned_to_id": 10,
  • "due_date": "2024-01-16T17:00:00Z",
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Update ticket task

Update an existing task for a specific ticket.

Authorizations:
AccessKey
path Parameters
ticket_id
required
integer

ID of the ticket

id
required
integer

ID of the task

Request Body schema: application/json
required
title
string

Title of the task

notes
string

Additional notes for the task

is_completed
boolean

Whether the task is completed

assigned_to_id
integer

ID of the user assigned to the task

due_date
string <date-time>

Due date for the task

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "notes": "Help",
  • "is_completed": true,
  • "title": "Updated task title"
}

Response samples

Content type
application/json
{
  • "id": 777,
  • "title": "Check printer status",
  • "notes": "Verify if printer is online and has paper",
  • "is_completed": false,
  • "ticket_id": 88,
  • "assigned_to_id": 10,
  • "due_date": "2024-01-16T17:00:00Z",
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Destroy ticket task

Delete a task from a specific ticket. This action cannot be undone.

Authorizations:
AccessKey
path Parameters
ticket_id
required
integer

ID of the ticket

id
required
integer

ID of the task

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/tickets/88/tasks/777?access_key=<YOUR_API_KEY> -X DELETE

Ticket Forms

List ticket forms

Retrieve a list of ticket forms.

Authorizations:
AccessKey

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/ticket_forms?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Show ticket form

Retrieve details of a specific ticket form.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the ticket form

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/ticket_forms/2700?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
{
  • "id": 2700,
  • "name": "Default Form",
  • "is_default": true,
  • "is_enabled": true
}

Group Access

List all groups tickets access for a user

Retrieve all group ticket access permissions for a specific user.

Authorizations:
AccessKey
path Parameters
user_id
required
integer

ID of the user

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/users/14/group_access?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Get single group tickets access for a user

Retrieve the ticket access permission for a specific user and group.

Authorizations:
AccessKey
path Parameters
user_id
required
integer

ID of the user

group_id
required
integer

ID of the group

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/users/14/group_access/1234?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
{
  • "user_id": 14,
  • "group_id": 1234,
  • "access": 1
}

Set single group tickets access for a user

Set the ticket access permission for a specific user and group.

Authorizations:
AccessKey
path Parameters
user_id
required
integer

ID of the user

group_id
required
integer

ID of the group

Request Body schema: application/json
required
access
required
integer
Enum: 0 1 2

Access level for the user to the group's tickets

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "access": 1
}

Response samples

Content type
application/json
{
  • "user_id": 14,
  • "group_id": 1234,
  • "access": 1
}

Ticket Types

List ticket types

Retrieve a list of ticket types.

Authorizations:
AccessKey

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/ticket_types?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Create ticket type

Create a new ticket type.

Authorizations:
AccessKey
Request Body schema: application/json
required
name
required
string

Name of the ticket type

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "name": "My type"
}

Response samples

Content type
application/json
{
  • "id": 8,
  • "name": "Bug Report"
}

Show ticket type

Retrieve details of a specific ticket type.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the ticket type

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/ticket_types/8?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
{
  • "id": 8,
  • "name": "Bug Report"
}

Update ticket type

Update an existing ticket type.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the ticket type

Request Body schema: application/json
required
name
string

Name of the ticket type

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "name": "My precious type"
}

Response samples

Content type
application/json
{
  • "id": 8,
  • "name": "Bug Report"
}

Destroy ticket type

Delete a ticket type. This action cannot be undone.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the ticket type

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/ticket_types/10?access_key=<YOUR_API_KEY> -X DELETE

Assets

List assets

Retrieve a list of assets.

Authorizations:
AccessKey

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/assets?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Create asset

Create a new asset.

Authorizations:
AccessKey
Request Body schema: application/json
required
asset_tag
string

Asset tag/identifier

serial_number
string

Serial number of the asset

legacy_reference_number
string

Legacy reference number

display_name
required
string

Display name of the asset

description
string

Description of the asset

asset_type_id
integer

ID of the asset type

location_id
integer

ID of the asset location

department_id
integer

ID of the department

managed_by_id
integer

ID of the user who manages the asset

used_by_id
integer

ID of the user who uses the asset

asset_status_id
integer

ID of the asset status

notes
string

Additional notes about the asset

purchased_on
string <date>

Date when the asset was purchased

cost
number <float>

Cost of the asset

purchase_order_number
string

Purchase order number

vendor
string

Vendor/supplier name

replaced_on
string <date>

Date when the asset was replaced

warranty_info
string

Warranty information

end_of_contract_on
string <date>

End date of the contract

contract_notes
string

Contract-related notes

create_ticket_days_before
integer

Days before contract end to create ticket

birthday
string <date>

Birthday/anniversary date of the asset

visibility
string
Enum: "staff_only" "all_users" "logged_in_users"

Visibility level of the asset

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "display_name": "My asset",
  • "description": "My very own asset",
  • "asset_tag": "ASSET-001",
  • "serial_number": "SN123456789",
  • "cost": 299.99,
  • "vendor": "HP Inc."
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "asset_tag": "PRINT-001",
  • "serial_number": "SN123456789",
  • "display_name": "Office Printer HP LaserJet",
  • "description": "My very own asset",
  • "asset_type_id": 1,
  • "location_id": 1,
  • "department_id": 1,
  • "managed_by_id": 10,
  • "used_by_id": 15,
  • "asset_status_id": 1,
  • "notes": "Located in main office",
  • "purchased_on": "2024-01-01",
  • "cost": 299.99,
  • "purchase_order_number": "PO-2024-001",
  • "vendor": "HP Inc.",
  • "warranty_info": "3-year warranty",
  • "visibility": "staff_only",
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Show asset

Retrieve details of a specific asset.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the asset

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/assets/1?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
{
  • "id": 1,
  • "asset_tag": "PRINT-001",
  • "serial_number": "SN123456789",
  • "display_name": "Office Printer HP LaserJet",
  • "description": "My very own asset",
  • "asset_type_id": 1,
  • "location_id": 1,
  • "department_id": 1,
  • "managed_by_id": 10,
  • "used_by_id": 15,
  • "asset_status_id": 1,
  • "notes": "Located in main office",
  • "purchased_on": "2024-01-01",
  • "cost": 299.99,
  • "purchase_order_number": "PO-2024-001",
  • "vendor": "HP Inc.",
  • "warranty_info": "3-year warranty",
  • "visibility": "staff_only",
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Update asset

Update an existing asset.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the asset

Request Body schema: application/json
required
asset_tag
string

Asset tag/identifier

serial_number
string

Serial number of the asset

legacy_reference_number
string

Legacy reference number

display_name
string

Display name of the asset

description
string

Description of the asset

asset_type_id
integer

ID of the asset type

location_id
integer

ID of the asset location

department_id
integer

ID of the department

managed_by_id
integer

ID of the user who manages the asset

used_by_id
integer

ID of the user who uses the asset

asset_status_id
integer

ID of the asset status

notes
string

Additional notes about the asset

purchased_on
string <date>

Date when the asset was purchased

cost
number <float>

Cost of the asset

purchase_order_number
string

Purchase order number

vendor
string

Vendor/supplier name

replaced_on
string <date>

Date when the asset was replaced

warranty_info
string

Warranty information

end_of_contract_on
string <date>

End date of the contract

contract_notes
string

Contract-related notes

create_ticket_days_before
integer

Days before contract end to create ticket

birthday
string <date>

Birthday/anniversary date of the asset

visibility
string
Enum: "staff_only" "all_users" "logged_in_users"

Visibility level of the asset

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "display_name": "My precious asset",
  • "description": "Updated asset description",
  • "cost": 399.99,
  • "vendor": "Updated Vendor",
  • "visibility": "all_users"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "asset_tag": "PRINT-001",
  • "serial_number": "SN123456789",
  • "display_name": "Office Printer HP LaserJet",
  • "description": "My very own asset",
  • "asset_type_id": 1,
  • "location_id": 1,
  • "department_id": 1,
  • "managed_by_id": 10,
  • "used_by_id": 15,
  • "asset_status_id": 1,
  • "notes": "Located in main office",
  • "purchased_on": "2024-01-01",
  • "cost": 299.99,
  • "purchase_order_number": "PO-2024-001",
  • "vendor": "HP Inc.",
  • "warranty_info": "3-year warranty",
  • "visibility": "staff_only",
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Destroy asset

Delete an asset. This action cannot be undone.

Authorizations:
AccessKey
path Parameters
id
required
integer

ID of the asset

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/assets/1?access_key=<YOUR_API_KEY> -X DELETE

Search assets

Search assets using ElasticSearch query syntax. The search query format is similar to ticket search.

Search Notes:

  • Format of all date fields is: 2013-11-11T21:37:02Z
  • To search for range of date/time (i.e. for created_on field):
    • created_on:[2013-11-11T21:37:02Z TO *] (for dates after the given)
    • created_on:[* TO 2013-11-11T21:37:02Z] (for dates before the given)
    • created_on:[2013-10-11T21:37:02Z TO 2013-11-11T21:37:02Z] (for dates between the given)
  • Surround all string values with parentheses and double quotes like the following examples:
    • managed_by.email:("myemail@somedomain.com")

Searchable Fields:

  • asset_tag - Asset tag/identifier
  • display_name - Display name of the asset
  • description - Asset description
  • asset_type.id - Asset type ID
  • location.id - Location ID
  • department.id - Department ID
  • managed_by.email - Email of the user who manages the asset
  • managed_by.id - ID of the user who manages the asset
  • used_by.email - Email of the user who uses the asset
  • used_by.id - ID of the user who uses the asset
  • created_on - Creation date
  • updated_on - Last update date
  • status - Asset status
  • purchased_on - Purchase date
  • vendor - Vendor/supplier name
  • end_of_contract_on - Contract end date
  • replaced_on - Replacement date
  • serial_number - Serial number
  • birthday - Birthday/anniversary date
Authorizations:
AccessKey
query Parameters
access_key
required
string

API access key

query
string

ElasticSearch query syntax. Note the usage of %20 instead of space, & instead of just &, ( instead of (, < instead of <. Examples:

  • location.id:123 - Search all assets in certain location
  • display_name:*laptop* - Search assets with "laptop" in the name
sort_field
string
Default: "name"
Enum: "name" "tag" "asset_type_name" "location_name" "department_name" "managed_by_name" "used_by_name" "status_name" "birthday_sort" "serial_number" "created_on" "updated_on"

Sort field name (same as the web form search)

sort_order
string
Default: "desc"
Enum: "asc" "desc"

Sort order

per_page
integer [ 10 .. 100 ]
Default: 10

Results per page (min 10, max 100)

page
integer
Default: 1

Page number

Responses

Request samples

curl "https://app.mojohelpdesk.com/api/v2/assets/search?access_key=<YOUR_API_KEY>&query=location.id:123"

Response samples

Content type
application/json
[
  • {
    }
]

Asset Statuses

List asset statuses

Retrieve a list of asset statuses. Supports paging with optional parameters per_page and page. If per_page is missing, by default it will return 30 items per page.

Authorizations:
AccessKey
query Parameters
access_key
required
string

API access key

per_page
integer
Default: 30

Number of items per page

page
integer
Default: 1

Page number

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/asset_statuses?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Create asset status

Create a new asset status

Authorizations:
AccessKey
query Parameters
access_key
required
string

API access key

Request Body schema: application/json
required
name
required
string

Name of the asset status

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "name": "My asset type"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Active",
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Show asset status

Retrieve a specific asset status by ID

Authorizations:
AccessKey
path Parameters
id
required
integer

Asset status ID

query Parameters
access_key
required
string

API access key

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/asset_statuses/1?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Active",
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Update asset status

Update an existing asset status

Authorizations:
AccessKey
path Parameters
id
required
integer

Asset status ID

query Parameters
access_key
required
string

API access key

Request Body schema: application/json
required
name
string

Name of the asset status

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "name": "My precious asset type"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Active",
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Destroy asset status

Delete an asset status by ID

Authorizations:
AccessKey
path Parameters
id
required
integer

Asset status ID

query Parameters
access_key
required
string

API access key

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/asset_statuses/1?access_key=<YOUR_API_KEY> -X DELETE

Response samples

Content type
application/json
{
  • "message": "Asset status deleted successfully"
}

Asset Locations

List locations

Retrieve a list of locations

Authorizations:
AccessKey
query Parameters
access_key
required
string

API access key

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/locations?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Create location

Create a new location

Authorizations:
AccessKey
query Parameters
access_key
required
string

API access key

Request Body schema: application/json
required
name
required
string

Name of the location

description
string

Description of the location

parent_id
integer

ID of the parent location (for hierarchical structure)

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "name": "My location",
  • "description": "My very own location",
  • "parent_id": 1
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Main Office",
  • "description": "My very own location",
  • "parent_id": null,
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

List locations in tree order

Retrieve a list of locations organized in tree structure

Authorizations:
AccessKey
query Parameters
access_key
required
string

API access key

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/locations/tree?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Show location

Retrieve a specific location by ID

Authorizations:
AccessKey
path Parameters
id
required
integer

Location ID

query Parameters
access_key
required
string

API access key

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/locations/1?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Main Office",
  • "description": "My very own location",
  • "parent_id": null,
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Update location

Update an existing location

Authorizations:
AccessKey
path Parameters
id
required
integer

Location ID

query Parameters
access_key
required
string

API access key

Request Body schema: application/json
required
name
string

Name of the location

description
string

Description of the location

parent_id
integer

ID of the parent location (for hierarchical structure)

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "name": "My precious location",
  • "description": "Updated location description",
  • "parent_id": 2
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Main Office",
  • "description": "My very own location",
  • "parent_id": null,
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Destroy location

Delete a location by ID

Authorizations:
AccessKey
path Parameters
id
required
integer

Location ID

query Parameters
access_key
required
string

API access key

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/locations/1?access_key=<YOUR_API_KEY> -X DELETE

Response samples

Content type
application/json
{
  • "message": "Location deleted successfully"
}

Asset Departments

List departments

Retrieve a list of departments

Authorizations:
AccessKey
query Parameters
access_key
required
string

API access key

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/departments?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Create department

Create a new department

Authorizations:
AccessKey
query Parameters
access_key
required
string

API access key

Request Body schema: application/json
required
name
required
string

Name of the department

description
string

Description of the department

parent_id
integer

ID of the parent department (for hierarchical structure)

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "name": "My department",
  • "description": "My very own department",
  • "parent_id": 1
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "IT Department",
  • "description": "My very own department",
  • "parent_id": null,
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

List departments in tree order

Retrieve a list of departments organized in tree structure

Authorizations:
AccessKey
query Parameters
access_key
required
string

API access key

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/departments/tree?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Show department

Retrieve a specific department by ID

Authorizations:
AccessKey
path Parameters
id
required
integer

Department ID

query Parameters
access_key
required
string

API access key

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/departments/1?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "IT Department",
  • "description": "My very own department",
  • "parent_id": null,
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Update department

Update an existing department

Authorizations:
AccessKey
path Parameters
id
required
integer

Department ID

query Parameters
access_key
required
string

API access key

Request Body schema: application/json
required
name
string

Name of the department

description
string

Description of the department

parent_id
integer

ID of the parent department (for hierarchical structure)

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "name": "My precious department",
  • "description": "Updated department description",
  • "parent_id": 2
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "IT Department",
  • "description": "My very own department",
  • "parent_id": null,
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Destroy department

Delete a department by ID

Authorizations:
AccessKey
path Parameters
id
required
integer

Department ID

query Parameters
access_key
required
string

API access key

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/departments/1?access_key=<YOUR_API_KEY> -X DELETE

Response samples

Content type
application/json
{
  • "message": "Department deleted successfully"
}

Asset Types

List asset types

Retrieve a list of asset types

Authorizations:
AccessKey
query Parameters
access_key
required
string

API access key

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/asset_types?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Create asset type

Create a new asset type

Authorizations:
AccessKey
query Parameters
access_key
required
string

API access key

Request Body schema: application/json
required
name
required
string

Name of the asset type

description
string

Description of the asset type

parent_id
integer

ID of the parent asset type (for hierarchical structure)

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "name": "My asset type",
  • "description": "My very own asset type",
  • "parent_id": 1
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Computer Hardware",
  • "description": "My very own asset type",
  • "parent_id": null,
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

List asset types in tree order

Retrieve a list of asset types organized in tree structure

Authorizations:
AccessKey
query Parameters
access_key
required
string

API access key

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/asset_types/tree?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Show asset type

Retrieve a specific asset type by ID

Authorizations:
AccessKey
path Parameters
id
required
integer

Asset type ID

query Parameters
access_key
required
string

API access key

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/asset_types/1?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Computer Hardware",
  • "description": "My very own asset type",
  • "parent_id": null,
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Update asset type

Update an existing asset type

Authorizations:
AccessKey
path Parameters
id
required
integer

Asset type ID

query Parameters
access_key
required
string

API access key

Request Body schema: application/json
required
name
string

Name of the asset type

description
string

Description of the asset type

parent_id
integer

ID of the parent asset type (for hierarchical structure)

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "name": "My precious asset type",
  • "description": "Updated asset type description",
  • "parent_id": 2
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Computer Hardware",
  • "description": "My very own asset type",
  • "parent_id": null,
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Destroy asset type

Delete an asset type by ID

Authorizations:
AccessKey
path Parameters
id
required
integer

Asset type ID

query Parameters
access_key
required
string

API access key

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/asset_types/1?access_key=<YOUR_API_KEY> -X DELETE

Response samples

Content type
application/json
{
  • "message": "Asset type deleted successfully"
}

Access Rights

List access rights for restricted agents

Retrieve a list of all restricted agents and their access rights to ticket queues. This endpoint shows which agents have restricted access and what queues they can access.

Authorizations:
AccessKey

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/access_rights/restricted_agents?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

List access rights for groups

Retrieve a list of all groups and their access rights to ticket queues. This endpoint shows which groups have access to which queues.

Authorizations:
AccessKey

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/access_rights/groups?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
[
  • {
    }
]

Show access rights for a restricted agent

Retrieve the access rights for a specific restricted agent. Shows which ticket queues the agent has access to.

Authorizations:
AccessKey
path Parameters
user_id
required
integer

ID of the restricted agent

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/users/1819458/access_rights?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
{
  • "id": 1,
  • "user_id": 1819458,
  • "group_id": null,
  • "ticket_queue_id": 94748,
  • "has_access": true,
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Set access right for a restricted agent on a single queue

Set the access right for a restricted agent on a specific ticket queue. This allows or denies the agent access to tickets in that queue.

Authorizations:
AccessKey
path Parameters
user_id
required
integer

ID of the restricted agent

Request Body schema: application/json
required
ticket_queue_id
required
string

ID of the ticket queue

has_access
required
string
Enum: "true" "false"

Whether the agent has access to this queue

Responses

Request samples

Content type
application/json
{
  • "ticket_queue_id": "94748",
  • "has_access": "true"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "user_id": 1819458,
  • "group_id": null,
  • "ticket_queue_id": 94748,
  • "has_access": true,
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Set access right for a restricted agent on multiple queues

Set access rights for a restricted agent on multiple ticket queues at once. This allows or denies the agent access to multiple queues in a single request.

Authorizations:
AccessKey
path Parameters
user_id
required
integer

ID of the restricted agent

Request Body schema: application/json
required
keys
required
Array of strings

Array of ticket queue IDs

has_access
required
string
Enum: "true" "false"

Whether the agent has access to these queues

Responses

Request samples

Content type
application/json
{
  • "keys": [
    ],
  • "has_access": "true"
}

Response samples

Content type
application/json
[
  • {
    }
]

Show access rights for a group

Retrieve the access rights for a specific group. Shows which ticket queues the group has access to.

Authorizations:
AccessKey
path Parameters
group_id
required
integer

ID of the group

Responses

Request samples

curl https://app.mojohelpdesk.com/api/v2/groups/124147/access_rights?access_key=<YOUR_API_KEY>

Response samples

Content type
application/json
{
  • "id": 1,
  • "user_id": 1819458,
  • "group_id": null,
  • "ticket_queue_id": 94748,
  • "has_access": true,
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Set access right for a group

Set access rights for a group. This can be used to grant access to a single queue, multiple queues, or all queues depending on the parameters provided.

Authorizations:
AccessKey
path Parameters
group_id
required
integer

ID of the group

Request Body schema: application/json
required
One of
ticket_queue_id
required
string

ID of the ticket queue

has_access
required
string
Enum: "true" "false"

Whether the group has access to this queue

Responses

Request samples

Content type
application/json
{
  • "has_access_to_all_ticket_queues": "true"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "user_id": 1819458,
  • "group_id": null,
  • "ticket_queue_id": 94748,
  • "has_access": true,
  • "created_at": "2024-01-15T10:30:00Z",
  • "updated_at": "2024-01-15T10:30:00Z"
}

Set access right for a group on multiple queues

Set access rights for a group on multiple ticket queues at once. This allows or denies the group access to multiple queues in a single request.

Authorizations:
AccessKey
path Parameters
group_id
required
integer

ID of the group

Request Body schema: application/json
required
keys
required
Array of strings

Array of ticket queue IDs

has_access
required
string
Enum: "true" "false"

Whether the group has access to these queues

Responses

Request samples

Content type
application/json
{
  • "keys": [
    ],
  • "has_access": "true"
}

Response samples

Content type
application/json
[
  • {
    }
]