---
title: "Refresh Results"
method: POST
path: "/api/experiments/{key}/results/refresh"
tags: ["Experiments"]
---

# Refresh Results

`POST /api/experiments/{key}/results/refresh`

Recompute past the cache — the ab.d board's 🎰 button.

Its own POST route, and write-scoped, because it is not a read: it runs an
inline event-mirror pass that INSERTs into ``ab_event``, on top of a heavy
prod scan. (Only that — the pass is ``light=True``, which skips the
``attrs_*`` backfills that UPDATE ``ab_assignment``; those stay the cron's
job.) This used to be ``GET ...?refresh=1`` guarded by an extra token check
inside the handler (T-2303) — the method now says what the call does, and
the gate is the route's own dependency like everywhere else.

## Path parameters

- `key` string, required

## Query parameters

- `device` string, nullable
- `geo` string, nullable

## Headers

- `x-admin-token` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/explee/apis/explee-api.md) · [All operations](https://skmtc.dev/explee/apis/explee-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/explee/explee-api/revisions/f169bc6e9447/schema)
