Feature Experimentation API
The Basics & Best Practices
On this page
Security and compliance
Our API is designed to meet all requirements for security, latency, robustness and flexibility.
In general, the API endpoints can only be accessed via HTTPS. The payload (bodies) of all requests and responses are JSON encoded.
Access to the API is only possible with a valid API token, which is checked for each access.
Our data center is located in Frankfurt, Germany.
We can also use a US data center upon request.
API endpoints
Endpoint urls
/decide
https://fe-api.ablyft.com/v1/decide
/track
https://fe-api.ablyft.com/v1/track
Asynchronous calls
It is possible to execute /decide
API calls asynchronously as well.
The /track
API calls are always asynchronous.
This can be used e.g. for experiments and features that are displayed after the current page/view has already been displayed to the user.
API limits
API endpoints are globally limited to 20,000 requests per minute.
This applies to one API token.
If you need more, please contact our support.
Batching requests
If multiple calls would be made to an endpoint at the same time, it is best practice to combine all calls per endpoint into one.
- On the
/decide
endpoint, it is possible to pass multiple experiment IDs as an array asselector.experiments
for this purpose - On the
/track
endpoint, it is possible to pass multiple events as an array asevents
for this purpose
Setting timeouts and handle errors
Our infrastructure is designed for low latency without very high availability.
Nevertheless, requests may take longer than usual or there may be temporary unavailability.
Also, requests may not be correct in the schema or payload, resulting in errors.
In general, especially the consumer of the /decide
endpoint should be able to gracefully handle these occurrences.
A suitable early timeout is necessary. A fallback behavior in case of errors is also recommended.