---
title: "Seed real activity (water_logs) across the last N days"
method: POST
path: "/api/rewards/admin/qa/activity-days/{userId}"
tags: ["Rewards (QA)"]
---

# Seed real activity (water_logs) across the last N days

`POST /api/rewards/admin/qa/activity-days/{userId}`

## Request

- Base URL: `https://api.rewritelifestyle.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.rewritelifestyle.ai/api/rewards/admin/qa/activity-days/{userId}`
- Auth: HTTP bearer

Writes the one non-rewards table `computeHistoricalStreak()` reads, so `POST qa/historical-seed/:userId` has real history to walk. Not cleared by `reset` — re-running this clears its own prior seed first.

## Path parameters

- `userId` number, required

## Request body

- QaSeedActivityDaysDto
  - `days` number: How many of the last N days (including today) get a qualifying activity row.
  - `gap_offsets` number[]: Day-offsets from today to deliberately leave empty (0 = today, 1 = yesterday, etc.) — for testing rest-day forgiveness or a broken run. Empty by default (an unbroken run).
  - `timezone` string: Defaults to UTC.

## Response `201`

## Changes

- **2026-09-12** `0d5ef02a4fbe`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/changes/api/rewards/admin/qa/activity-days/:userId/post.md)

---

[API](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api.md) - [All operations](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/revisions/28695827f27a?raw)
