Using the DeskPRO APIΒΆ
DeskPRO has a full REST API allowing access to the functions of the helpdesk using HTTP requests.
This means you or your software developers can use any modern coding language to automatically retrieve, create or modify helpdesk data, such as tickets and user records.
You can use the API to import and export data, automate the helpdesk beyond what’s supported by the built-in automation systems, or integrate with external services.
- API Basics
- Managing API keys
- API browser
- Token exchange
- PHP SDK
- API: Tickets
- GET /tickets - Search for tickets matching criteria
- POST /tickets - Create a new ticket
- GET /tickets/<ticket_id> - Gets information about a ticket
- POST /tickets/<ticket_id> - Updates a ticket
- DELETE /tickets/<ticket_id> - Deletes a ticket
- POST /tickets/<ticket_id>/undelete - Undeletes a ticket
- POST /tickets/<ticket_id>/spam - Marks a ticket as spam
- POST /tickets/<ticket_id>/unspam - Removes spam indicator from a ticket
- POST /tickets/<ticket_id>/claim - Assigns a ticket to the API user
- POST /tickets/<ticket_id>/lock - Locks a ticket
- POST /tickets/<ticket_id>/unlock - Unlocks a ticket
- POST /tickets/<ticket_id>/merge/<merge_ticket_id> - Merges the two tickets
- POST /tickets/<ticket_id>/split - Splits messages from a ticket into a new one
- GET /tickets/<ticket_id>/log - Gets all logs in a ticket
- GET /tickets/<ticket_id>/messages - Gets all messages in a ticket
- POST /tickets/<ticket_id>/messages - Replies to a ticket
- GET /tickets/<ticket_id>/messages/<message_id> - Gets the specific message
- GET /tickets/<ticket_id>/messages/<message_id>/details - Gets a specific message’s details
- GET /tickets/<ticket_id>/tasks - Gets the tasks for a ticket
- POST /tickets/<ticket_id>/tasks - Create a task for a ticket
- GET /tickets/<ticket_id>/billing-charges - Gets the billing charges for a ticket
- POST /tickets/<ticket_id>/billing-charges - Adds a billing charge for a ticket
- GET /tickets/<ticket_id>/billing-charge/<charge_id> - Determines if a charge exists for a ticket
- DELETE /tickets/<ticket_id>/billing-charge/<charge_id> - Deletes a charge for a ticket
- GET /tickets/<ticket_id>/slas - Gets the SLAs for a ticket
- POST /tickets/<ticket_id>/slas - Adds an SLA to a ticket
- GET /tickets/<ticket_id>/slas/<ticket_sla_id> - Determines if a ticket SLA exists for a ticket
- DELETE /tickets/<ticket_id>/slas/<ticket_sla_id> - Deletes a ticket SLA for a ticket
- GET /tickets/<ticket_id>/participants - Gets the participants in a ticket
- POST /tickets/<ticket_id>/participants - Adds a participant to a ticket
- GET /tickets/<ticket_id>/participants/<person_id> - Determines if a person is participating in a ticket
- DELETE /tickets/<ticket_id>/participants/<person_id> - Removes a participant from a ticket
- GET /tickets/<ticket_id>/labels - Gets the labels for a ticket
- POST /tickets/<ticket_id>/labels - Adds a label to a ticket
- GET /tickets/<ticket_id>/labels/<label> - Determines if the ticket has the label
- DELETE /tickets/<ticket_id>/labels/<label> - Removes a label from a ticket
- GET /tickets/fields - Gets available custom ticket fields
- GET /tickets/departments - Gets available ticket departments
- GET /tickets/products - Gets available ticket products
- GET /tickets/categories - Gets available ticket categories
- GET /tickets/priorities - Gets available ticket priorities
- GET /tickets/workflows - Gets available ticket workflows
- GET /tickets/slas - Gets available SLAs
- GET /tickets/slas/<sla_id> - Gets an SLA
- GET /tickets/slas/<sla_id>/people - Gets list of people that automatically apply this SLA
- GET /tickets/slas/<sla_id>/organizations - Gets list of organizations that automatically apply this SLA
- GET /tickets/filters - Gets available ticket filters
- GET /tickets/filters/<filter_id> - Executes the ticket filter
- API: Ticket Fields
- API: People
- GET /people - Search for people matching criteria
- POST /people - Create a new person
- GET /people/<person_id> - Gets information about a person
- GET /people/<person_id>/phone_numbers - Gets person’s phone numbers
- GET /people/{person_id}/phone_numbers/{number_id} - Get specific phone no.
- POST /people/{person_id}/phone_numbers - Add phone number to person
- POST /people/{person_id}/phone_numbers/{number_id} - Update phone number
- DELETE /people/{person_id}/phone_numbers/{number_id} - Delete phone number
- POST /people/<person_id> - Updates a person
- DELETE /people/<person_id> - Deletes a person
- POST /people/<person_id>/reset-password - Resets a person’s password
- POST /people/<person_id>/clear-session - Resets a person’s password
- GET /people/<person_id>/slas - Gets a list of automatically applied SLAs for a person
- POST /people/<person_id>/slas - Adds an SLA to the automatically applied SLAs for a person
- GET /people/<person_id>/slas/<sla_id> - Determines if an SLA exists for a person
- DELETE /people/<person_id>/slas/<sla_id> - Removes an SLA from a person
- GET /people/<person_id>/picture - Gets a link to a person’s picture
- POST /people/<person_id>/picture - Updates a person’s picture
- DELETE /people/<person_id>/picture - Deletes a person’s picture
- GET /people/<person_id>/emails - Gets email records for a person
- POST /people/<person_id>/emails - Adds an email for a person
- GET /people/<person_id>/emails/<email_id> - Gets information about an email ID for a person
- POST /people/<person_id>/emails/<email_id> - Updates an email record for a person
- DELETE /people/<person_id>/emails/<email_id> - Deletes an email record for a person
- GET /people/<person_id>/vcard - Gets the vCard for a person
- GET /people/<person_id>/tickets - Gets tickets by a person
- GET /people/<person_id>/chats - Gets chats by a person
- GET /people/<person_id>/activity-stream - Gets activity stream for a person
- GET /people/<person_id>/notes - Gets notes for a person
- POST /people/<person_id>/notes - Creates a note for a person
- GET /people/<person_id>/billing-charges - Gets billing charges for a person
- GET /people/<person_id>/contact-details - Gets contact details for a person
- POST /people/<person_id>/contact-details - Creates a contact detail for a person
- GET /people/<person_id>/contact-details/<contact_id> - Determines if contact ID exists for person
- DELETE /people/<person_id>/contact-details/<contact_id> - Deletes a contact for a person
- GET /people/<person_id>/groups - Gets the groups for a person
- POST /people/<person_id>/groups - Adds a person to a group
- GET /people/<person_id>/groups/<group_id> - Determines if a person is a member of a group
- DELETE /people/<person_id>/groups/<group_id> - Removes a person from a group
- GET /people/<person_id>/labels - Gets the labels for a person
- POST /people/<person_id>/labels - Add a label for a person
- GET /people/<person_id>/labels/<label> - Determines if a person has a label
- DELETE /people/<person_id>/labels/<label> - Removes a label from a person
- GET /people/fields - Gets available custom person fields
- GET /people/groups - Gets available usergroups
- API: Organizations
- GET /organizations - Search for organizations matching criteria
- POST /organizations - Create a new organization
- GET /organizations/<organization_id> - Gets information about an organization
- POST /organizations/<organization_id> - Updates an organization
- DELETE /organizations/<organization_id> - Deletes an organization
- GET /organizations/<organization_id>/picture - Gets a link to an organization’s picture
- POST /organizations/<organization_id>/picture - Updates an organization’s picture
- DELETE /organizations/<organization_id>/picture - Deletes an organization’s picture
- GET /organizations/<organization_id>/members - Gets members of an organization
- GET /organizations/<organization_id>/tickets - Gets tickets by an organization
- GET /organizations/<organization_id>/chats - Gets chats by a organization
- GET /organizations/<organization_id>/activity-stream - Gets activity stream for an organization
- GET /organizations/<organization_id>/slas - Gets a list of automatically applied SLAs for an organization
- POST /organizations/<organization_id>/slas - Adds an SLA to the automatically applied SLAs for an organization
- GET /organizations/<organization_id>/slas/<sla_id> - Determines if an SLA exists for an organization
- DELETE /organizations/<organization_id>/slas/<sla_id> - Removes an SLA from an organization
- GET /organizations/<organization_id>/billing-charges - Gets billing charges for an organization
- GET /organizations/<organization_id>/email-domains - Gets associated email domains for an organization
- POST /organizations/<organization_id>/email-domains - Adds an email domain for an organization
- GET /organizations/<organization_id>/email-domains/<domain> - Determines if a domain is associated with an organization
- DELETE /organizations/<organization_id>/email-domains/<domain> - Deletes a domain association for an organization
- POST /organizations/<organization_id>/email-domains/<domain>/move-users - Moves users to an organization (if they have no organization)
- POST /organizations/<organization_id>/email-domains/<domain>/move-taken-users - Moves users to an organization (if they have another organization)
- GET /organizations/<organization_id>/contact-details - Gets contact details for an organization
- POST /organizations/<organization_id>/contact-details - Creates a contact detail for an organization
- GET /organizations/<organization_id>/contact-details/<contact_id> - Determines if contact ID exists for organization
- DELETE /organizations/<organization_id>/contact-details/<contact_id> - Deletes a contact for an organization
- GET /organizations/<organization_id>/groups - Gets the groups for an organization
- POST /organizations/<organization_id>/groups - Adds an organization to a group
- GET /organizations/<organization_id>/groups/<group_id> - Determines if an organization is a member of a group
- DELETE /organizations/<organization_id>/groups/<group_id> - Removes an organization from a group
- GET /organizations/<organization_id>/labels - Gets the labels for an organization
- POST /organizations/<organization_id>/labels - Add a label for an organization
- GET /organizations/<organization_id>/labels/<label> - Determines if an organization has a label
- DELETE /organizations/<organization_id>/labels/<label> - Removes a label from an organization
- GET /organizations/fields - Gets available custom organization fields
- GET /organizations/groups - Gets available usergroups
- API: Contact Data
- API: Chats
- GET /chats - Search for chats matching criteria
- GET /chats/<chat_id> - Gets information about a chat
- POST /chats/<chat_id> - Updates a chat
- POST /chats/<chat_id>/leave - Leaves a chat
- POST /chats/<chat_id>/end - Ends a chat
- GET /chats/<chat_id>/messages - Gets all messages in a chat
- POST /chats/<chat_id>/messages - Replies to a chat as the API user
- GET /chats/<chat_id>/participants - Gets the participants in a chat
- POST /chats/<chat_id>/participants - Adds a participant to a chat
- GET /chats/<chat_id>/participants/<person_id> - Determines if a person is participating in a chat
- DELETE /chats/<chat_id>/participants/<person_id> - Removes a participant from a chat
- GET /chats/<chat_id>//labels - Gets the labels for a chat
- POST /chats/<chat_id>/labels - Adds a label to a chat
- GET /chats/<chat_id>/labels/<label> - Determines if the chat has the label
- DELETE /chats/<chat_id>/labels/<label> - Removes a label from a chat
- API: Knowledgebase
- GET /kb - Search for articles matching criteria
- POST /kb - Creates a new article
- GET /kb/<article_id> - Gets information about an article
- POST /kb/<article_id> - Updates an article
- DELETE /kb/<article_id> - Deletes an article
- GET /kb/<article_id>/attachments - Gets information about an article’s attachments
- POST /kb/<article_id>/attachments - Adds an attachment to an article
- GET /kb/<article_id>/attachments/<attachment_id> - Determines if an article has an attachment
- DELETE /kb/<article_id>/attachments/<attachment_id> - Removes an article attachment
- GET /kb/<article_id>/votes - Gets the votes for an article
- GET /kb/<article_id>/comments - Gets the comments for an article
- POST /kb/<article_id>/comments - Add a comment for an article
- GET /kb/<article_id>/comments/<comment_id> - Gets info about a specific article comment
- POST /kb/<article_id>/comments/<comment_id> - Updates an article comment
- DELETE /kb/<article_id>/comments/<comment_id> - Deletes an article comment
- GET /kb/<article_id>/labels - Gets the labels for an article
- POST /kb/<article_id>/labels - Add a label for an article
- GET /kb/<article_id>/labels/<label> - Determines if an article has a label
- DELETE /kb/<article_id>/labels/<label> - Removes a label from an article
- GET /kb/validating-comments - Gets article comments that are awaiting validation
- GET /kb/categories - Gets available article categories
- POST /kb/categories - Creates an article category
- GET /kb/categories/<category_id> - Gets an article category
- POST /kb/categories/<category_id> - Updates an article category
- DELETE /kb/categories/<category_id> - Deletes an article category
- GET /kb/categories/<category_id>/articles - Gets articles within an article category
- GET /kb/categories/<category_id>/groups - Gets groups with access to an article category
- POST /kb/categories/<category_id>/groups - Adds a group to an article category
- GET /kb/categories/<category_id>/groups/<group_id> - Determines if a group has access to an article category
- DELETE /kb/categories/<category_id>/groups/<group_id> - Removes a group’s access to an article category
- GET /kb/fields - Gets available article fields
- GET /kb/products - Gets available products
- API: Downloads
- GET /downloads - Search for downloads matching criteria
- POST /downloads - Creates a new download
- GET /downloads/<download_id> - Gets information about a download
- POST /downloads/<download_id> - Updates a download
- DELETE /downloads/<download_id> - Deletes a download
- GET /downloads/<download_id>/comments - Gets the comments for a download
- POST /downloads/<download_id>/comments - Add a comment for a download
- GET /downloads/<download_id>/comments/<comment_id> - Gets info about a specific download comment
- POST /downloads/<download_id>/comments/<comment_id> - Updates a download comment
- DELETE /downloads/<download_id>/comments/<comment_id> - Deletes a download comment
- GET /downloads/<download_id>/labels - Gets the labels for a download
- POST /downloads/<download_id>/labels - Add a label for a download
- GET /downloads/<download_id>/labels/<label> - Determines if a download has a label
- DELETE /downloads/<download_id>/labels/<label> - Removes a label from a download
- GET /downloads/validating-comments - Gets download comments that are awaiting validation
- GET /downloads/categories - Gets available download categories
- POST /downloads/categories - Creates a download category
- GET /downloads/categories/<category_id> - Gets a download category
- POST /downloads/categories/<category_id> - Updates a download category
- DELETE /downloads/categories/<category_id> - Deletes a download category
- GET /downloads/categories/<category_id>/downloads - Gets downloads within a download category
- GET /downloads/categories/<category_id>/groups - Gets groups with access to a download category
- POST /downloads/categories/<category_id>/groups - Adds a group to a download category
- GET /downloads/categories/<category_id>/groups/<group_id> - Determines if a group has access to a download category
- DELETE /downloads/categories/<category_id>/groups/<group_id> - Removes a group’s access to a download category
- API: News
- GET /news - Search for news posts matching criteria
- POST /news - Creates a news post
- GET /news/<news_id> - Gets information about a news post
- POST /news/<news_id> - Updates a news post
- DELETE /news/<news_id> - Deletes a news post
- GET /news/<news_id>/comments - Gets the comments for a news entry
- POST /news/<news_id>/comments - Add a comment for a news entry
- GET /news/<news_id>/comments/<comment_id> - Gets info about a specific news comment
- POST /news/<news_id>/comments/<comment_id> - Updates a news comment
- DELETE /news/<news_id>/comments/<comment_id> - Deletes a news comment
- GET /news/<news_id>/labels - Gets the labels for a news post
- POST /news/<news_id>/labels - Add a label for a news post
- GET /news/<news_id>/labels/<label> - Determines if a news post has a label
- DELETE /news/<news_id>/labels/<label> - Removes a label from a news post
- GET /news/validating-comments - Gets news comments that are awaiting validation
- GET /news/categories - Gets available news categories
- POST /news/categories - Creates a new category
- GET /news/categories/<category_id> - Gets a news category
- POST /news/categories/<category_id> - Updates a news category
- DELETE /news/categories/<category_id> - Deletes a news category
- GET /news/categories/<category_id>/news - Gets news within a news category
- GET /news/categories/<category_id>/groups - Gets groups with access to a news category
- POST /news/categories/<category_id>/groups - Adds a group to a news category
- GET /news/categories/<category_id>/groups/<group_id> - Determines if a group has access to a news category
- DELETE /news/categories/<category_id>/groups/<group_id> - Removes a group’s access to a news category
- API: Glossary
- GET /glossary - List glossary words
- POST /glossary - Add a glossary word
- GET /glossary/lookup - Looks up a specific glossary word
- GET /glossary/<word_id> - Gets a glossary word
- DELETE /glossary/<word_id> - Deletes a glossary word
- GET /glossary/definitions/<definition_id> - Gets a glossary word definition
- POST /glossary/definitions/<definition_id> - Updates a glossary word definition
- DELETE /glossary/definitions/<definition_id> - Deletes a glossary word definition
- API: Feedback
- GET /feedback - Search for feedback matching criteria
- POST /feedback - Create new feedback
- GET /feedback/<feedback_id> - Gets information about specific feedback
- POST /feedback/<feedback_id> - Updates feedback
- DELETE /feedback/<feedback_id> - Deletes feedback
- POST /feedback/<feedback_id>/merge/<other_feedback_id> - Merges the two feedback records
- GET /feedback/<feedback_id>/attachments - Gets information about a feedback record’s attachments
- POST /feedback/<feedback_id>/attachments - Adds an attachment to a feedback record
- GET /feedback/<feedback_id>/attachments/<attachment_id> - Determines if a feedback record has an attachment
- DELETE /feedback/<feedback_id>/attachments/<attachment_id> - Removes a feedback attachment
- GET /feedback/<feedback_id>/votes - Gets the votes for feedback
- GET /feedback/<feedback_id>/comments - Gets the comments for a feedback entry
- POST /feedback/<feedback_id>/comments - Add a comment for a feedback entry
- GET /feedback/<feedback_id>/comments/<comment_id> - Gets info about a specific feedback comment
- POST /feedback/<feedback_id>/comments/<comment_id> - Updates a feedback comment
- DELETE /feedback/<feedback_id>/comments/<comment_id> - Deletes a feedback comment
- GET /feedback/<feedback_id>/labels - Gets the labels for feedback
- POST /feedback/<feedback_id>/labels - Add a label for feedback
- GET /feedback/<feedback_id>/<label> - Determines if feedback has a label
- DELETE /feedback/<feedback_id>/labels/<label> - Removes a label from feedback
- GET /feedback/validating-comments - Gets feedback comments that are awaiting validation
- GET /feedback/categories - Gets available feedback categories
- GET /feedback/status-categories - Gets available feedback status categories
- GET /feedback/user-categories - Gets available feedback user categories
- API: Tasks
- GET /tasks - Search for tasks matching criteria
- POST /tasks - Creates a new task
- GET /tasks/<task_id> - Gets a task
- POST /tasks/<task_id> - Updates a task
- DELETE /tasks/<task_id> - Deletes a task
- GET /tasks/<task_id>/associations - Gets task associations
- POST /tasks/<task_id>/associations - Creates a task association
- GET /tasks/<task_id>/associations/<association_id> - Determines if a task association exists
- DELETE /tasks/<task_id>/associations/<association_id> - Deletes a task association
- GET /tasks/<task_id>/comments - Gets task comments
- POST /tasks/<task_id>/comments - Creates a task comment
- GET /tasks/<task_id>/comments/<comment_id> - Determines if a task comment exists
- DELETE /tasks/<task_id>/comments/<comment_id> - Deletes a task comment
- GET /tasks/<task_id>/labels - Gets task labels
- POST /tasks/<task_id>/labels - Creates a task label
- GET /tasks/<task_id>/labels/<label> - Determines if a task label exists
- DELETE /tasks/<task_id>/labels/<labe> - Deletes a task label
- API: Auth Login