---
title: "Re-plan the month for workspaces whose plan has lapsed"
method: POST
path: "/api/v1/jobs/replan-months"
tags: ["jobs"]
---

# Re-plan the month for workspaces whose plan has lapsed

`POST /api/v1/jobs/replan-months`

## Request

- Base URL: `https://api.cadencz.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.cadencz.com/api/v1/jobs/replan-months`
- Auth: none declared

Cloudflare Cron callback. Safe to run hourly: the `generated_for` stamp on each stored month plan makes the work once-per-workspace-per-month, so every call after the first is a cheap no-op.

Each re-plan reads the Brain profile plus last month's analytics and published posts, and draws one Brain-analysis allowance unit — a workspace with none left (Free after its lifetime unit) is skipped, not failed. Authenticates with `WORKER_SECRET`.

## Response `200`

Successful Response

- MonthReplanJobResponse
  - `status` string, required
  - `checked` integer, required
  - `replanned` integer, required
  - `skipped` integer, required
  - `failed` integer, required

## Other responses

- `401`: Missing or invalid worker secret.
- `503`: Required infrastructure or provider config is unavailable.

---

[API](https://skmtc.dev/cadencz/apis/cadencz-api.md) · [All operations](https://skmtc.dev/cadencz/apis/cadencz-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cadencz/apis/cadencz-api/revisions/3392fe5e93db?raw)
