{"openapi":"3.1.0","info":{"title":"Waylin AI public park API","description":"Anonymous, read-only access to Waylin AI's static public park catalog. No private trips or AI generation. Limits: 60 requests/minute per client address per backend worker; 1–50 results per page.","version":"1.0.0"},"servers":[{"url":"https://waylin.ai"}],"paths":{"/api/health":{"get":{"tags":["Public Agent API"],"summary":"Check public API availability","operationId":"public_health","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicHealth"}}}}}}},"/api/agent/parks":{"get":{"tags":["Public Agent API"],"summary":"Search the public park catalog","description":"Search static park summaries without authentication or provider calls. Results are sorted by name.","operationId":"search_parks","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":120,"description":"Match park name, region, or description.","default":"","title":"Q"},"description":"Match park name, region, or description."},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"enum":["US","Canada"],"type":"string"},{"type":"null"}],"description":"US or Canada; USA is accepted as an alias for US.","title":"Country"},"description":"US or Canada; USA is accepted as an alias for US."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParkSearchResults"}}}},"403":{"description":"Direct-origin access rejected. Use https://waylin.ai, which supplies the trusted CDN headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"429":{"description":"Rate limit exceeded; retry after one minute.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicRateLimitError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/parks/{park_id}":{"get":{"tags":["Public Agent API"],"summary":"Read one public park summary","operationId":"get_park_summary","parameters":[{"name":"park_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9_-]+$","title":"Park Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPark"}}}},"403":{"description":"Direct-origin access rejected. Use https://waylin.ai, which supplies the trusted CDN headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"429":{"description":"Rate limit exceeded; retry after one minute.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicRateLimitError"}}}},"404":{"description":"Park ID not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/capabilities":{"get":{"tags":["Public Agent API"],"summary":"Describe supported public agent capabilities","operationId":"get_waylin_capabilities","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCapabilities"}}}},"403":{"description":"Direct-origin access rejected. Use https://waylin.ai, which supplies the trusted CDN headers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"429":{"description":"Rate limit exceeded; retry after one minute.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicRateLimitError"}}}}}}}},"components":{"schemas":{"AgentCapabilities":{"properties":{"name":{"type":"string","title":"Name"},"version":{"type":"string","title":"Version"},"description":{"type":"string","title":"Description"},"authentication":{"type":"string","const":"none","title":"Authentication"},"read_only":{"type":"boolean","const":true,"title":"Read Only"},"tools":{"items":{"type":"string"},"type":"array","title":"Tools"},"endpoints":{"additionalProperties":{"type":"string"},"type":"object","title":"Endpoints"},"limits":{"additionalProperties":{"type":"integer"},"type":"object","title":"Limits"},"data_source":{"type":"string","title":"Data Source"},"limitations":{"items":{"type":"string"},"type":"array","title":"Limitations"}},"type":"object","required":["name","version","description","authentication","read_only","tools","endpoints","limits","data_source","limitations"],"title":"AgentCapabilities"},"Coordinates":{"properties":{"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},"type":"object","required":["lat","lng"],"title":"Coordinates"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ParkSearchResults":{"properties":{"parks":{"items":{"$ref":"#/components/schemas/PublicPark"},"type":"array","title":"Parks"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"},"next_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Offset"}},"type":"object","required":["parks","total","limit","offset","next_offset"],"title":"ParkSearchResults"},"PublicError":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"PublicError"},"PublicHealth":{"properties":{"status":{"type":"string","const":"ok","title":"Status"}},"type":"object","required":["status"],"title":"PublicHealth"},"PublicPark":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"country":{"type":"string","enum":["US","Canada"],"title":"Country"},"states":{"items":{"type":"string"},"type":"array","title":"States"},"description":{"type":"string","title":"Description"},"url":{"type":"string","title":"Url"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"coordinates":{"anyOf":[{"$ref":"#/components/schemas/Coordinates"},{"type":"null"}]}},"type":"object","required":["id","name","country","states","description","url"],"title":"PublicPark"},"PublicRateLimitError":{"properties":{"error":{"type":"string","title":"Error"}},"type":"object","required":["error"],"title":"PublicRateLimitError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"security":[]}