GET https://api.ap1.datadoghq.com/api/v2/experiments/protocols https://api.ap2.datadoghq.com/api/v2/experiments/protocols https://api.datadoghq.eu/api/v2/experiments/protocols https://api.ddog-gov.com/api/v2/experiments/protocols https://api.us2.ddog-gov.com/api/v2/experiments/protocols https://api.uk1.datadoghq.com/api/v2/experiments/protocols https://api.datadoghq.com/api/v2/experiments/protocols https://api.us3.datadoghq.com/api/v2/experiments/protocols https://api.us5.datadoghq.com/api/v2/experiments/protocols
Overview List draft, published, and archived experiment protocols. Omit filter[status] to return all statuses. Only published protocols can be used to create experiments.
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 Filter by protocol status. Repeat this parameter to select more than one status.
filter[primary_metric_id]
Filter by the UUID of the primary metric in the protocol template.
Find protocols whose names contain the search text, regardless of case. Leading and trailing spaces are
ignored. Blank values apply no filter. The maximum length is 1024 UTF-8 bytes.
Filter by the UUID of the subject type in the protocol template.
Number of results per page. The default is 25. Values above 50 are reduced to 50.
Number of results to skip before returning this page.
Sort by name, subject_type_name, primary_metric_name, or updated_at. Prefix with - for
descending order. The default is -updated_at.
Response OK
List of protocol resources with pagination information.
Expand All
Resources returned in this response.
Summary of the protocol and its selected subject type and primary metric.
Text that explains the protocol.
Display name of the protocol.
Subject type selected by the protocol.
Display name of the subject type.
ID of the primary metric supplied by the protocol.
Publication status of the protocol.
Allowed enum values: DRAFT,PUBLISHED,ARCHIVED
Subject type selected by the protocol.
Display name of the subject type.
ID of the subject type used by this configuration.
RFC3339 update time. Preserve all fractional seconds when passing this value as expected_updated_at.
Protocols resource type.
Allowed enum values: protocols
default: protocols
Links for navigating a paginated result set.
URL of the first page of results.
URL of the last page of results.
URL of the next page of results.
URL of the previous page of results.
URL of the current page of results.
Pagination information for a list response.
Result counts and offsets for a page of results.
Offset of the first page of results.
Offset of the last page of results.
Maximum number of results returned in one page.
Offset of the next page of results.
Number of results skipped before this page.
Offset of the previous page of results.
Total number of matching results across all pages.
Pagination method used for this result set.
{
"data" : [
{
"attributes" : {
"description" : "string" ,
"name" : "Checkout conversion" ,
"primary_metric" : {
"id" : "string" ,
"name" : "string"
},
"primary_metric_id" : "string" ,
"status" : "PUBLISHED" ,
"subject_type" : {
"id" : "string" ,
"name" : "string"
},
"subject_type_id" : "string" ,
"updated_at" : "2026-01-01T00:00:00Z"
},
"id" : "550e8400-e29b-41d4-a716-446655440000" ,
"type" : "protocols"
}
],
"links" : {
"first" : "string" ,
"last" : "string" ,
"next" : "string" ,
"prev" : "string" ,
"self" : "string"
},
"meta" : {
"page" : {
"first_offset" : "integer" ,
"last_offset" : "integer" ,
"limit" : "integer" ,
"next_offset" : "integer" ,
"offset" : "integer" ,
"prev_offset" : "integer" ,
"total" : "integer" ,
"type" : "string"
}
}
} Bad Request
API error response.
Expand All
A human-readable explanation specific to this occurrence of the error.
Non-standard meta-information about the error
References to the source of the error.
A string indicating the name of a single request header which caused the error.
A string indicating which URI query parameter caused the error.
A JSON pointer to the value in the request document that caused the error.
Status code of the response.
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"
}
]
} Unauthorized
API error response.
Expand All
A human-readable explanation specific to this occurrence of the error.
Non-standard meta-information about the error
References to the source of the error.
A string indicating the name of a single request header which caused the error.
A string indicating which URI query parameter caused the error.
A JSON pointer to the value in the request document that caused the error.
Status code of the response.
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"
}
]
} Forbidden
API error response.
Expand All
A human-readable explanation specific to this occurrence of the error.
Non-standard meta-information about the error
References to the source of the error.
A string indicating the name of a single request header which caused the error.
A string indicating which URI query parameter caused the error.
A JSON pointer to the value in the request document that caused the error.
Status code of the response.
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
{
"errors" : [
"Bad Request"
]
} Code Example Copy
# 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/protocols " \
-H "Accept: application/json" \
-H "Authorization: Bearer ${DD_BEARER_TOKEN} "