{"openapi":"3.0.3","info":{"title":"Agent Data API","description":"Open-data feeds for operations agents in one API: wholesale power prices and grid data, open environmental sensors (air, water, tides, earthquakes), weather alerts and forecasts, and news-derived sentiment and trend signals. Every response cites its source. Pay per request in USDC over x402, or use an API key.","version":"2026.11.09"},"paths":{"/api/v1/health":{"get":{"tags":["Meta"],"summary":"Health (no key)","operationId":"health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/health/data":{"get":{"tags":["Meta"],"summary":"Collection health for every slice (no key)","operationId":"health_data_api_v1_health_data_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/pricing":{"get":{"tags":["Meta"],"summary":"Agent pricing (no key)","description":"Every way to pay over x402 with exact USDC prices for every slice. Per-slice documents live at /{slice}/api/v1/pricing.","operationId":"pricing_api_v1_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/auth/keys":{"post":{"tags":["Authentication"],"summary":"Create a free API key (no signup)","description":"Returns an `adk_live_` key once, valid for every slice (energy, sensors, weather, news). Free tier: 5 requests a day,\na taster. For steady use take a free RealtimeAPI.ai key (1,000 calls a month across every feed) or buy a time pass.","operationId":"create_key_api_v1_auth_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Authentication"],"summary":"Revoke your key","operationId":"revoke_api_v1_auth_keys_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/v1/auth/keys/me":{"get":{"tags":["Authentication"],"summary":"Your key's tier and usage","operationId":"key_me_api_v1_auth_keys_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/v1/auth/keys/rotate":{"post":{"tags":["Authentication"],"summary":"Rotate your key","operationId":"rotate_api_v1_auth_keys_rotate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/v1/payments/plans":{"get":{"tags":["Payments"],"summary":"Passes and accepted networks (no key)","operationId":"get_plans_api_v1_payments_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/payments/agent-subscribe":{"post":{"tags":["Payments"],"summary":"Buy a pass (x402, gasless USDC)","description":"Two calls: first without a payment header returns 402 with the USDC amount and\nnetworks; the second with the signed `x-payment` header settles and returns an\n`adk_live_` key (shown once) with a Pro pass. Passes stack: buying while one is active extends it.\n\nSend `X-API-Key` to extend an existing key instead of minting one.","operationId":"agent_subscribe_api_v1_payments_agent_subscribe_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSubscribeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payments/invoices":{"get":{"tags":["Payments"],"summary":"Invoices for the calling key","operationId":"list_invoices_api_v1_payments_invoices_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/energy/api/v1/regions":{"get":{"tags":["Grid and energy data"],"summary":"Market regions","description":"Every market region we serve with market, timezone, currency, source and price cadence. Refreshes every 24 hours.","operationId":"grid_regions","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"market","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Market","description":"nem, gb, eu or us","examples":["nem"]},"description":"nem, gb, eu or us"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.005","x-price":{"price_micro":5000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"grid_regions","x-cadence":"Refreshes every 24 hours."}},"/energy/api/v1/power/prices/{market}/{region}":{"get":{"tags":["Grid and energy data"],"summary":"Latest wholesale price","description":"The latest settled wholesale electricity price for a region: NEM 5-minute RRP, GB half-hourly market index price, EU hourly day-ahead price for the current interval. Micro units of the local currency plus a USD conversion at the central bank reference rate. US regions have no price (ISO terms pending): 404. Refreshes every 5 minutes.","operationId":"grid_price","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"market","in":"path","required":true,"schema":{"type":"string","title":"Market"},"example":"nem"},{"name":"region","in":"path","required":true,"schema":{"type":"string","title":"Region"},"example":"NSW1"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.01","x-price":{"price_micro":10000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"grid_price","x-cadence":"Refreshes every 5 minutes."}},"/energy/api/v1/power/prices/{market}/{region}/day-ahead":{"get":{"tags":["Grid and energy data"],"summary":"Day-ahead or pre-dispatch prices for a day","description":"Forecast prices per interval for one local calendar day: the ENTSO-E day-ahead auction for EU zones (published around 13:00 CET), AEMO pre-dispatch for NEM regions (next 40 hours, 30-minute). GB and US regions answer with basis 'unavailable'. Refreshes every 30 minutes.","operationId":"grid_day_ahead","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"market","in":"path","required":true,"schema":{"type":"string","title":"Market"},"example":"nem"},{"name":"region","in":"path","required":true,"schema":{"type":"string","title":"Region"},"example":"NSW1"},{"name":"date","in":"query","required":false,"schema":{"type":"string","format":"date","nullable":true,"title":"Date","description":"Local calendar day, default tomorrow","examples":["2026-11-10"]},"description":"Local calendar day, default tomorrow"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.01","x-price":{"price_micro":10000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"grid_day_ahead","x-cadence":"Refreshes every 30 minutes."}},"/energy/api/v1/power/prices/{market}/{region}/history":{"get":{"tags":["Grid and energy data"],"summary":"Price history (7 days, Pro)","description":"Settled prices per interval for the last 7 days, newest last, optionally averaged to 30m or 60m buckets. Refreshes every 5 minutes.","operationId":"grid_price_history","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"market","in":"path","required":true,"schema":{"type":"string","title":"Market"},"example":"nem"},{"name":"region","in":"path","required":true,"schema":{"type":"string","title":"Region"},"example":"NSW1"},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date-time","nullable":true,"title":"From","description":"ISO UTC start, default 7 days ago"},"description":"ISO UTC start, default 7 days ago"},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date-time","nullable":true,"title":"To","description":"ISO UTC end, default now"},"description":"ISO UTC end, default now"},{"name":"interval","in":"query","required":false,"schema":{"type":"string","description":"native, 30m or 60m","example":"30m","default":"native","title":"Interval"},"description":"native, 30m or 60m"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.02","x-price":{"price_micro":20000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"grid_price_history","x-cadence":"Refreshes every 5 minutes.","x-cache-ttl-s":1800}},"/energy/api/v1/power/load/{market}/{region}":{"get":{"tags":["Grid and energy data"],"summary":"Latest grid demand","description":"Latest demand for a region in MW: NEM total demand (5-minute), GB initial demand outturn (30-minute), ENTSO-E actual load (15 or 60-minute), EIA hourly demand for US balancing authorities. Refreshes every 5 minutes.","operationId":"grid_load","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"market","in":"path","required":true,"schema":{"type":"string","title":"Market"},"example":"nem"},{"name":"region","in":"path","required":true,"schema":{"type":"string","title":"Region"},"example":"NSW1"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.01","x-price":{"price_micro":10000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"grid_load","x-cadence":"Refreshes every 5 minutes."}},"/energy/api/v1/power/generation/{market}/{region}":{"get":{"tags":["Grid and energy data"],"summary":"Latest generation mix","description":"Latest generation by fuel for a region in MW with the total and the renewables share in basis points (GB, EU zones and US balancing authorities; NEM regions have no public fuel split in DispatchIS and answer pending). Refreshes every 5 minutes.","operationId":"grid_generation","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"market","in":"path","required":true,"schema":{"type":"string","title":"Market"},"example":"nem"},{"name":"region","in":"path","required":true,"schema":{"type":"string","title":"Region"},"example":"NSW1"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.01","x-price":{"price_micro":10000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"grid_generation","x-cadence":"Refreshes every 5 minutes."}},"/energy/api/v1/power/windows/{market}/{region}":{"get":{"tags":["Grid and energy data"],"summary":"Cheapest charging window","description":"The cheapest contiguous window of N hours within the next horizon hours, from day-ahead (EU) or pre-dispatch (NEM) prices, with the GB carbon forecast where the region is GB. Other regions answer basis 'unavailable'. Refreshes every 30 minutes.","operationId":"grid_cheapest_window","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"market","in":"path","required":true,"schema":{"type":"string","title":"Market"},"example":"nem"},{"name":"region","in":"path","required":true,"schema":{"type":"string","title":"Region"},"example":"NSW1"},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":12,"minimum":1,"example":4,"default":4,"title":"Hours"}},{"name":"horizon","in":"query","required":false,"schema":{"type":"integer","maximum":40,"minimum":1,"example":24,"default":24,"title":"Horizon"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.015","x-price":{"price_micro":15000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"grid_cheapest_window","x-cadence":"Refreshes every 30 minutes."}},"/energy/api/v1/carbon/{region}":{"get":{"tags":["Grid and energy data"],"summary":"Grid carbon intensity","description":"gCO2 per kWh for Great Britain (region GB: actual and forecast for the current half hour) or a NESO distribution region id 1 to 17 (forecast and generation mix in basis points). Refreshes every 30 minutes.","operationId":"grid_carbon","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"region","in":"path","required":true,"schema":{"type":"string","example":"GB","title":"Region"},"example":"GB"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.005","x-price":{"price_micro":5000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"grid_carbon","x-cadence":"Refreshes every 30 minutes."}},"/energy/api/v1/petroleum/weekly":{"get":{"tags":["Grid and energy data"],"summary":"EIA weekly petroleum inventories","description":"The latest EIA weekly US petroleum figure for a series (crude_stocks, gasoline_stocks, distillate_stocks, refinery_inputs, crude_imports) with the previous week and the change. Published Wednesdays 10:30 ET. Refreshes every 7 days.","operationId":"petroleum_weekly","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"series","in":"query","required":false,"schema":{"type":"string","example":"crude_stocks","default":"crude_stocks","title":"Series"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.01","x-price":{"price_micro":10000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"petroleum_weekly","x-cadence":"Refreshes every 7 days."}},"/sensors/api/v1/stations/near":{"get":{"tags":["Environmental sensors"],"summary":"Stations near a point","description":"Stations of every network (usgs, coops, openaq) within radius_km of a point, nearest first, with the parameters each reports and the distance in metres. Refreshes every 24 hours.","operationId":"sensors_stations_near","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"example":-33.87,"title":"Lat"},"example":-33.87},{"name":"lon","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"example":151.21,"title":"Lon"},"example":151.21},{"name":"radius_km","in":"query","required":false,"schema":{"type":"number","maximum":500,"exclusiveMinimum":0,"example":10,"default":25,"title":"Radius Km"}},{"name":"parameter","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Parameter","examples":["pm25"]}},{"name":"network","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Network","examples":["openaq"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.005","x-price":{"price_micro":5000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"sensors_stations_near","x-cadence":"Refreshes every 24 hours."}},"/sensors/api/v1/air/near":{"get":{"tags":["Environmental sensors"],"summary":"Air quality near a point","description":"Air quality monitors within radius_km of a point with their latest readings (PM2.5, PM10, O3, NO2, SO2, CO as integers in the stated scale) and the US EPA AQI of the worst pollutant, nearest first. Refreshes every 60 minutes.","operationId":"sensors_air_near","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"example":-33.87,"title":"Lat"},"example":-33.87},{"name":"lon","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"example":151.21,"title":"Lon"},"example":151.21},{"name":"radius_km","in":"query","required":false,"schema":{"type":"number","maximum":500,"exclusiveMinimum":0,"example":10,"default":25,"title":"Radius Km"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.01","x-price":{"price_micro":10000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"sensors_air_near","x-cadence":"Refreshes every 60 minutes."}},"/sensors/api/v1/air/{station_id}":{"get":{"tags":["Environmental sensors"],"summary":"Air quality at a monitor","description":"Latest readings at one OpenAQ monitor (station_id openaq_{location_id}) with the US EPA AQI. An id that is not tracked returns status pending with known false; find ids with /stations/near. Refreshes every 60 minutes.","operationId":"sensors_air","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"station_id","in":"path","required":true,"schema":{"type":"string","title":"Station Id"},"example":"openaq_2178"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.005","x-price":{"price_micro":5000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"sensors_air","x-cadence":"Refreshes every 60 minutes."}},"/sensors/api/v1/water/gauge/{site}":{"get":{"tags":["Environmental sensors"],"summary":"River gauge latest","description":"Latest gage height (feet), discharge (cubic feet per second) and water temperature at a USGS site, with the NWS flood categories and the current flood status. Refreshes every 15 minutes.","operationId":"sensors_water_gauge","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"site","in":"path","required":true,"schema":{"type":"string","title":"Site"},"example":"01646500"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.005","x-price":{"price_micro":5000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"sensors_water_gauge","x-cadence":"Refreshes every 15 minutes."}},"/sensors/api/v1/water/gauge/{site}/history":{"get":{"tags":["Environmental sensors"],"summary":"River gauge history (Pro)","description":"Readings for the last 7 days at a USGS site, newest first, every parameter, with observed_at and ingested_at so a backtest can select what was known at a time. Refreshes every 15 minutes.","operationId":"sensors_water_history","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"site","in":"path","required":true,"schema":{"type":"string","title":"Site"},"example":"01646500"},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date-time","nullable":true,"title":"From","examples":["2026-11-08T00:00:00Z"]}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date-time","nullable":true,"title":"To"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":500,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.02","x-price":{"price_micro":20000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"sensors_water_history","x-cadence":"Refreshes every 15 minutes.","x-cache-ttl-s":1800}},"/sensors/api/v1/tides/{station}":{"get":{"tags":["Environmental sensors"],"summary":"Tide station latest","description":"Latest observed water level at a NOAA CO-OPS station in metres above MLLW (milli), with the next predicted high and low and whether the tide is rising or falling. Refreshes every 6 minutes.","operationId":"sensors_tides","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"station","in":"path","required":true,"schema":{"type":"string","title":"Station"},"example":"8518750"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.005","x-price":{"price_micro":5000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"sensors_tides","x-cadence":"Refreshes every 6 minutes."}},"/sensors/api/v1/tides/{station}/predictions":{"get":{"tags":["Environmental sensors"],"summary":"Tide predictions for a day","description":"Predicted high and low tides (metres above MLLW, UTC) at a NOAA CO-OPS station for one UTC date, today by default, up to 7 days ahead. Refreshes every 24 hours.","operationId":"sensors_tide_predictions","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"station","in":"path","required":true,"schema":{"type":"string","title":"Station"},"example":"8518750"},{"name":"date","in":"query","required":false,"schema":{"type":"string","format":"date","nullable":true,"title":"Date","examples":["2026-11-09"]}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.005","x-price":{"price_micro":5000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"sensors_tide_predictions","x-cadence":"Refreshes every 24 hours."}},"/sensors/api/v1/quakes/recent":{"get":{"tags":["Environmental sensors"],"summary":"Recent earthquakes","description":"Earthquakes from the USGS feed in the last `hours` (1 to 720), optionally at or above `min_mag` and within radius_km of a point, newest first, with magnitude and depth as integers (milli). Refreshes every 60 seconds.","operationId":"sensors_quakes","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"min_mag","in":"query","required":false,"schema":{"type":"number","maximum":10,"minimum":-2,"nullable":true,"title":"Min Mag","examples":[4]}},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":720,"minimum":1,"example":24,"default":24,"title":"Hours"}},{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90,"minimum":-90,"nullable":true,"title":"Lat"}},{"name":"lon","in":"query","required":false,"schema":{"type":"number","maximum":180,"minimum":-180,"nullable":true,"title":"Lon"}},{"name":"radius_km","in":"query","required":false,"schema":{"type":"number","maximum":20000,"exclusiveMinimum":0,"nullable":true,"title":"Radius Km"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.005","x-price":{"price_micro":5000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"sensors_quakes","x-cadence":"Refreshes every 60 seconds."}},"/weather/api/v1/alerts":{"get":{"tags":["Weather alerts and forecasts"],"summary":"Active weather alerts","description":"Active alerts for a region: a US state (TX), an NWS zone or county code (TXZ229, TXC201), an Australian state (NSW) or a whole country (US, AU). Severity first, newest first. Refreshes every 60 seconds.","operationId":"weather_alerts","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"region","in":"query","required":true,"schema":{"type":"string","description":"US state, NWS UGC zone or county code, Australian state, or US / AU","example":"TX","title":"Region"},"description":"US state, NWS UGC zone or county code, Australian state, or US / AU","example":"TX"},{"name":"severity","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Severity","description":"Extreme, Severe, Moderate, Minor or Unknown","examples":["Severe"]},"description":"Extreme, Severe, Moderate, Minor or Unknown"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.002","x-price":{"price_micro":2000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"weather_alerts","x-cadence":"Refreshes every 60 seconds."}},"/weather/api/v1/alerts/{alert_id}":{"get":{"tags":["Weather alerts and forecasts"],"summary":"One alert","description":"One alert by id with description, instruction, areas, zone codes and polygon. The id `latest` is the most severe active alert right now (a stable id for probes and examples). Refreshes every 60 seconds.","operationId":"alert_weather_api_v1_alerts__alert_id__get","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"string","title":"Alert Id"},"example":"latest"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.002","x-price":{"price_micro":2000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"weather_alert","x-cadence":"Refreshes every 60 seconds."}},"/weather/api/v1/current":{"get":{"tags":["Weather alerts and forecasts"],"summary":"Current conditions","description":"Latest report from the nearest reporting station within 150 km of a coordinate in the United States or Australia. Refreshes every 5 minutes.","operationId":"weather_current","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"example":-33.87,"title":"Lat"},"example":-33.87},{"name":"lon","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"example":151.21,"title":"Lon"},"example":151.21}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.003","x-price":{"price_micro":3000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"weather_current","x-cadence":"Refreshes every 5 minutes."}},"/weather/api/v1/forecast/hourly":{"get":{"tags":["Weather alerts and forecasts"],"summary":"Hourly forecast","description":"GFS 0.25 degree hourly forecast at the nearest grid cell to a coordinate in the contiguous United States or Australia, 1 to 120 hours ahead (hourly to 48 h, then 3-hourly). Refreshes every 60 minutes or on a new model cycle.","operationId":"weather_forecast","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"example":-33.87,"title":"Lat"},"example":-33.87},{"name":"lon","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"example":151.21,"title":"Lon"},"example":151.21},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":120,"minimum":1,"example":48,"default":48,"title":"Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.005","x-price":{"price_micro":5000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"weather_forecast_hourly","x-cadence":"Refreshes every 60 minutes or on a new model cycle.","x-cache-ttl-s":1800}},"/weather/api/v1/forecast/daily":{"get":{"tags":["Weather alerts and forecasts"],"summary":"Daily forecast","description":"Daily summary (min and max temperature, mean humidity and cloud, max wind and gust, precipitation total) for a coordinate in the contiguous United States or Australia, 1 to 5 days, aggregated per UTC day from the GFS hourly series. Refreshes every 60 minutes or on a new model cycle.","operationId":"weather_forecast_daily","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"example":-33.87,"title":"Lat"},"example":-33.87},{"name":"lon","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"example":151.21,"title":"Lon"},"example":151.21},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":5,"minimum":1,"example":3,"default":3,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.005","x-price":{"price_micro":5000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"weather_forecast_daily","x-cadence":"Refreshes every 60 minutes or on a new model cycle.","x-cache-ttl-s":1800}},"/weather/api/v1/stations/near":{"get":{"tags":["Weather alerts and forecasts"],"summary":"Reporting stations near a point","description":"METAR reporting stations within a radius of a coordinate in the United States or Australia, nearest first. Refreshes every 24 hours.","operationId":"weather_stations_near","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90,"minimum":-90,"example":-33.87,"title":"Lat"},"example":-33.87},{"name":"lon","in":"query","required":true,"schema":{"type":"number","maximum":180,"minimum":-180,"example":151.21,"title":"Lon"},"example":151.21},{"name":"radius_km","in":"query","required":false,"schema":{"type":"number","maximum":500,"exclusiveMinimum":0,"example":50,"default":50,"title":"Radius Km"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.001","x-price":{"price_micro":1000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"weather_stations_near","x-cadence":"Refreshes every 24 hours."}},"/news/api/v1/entities":{"get":{"tags":["News signals and trends"],"summary":"Tracked entities","description":"Organisations, tickers, crypto assets, central banks, governments and topics we score, with ids, aliases and 30-day baselines. Filter by text or kind. Refreshes every 24 hours.","operationId":"news_search_entities","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Q","examples":["nvidia"]}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Kind","description":"org, ticker, crypto, central_bank, government, topic","examples":["ticker"]},"description":"org, ticker, crypto, central_bank, government, topic"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.005","x-price":{"price_micro":5000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"news_entities","x-cadence":"Refreshes every 24 hours."}},"/news/api/v1/sentiment/{entity}":{"get":{"tags":["News signals and trends"],"summary":"News sentiment and volume for an entity","description":"Mentions in the window, the 30-day baseline expectation, volume ratio and novelty in basis points, mention-weighted tone, tone change against the baseline and the top GDELT themes. Refreshes every 15 minutes.","operationId":"news_sentiment","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"entity","in":"path","required":true,"schema":{"type":"string","title":"Entity"},"example":"org_nvidia"},{"name":"window","in":"query","required":false,"schema":{"type":"string","description":"1h, 24h or 7d","example":"24h","default":"24h","title":"Window"},"description":"1h, 24h or 7d"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.01","x-price":{"price_micro":10000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"news_sentiment","x-cadence":"Refreshes every 15 minutes."}},"/news/api/v1/tickers/{symbol}/news-score":{"get":{"tags":["News signals and trends"],"summary":"News score for a ticker or crypto symbol","description":"The sentiment block for the entity behind a ticker (NVDA, JPM) or crypto asset symbol (BTC): mentions against baseline, volume ratio, novelty, tone and tone change, top themes. Refreshes every 15 minutes.","operationId":"news_ticker_score","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"},"example":"NVDA"},{"name":"window","in":"query","required":false,"schema":{"type":"string","example":"24h","default":"24h","title":"Window"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.01","x-price":{"price_micro":10000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"news_ticker_score","x-cadence":"Refreshes every 15 minutes."}},"/news/api/v1/entities/trending":{"get":{"tags":["News signals and trends"],"summary":"Entities with unusual news volume","description":"Entities ranked by novelty (volume over their 30-day baseline) in the window, with mentions and tone. Filter by kind. Refreshes every 15 minutes.","operationId":"news_trending","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"kind","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Kind","examples":["ticker"]}},{"name":"window","in":"query","required":false,"schema":{"type":"string","example":"24h","default":"24h","title":"Window"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.015","x-price":{"price_micro":15000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"news_trending","x-cadence":"Refreshes every 15 minutes."}},"/news/api/v1/events":{"get":{"tags":["News signals and trends"],"summary":"GDELT events","description":"CAMEO-coded events from the 15-minute export, newest first: actor codes and names, event code, Goldstein scale (milli), mentions, tone (bps), country and source URL. Filter by actor code, country or since. Refreshes every 15 minutes.","operationId":"events_news_api_v1_events_get","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"actor","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Actor","description":"CAMEO actor code or name, e.g. USA, CHN, GOV","examples":["USA"]},"description":"CAMEO actor code or name, e.g. USA, CHN, GOV"},{"name":"country","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Country","description":"ActionGeo country code","examples":["US"]},"description":"ActionGeo country code"},{"name":"since","in":"query","required":false,"schema":{"type":"string","format":"date-time","nullable":true,"title":"Since","examples":["2026-11-09T00:00:00"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.01","x-price":{"price_micro":10000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"news_events","x-cadence":"Refreshes every 15 minutes."}},"/news/api/v1/sentiment/{entity}/history":{"get":{"tags":["News signals and trends"],"summary":"Sentiment history (Pro)","description":"Mentions and tone per 15-minute window (last 90 days) or per day, newest first. Point in time by construction: a window holds only records GDELT published in it. Refreshes every 15 minutes.","operationId":"news_sentiment_history","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"entity","in":"path","required":true,"schema":{"type":"string","title":"Entity"},"example":"org_nvidia"},{"name":"interval","in":"query","required":false,"schema":{"type":"string","description":"15m or 1d","example":"1d","default":"1d","title":"Interval"},"description":"15m or 1d"},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date-time","nullable":true,"title":"From","examples":["2026-10-01T00:00:00"]}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date-time","nullable":true,"title":"To"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.02","x-price":{"price_micro":20000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"news_sentiment_history","x-cadence":"Refreshes every 15 minutes.","x-cache-ttl-s":1800}},"/news/api/v1/trending/people":{"get":{"tags":["News signals and trends"],"summary":"Trending public figures","description":"People with the biggest attention spike against their 30-day baseline: Wikipedia daily pageviews blended with news coverage, classified through Wikidata occupations into celebrity, politics, sport, business or other. Only people with a Wikipedia article and a Wikidata id are ever listed. Refreshes every 60 minutes.","operationId":"news_trending_people","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Category","description":"celebrity, politics, sport, business, other","examples":["celebrity"]},"description":"celebrity, politics, sport, business, other"},{"name":"window","in":"query","required":false,"schema":{"type":"string","example":"24h","default":"24h","title":"Window"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.015","x-price":{"price_micro":15000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"news_trending_people","x-cadence":"Refreshes every 60 minutes."}},"/news/api/v1/trending/topics":{"get":{"tags":["News signals and trends"],"summary":"Trending topics by region","description":"Top daily searches (approximate traffic and three headlines each, titles and links only) and trending Mastodon tags and shared links, ranked by attention. Regions US, AU, GB. Refreshes every 60 minutes.","operationId":"news_trending_topics","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"region","in":"query","required":false,"schema":{"type":"string","example":"US","default":"US","title":"Region"}},{"name":"window","in":"query","required":false,"schema":{"type":"string","example":"24h","default":"24h","title":"Window"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.015","x-price":{"price_micro":15000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"news_trending_topics","x-cadence":"Refreshes every 60 minutes."}},"/news/api/v1/top-stories":{"get":{"tags":["News signals and trends"],"summary":"Most-covered stories","description":"Up to 50 stories ranked by how many GDELT records cited the URL in the window: title, link, publisher domain, tone and the tracked entities named. Titles and links only, never article text. Refreshes every 15 minutes.","operationId":"news_top_stories","security":[{"ApiKeyAuth":[]},{}],"parameters":[{"name":"window","in":"query","required":false,"schema":{"type":"string","description":"1h, 6h or 24h","example":"6h","default":"6h","title":"Window"},"description":"1h, 6h or 24h"},{"name":"entity","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Entity","examples":["org_nvidia"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment required (x402). Body lists accepts[] with USDC amount, network and payTo."}},"x-price-usdc":"0.01","x-price":{"price_micro":10000,"asset":"USDC","network":"eip155:8453"},"x-payment":"x402","x-payment-route-id":"news_top_stories","x-cadence":"Refreshes every 15 minutes."}}},"components":{"schemas":{"APIKeyCreate":{"properties":{"email":{"type":"string","title":"Email","description":"Where this key belongs. Agents: your human's real address, else your own mailbox.","example":"owner@yourcompany.com"}},"type":"object","required":["email"],"title":"APIKeyCreate"},"AgentSubscribeRequest":{"properties":{"plan":{"type":"string","title":"Plan","description":"pass_1h, pass_1d or pass_7d","example":"pass_1d"}},"type":"object","required":["plan"],"title":"AgentSubscribeRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"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"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"},"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key"}}},"servers":[{"url":"https://agentdataapi.com"}],"tags":[{"name":"Meta","description":"Health, index and pricing. No key."},{"name":"Authentication","description":"Free keys and key management. One key covers every slice."},{"name":"Grid and energy data","description":"Wholesale power prices, grid demand, generation mix, carbon intensity and cheapest charging windows across NEM, GB, EU and US markets, plus EIA weekly petroleum stocks."},{"name":"Environmental sensors","description":"Air quality, river gauges, tides and earthquakes from open public sensor networks, one schema and nearest-station lookup."},{"name":"Weather alerts and forecasts","description":"Weather alerts, current observations and forecasts for the United States and Australia from public-domain sources."},{"name":"News signals and trends","description":"GDELT-derived sentiment and attention signals per entity and ticker, trending people and topics, and the most-covered stories."},{"name":"Payments","description":"x402 timed passes and invoices. No subscriptions."}]}