# Bring in past data

**In short:** send your past counts once, and CountWatch knows your normal week from the first day: alerts start the same day instead of after about 22 days. The result also lists the alerts that history would have raised, so you see what you would have caught. Your agent can do this for you.

`POST /v1/import` takes bucket arrays per watch: `{metric, dimensions, start, resolution: 5m | 1h | 1d, counts[]}`, up to 90 days each and 1,000 watch-days per request. Have only the times of single events (sign-ups, orders)? Send `{metric, events: ["2026-08-01T19:04:44Z", …]}` instead of counts (up to 10,000): each adds 1 to its 5-minute bucket, and every bucket from the first event (or `start`) up to now is imported, zeros included; leave out events in the current 5 minutes. Add `past_events` for spans you know about (`kind: real | expected_change`, `direction: spike | drop | no_data`), and `tz` for the watch's timezone. The answer is `202` with an `import_id`; poll `GET /v1/imports/{import_id}` until `status: done`. Each watch then shows the rules chosen for it and the alerts they would have raised in the replayed days: what this service would have told you.
