BackendHTTP API
Platform endpoints
Platform endpoints
Unless noted, success body is { "data": … } and the tables describe the payload inside data.
GET /api/health
- Auth: public
- Response:
{ status: "ok" }
GET /api/uploads/*
- Auth: public
- Path: managed storage key after
/api/uploads/(e.g.avatars/…,trips/…). Invalid / non-managed path →400invalid_path. - Response: raw bytes (not JSON). Headers include
Content-Type,Cache-Control: public, max-age=31536000, immutable,X-Content-Type-Options: nosniff. Missing file →404.
GET /api/weather
- Auth: session
- Query:
| Param | Required | Meaning |
|---|---|---|
lat | yes | Latitude number |
lon | yes | Longitude number |
date | for useful data | YYYY-MM-DD; invalid/missing date yields null payload |
time | no | HH:MM for hourly preference within horizon |
lang | no | Default en |
- Response:
WeatherDataornull - Errors:
400invalid_coordinates;503weather_not_configured;502provider failures. Details: weather.md.
GET /api/fx/rates
- Auth: session
- Query:
| Param | Required | Meaning |
|---|---|---|
base | yes | ISO 4217 (3 letters) |
quotes | no | Comma-separated quote currencies |
date | no | YYYY-MM-DD historical; omit for latest |
- Response:
FxRatesData - Errors:
400invalid_currency/invalid_date;502provider. Details: fx.md.
GET /api/agent/status
- Auth: session
- Response:
{ enabled: boolean }—truewhen AI env is configured.
Related: weather.md · fx.md