Export Conversations and Messages via API
Dixa is all about breaking down silos - also between systems. The Dixa Exports API allows you to seamlessly stream up-to-date conversation and message data from the Dixa platform. This can be used to pull Dixa data into your own system, for warehousing purposes. For advanced analytics, BI reporting, or audit purposes, have a look at our Analytics API. Our Exports API is designed for:
- Exporting your conversations for a given time frame or by specifying a list of conversation ids. ⬇️
- Exporting your messages for a given time frame. ⬇️
- Providing an elegant and standardized alternative to our CSV export feature. 😎
The Exports API lives side by side with our Dixa API, which supports creating, updating and retrieving single conversations. With the Exports API, you are able to stream up-to-date conversations and messages, so you can feed them into any system of your choice. In short, the main use case of these endpoints is not to support REST-style access to Dixa resources, but rather to enable easy exporting of conversation and message data from specific periods of time.
Further information
-
Unix timestamp in milliseconds(example:
1600087304703
) or LocalTime format (yyyy-mm-dd
) is used for query timestamps. - All fields and properties in the Dixa CSV export feature are available via the conversations endpoint, too.
-
There are no offset or limit pagination rules for the endpoint, limits on queries are instead defined by time. In other words, no query can span more than 1 month (31 days). Here, the request must have at least one
_after
and one_before
parameter or a list of conversation IDs. There are no other query limitations. -
The export messages endpoint does not contain internal notes. These can be found in the conversations endpoint under
conversation_wrapup_notes
.
Hostnames, Endpoint Details, and Authentication
The API is hosted under https://exports.dixa.io/
Access each endpoint by pointing curl or similar to the respective paths:
- conversations: https://exports.dixa.io/v1/conversation_export
- messages: https://exports.dixa.io/v1/message_export
Both endpoints return a stream of JSON objects in an array.
(incl. the parameters for the timeframe you would like to request data for)
More info regarding endpoint details is available in the Exports API Reference.
Rate Limiting
A token has a limit, and it's no longer per organization.
The current limits are:
- Messages : 3 requests per minute
- Conversations : 10 request per minute
You receive an HTTP status of 429 Too Many Requests if your requests exceed the API Rate Limits.
Authentication token
The token can be generated inside your Dixa organization under Settings → integrations → API token.
See a guide here: How to get access to the Dixa API
You can use the authentication token in one of these two ways:
-
bearer <API token>
-
Basic <base64(user:password)>
where user ='bearer'
and password =<API token>
Thus the following two requests are equivalent:
curl -H "Authorization: bearer <API token>" "https://exports.dixa.io/v1/message_export?&created_after=1572566400000&created_before=1575072000000"
curl -u "bearer:<API token>" "https://exports.dixa.io/v1/message_export?&created_after=2019-11-01&created_before=2019-11-30"
Thus, any downstream application must be configured accordingly. Most of the HTTP libraries provide an abstraction layer for dealing with basic HTTP credentials as well as plain token values.