generated: '2026-07-19' method: generated source: openapi/gospotcheck-external-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: 53 by_action_class: connected: 26 acting: 27 by_consequence: read: 26 write: 25 safety-critical: 2 human_in_the_loop_required: 2 operations: - path: /external/v1/places method: get operationId: listPlaces x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/places method: post operationId: createPlaces 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: /external/v1/places/{id} method: get operationId: getPlace x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/places/{id} method: put operationId: updatePlace 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: /external/v1/places/{id} method: delete operationId: disablePlace x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /external/v1/place_groups method: get operationId: listPlaceGroups x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/place_groups method: post operationId: createPlaceGroup 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: /external/v1/place_groups/{id} method: get operationId: getPlaceGroup x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/place_groups/{id} method: put operationId: updatePlaceGroup 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: /external/v1/place_groups/{id} method: delete operationId: deletePlaceGroup 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: /external/v1/place_groups/{id}/add_places method: put operationId: addPlacesToPlaceGroup x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /external/v1/place_groups/{id}/remove_places method: put operationId: removePlacesFromPlaceGroup 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: /external/v1/users method: get operationId: listUsers x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/users method: post operationId: createUsers 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: /external/v1/users/me method: get operationId: getCurrentUser x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/users/{id} method: get operationId: getUser x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/users/{id} method: put operationId: updateUser 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: /external/v1/users/{id}/permissions method: get operationId: getUserPermissions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/users/{id}/permissions method: put operationId: updateUserPermissions 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: /external/v1/teams method: get operationId: listTeams x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/teams method: post operationId: createTeam 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: /external/v1/teams/{id} method: get operationId: getTeam x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/teams/{id} method: put operationId: updateTeam 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: /external/v1/teams/{id} method: delete operationId: deleteTeam 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: /external/v1/teams/{id}/add_users method: put operationId: addUsersToTeam 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: /external/v1/teams/{id}/remove_users method: put operationId: removeUsersFromTeam 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: /external/v1/missions method: get operationId: listMissions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/missions method: post operationId: createMission 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: /external/v1/missions/{id} method: get operationId: getMission x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/missions/{id} method: put operationId: updateMission 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: /external/v1/missions/{mission_id}/tasks method: get operationId: listMissionTasks x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/missions/{mission_id}/tasks method: post operationId: createMissionTasks 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: /external/v1/missions/{mission_id}/tasks/{id} method: put operationId: updateMissionTask 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: /external/v1/mission_responses method: get operationId: listMissionResponses x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/mission_responses/{id} method: get operationId: getMissionResponse x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/task_responses method: get operationId: listTaskResponses x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/task_responses/{id} method: get operationId: getTaskResponse x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/user_place_assignments method: get operationId: listUserPlaceAssignments x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/user_place_assignments method: post operationId: createUserPlaceAssignments 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: /external/v1/user_place_assignments/{id} method: get operationId: getUserPlaceAssignment x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/user_place_assignments/{id} method: delete operationId: deleteUserPlaceAssignment 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: /external/v1/custom_views method: get operationId: listCustomViews x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/custom_views/{id} method: get operationId: getCustomView x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/custom_views/{id}/metadata method: get operationId: getCustomViewMetadata x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/catalogs method: get operationId: listCatalogs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/catalogs method: post operationId: createCatalog 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: /external/v1/catalogs/{id} method: get operationId: getCatalog x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/catalogs/{id} method: put operationId: updateCatalog 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: /external/v1/catalogs/{catalog_id}/items method: get operationId: listCatalogItems x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /external/v1/catalogs/{catalog_id}/items method: post operationId: createCatalogItems 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: /external/v1/catalogs/{catalog_id}/items/{id} method: put operationId: updateCatalogItem 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: /external/v1/catalogs/{catalog_id}/items/{id} method: delete operationId: deleteCatalogItem 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: /external/v1/async_jobs/csv_exports/{job_guid}/status method: get operationId: getAsyncCsvExportStatus x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none