---
title: "Keep an item for the season."
method: POST
path: "/season-runs/{runId}/source-candidates/{candidateId}/accept"
tags: ["Integrations", "Seasons"]
---

# Keep an item for the season.

`POST /season-runs/{runId}/source-candidates/{candidateId}/accept`

## Request

- Base URL: `https://docs.sleeperhit.studio/api/v1`
- URL: `https://docs.sleeperhit.studio/api/v1/season-runs/{runId}/source-candidates/{candidateId}/accept`
- Auth: HTTP bearer

The season's rules are re-run first; a held-back item answers `outcome: withheld` with the reason. A kept item becomes a source the season plans from. Editors, admins and owners. Scope: `story:write`. Free.

## Response `200`

Kept, or held back with the reason.

- SourceCandidateReviewResult
  - `outcome` 'accepted' | 'withheld' | 'rejected', required
  - `candidateId` string, required
  - `sourceId` string
  - `reason` string: Why the season's rules held it back (withheld).

## 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`: `not_found` or `season_run_not_found`.
- `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.

---

[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/4534f5d25540?raw)
