Shipeasy
Flags experimentsApiOperations

Get analysis timeseries

Same row shape as /results, but returns every daily slice rather than the latest. Filter to a single metric with the metric query parameter.

Use case

Drive a chart of metric movement over the experiment runtime, or sanity-check the lift is monotonic before deciding.

GET
/api/admin/experiments/{id}/timeseries

Authorization

bearerSdkKey
AuthorizationBearer <token>

Pass an admin SDK key as Authorization: Bearer sdk_admin_…. Mint via POST /api/admin/keys with type: "admin".

In: header

Path Parameters

id*string

Stable opaque experiment id.

Query Parameters

metric?string

Optional metric name to filter the series.

Header Parameters

X-Project-Id*string

Project the request operates on. Must match the project the SDK key belongs to.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://shipeasy.ai/api/admin/experiments/string/timeseries" \  -H "X-Project-Id: string"
{
  "experiment": {
    "id": "exp_01j7wb12c3d4e5f6g7h8j9k0l1",
    "name": "checkout_button_color",
    "status": "running"
  },
  "series": [
    {
      "metric": "checkout_completed",
      "group_name": "treatment",
      "ds": "2026-05-08",
      "n": 11200,
      "mean": 0.1903,
      "delta_pct": 3.9,
      "p_value": 0.034,
      "srm_detected": 0
    },
    {
      "metric": "checkout_completed",
      "group_name": "treatment",
      "ds": "2026-05-09",
      "n": 12519,
      "mean": 0.1922,
      "delta_pct": 4.8,
      "p_value": 0.018,
      "srm_detected": 0
    }
  ]
}
{
  "error": "string",
  "code": "string",
  "detail": "string"
}
{
  "error": "string",
  "code": "string",
  "detail": "string"
}
{
  "error": "string",
  "code": "string",
  "detail": "string"
}
{
  "error": "string",
  "code": "string",
  "detail": "string"
}
{
  "error": "string",
  "code": "string",
  "detail": "string"
}
{
  "error": "string",
  "code": "string",
  "detail": "string"
}