# agents.txt — machine-readable policy and endpoint reference for # AI agents and automated clients. Human policy prose: /ai.txt # Same information as structured XML: /agents.xml name: Windfield operator: SummitFlux LLC site: https://windfield.summitflux.com contact: james@summitflux.com license: free, no login, no API key, no paywall engine: USFS WindNinja 4.0 (USDA Forest Service, Missoula Fire Sciences Lab) policy.use: allowed policy.training: allowed policy.citation: allowed policy.redistribution: allowed policy.attribution_requested: true policy.attribution_text: "Windfield by SummitFlux, powered by USFS WindNinja" policy.auth_required: false policy.cors: open policy.rate_limit_guidance: a few requests per second at most; honor retry_after on 429 limits.max_domain_km: 400 limits.max_cells: 1500000 limits.max_run_seconds: 900 limits.max_concurrent_jobs: 2 limits.max_queued_jobs: 20 limits.max_in_flight_per_ip: 2 limits.job_result_lifetime: ~5 minutes after last access (presence-based, not a fixed TTL) limits.request_body_max_bytes: 65536 docs.help: https://windfield.summitflux.com/help.html docs.help_api_section: https://windfield.summitflux.com/help.html#api docs.llms_txt: https://windfield.summitflux.com/llms.txt docs.llms_full_txt: https://windfield.summitflux.com/llms-full.txt docs.capabilities: https://windfield.summitflux.com/api/v1/capabilities docs.credits: https://windfield.summitflux.com/credits.html docs.about: https://windfield.summitflux.com/about.html docs.privacy: https://summitflux.com/privacy-policy docs.terms: https://summitflux.com/terms # Endpoints: METHOD PATH — description endpoint: GET /api/v1/health — service status and current queue depth endpoint: GET /api/v1/capabilities — live budgets and supported options (mesh, vegetation, wx models, solvers) endpoint: POST /api/v1/jobs — start a WindNinja run; returns {id, status, status_url} endpoint: GET /api/v1/jobs/{id} — poll status/progress; results object once done endpoint: GET /api/v1/jobs/{id}/files/{name} — fetch a specific output file (png/geotiff/kmz/shapefile/ascii/csv/cfg) endpoint: GET /api/v1/jobs/{id}/log — plain-text WindNinja run log endpoint: GET /api/v1/jobs/{id}/recipe — the original request params, re-POSTable to /api/v1/jobs endpoint: POST /api/v1/jobs/{id}/keepalive — bump the job's presence timer (204, empty body) endpoint: GET /api/v1/dem/elevation?lat=&lon= — single elevation sample endpoint: GET /api/v1/geocode?q= — place search (proxies OSM Nominatim) endpoint: GET /api/v1/geocode/reverse?lat=&lon= — reverse geocode to one label endpoint: GET /api/v1/weather/current?lat=&lon= — live current + 48h hourly conditions (Open-Meteo) endpoint: GET /api/v1/weather/stations?bbox=&sources=nws,metar,ndbc,raws — live station observations, multi-network endpoint: GET /api/v1/weather/profile?lat=&lon=&sources=model,sounding,surface — merged vertical wind profile # End of agents.txt