# Waity

> Waity gives AI agents live wait times for places with a line: the posted wait now, the usual wait for this hour, when it should drop, and shorter options nearby.

Current coverage (it grows; GET /v1/categories has details): live waits for er, urgent-care, dmv, airport, border.
Full guide: https://api.waity.ai/llms-full.txt. OpenAPI: https://api.waity.ai/openapi.json.

## Connect
- MCP: https://api.waity.ai/mcp, tools find_waits and get_wait. For a connector that takes only a URL: https://api.waity.ai/mcp?key=<key>.
- REST: GET https://api.waity.ai/v1/places and GET https://api.waity.ai/v1/places/{id}. Send the user's location as the header X-Waity-Location: lat,lng.

## find_waits, GET /v1/places
Give one of: a location (lat and lng; REST near=lat,lng or the header), q (a place name, city, airport code, ZIP, or a plain ask like "ER near Brooklyn"), or ids. Optional: category, open, sort (distance, wait, total), limit (1-25), view (minimal, full).

## get_wait, GET /v1/places/{id}
Optional: under (minutes), travel_min (adds next.leave_by), date (YYYY-MM-DD, up to 7 days ahead), forecast, view. An airport, border port or hospital campus id returns its lanes or departments.

## Reading an answer
- summary: one line, safe to repeat as is.
- now.value is minutes, set only when now.usable is true; otherwise now.reason says why. Never present last_value as the current wait. now.bound upper: "under N min"; lower: "over N min"; range: "value_low-value min".
- warnings: read them to the user, first. notes: repeat them. diagnostics: for you only. Show the attribution lines.
- coverage partial: closer places may exist that Waity doesn't track, so never call the results the nearest. coverage none: nothing Waity tracks matched; never say nothing exists.
- distance is straight-line km, never a drive time. links are ready-made next calls.

## Safety rules
- ER and urgent care: Waity tracks only some, so their lists are coverage partial: never call the results the nearest. For chest pain, stroke signs, trouble breathing or a serious injury, tell the user to call 911 or go to the nearest ER, whatever the waits say; serious symptoms are seen first. An ER wait is the time until a provider first sees you, not the whole visit; sources measure it differently, so never compare minutes across sources. A freestanding ER (place.facility freestanding_ed) has no inpatient beds or surgery.
- Urgent care: for minor illness or injury only, never for an emergency.
- Border crossings: waits are for entering the US only; Waity has none for leaving the US.
- Place-specific rules (the gates a checkpoint serves, what a DMV number counts) come in each answer's notes: repeat them.

## Keys and limits
Without a key: 100 calls a day. A free key gives 1000: POST https://api.waity.ai/v1/keys with JSON {"email":"you@example.com"}, then send X-Api-Key: <key> (or Authorization: Bearer <key>). Accounts and paid plans open soon; the free key works today. GET https://api.waity.ai/v1/plans lists the plans. Failed calls never count. 429 rate_limited: wait Retry-After seconds.

## Errors
{"error":{"code","message","request_id","param"?}}. Retry only 429, 500 and 503. Every code: https://api.waity.ai/llms-full.txt.
