API
Public endpoints for weather data and resume download
API Documentation
All public endpoints return JSON and are rate-limited per IP. No authentication is required for GET endpoints. The POST endpoint requires an API key.
Rate Limits
All endpoints are rate-limited per IP address. Exceeding the limit returns a 429 status. Response headers include X-RateLimit-Limit and X-RateLimit-Remaining.
| /api/resume/ | 20 requests/min |
| /api/weather/ | 60 requests/min |
| /api/weather/weekly/ | 30 requests/min |
| /api/weather/report/ | 30 requests/min |
| /api/weather/create/ | 10 requests/min |
Authentication
The POST endpoint requires an API key sent via the X-Api-Key header. Public GET endpoints require no authentication.
Downloads the current active resume as a .docx file.
Response
Returns the file as a download (application/octet-stream), or a JSON error if no resume is available.
Error Response
Returns the most recent weather reading.
Example Response
Returns all weather readings from the last 7 days.
Example Response
Returns weather analytics including high/low temperatures, averages, precipitation events, and sky condition breakdowns for today and the past week.
Example Response
Submit a new weather reading. Requires an API key via the X-Api-Key header.
Request Headers
| Header | Value |
|---|---|
| Content-Type | application/json |
| X-Api-Key | Your API key required |
Request Body
| Field | Type | Description | |
|---|---|---|---|
| temperature | number | required | Temperature in °F |
| humidity | number | required | Humidity percentage (0–100) |
| sky_condition | string | required |
Sky/cloud coverage
clear
mostly_clear
partly_cloudy
mostly_cloudy
overcast
foggy
|
| precipitation | string | required |
Precipitation type
none
rain
drizzle
snow
sleet
hail
freezing_rain
|
| notes | string | optional | Freeform notes |
| recorded_at | string | optional | ISO 8601 datetime. Defaults to now. |