---
title: "Start Cron Run Endpoint"
method: POST
path: "/api/v1/remy/cron/run"
tags: ["remy", "remy"]
---

# Start Cron Run Endpoint

`POST /api/v1/remy/cron/run`

Launch today's scrape for each active job and return at once.

The body is optional because the schedule does not send one: with no body this runs
ACTIVE_CRON_JOBS, which is the fixed youtube + tiktok list. Naming `jobs` in a body still
overrides that, and is the only way to run a paused job such as collabstr by hand.

Each job picks up its own newest remy_cron_history payload and runs in a detached thread, so a
multi-hour scrape never sits inside the request — TimeoutMiddleware would kill it at 120s and
the scheduler would retry, leaving two scrapes racing. Poll the returned job_id for progress.

## Request body

- StartCronRunRequestDTO
  - `jobs` string[], nullable

## Response `200`

Successful Response

- StartCronRunResponseDTO
  - `started` CronRunStartedDTO[]
    - `job_name` string, required
    - `job_id` string, required
    - `history_id` string, nullable
    - `payload` object, nullable
  - `skipped` CronRunSkippedDTO[]
    - `job_name` string, required
    - `reason` string, required

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-03** `a9374f6fe96c` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/brandbooster/apis/fastapi/changes/api/v1/remy/cron/run/post.md)

---

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