---
title: "Preview Alert Odds"
method: POST
path: "/api/v1/alerts/odds"
tags: ["alerts"]
---

# Preview Alert Odds

`POST /api/v1/alerts/odds`

## Request

- Base URL: `https://api.alert.camp` (the document declares no server; this is the origin it was published from)
- URL: `https://api.alert.camp/api/v1/alerts/odds`
- Auth: none declared

Preview how likely a draft alert is to ever fire.

Returns a qualitative band (limited_data/low/moderate/good) + evidence
numbers + quantified improvement suggestions — never a probability %.
Read-only; safe to call live as the wizard draft changes.

## Headers

- `authorization` string, nullable
- `x-dev-user-id` string, nullable
- `x-app-version` string, nullable

## Request body

- AlertOddsRequest: Draft-alert fields for an odds preview (POST /api/v1/alerts/odds). ``park_id`` + ``nights_min`` always drive scoring; ``campground_ids`` scopes to a specific campground when the draft targets exactly one (a park aggregate misleads for heterogeneous parks). The date/equipment fields are accepted for forward-compatibility and are optional so current clients can omit them.
  - `park_id` string, required
  - `nights_min` integer
  - `campground_ids` string[], nullable
  - `site_ids` string[], nullable
  - `activity_type` string, nullable
  - `date_start` string, date, nullable
  - `date_end` string, date, nullable
  - `equipment_filter_mode` string, nullable
  - `days_filter` string
  - `split_stay` boolean

## Response `200`

Successful Response

- AlertOddsResponse: Qualitative odds band + evidence + improvement suggestions. ``band`` is one of: ``limited_data`` | ``low`` | ``moderate`` | ``good``. Intentionally NO probability percentage — the band + evidence numbers are the trustworthy surface. ``evidence`` is a flat map the client renders into a localized line (e.g. observation_days, total_openings, max_nights_seen).
  - `band` string, required
  - `evidence` object
  - `suggestions` AlertOddsSuggestion[]
    - `type` string, required
    - `nights_min` integer, nullable
    - `qualifying_openings` integer, nullable
    - `uplift` integer, nullable
    - `recommended_tier` string, nullable
    - `min_rebooking_minutes` integer, nullable
    - `median_rebooking_minutes` integer, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/alert/apis/alertcamp.md) · [All operations](https://skmtc.dev/alert/apis/alertcamp/llms.txt) · [OpenAPI document](https://skmtc.dev/alert/apis/alertcamp/revisions/864c8c9ef833?raw)
