---
title: "Run a watch now, on top of its schedule."
method: POST
path: "/strategy/watches/{watchId}/run"
tags: ["Strategy"]
---

# Run a watch now, on top of its schedule.

`POST /strategy/watches/{watchId}/run`

## Request

- Base URL: `https://docs.sleeperhit.studio/api/v1`
- URL: `https://docs.sleeperhit.studio/api/v1/strategy/watches/{watchId}/run`
- Auth: HTTP bearer

As the watch's Run now on the Strategy page: one research run that files what it finds as opportunities within a few minutes (read them with GET /strategy/opportunities?watchId=). 409 `strategy_watch_not_runnable` when it is paused (`details.reason: paused`; resume it first) or ran within the last minute (`ran_recently`). Free: a watch runs on its own schedule, or once now when asked, at no charge, and reading, promoting or editing changes only your own Strategy. Scope: `story:write`.

## Response `200`

The run is queued.

- RunOpportunityWatchResult
  - `queued` true, required: One run is queued; what it finds lands in GET /strategy/opportunities?watchId= within a few minutes.
  - `watchId` string, required
  - `name` string, required

## Other responses

- `401`: Missing, malformed, revoked, or expired API key.
- `403`: API key is valid but lacks the scope, is blocked by IP allowlist, or the account is disabled.
- `404`: `strategy_item_not_found`: no such row in your Strategy, or it is another writer's.
- `409`: `strategy_watch_not_runnable`: the watch is paused, or ran within the last minute (`details.reason`).
- `429`: Rate limit for this API key + IP + route family was exceeded.
- `500`: The API failed unexpectedly. Safe to retry with the same Idempotency-Key.
- `503`: `strategy_unavailable`: Strategy, or its watches, is switched off right now.

---

[API](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api.md) · [All operations](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sleeperhit/apis/sleeper-hit-studio-story-api/revisions/64c1102ccb2f?raw)
