generated: '2026-08-09' method: generated source: openapi/shipfinder-ais-data-api-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: 40 by_action_class: connected: 29 acting: 11 by_consequence: read: 29 write: 11 human_in_the_loop_required: 0 operations: - path: /v1/AIS/FleetPosition method: get operationId: getFleetPosition x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/AIS/VesselFlagInfo method: get operationId: getVesselFlagInfo x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/AIS/VesselPositionMulti method: get operationId: getVesselPositionMulti x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/AIS/VesselPositionSingle method: get operationId: getVesselPositionSingle x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/AIS/VesselSearch method: get operationId: getVesselSearch x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/AIS/VesselsInZone method: get operationId: getVesselsInZone x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/AIS/VesselsNearby method: get operationId: getVesselsNearby x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/Event/AddFleet method: post operationId: postAddFleet 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: /v1/Event/AddGeofence method: post operationId: postAddGeofence 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: /v1/Event/AddVesselSpeedAlert method: post operationId: postAddVesselSpeedAlert 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: /v1/Event/AddVesselToFleet method: post operationId: postAddVesselToFleet 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: /v1/Event/DeleteFleet method: post operationId: postDeleteFleet 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: /v1/Event/DeleteFleetVessel method: post operationId: postDeleteFleetVessel 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: /v1/Event/DeleteGeofence method: delete operationId: deleteGeofence 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: /v1/Event/DeleteVesselSpeedAlert method: post operationId: postDeleteVesselSpeedAlert 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: /v1/Event/GetFleet method: get operationId: getFleet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/Event/GetGeofence method: get operationId: getGeofence x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/Event/UpdateFleetInfo method: post operationId: postUpdateFleetInfo 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: /v1/Event/UpdateFleetVessel method: post operationId: postUpdateFleetVessel 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: /v1/Event/UpdateGeofence method: post operationId: postUpdateGeofence 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: /v1/Event/VesselSpeedAlertList method: get operationId: getVesselSpeedAlertList x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/History/PortCallRecordsByPort method: get operationId: getPortCallRecordsByPort x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/History/PortCallRecordsByVessel method: get operationId: getPortCallRecordsByVessel x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/History/PortCallRecordsByVesselAtPort method: get operationId: getPortCallRecordsByVesselAtPort x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/History/VesselCurrentPortCall method: get operationId: getVesselCurrentPortCall x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/History/VesselHistoryTrack method: get operationId: getVesselHistoryTrack x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/History/VesselStsEvents method: get operationId: getVesselStsEvents x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/Meteorology/CycloneInfo method: get operationId: getCycloneInfo x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/Meteorology/CyclonesList method: get operationId: getCyclonesList x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/Meteorology/MarineWeather method: get operationId: getMarineWeather x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/Meteorology/TideStationInfo method: get operationId: getTideStationInfo x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/Meteorology/TideStationList method: get operationId: getTideStationList x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/Prediction/ETA method: get operationId: getETA x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/Prediction/RoutePlanPointToPoint method: get operationId: getRoutePlanPointToPoint x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/Prediction/RoutePlanPortToPort method: get operationId: getRoutePlanPortToPort x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/Voyage/PortAnchoredVessels method: get operationId: getPortAnchoredVessels x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/Voyage/PortBerthedVessels method: get operationId: getPortBerthedVessels x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/Voyage/PortExpectedArrivals method: get operationId: getPortExpectedArrivals x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/Voyage/PortInfo method: get operationId: getPortInfo x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/Warning/NavigationalWarnings method: get operationId: getNavigationalWarnings x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none