{"openapi":"3.1.0","info":{"title":"Waity API","version":"1.0.0","description":"Live and usual waits for ERs, urgent care, DMV offices, airport security lanes and land border crossings. The reading guide is at /llms.txt."},"servers":[{"url":"https://api-staging.waity.ai"}],"security":[{},{"apiKey":[]},{"bearer":[]}],"paths":{"/v1/places":{"get":{"operationId":"findWaits","summary":"Places near a point, by name, city, airport code or ZIP, or by id","description":"One of near, cell, q or ids (or the X-Waity-Location header) is required.","parameters":[{"name":"near","in":"query","required":false,"description":"Latitude,longitude.","example":"38.85,-77.31","schema":{"type":"string"}},{"name":"cell","in":"query","required":false,"description":"An H3 cell instead of a point.","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Place name, city, airport code or ZIP.","example":"Nashville","schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"ids","in":"query","required":false,"description":"Up to 25 place ids, comma-separated, returned in that order.","schema":{"type":"string"}},{"name":"category","in":"query","required":false,"description":"One or more categories, comma-separated.","example":"er,urgent-care","schema":{"type":"string"}},{"name":"open","in":"query","required":false,"description":"true: only places open now.","schema":{"type":"string","enum":["true","false"]}},{"name":"limit","in":"query","required":false,"description":"1 to 25, default 10.","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["distance","wait","total"]}},{"name":"view","in":"query","required":false,"description":"full (default) or minimal.","schema":{"type":"string","enum":["full","minimal"]}},{"name":"X-Waity-Location","in":"header","required":false,"description":"latitude,longitude of the user, accepted in place of near (preferred: it keeps the location out of URLs and logs).","schema":{"type":"string","example":"38.85,-77.31"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ListFull"},{"$ref":"#/components/schemas/ListMinimal"}]}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/v1/places/{id}":{"get":{"operationId":"getWait","summary":"One place with now, usual, next and instead; an airport or border port id returns its lanes","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^pl_[a-z0-9]{10}$"},"example":"pl_7hk2qx9m4t"},{"name":"under","in":"query","required":false,"description":"Threshold in minutes for next.under_by. Defaults per category.","schema":{"type":"string"}},{"name":"travel_min","in":"query","required":false,"description":"Travel time in minutes; adds next.leave_by.","schema":{"type":"string"}},{"name":"date","in":"query","required":false,"description":"Plan a local day, today to 7 days ahead.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"near","in":"query","required":false,"description":"Latitude,longitude.","example":"38.85,-77.31","schema":{"type":"string"}},{"name":"forecast","in":"query","required":false,"description":"With view=minimal, adds a compact forecast.","schema":{"type":"string","enum":["true","false"]}},{"name":"view","in":"query","required":false,"description":"full (default) or minimal.","schema":{"type":"string","enum":["full","minimal"]}},{"name":"X-Waity-Location","in":"header","required":false,"description":"latitude,longitude of the user, accepted in place of near (preferred: it keeps the location out of URLs and logs).","schema":{"type":"string","example":"38.85,-77.31"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/SingleFull"},{"$ref":"#/components/schemas/SingleMinimal"},{"$ref":"#/components/schemas/GroupFull"},{"$ref":"#/components/schemas/GroupMinimal"}]}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}}}},"/v1/categories":{"get":{"operationId":"listCategories","summary":"The categories, with labels and default under thresholds","security":[{}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Categories"}}}}}}},"/v1/keys":{"post":{"operationId":"createKey","summary":"A free API key (1,000 calls a day). Limited to 5 a minute per IP and 3 a day per email.","security":[{}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"}},"required":["email"]}}}},"responses":{"201":{"description":"Created; the key is shown once","content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string"},"tier":{"type":"string"},"daily_limit":{"type":"integer"},"header":{"type":"string"}}}}}},"202":{"description":"A rotate link was emailed to the address"},"400":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"415":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/mcp":{"post":{"operationId":"mcp","summary":"MCP endpoint (JSON-RPC over streamable HTTP). Tools find_waits and get_wait mirror the two GET routes.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"Notification accepted"}}}},"/llms.txt":{"get":{"operationId":"llmsTxt","summary":"Plain-text guide for agents","security":[{}],"responses":{"200":{"description":"OK","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/health":{"get":{"operationId":"health","summary":"Service and per-source ingest health","security":[{}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"503":{"$ref":"#/components/responses/Error"}}}}},"components":{"schemas":{"Now":{"type":"object","properties":{"status":{"type":"string","enum":["live","stale","paused","closed","unknown"]},"usable":{"type":"boolean"},"value":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Minutes; set only when usable."},"unit":{"type":"string","const":"min"},"bound":{"anyOf":[{"type":"string","enum":["exact","upper","lower"]},{"type":"null"}]},"reason":{"anyOf":[{"type":"string","enum":["closed","feed_paused","source_not_reporting","not_published","out_of_date","no_recent_data"]},{"type":"null"}]},"trend":{"anyOf":[{"type":"string","enum":["rising","falling","steady"]},{"type":"null"}]},"change_30m":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"last_value":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"basis":{"anyOf":[{"type":"string","enum":["median","average","estimate","max"]},{"type":"null"}]},"measures":{"type":["string","null"]},"measured_at":{"anyOf":[{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},{"type":"null"}]},"read_ago_s":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"stale_after_s":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"tier":{"anyOf":[{"type":"string","enum":["official","place","agent","inferred"]},{"type":"null"}]},"source":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"kind":{"type":"string","enum":["operator","place","visitors"]},"attribution_required":{"type":"boolean"}},"required":["name","kind","attribution_required"],"additionalProperties":false},{"type":"null"}]},"people_waiting":{"description":"Present only when the place posts a live count.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["status","usable","value","unit","bound","reason","trend","change_30m","last_value","basis","measures","measured_at","read_ago_s","stale_after_s","tier","source"],"additionalProperties":false},"Usual":{"type":"object","properties":{"value":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"unit":{"type":"string","const":"min"},"for":{"type":"string","example":"thu 21:00"},"compared":{"anyOf":[{"type":"string","enum":["worse","normal","better"]},{"type":"null"}]},"basis":{"type":"string","enum":["history","typical"]},"confidence":{"type":"string","enum":["none","low","medium","high"]},"days_of_history":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["value","unit","for","compared","basis","confidence","days_of_history"],"additionalProperties":false},"ItemFull":{"type":"object","properties":{"place":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"category":{"type":"string","enum":["er","urgent-care","dmv","airport","border"]},"parent":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]},"open_now":{"type":"boolean"},"opens_at":{"anyOf":[{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},{"type":"null"}]},"closes_at":{"anyOf":[{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},{"type":"null"}]},"timezone":{"type":"string"},"sample":{"type":"boolean"},"lane":{"anyOf":[{"type":"string","enum":["general","precheck","clear","standard","ready","sentri"]},{"type":"null"}]},"url":{"type":"string"},"api_url":{"type":"string"}},"required":["id","name","category","parent","open_now","opens_at","closes_at","timezone","sample","lane","url","api_url"],"additionalProperties":false},"summary":{"type":"string"},"now":{"$ref":"#/components/schemas/Now"},"usual":{"anyOf":[{"$ref":"#/components/schemas/Usual"},{"type":"null"}]},"distance":{"anyOf":[{"type":"object","properties":{"km":{"type":"number"},"from":{"type":"string","enum":["you","this place"]}},"required":["km","from"],"additionalProperties":false},{"type":"null"}]},"best_on_day":{"anyOf":[{"type":"object","properties":{"date":{"type":"string"},"from":{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},"to":{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},"value":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["date","from","to","value"],"additionalProperties":false},{"type":"null"}]},"vs_requested":{"anyOf":[{"type":"object","properties":{"wait_diff_min":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"The place asked about minus this one, waits only."},"extra_km":{"type":"number"}},"required":["wait_diff_min","extra_km"],"additionalProperties":false},{"type":"null"}]},"links":{"type":"object","properties":{"details":{"type":"string"},"page":{"type":"string"},"airport":{"type":["string","null"]}},"required":["details","page","airport"],"additionalProperties":false}},"required":["place","summary","now","usual","distance","best_on_day","vs_requested","links"],"additionalProperties":false},"ItemMinimal":{"type":"object","properties":{"place":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"category":{"type":"string","enum":["er","urgent-care","dmv","airport","border"]},"parent":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]},"open_now":{"type":"boolean"},"opens_at":{"anyOf":[{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},{"type":"null"}]},"closes_at":{"anyOf":[{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},{"type":"null"}]},"timezone":{"type":"string"},"sample":{"type":"boolean"}},"required":["id","name","category","parent","open_now","opens_at","closes_at","timezone","sample"],"additionalProperties":false},"summary":{"type":"string"},"now":{"type":"object","properties":{"status":{"type":"string","enum":["live","stale","paused","closed","unknown"]},"usable":{"type":"boolean"},"value":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Minutes; set only when usable."},"unit":{"type":"string","const":"min"},"bound":{"anyOf":[{"type":"string","enum":["exact","upper","lower"]},{"type":"null"}]},"reason":{"anyOf":[{"type":"string","enum":["closed","feed_paused","source_not_reporting","not_published","out_of_date","no_recent_data"]},{"type":"null"}]},"trend":{"anyOf":[{"type":"string","enum":["rising","falling","steady"]},{"type":"null"}]}},"required":["status","usable","value","unit","bound","reason","trend"],"additionalProperties":false},"distance":{"anyOf":[{"type":"object","properties":{"km":{"type":"number"},"from":{"type":"string","enum":["you","this place"]}},"required":["km","from"],"additionalProperties":false},{"type":"null"}]},"links":{"type":"object","properties":{"details":{"type":"string"},"airport":{"type":["string","null"]}},"required":["details","airport"],"additionalProperties":false}},"required":["place","summary","now","distance","links"],"additionalProperties":false},"ListFull":{"type":"object","properties":{"query":{"type":"object","properties":{"near":{"type":["string","null"]},"cell":{"type":["string","null"]},"q":{"type":["string","null"]},"ids":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"match":{"anyOf":[{"type":"string","enum":["exact","fuzzy"]},{"type":"null"}]},"category":{"anyOf":[{"type":"array","items":{"type":"string","enum":["er","urgent-care","dmv","airport","border"]}},{"type":"null"}]},"open":{"type":["boolean","null"]},"sort":{"anyOf":[{"type":"string","enum":["distance","wait","total"]},{"type":"null"}]},"limit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"view":{"type":"string","enum":["full","minimal"]},"searched_km":{"type":["number","null"]},"furthest_km":{"type":["number","null"]}},"required":["near","cell","q","ids","match","category","open","sort","limit","view","searched_km","furthest_km"],"additionalProperties":false},"coverage":{"type":"string","enum":["live","no_live_data","all_closed","none_open","none"]},"places":{"type":"array","items":{"$ref":"#/components/schemas/ItemFull"}},"notes":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"description":"Sentences to read to the user."},"diagnostics":{"type":"array","items":{"type":"string"},"description":"For the agent or developer: unknown parameters and the like."},"answer_id":{"type":"string"},"attribution":{"type":"array","items":{"type":"string"}},"links":{"type":"object","properties":{"self":{"type":"string"},"full":{"type":"string"},"minimal":{"type":"string"}},"required":["self","full","minimal"],"additionalProperties":false}},"required":["query","coverage","places","notes","warnings","diagnostics","answer_id","attribution","links"],"additionalProperties":false},"ListMinimal":{"type":"object","properties":{"query":{"type":"object","properties":{"near":{"type":["string","null"]},"cell":{"type":["string","null"]},"q":{"type":["string","null"]},"ids":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"match":{"anyOf":[{"type":"string","enum":["exact","fuzzy"]},{"type":"null"}]},"category":{"anyOf":[{"type":"array","items":{"type":"string","enum":["er","urgent-care","dmv","airport","border"]}},{"type":"null"}]},"open":{"type":["boolean","null"]},"sort":{"anyOf":[{"type":"string","enum":["distance","wait","total"]},{"type":"null"}]},"limit":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"view":{"type":"string","enum":["full","minimal"]},"searched_km":{"type":["number","null"]},"furthest_km":{"type":["number","null"]}},"required":["near","cell","q","ids","match","category","open","sort","limit","view","searched_km","furthest_km"],"additionalProperties":false},"coverage":{"type":"string","enum":["live","no_live_data","all_closed","none_open","none"]},"places":{"type":"array","items":{"$ref":"#/components/schemas/ItemMinimal"}},"notes":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"description":"Sentences to read to the user."},"diagnostics":{"type":"array","items":{"type":"string"},"description":"For the agent or developer: unknown parameters and the like."},"answer_id":{"type":"string"},"attribution":{"type":"array","items":{"type":"string"}},"links":{"type":"object","properties":{"self":{"type":"string"},"full":{"type":"string"},"minimal":{"type":"string"}},"required":["self","full","minimal"],"additionalProperties":false}},"required":["query","coverage","places","notes","warnings","diagnostics","answer_id","attribution","links"],"additionalProperties":false},"SingleFull":{"type":"object","properties":{"place":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"category":{"type":"string","enum":["er","urgent-care","dmv","airport","border"]},"parent":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]},"open_now":{"type":"boolean"},"opens_at":{"anyOf":[{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},{"type":"null"}]},"closes_at":{"anyOf":[{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},{"type":"null"}]},"timezone":{"type":"string"},"sample":{"type":"boolean"},"lane":{"anyOf":[{"type":"string","enum":["general","precheck","clear","standard","ready","sentri"]},{"type":"null"}]},"url":{"type":"string"},"api_url":{"type":"string"},"address":{"type":["string","null"]},"phone":{"type":["string","null"]},"lat":{"type":"number"},"lng":{"type":"number"},"h3_r8":{"type":"string"},"hours":{"anyOf":[{"type":"string","const":"24/7"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},"lanes_not_tracked":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]}},"required":["id","name","category","parent","open_now","opens_at","closes_at","timezone","sample","lane","url","api_url","address","phone","lat","lng","h3_r8","hours","lanes_not_tracked"],"additionalProperties":false},"summary":{"type":"string"},"now":{"$ref":"#/components/schemas/Now"},"usual":{"anyOf":[{"$ref":"#/components/schemas/Usual"},{"type":"null"}]},"next":{"type":"object","properties":{"for_date":{"type":["string","null"]},"summary":{"type":["string","null"]},"based_on":{"anyOf":[{"type":"string","enum":["live","usual"]},{"type":"null"}]},"under":{"type":"number"},"under_status":{"type":"string","enum":["already","usually_under","expected","not_expected","no_data","closed_all_day","closed_rest_of_day","not_published"]},"under_by":{"anyOf":[{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},{"type":"null"}]},"best":{"anyOf":[{"type":"object","properties":{"from":{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},"to":{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},"value":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["from","to","value"],"additionalProperties":false},{"type":"null"}]},"leave_by":{"anyOf":[{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},{"type":"null"}]},"confidence":{"type":"string","enum":["none","low","medium","high"]},"days_of_history":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"forecast":{"type":"array","items":{"type":"object","properties":{"at":{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},"open":{"type":"boolean"},"open_minutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"value":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["at","open","open_minutes","value"],"additionalProperties":false}}},"required":["for_date","summary","based_on","under","under_status","under_by","best","leave_by","confidence","days_of_history","forecast"],"additionalProperties":false},"instead":{"type":"array","items":{"$ref":"#/components/schemas/ItemFull"}},"distance":{"anyOf":[{"type":"object","properties":{"km":{"type":"number"},"from":{"type":"string","enum":["you","this place"]}},"required":["km","from"],"additionalProperties":false},{"type":"null"}]},"best_on_day":{"type":"null"},"vs_requested":{"type":"null"},"notes":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"description":"Sentences to read to the user."},"diagnostics":{"type":"array","items":{"type":"string"},"description":"For the agent or developer: unknown parameters and the like."},"answer_id":{"type":"string"},"attribution":{"type":"array","items":{"type":"string"}},"links":{"type":"object","properties":{"self":{"type":"string"},"full":{"type":"string"},"minimal":{"type":"string"},"details":{"type":"string"},"page":{"type":"string"},"plan_day":{"type":["string","null"]},"alternatives":{"type":["string","null"]},"airport":{"type":["string","null"]}},"required":["self","full","minimal","details","page","plan_day","alternatives","airport"],"additionalProperties":false}},"required":["place","summary","now","usual","next","instead","distance","best_on_day","vs_requested","notes","warnings","diagnostics","answer_id","attribution","links"],"additionalProperties":false},"SingleMinimal":{"type":"object","properties":{"place":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"category":{"type":"string","enum":["er","urgent-care","dmv","airport","border"]},"parent":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]},"open_now":{"type":"boolean"},"opens_at":{"anyOf":[{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},{"type":"null"}]},"closes_at":{"anyOf":[{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},{"type":"null"}]},"timezone":{"type":"string"},"sample":{"type":"boolean"}},"required":["id","name","category","parent","open_now","opens_at","closes_at","timezone","sample"],"additionalProperties":false},"summary":{"type":"string"},"now":{"type":"object","properties":{"status":{"type":"string","enum":["live","stale","paused","closed","unknown"]},"usable":{"type":"boolean"},"value":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Minutes; set only when usable."},"unit":{"type":"string","const":"min"},"bound":{"anyOf":[{"type":"string","enum":["exact","upper","lower"]},{"type":"null"}]},"reason":{"anyOf":[{"type":"string","enum":["closed","feed_paused","source_not_reporting","not_published","out_of_date","no_recent_data"]},{"type":"null"}]},"trend":{"anyOf":[{"type":"string","enum":["rising","falling","steady"]},{"type":"null"}]}},"required":["status","usable","value","unit","bound","reason","trend"],"additionalProperties":false},"usual":{"anyOf":[{"type":"object","properties":{"value":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"compared":{"anyOf":[{"type":"string","enum":["worse","normal","better"]},{"type":"null"}]}},"required":["value","compared"],"additionalProperties":false},{"type":"null"}]},"next":{"type":"object","properties":{"under":{"type":"number"},"under_status":{"type":"string","enum":["already","usually_under","expected","not_expected","no_data","closed_all_day","closed_rest_of_day","not_published"]},"under_by":{"anyOf":[{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},{"type":"null"}]},"best":{"anyOf":[{"type":"object","properties":{"from":{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},"to":{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},"value":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["from","to","value"],"additionalProperties":false},{"type":"null"}]},"summary":{"type":["string","null"]},"forecast":{"type":"array","items":{"type":"object","properties":{"at":{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},"value":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["at","value"],"additionalProperties":false}}},"required":["under","under_status","under_by","best","summary"],"additionalProperties":false},"distance":{"anyOf":[{"type":"object","properties":{"km":{"type":"number"},"from":{"type":"string","enum":["you","this place"]}},"required":["km","from"],"additionalProperties":false},{"type":"null"}]},"notes":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"description":"Sentences to read to the user."},"diagnostics":{"type":"array","items":{"type":"string"},"description":"For the agent or developer: unknown parameters and the like."},"answer_id":{"type":"string"},"attribution":{"type":"array","items":{"type":"string"}},"links":{"type":"object","properties":{"self":{"type":"string"},"full":{"type":"string"},"minimal":{"type":"string"},"details":{"type":"string"},"page":{"type":"string"},"plan_day":{"type":["string","null"]},"alternatives":{"type":["string","null"]},"airport":{"type":["string","null"]}},"required":["self","full","minimal","details","page","plan_day","alternatives","airport"],"additionalProperties":false}},"required":["place","summary","now","usual","next","distance","notes","warnings","diagnostics","answer_id","attribution","links"],"additionalProperties":false},"GroupFull":{"type":"object","properties":{"place":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"category":{"type":"string","enum":["er","urgent-care","dmv","airport","border"]},"parent":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]},"open_now":{"type":"boolean"},"opens_at":{"anyOf":[{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},{"type":"null"}]},"closes_at":{"anyOf":[{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},{"type":"null"}]},"timezone":{"type":"string"},"sample":{"type":"boolean"},"lanes_tracked":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"lane":{"type":"null"},"url":{"type":"string"},"api_url":{"type":"string"},"lanes_not_tracked":{"type":"array","items":{"type":"string"}}},"required":["id","name","category","parent","open_now","opens_at","closes_at","timezone","sample","lanes_tracked","lane","url","api_url","lanes_not_tracked"],"additionalProperties":false},"summary":{"type":"string"},"coverage":{"type":"string","enum":["live","no_live_data","all_closed","none_open","none"]},"lanes":{"type":"array","items":{"$ref":"#/components/schemas/ItemFull"}},"distance":{"anyOf":[{"type":"object","properties":{"km":{"type":"number"},"from":{"type":"string","enum":["you","this place"]}},"required":["km","from"],"additionalProperties":false},{"type":"null"}]},"notes":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"description":"Sentences to read to the user."},"diagnostics":{"type":"array","items":{"type":"string"},"description":"For the agent or developer: unknown parameters and the like."},"answer_id":{"type":"string"},"attribution":{"type":"array","items":{"type":"string"}},"links":{"type":"object","properties":{"self":{"type":"string"},"full":{"type":"string"},"minimal":{"type":"string"},"details":{"type":"string"},"page":{"type":"string"},"plan_day":{"type":["string","null"]},"alternatives":{"type":["string","null"]},"airport":{"type":["string","null"]}},"required":["self","full","minimal","details","page","plan_day","alternatives","airport"],"additionalProperties":false}},"required":["place","summary","coverage","lanes","distance","notes","warnings","diagnostics","answer_id","attribution","links"],"additionalProperties":false},"GroupMinimal":{"type":"object","properties":{"place":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"category":{"type":"string","enum":["er","urgent-care","dmv","airport","border"]},"parent":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]},"open_now":{"type":"boolean"},"opens_at":{"anyOf":[{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},{"type":"null"}]},"closes_at":{"anyOf":[{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},{"type":"null"}]},"timezone":{"type":"string"},"sample":{"type":"boolean"},"lanes_tracked":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","name","category","parent","open_now","opens_at","closes_at","timezone","sample","lanes_tracked"],"additionalProperties":false},"summary":{"type":"string"},"coverage":{"type":"string","enum":["live","no_live_data","all_closed","none_open","none"]},"lanes":{"type":"array","items":{"$ref":"#/components/schemas/ItemMinimal"}},"distance":{"anyOf":[{"type":"object","properties":{"km":{"type":"number"},"from":{"type":"string","enum":["you","this place"]}},"required":["km","from"],"additionalProperties":false},{"type":"null"}]},"notes":{"type":"array","items":{"type":"string"}},"warnings":{"type":"array","items":{"type":"string"},"description":"Sentences to read to the user."},"diagnostics":{"type":"array","items":{"type":"string"},"description":"For the agent or developer: unknown parameters and the like."},"answer_id":{"type":"string"},"attribution":{"type":"array","items":{"type":"string"}},"links":{"type":"object","properties":{"self":{"type":"string"},"full":{"type":"string"},"minimal":{"type":"string"},"details":{"type":"string"},"page":{"type":"string"},"plan_day":{"type":["string","null"]},"alternatives":{"type":["string","null"]},"airport":{"type":["string","null"]}},"required":["self","full","minimal","details","page","plan_day","alternatives","airport"],"additionalProperties":false}},"required":["place","summary","coverage","lanes","distance","notes","warnings","diagnostics","answer_id","attribution","links"],"additionalProperties":false},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_parameter","missing_location","invalid_json","invalid_key","place_not_found","not_found","method_not_allowed","gone","key_exists","unsupported_media_type","rate_limited","quota_exceeded","server_error","unavailable"]},"message":{"type":"string"},"request_id":{"type":"string"},"param":{"type":"string"},"retry_after_s":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["code","message","request_id"],"additionalProperties":false}},"required":["error"],"additionalProperties":false},"Categories":{"type":"object","properties":{"categories":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["er","urgent-care","dmv","airport","border"]},"label":{"type":"string"},"default_under":{"type":"number"}},"required":["id","label","default_under"],"additionalProperties":false}}},"required":["categories"],"additionalProperties":false},"Health":{"type":"object","properties":{"status":{"type":"string","enum":["ok","degraded","down"]},"time":{"type":"string","description":"ISO 8601 local time with offset, e.g. 2026-10-29T21:03:16-04:00"},"places":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"readings":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sources":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"ok":{"type":"boolean"},"enabled":{"type":"boolean"},"display":{"type":"boolean"},"age_s":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"fail_streak":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["ok","enabled","display","age_s","fail_streak"],"additionalProperties":false}}},"required":["status","time","places","readings","sources"],"additionalProperties":false}},"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"},"bearer":{"type":"http","scheme":"bearer"}},"responses":{"Error":{"description":"Error. Codes: invalid_parameter (400), missing_location (400), invalid_json (400), invalid_key (401), place_not_found (404), not_found (404), method_not_allowed (405), gone (410), key_exists (409), unsupported_media_type (415), rate_limited (429), quota_exceeded (429), server_error (500), unavailable (503).","headers":{"Retry-After":{"description":"On 429 and 503: seconds to wait.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}