Skip to content

Evaluation REST API

The Amplitude Experiment Evaluation REST API lets you retrieve variant assignment data for users via remote evaluation. User information passes as query parameters on the request to allow for caching the response on the CDN. When you call this API, Amplitude tracks an [Experiment] Assignment event.

Regions

Region URL
Standard Server https://api.lab.amplitude.com/v1/
EU Residency Server https://api.lab.eu.amplitude.com/v1/

Authorization

The REST API authenticates the request using your deployment key set in the Authorization header with the prefix Api-Key. For example, Authorization: Api-Key <deployment_key>

Query parameters

Name
Description
user_id The user's ID.
device_id The user's device ID.
flag_key A specific flag key to get the variant of. If empty/missing, Experiment evaluates all flags & experiments associated with the deployment key.
context JSON string consisting of a full user context. Set user properties in the user_properties field (for example: {"user_properties":{"premium":true}}).

Responses

200 OK

A successful request returns a 200 response and a map of flag key to variants. If flag_key isn't provided, Experiment evaluates all flags associated with the deployment key in the authorization header.

Response body

The response body is a JSON object keyed by the flag key. The value for a given flag key is the variant assigned to the user. The variant contains its identification key (a.k.a value) and an optional payload containing a JSON element.

{
    "<flag_key>": {
        "key": "<variant_value>",
        "payload": <variant_payload>
    },
    // ...
}

Use the example below to try the API from your browser or copy a curl.

400 Bad Request

If the request has invalid JSON in the context parameter, it returns a 400 status.

401 Unauthorized

If the request doesn't include a valid API key, it returns a 401 response.

Example

Set the fields in the table, and press send to send the request in browser, or copy the curl to send the request yourself.

Potential data changes

This example makes real requests to the API and can potentially change the data in your Amplitude project. We recommend using a development project when testing APIs.

curl --request GET \
     --url '' \
     --header 'Authorization: Api-Key '

Variable
Description
(Required) The deployment key.
The user's ID.
The user's device ID.
A specific flag key to get the variant of. If empty/missing, all flags & experiments associated with the deployment key are evaluated.
JSON string consisting of a full user context. Set user properties in the user_properties field (e.g. {"user_properties":{"premium":true}}).
The server zone for your Amplitude project
Send

Result:




Was this page helpful?