OpenWeatherMap · Agentic Access

OpenWeatherMap Agentic Access

x-agentic-access generated

OpenWeatherMap exposes 42 API operations that an AI agent could call, of which 9 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.

By consequence: 33 read and 9 write.

Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.

WeatherForecastClimateAir PollutionAir QualitySolarGeocodingHistoryMapsRoad RiskPublic APIs
Operations: 42 Acting: 9 Human-in-the-loop: 0 Method: generated

By consequence

read 33 write 9

Source

Agentic Access

Raw ↑
generated: '2026-07-15'
method: generated
source: openapi/openweathermap-accumulated-parameters-openapi.yml, openapi/openweathermap-air-pollution-openapi.yml,
  openapi/openweathermap-current-weather-openapi.yml, openapi/openweathermap-forecast-openapi.yml,
  openapi/openweathermap-geocoding-openapi.yml, openapi/openweathermap-history-openapi.yml,
  openapi/openweathermap-one-call-openapi.yml, openapi/openweathermap-road-risk-openapi.yml,
  openapi/openweathermap-solar-openapi.yml, openapi/openweathermap-statistical-weather-openapi.yml,
  openapi/openweathermap-weather-maps-openapi.yml, openapi/openweathermap-weather-stations-openapi.yml
description: Recommended x-agentic-access execution contracts, classified heuristically from
  the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
  audience per deployment. See research/curity/agentic-governance/.
summary:
  operations: 42
  by_action_class:
    connected: 33
    acting: 9
  by_consequence:
    read: 33
    write: 9
  human_in_the_loop_required: 0
operations:
- path: /accumulated_temperature
  method: get
  operationId: getAccumulatedTemperature
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /accumulated_precipitation
  method: get
  operationId: getAccumulatedPrecipitation
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /air_pollution
  method: get
  operationId: getCurrentAirPollution
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /air_pollution/forecast
  method: get
  operationId: getAirPollutionForecast
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /air_pollution/history
  method: get
  operationId: getAirPollutionHistory
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /weather
  method: get
  operationId: getCurrentWeather
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /forecast
  method: get
  operationId: getForecastFiveDay
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /forecast/hourly
  method: get
  operationId: getForecastHourly
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /forecast/daily
  method: get
  operationId: getForecastDaily
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /forecast/climate
  method: get
  operationId: getForecastClimate
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /direct
  method: get
  operationId: getDirectGeocoding
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /zip
  method: get
  operationId: getZipGeocoding
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /reverse
  method: get
  operationId: getReverseGeocoding
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /history/city
  method: get
  operationId: getHistoricalWeatherCity
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /current
  method: get
  operationId: getOneCallCurrent
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /timeline/1min
  method: get
  operationId: getOneCallTimelineOneMinute
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /timeline/15min
  method: get
  operationId: getOneCallTimelineFifteenMinute
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /timeline/1h
  method: get
  operationId: getOneCallTimelineHour
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /timeline/1day
  method: get
  operationId: getOneCallTimelineDay
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /alert/{alert_id}
  method: get
  operationId: getOneCallAlert
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /data/2.5/roadrisk
  method: post
  operationId: postRoadRisk
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /solar/interval_data
  method: get
  operationId: getSolarIrradianceIntervalData
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /locations
  method: get
  operationId: listSolarLocations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /locations
  method: post
  operationId: createSolarLocation
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /location/{location_id}
  method: get
  operationId: getSolarLocation
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /location/{location_id}
  method: delete
  operationId: deleteSolarLocation
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /location/{location_id}/panels
  method: get
  operationId: listSolarPanels
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /location/{location_id}/panels
  method: post
  operationId: createSolarPanel
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /panel/{panel_id}
  method: get
  operationId: getSolarPanel
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /panel/{panel_id}
  method: delete
  operationId: deleteSolarPanel
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /location/{location_id}/interval_data
  method: get
  operationId: getSolarPanelIntervalData
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /aggregated/year
  method: get
  operationId: getStatisticalAggregatedYear
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /aggregated/month
  method: get
  operationId: getStatisticalAggregatedMonth
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /aggregated/day
  method: get
  operationId: getStatisticalAggregatedDay
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /map/{layer}/{z}/{x}/{y}.png
  method: get
  operationId: getWeatherMapTile
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /stations
  method: get
  operationId: listStations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /stations
  method: post
  operationId: createStation
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /stations/{station_id}
  method: get
  operationId: getStation
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /stations/{station_id}
  method: put
  operationId: updateStation
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /stations/{station_id}
  method: delete
  operationId: deleteStation
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /measurements
  method: get
  operationId: getMeasurements
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /measurements
  method: post
  operationId: postMeasurements
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required