Ready to get started with the FuseDesk API?
API Documentation on Postman
Our API Documentation is now available on Postman which includes code samples, interactive documentation, and so much more.
Getting a FuseDesk API Key:
Each one of your third party apps or third party scripts will need to use an API Key.
For security reasons, we recommend that you create a unique API Key for each one of your third party apps such that you can set app level permissions and disable or change individual app keys without affecting other apps.
To get a FuseDesk API Key, visit the the API Keys page in your app. Note that you’ll need to be a FuseDesk admin in order to create or manage API Keys.
API Key Permissions/Scope:
Each API Key can be set with a number of permissions for what it has access to do.
For example, if you’re putting your API Key on a site where all you want it to be able to do is create a new case, then you can just give that key permission to create cases, but not read any data or do anything but add cases.
If you’re building a form and want to provide access to your departments list, you can provide permissions to read departments, and so on.
Generally, pick the most restrictive permission set you need to provide the functionality you need.
If you’re writing your own app that you want to make available to other folks to access their FuseDesk data via the API, please make sure to let folks know what permissions you require. In the future we may support OAUth or something along those lines such that you can set what permissions you’d like and all our mutual customer has to do is click “Accept” but that won’t likely be until version 2.0.
Authenticating via the API:
If you’re using a third party app to access FuseDesk via the FuseDesk API, then all you’ll need to do is paste in your FuseDesk application name and the API Key you created.
If you’re writing your own script or configuring a more advanced integration, you have two ways to authenticate either via a query parameter or via HTTP Headers.
Authenticating via Query Parameter
Pass your API Key as a GET/POST param with the parameter apikey. Note that this is case sensitive.
For example, to get a list of unassigned emails:
curl --request GET --data '{"apikey":"YOUR_API_KEY"}' https://YOURAPPNAME.fusedesk.com/api/v1/emails/unassigned
Replace YOUR_API_KEY with your API Key.
Authenticating via HTTP Headers
Pass your API Key in the HTTP Headers with the header X-FuseDesk-API-Key. Note that this is case sensitive.
For example, to get a list of all unassigned emails:
curl --request GET --header "X-FuseDesk-API-Key: YOUR_API_KEY" https://YOURAPPNAME.fusedesk.com/api/v1/emails/unassigned
Replace YOUR_API_KEY with your API Key.
Failed Authentication
If your API Key is invalid, or you don’t have permission to do what you’re trying to do, we’ll return back an error.
Error Reporting
If an error occurs, we’ll return back HTTP Status of 405 along with an encoded error message.
Data Formats
Data is currently returned back as JSON, but we (will soon) support the ability to get back XML if your’d prefer. This doc will be updated with how to request an alternate data format shortly.
Dates are returned back as ISO 8601 dates, i.e. 2004-02-12T15:19:21+00:00
Status Codes
- 200: Success (OK)
- 401: Invalid authorization credentials (Unauthorized – Check your API Key)
- 403: Not authorized for that action (Forbidden – Check the API Key’s permissions)
- 404: Unsupported method or format (Not Found – Check the URL)
- 405: Misc. Error (See what’s returned back for more info)
- 429: Rate Limit Exceeded (Stop hammering the API for a bit)
API Versioning
Specify the version of the API you wish to use as part of the URL, i.e. https://YOURAPPNAME.fusedesk.com/api/v1/
for version 1. We will continue to update and modify each version of an api so that it’s fully backwards compatible. We’ll change version numbers when we make a significant change to the API or otherwise rewrite the API such that it would no longer be compatible with a previous version.
Currently, we’re on version 1 and all of your requests should go to https://YOURAPPNAME.fusedesk.com/api/v1/
Available Functions
Currently, we support the following requests:
- /reps/ (info on all support reps)
- /reps/123/ (info on a specific rep)
- /departments/ (info on all departments)
- /departments/123/ (info on a specific department)
- /cases/ GET (search cases)
- /cases/ POST (to add a new case)
- /cases/1234/ (info on a specific case, i.e. 1234)
- /casetags/ (get, create, and delete FuseDesk case tags)
- /emails/ (get emails, regardless of case)
- /emails/unassigned (get all unassigned emails)
- /contacts/1234 (get info on a CRM contact)
- /reports/ (reporting)
- /account/ (info on the account)