DX Web API
The DX Web API is an interface for querying information from and enacting change in a DX workspace. Use it for interfacing with data about snapshots, teams, scorecards, users, and more.
Basic overview
The DX Web API is a collection of HTTP RPC-style methods, all with URLs in the form https://api.getdx.com/METHOD_FAMILY.method
. While it’s not a REST API, those familiar with REST should be at home with its foundations in HTTP.
When sending a HTTP POST, you may provide your arguments as either standard POST parameters, or you may use JSON instead. Use HTTPS, SSL, and TLS v1.2 or above when calling all methods.
Authentication
Authenticate your Web API requests by providing a bearer token in the Authorization HTTP header of your outbound requests. You can generate API tokens in the DX admin area.
Rate limits
The DX Web API relies on rate limits to help provide a predictably pleasant experience for users.
Requests are limited to 1000 requests per minute. Rate limits are applied per account and are calculated using a sliding window.
When you exceed the rate limit, you’ll receive a 429 Too Many Requests
HTTP status code. You should implement exponential backoff and retry logic in your applications to handle rate limiting gracefully.
Making requests
Requests can be sent as JSON or as URL-encoded form data. Ensure to set header Content-Type: application/json when sending JSON
Here’s a quick example of a request:
curl -X GET https://api.getdx.com/snapshots.list \
--header 'Authorization: Bearer xxxx-xxxxxxxxx-xxxx'
Evaluating responses
Responses from the API are in JSON format. Successful requests return an ok: true
status, while errors provide ok: false with an error code and message.
HTTP Status Codes
- 200 - Request succeeded.
- 422 - There was an error with your request.
Success Response Body
The response will always contain an ok property which is true when it is successful. This is in addition to the 200 OK status.
{
"ok": true
}
Error Response Body
When there is an error, the ok property will be false and details about the error will be included.
{
"ok": false,
"error": "invalid_arguments"
}