generated: '2026-07-15' method: generated source: openapi/radio-browser-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: 29 by_action_class: connected: 28 acting: 1 by_consequence: read: 28 write: 1 human_in_the_loop_required: 0 operations: - path: /json/stations method: get operationId: listStations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/stations/search method: get operationId: searchStations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/stations/byuuid method: get operationId: getStationsByUuid x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/stations/byname/{searchterm} method: get operationId: getStationsByName x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/stations/bycountry/{searchterm} method: get operationId: getStationsByCountry x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/stations/bycountrycodeexact/{searchterm} method: get operationId: getStationsByCountryCode x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/stations/bylanguage/{searchterm} method: get operationId: getStationsByLanguage x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/stations/bytag/{searchterm} method: get operationId: getStationsByTag x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/stations/bycodec/{searchterm} method: get operationId: getStationsByCodec x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/stations/byurl method: get operationId: getStationsByUrl x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/stations/topclick method: get operationId: getTopClickStations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/stations/topvote method: get operationId: getTopVoteStations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/stations/lastclick method: get operationId: getLastClickStations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/stations/lastchange method: get operationId: getLastChangeStations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/stations/broken method: get operationId: getBrokenStations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/countries method: get operationId: listCountries x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/countrycodes method: get operationId: listCountryCodes x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/states method: get operationId: listStates x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/languages method: get operationId: listLanguages x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/tags method: get operationId: listTags x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/codecs method: get operationId: listCodecs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/url/{stationuuid} method: get operationId: clickStation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/vote/{stationuuid} method: get operationId: voteStation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/add method: post operationId: addStation 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: /json/stats method: get operationId: getStats x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/servers method: get operationId: listServers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/config method: get operationId: getConfig x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/checks method: get operationId: listChecks x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /json/clicks method: get operationId: listClicks x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none