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:

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:

  1. bearer <API token>
  2. Basic <base64(user:password)> where user = 'bearer' and password = <API token>

Thus the following two requests are equivalent:

Copy
Copied
curl -H "Authorization: bearer <API token>" "https://exports.dixa.io/v1/message_export?&created_after=1572566400000&created_before=1575072000000"
Copy
Copied
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.