---
title: "One-time backfill: flip an explicit list of clients whose program already ended to member access. Not a sweep of all history -- the caller supplies exactly who to fix."
method: POST
path: "/api/admin/programs/backfill-expired-clients"
tags: ["Admin"]
---

# One-time backfill: flip an explicit list of clients whose program already ended to member access. Not a sweep of all history -- the caller supplies exactly who to fix.

`POST /api/admin/programs/backfill-expired-clients`

## 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/admin/programs/backfill-expired-clients`
- Auth: HTTP bearer

## Request body

- BackfillExpiredClientsDto
  - `userIds` string[], required: Explicit list of user ids whose program has already ended but who are still on client access. Never a blind historical sweep — the caller supplies exactly who to fix.

## Response `201`

## Changes

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

[Operation history](https://skmtc.dev/rewritelifestyle/apis/rewrite-lifestyle-api/changes/api/admin/programs/backfill-expired-clients/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)
