This product is not supported for your selected Datadog site. ().

List experiments

GET https://api.ap1.datadoghq.com/api/v2/experimentshttps://api.ap2.datadoghq.com/api/v2/experimentshttps://api.datadoghq.eu/api/v2/experimentshttps://api.ddog-gov.com/api/v2/experimentshttps://api.us2.ddog-gov.com/api/v2/experimentshttps://api.uk1.datadoghq.com/api/v2/experimentshttps://api.datadoghq.com/api/v2/experimentshttps://api.us3.datadoghq.com/api/v2/experimentshttps://api.us5.datadoghq.com/api/v2/experiments

Overview

List experiments. Returns a paginated list of experiments and their structured metadata for the organization. Supports filtering and pagination. Use Get experiment for variants, decision metrics, traffic exposure, and assignment configuration. This endpoint requires the product_analytics_experiments_read permission.

OAuth apps require the product_analytics_experiments_read authorization scope to access this endpoint.

Arguments

Query Strings

Name

Type

Description

concluded_since

string

Return only experiments concluded at or after this RFC3339 timestamp. Inclusive, and excludes experiments that have not concluded.

created_since

string

Return only experiments created at or after this RFC3339 timestamp. Inclusive.

page[limit]

integer

Maximum number of results to return. Defaults to 25 when omitted, and is capped at 50 (larger values are clamped to 50). The response includes meta.page (with total) and pagination links.

page[offset]

integer

Number of results to skip for pagination. Defaults to 0 when omitted.

protocol_id

array

Filter by protocol UUID. Repeat this parameter to supply several IDs. An experiment matches if it uses any listed protocol.

results_updated_before

string

Return only experiments whose results_last_updated is before this RFC3339 timestamp. results_last_updated is the later of the latest successful run completion and the latest stored result refresh. Exclusive, and excludes experiments without successful results.

results_updated_since

string

Return only experiments whose results_last_updated is at or after this RFC3339 timestamp. results_last_updated is the later of the latest successful run completion and the latest stored result refresh. Inclusive, and excludes experiments without successful results. This filter does not include all metadata edits or deletions.

search

string

Find experiments whose names contain the search text, regardless of case.

sort

string

Sort fields: name, created_at, or updated_at. Use a comma-separated list in priority order, for example name,-created_at. Prefix each field with - for descending. Defaults to created_at descending.

status

array

Filter by experiment status. Accepted values are DRAFT, SCHEDULED, IN_PROGRESS, READY_FOR_DECISION, DECISION_MADE, and CANCELLED. Repeat this parameter to select several statuses, for example status=IN_PROGRESS&status=READY_FOR_DECISION.

tags

array

Filter by tag name. Repeat this parameter to supply several tags. An experiment matches if it has at least one listed tag.

Response

OK

Response containing a page of experiment summaries.

Expand All

Field

Type

Description

data [required]

[object]

Experiment summaries in the current page.

attributes

object

Summary fields for an experiment returned in a list.

assignments_end_date

date-time

End of the window used to read experiment assignments.

assignments_start_date

date-time

Start of the window used to read experiment assignments.

concluded_at

date-time

Time when the experiment was concluded.

conclusion

object

Outcome and supporting text recorded when the experiment is concluded.

decision_reason

string

Reason for the recorded decision.

outcome

enum

Recorded experiment outcome. Allowed enum values: POSITIVE,NEGATIVE,NEUTRAL,INCONCLUSIVE,MISCONFIGURED,UNKNOWN

summary

string

Summary of the experiment conclusion.

created_at

date-time

Time when the experiment was created.

events_end_date

date-time

End of the window used to read metric events.

events_start_date

date-time

Start of the window used to read metric events.

experiment_type

string

Kind of experiment. STANDARD is an ordinary experiment. Other values, such as CANARY and HOLDOUT, identify experiments owned by another workflow. New kinds may be added; treat unknown values as non-standard.

hypothesis

string

Expected effect that the experiment is designed to test.

migration_metadata

Metadata associated with migration of this resource.

name

string

Display name of the experiment.

pipeline_table_suffix

string

Suffix used for the experiment tables in the analysis pipeline.

protocol_id

string

Identifier of the protocol associated with the experiment.

related_links

[object]

External links associated with the experiment.

id

string

Link ID. Omit it when adding a link.

title

string

