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

# Start Cron Run Endpoint

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

## Request

- Base URL: `https://api.brandbooster.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.brandbooster.ai/api/v1/remy/cron/run`
- Auth: none declared

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 youtube only while tiktok is paused. 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

> 37 revisions in range; 1 not diffed.

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

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

---

[API](https://skmtc.dev/brandbooster/apis/brandbooster-api.md) - [All operations](https://skmtc.dev/brandbooster/apis/brandbooster-api/llms.txt) - [OpenAPI document](https://skmtc.dev/brandbooster/apis/brandbooster-api/revisions/02d28bde684c?raw)
