Get the result report for experiment
GET /experiments/{experiment}/summary. Parameters, permissions, request and response schemas.
GET /experiments/{experiment}/summary
Get the result report for experiment. Requires the REST read token ability. The bearer token selects the Team; a supplied team_id cannot switch tenants. Additional role, entity-policy and plan requirements vary by operation.
Authentication
Use a team API key as Authorization: Bearer YOUR_API_KEY. The token ability and the user’s role must both allow this operation. See authentication.
{
"ability": "read",
"team": "Token-bound Team",
"authorization": "Additional role, entity-policy and plan requirements vary by operation."
}Parameters
| Name | Location | Required | Description |
|---|---|---|---|
experiment | path | Yes | The experiment ID |
alpha | query | No | Alpha. |
srm_alpha | query | No | Srm Alpha. |
experiment
{
"type": "integer",
"minimum": 1
}alpha
{
"type": "string"
}srm_alpha
{
"type": "string"
}Example request
curl --request GET 'https://api.example.test/api/experiments/1/summary' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Accept: application/json'Examples use fictional data. Replace resource IDs and the API host with your environment’s values.
Responses
200
ExperimentReportResource
Content type: application/json.
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"available",
"insufficient_data",
"srm_detected",
"incomplete_mapping",
"unsupported_metric",
"fixed_horizon_pending",
"stale_source",
"engine_unavailable",
"invalid_configuration",
"no_data"
]
},
"status_reason": {
"type": [
"string",
"null"
]
},
"alpha": {
"type": [
"number",
"null"
]
},
"control_variation_id": {
"type": [
"integer",
"null"
]
},
"method": {
"anyOf": [
{
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "fixed_horizon_v1"
},
"version": {
"type": "string",
"const": "1.0.0"
},
"multiple_comparison_correction": {
"type": "string",
"const": "holm"
}
},
"required": [
"name",
"version",
"multiple_comparison_correction"
]
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"integration_id": {
"type": "integer"
},
"external_updated_at": {
"type": [
"string",
"null"
]
},
"synced_at": {
"type": [
"string",
"null"
]
}
},
"required": [
"integration_id",
"external_updated_at",
"synced_at"
]
},
{
"type": "null"
}
]
},
"primary_metric": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"external_id": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"name",
"type",
"external_id"
]
},
{
"type": "null"
}
]
},
"totals": {
"type": "object",
"properties": {
"visitors": {
"type": "integer"
},
"conversions": {
"type": "integer"
},
"conversion_rate_percent": {
"type": [
"number",
"null"
]
}
},
"required": [
"visitors",
"conversions",
"conversion_rate_percent"
]
},
"srm": {
"anyOf": [
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"available",
"insufficient_data"
]
},
"alpha": {
"type": "number"
},
"chi_square": {
"type": [
"number",
"null"
]
},
"degrees_of_freedom": {
"type": "integer"
},
"p_value": {
"type": [
"number",
"null"
]
},
"is_srm": {
"type": "boolean"
},
"expected_counts": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"status",
"alpha",
"chi_square",
"degrees_of_freedom",
"p_value",
"is_srm",
"expected_counts"
]
},
{
"type": "null"
}
]
},
"variations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"variation_id": {
"type": "integer"
},
"external_id": {
"type": "string"
},
"name": {
"type": "string"
},
"is_control": {
"type": "boolean"
},
"traffic_percentage": {
"type": "number",
"description": "Traffic share as a fraction: 0.5 means 50%."
},
"visitors": {
"type": "integer"
},
"conversions": {
"type": "integer"
},
"conversion_rate_percent": {
"type": [
"number",
"null"
]
},
"comparison_status": {
"type": [
"string",
"null"
],
"enum": [
"available",
"insufficient_data",
null
]
},
"test_method": {
"type": [
"string",
"null"
],
"enum": [
"two_proportion_z",
"fisher_exact",
null
]
},
"statistic": {
"type": [
"number",
"null"
]
},
"p_value": {
"type": [
"number",
"null"
]
},
"adjusted_p_value": {
"type": [
"number",
"null"
]
},
"is_significant": {
"type": [
"boolean",
"null"
]
},
"absolute_lift_percentage_points": {
"type": [
"number",
"null"
]
},
"relative_lift_percent": {
"type": [
"number",
"null"
]
},
"confidence_interval_percentage_points": {
"anyOf": [
{
"type": "object",
"properties": {
"lower": {
"type": "number"
},
"upper": {
"type": "number"
},
"confidence_level": {
"type": "number"
}
},
"required": [
"lower",
"upper",
"confidence_level"
]
},
{
"type": "null"
}
]
}
},
"required": [
"variation_id",
"external_id",
"name",
"is_control",
"traffic_percentage",
"visitors",
"conversions",
"conversion_rate_percent",
"comparison_status",
"test_method",
"statistic",
"p_value",
"adjusted_p_value",
"is_significant",
"absolute_lift_percentage_points",
"relative_lift_percent",
"confidence_interval_percentage_points"
]
}
}
},
"required": [
"status",
"status_reason",
"alpha",
"control_variation_id",
"method",
"source",
"primary_metric",
"totals",
"srm",
"variations"
],
"description": "Fixed-horizon experiment report. Check status before interpreting significance; descriptive totals remain available for some unavailable states. Rates/lifts ending in percent use percent units; traffic_percentage uses a fraction.",
"example": {
"status": "no_data",
"status_reason": "No synced experiment result is available.",
"alpha": null,
"control_variation_id": null,
"method": null,
"source": null,
"primary_metric": null,
"totals": {
"visitors": 0,
"conversions": 0,
"conversion_rate_percent": null
},
"srm": null,
"variations": []
}
}
},
"required": [
"data"
]
}{
"data": {
"status": "no_data",
"status_reason": "No synced experiment result is available.",
"alpha": null,
"control_variation_id": null,
"method": null,
"source": null,
"primary_metric": null,
"totals": {
"visitors": 0,
"conversions": 0,
"conversion_rate_percent": null
},
"srm": null,
"variations": []
}
}401
Unauthenticated
Content type: application/json.
{
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error overview."
}
},
"required": [
"message"
]
}{
"message": "The request could not be completed."
}403
Authorization error
Content type: application/json.
{
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error overview."
}
},
"required": [
"message"
]
}{
"message": "The request could not be completed."
}404
Not found
Content type: application/json.
{
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Error overview."
}
},
"required": [
"message"
]
}{
"message": "The request could not be completed."
}422
Validation error
Content type: application/json.
{
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Errors overview."
},
"errors": {
"type": "object",
"description": "A detailed description of each field that failed validation.",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"required": [
"message",
"errors"
]
}{
"message": "The request could not be completed.",
"errors": {
"name": [
"The name field is required."
]
}
}429
Rate limit exceeded. Honor Retry-After before retrying.
Response headers:
{
"Retry-After": {
"description": "Seconds before retrying.",
"schema": {
"type": "integer"
}
}
}Content type: application/json.
{
"type": "object",
"properties": {
"message": {
"type": "string",
"example": "Too Many Attempts."
}
},
"required": [
"message"
]
}{
"message": "Too Many Attempts."
}See API conventions for error handling, rate limits, pagination, and uploads.