Optional display title.

url [required]

string

Absolute URL.

results_last_updated

date-time

Time when the experiment results were last updated.

status

enum

Current stage in the experiment lifecycle. Allowed enum values: DRAFT,SCHEDULED,IN_PROGRESS,READY_FOR_DECISION,DECISION_MADE,CANCELLED,UNKNOWN

structured_metadata

[object]

Custom metadata fields and their values for the experiment.

enum_values

[string]

Selected values for an enumerated metadata field.

field_display_name

string

Display name of the metadata field.

field_key [required]

string

Key that identifies the metadata field.

field_type

enum

Type of value stored in the structured metadata field. Allowed enum values: FREETEXT,ENUM

freetext_value

string

Text value for a free-text metadata field.

subject_type_id

string

Identifier of the subject type used for experiment assignments.

summary

string

Free-form summary of the experiment.

tags

[string]

Tag names associated with the experiment.

teams

[string]

Team handles associated with the experiment.

updated_at

date-time

Time when the experiment was last updated.

id [required]

uuid

Identifier of the experiment.

type [required]

enum

Experiments resource type. Allowed enum values: experiments

default: experiments

links

object

Links for navigating a paginated result set.

first

string

URL of the first page of results.

last

string

URL of the last page of results.

next

string

URL of the next page of results.

prev

string

URL of the previous page of results.

self

string

URL of the current page of results.

meta

object

Pagination information for a list response.

page

object

Result counts and offsets for a page of results.

first_offset

int64

Offset of the first page of results.

last_offset

int64

Offset of the last page of results.

limit

int64

Maximum number of results returned in one page.

next_offset

int64

Offset of the next page of results.

offset

int64

Number of results skipped before this page.

prev_offset

int64

Offset of the previous page of results.

total

int64

Total number of matching results across all pages.

type

string

Pagination method used for this result set.

{
  "data": [
    {
      "attributes": {
        "assignments_end_date": "2026-08-15T00:00:00Z",
        "assignments_start_date": "2026-08-01T00:00:00Z",
        "concluded_at": "2026-08-05T09:30:00Z",
        "conclusion": {
          "decision_reason": "The primary metric improved without material regressions",
          "outcome": "POSITIVE",
          "summary": "The treatment improved conversion"
        },
        "created_at": "2026-08-01T12:00:00Z",
        "events_end_date": "2026-08-22T00:00:00Z",
        "events_start_date": "2026-08-01T00:00:00Z",
        "experiment_type": "STANDARD",
        "hypothesis": "A clearer checkout button increases purchase conversion",
        "name": "Checkout button test",
        "pipeline_table_suffix": "a1b2c3d4",
        "protocol_id": "e4d5f6a7-0000-0000-0000-000000000000",
        "related_links": [
          {
            "id": "d1d2d3d4-0000-0000-0000-000000000000",
            "title": "Experiment design",
            "url": "https://docs.example.com/checkout-experiment"
          }
        ],
        "results_last_updated": "2026-08-05T09:25:00Z",
        "status": "DECISION_MADE",
        "structured_metadata": [
          {
            "enum_values": [
              "beta"
            ],
            "field_display_name": "Launch stage",
            "field_key": "launch_stage",
            "field_type": "ENUM"
          },
          {
            "field_display_name": "Notes",
            "field_key": "notes",
            "field_type": "FREETEXT",
            "freetext_value": "Checkout redesign"
          }
        ],
        "subject_type_id": "c2b3d4e5-0000-0000-0000-000000000000",
        "summary": "The treatment improved conversion",
        "tags": [
          "growth"
        ],
        "teams": [
          "growth"
        ],
        "updated_at": "2026-08-05T09:30:00Z"
      },
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "type": "experiments"
    }
  ]
}

Invalid query parameter: bad page[offset]/page[limit], unknown sort field, invalid status, malformed protocol_id UUID, invalid result timestamp range, or a timestamp filter that is not RFC3339.

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Missing or invalid authentication (dd-api-key + dd-application-key headers, or a valid user session).

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Authenticated caller lacks the product_analytics_experiments_read permission.

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Too many requests

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example

                  # Use a Personal Access Token or Service Access Token
export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

# Curl command
curl -X GET "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/experiments" \ -H "Accept: application/json" \ -H "Authorization: Bearer ${DD_BEARER_TOKEN}"