generated: '2026-10-14' method: generated source: openapi/centaur-labs-authorization-api-openapi.yml, openapi/centaur-labs-ingest-api-openapi.yml, openapi/centaur-labs-label-apis-openapi.yml, openapi/centaur-labs-public-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: 76 by_action_class: acting: 51 connected: 25 by_consequence: write: 46 read: 25 safety-critical: 3 physical: 2 human_in_the_loop_required: 3 operations: - path: /auth/public/v1/login method: post operationId: login_auth_public_v1_login_post 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: /auth/public/v1/logout method: post operationId: logout_auth_public_v1_logout_post 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: /auth/public/v1/refreshToken method: post operationId: refresh_token_auth_public_v1_refreshToken_post 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: /auth/public/v1/testToken method: post operationId: test_token_auth_public_v1_testToken_post 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: /auth/public/v1/version method: get operationId: version_auth_public_v1_version_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /answers/public/v1/add method: post operationId: handler_add_answer_legacy_answers_public_v1_add_post 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: /answers/public/v1/delete method: delete operationId: handler_delete_answer_legacy_answers_public_v1_delete_delete 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: /answers/public/v1/update method: patch operationId: update_label_classes_answers_public_v1_update_patch 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: /assets/public/v1/add method: post operationId: shared_add_asset_override_assets_public_v1_add_post 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: /assets/public/v1/get method: get operationId: shared_get_asset_assets_public_v1_get_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /assets/public/v1/list method: get operationId: public_list_assets_assets_public_v1_list_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /assets/public/v1/listSeries method: post operationId: shared_list_series_assets_public_v1_listSeries_post 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: /assets/public/v2/list method: post operationId: shared_list_assets_v2_assets_public_v2_list_post 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: /cases/custom/v1/update method: patch operationId: update_problem_cases_custom_v1_update_patch 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: /cases/goldStandards/public/v1/set method: patch operationId: set_gold_standards_override_cases_goldStandards_public_v1_set_patch 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: /cases/goldStandards/public/v1/unset method: delete operationId: unset_gs_from_problems_cases_goldStandards_public_v1_unset_delete 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: /cases/prelabels/public/v1/set method: put operationId: handler_set_prelabels_override_cases_prelabels_public_v1_set_put 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: /cases/prelabels/public/v1/unset method: delete operationId: handler_unset_prelabels_from_problems_cases_prelabels_public_v1_unset_delete 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: /cases/public/v1/addImageFromFile method: post operationId: add_asset_and_case_from_file_cases_public_v1_addImageFromFile_post 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: /cases/public/v1/delete method: delete operationId: delete_case_cases_public_v1_delete_delete 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: /cases/public/v1/duplicate method: post operationId: handler_duplicate_case_cases_public_v1_duplicate_post 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: /imports/public/api/v1/version method: get operationId: get_version_imports_public_api_v1_version_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /imports/public/v1/add method: post operationId: add_import_imports_public_v1_add_post 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: /imports/public/v1/addAssetsFromURLs method: post operationId: add_assets_from_urls_imports_public_v1_addAssetsFromURLs_post 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: /imports/public/v1/delete method: delete operationId: import_delete_imports_public_v1_delete_delete 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: /imports/public/v1/get method: get operationId: get_import_public_imports_public_v1_get_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /imports/public/v1/list method: get operationId: list_import_imports_public_v1_list_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /imports/public/v1/policy/get method: get operationId: get_import_policy_imports_public_v1_policy_get_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /imports/public/v1/validateAccess method: get operationId: validate_access_imports_public_v1_validateAccess_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /labelClasses/public/v1/add method: post operationId: handler_add_answer_labelClasses_public_v1_add_post 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: /labelClasses/public/v1/delete method: delete operationId: handler_delete_answer_labelClasses_public_v1_delete_delete 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: /labelClasses/public/v1/groups method: post operationId: handler_add_label_class_group_labelClasses_public_v1_groups_post 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: /labelClasses/public/v1/groups method: get operationId: handler_list_label_class_groups_labelClasses_public_v1_groups_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /labelClasses/public/v1/groups/reorder method: put operationId: handler_reorder_label_class_groups_labelClasses_public_v1_groups_reorder_put x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /labelClasses/public/v1/groups/{label_class_group_id} method: delete operationId: handler_delete_label_class_group_labelClasses_public_v1_groups__label_class_group_id__delete 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: /labelClasses/public/v1/groups/{label_class_group_id} method: patch operationId: handler_update_label_class_group_labelClasses_public_v1_groups__label_class_group_id__patch 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: /labelClasses/public/v1/groups/{label_class_group_id} method: get operationId: handler_get_label_class_group_labelClasses_public_v1_groups__label_class_group_id__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /labelClasses/public/v1/groups/{label_class_group_id}/answers method: post operationId: handler_add_existing_answers_to_label_class_group_labelClasses_public_v1_groups__label_class_group_id__answers_post 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: /labelClasses/public/v1/groups/{label_class_group_id}/answers method: delete operationId: handler_delete_answers_from_label_class_group_labelClasses_public_v1_groups__label_class_group_id__answers_delete 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: /labelClasses/public/v1/reorder method: put operationId: handler_reorder_answers_labelClasses_public_v1_reorder_put x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /labelClasses/public/v1/update method: patch operationId: update_label_classes_labelClasses_public_v1_update_patch 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: /manifests/public/v1/add method: post operationId: add_files_manifest_manifests_public_v1_add_post 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: /manifests/public/v1/get method: get operationId: get_manifest_manifests_public_v1_get_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/public/v1/add method: post operationId: create_project_public_projects_public_v1_add_post 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: /projects/public/v1/delete method: delete operationId: delete_project_projects_public_v1_delete_delete 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: /projects/public/v1/get method: get operationId: get_project_projects_public_v1_get_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/public/v1/list method: get operationId: list_projects_projects_public_v1_list_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/public/v1/set method: patch operationId: update_project_public_projects_public_v1_set_patch 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: /tags/public/v1/add method: post operationId: public_add_tag_tags_public_v1_add_post 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: /tags/public/v1/asset/add method: post operationId: public_add_asset_tag_tags_public_v1_asset_add_post 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: /tags/public/v1/asset/delete method: delete operationId: public_remove_asset_tag_tags_public_v1_asset_delete_delete 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: /tags/public/v1/asset/list method: get operationId: public_list_asset_tags_tags_public_v1_asset_list_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tags/public/v1/delete method: delete operationId: public_remove_tag_tags_public_v1_delete_delete 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: /tags/public/v1/list method: get operationId: public_list_tags_tags_public_v1_list_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tasks/assets/public/v1/add method: post operationId: add_asset_to_task_tasks_assets_public_v1_add_post 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: /tasks/goldStandards/public/v1/unset method: delete operationId: unset_gs_from_task_tasks_goldStandards_public_v1_unset_delete 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: /tasks/imports/public/v1/add method: post operationId: add_imports_to_task_public_tasks_imports_public_v1_add_post 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: /tasks/prelabels/public/v1/unset method: delete operationId: handler_unset_prelabels_from_task_tasks_prelabels_public_v1_unset_delete 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: /tasks/public/v1/add method: post operationId: task_add_public_tasks_public_v1_add_post 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: /tasks/public/v1/duplicate method: post operationId: task_duplicate_tasks_public_v1_duplicate_post 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: /tasks/public/v1/get method: get operationId: task_get_tasks_public_v1_get_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tasks/public/v1/instructions method: post operationId: task_set_instructions_tasks_public_v1_instructions_post 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: /tasks/public/v1/list method: get operationId: task_list_tasks_public_v1_list_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /tasks/public/v1/set method: patch operationId: task_update_public_tasks_public_v1_set_patch 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: /tasks/public/v2/add method: post operationId: task_add_public_tasks_public_v2_add_post 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: /reads/public/v1/lookup method: post 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: /reads/public/v1/version method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /results/public/v1/get method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /results/public/v1/list method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /results/public/v1/version method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /results/public/v2/get method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /results/public/v2/getResultsArchiveUrl method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /results/public/v2/list method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /results/public/v2/version method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /masks/public/v1/commit method: post operationId: public_commit_masks_route_masks_public_v1_commit_post 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: /masks/public/v1/generate-presigned-urls method: post operationId: public_generate_presigned_urls_route_masks_public_v1_generate_presigned_urls_post 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