generated: '2026-07-15' method: generated source: openapi/fastdol-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: 48 by_action_class: connected: 31 acting: 17 by_consequence: read: 31 write: 15 safety-critical: 2 human_in_the_loop_required: 2 operations: - path: /v1/employers method: get operationId: search_employers_v1_employers_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/employers/parent method: get operationId: get_parent_company_v1_employers_parent_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/employers/ein/{ein} method: get operationId: get_employer_by_ein_v1_employers_ein__ein__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/employers/{employer_id} method: get operationId: get_employer_v1_employers__employer_id__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/employers/{employer_id}/inspections method: get operationId: get_inspections_v1_employers__employer_id__inspections_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/employers/{employer_id}/severe-injuries method: get operationId: get_severe_injuries_v1_employers__employer_id__severe_injuries_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/employers/{employer_id}/whd-cases method: get operationId: get_whd_cases_v1_employers__employer_id__whd_cases_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/employers/{employer_id}/osha-accidents method: get operationId: get_osha_accidents_v1_employers__employer_id__osha_accidents_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/employers/{employer_id}/sec-enforcement method: get operationId: get_sec_enforcement_v1_employers__employer_id__sec_enforcement_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/employers/{employer_id}/peers method: get operationId: get_peers_v1_employers__employer_id__peers_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/inspections/{activity_nr}/violations method: get operationId: get_violations_v1_inspections__activity_nr__violations_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/employers/batch method: post operationId: batch_lookup_v1_employers_batch_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: /v1/employers/{employer_id}/risk-history method: get operationId: get_risk_history_v1_employers__employer_id__risk_history_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/employers/{employer_id}/feedback method: post operationId: submit_feedback_v1_employers__employer_id__feedback_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: /v1/industries/naics-codes method: get operationId: list_naics_codes_v1_industries_naics_codes_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/industries/{naics4} method: get operationId: get_industry_v1_industries__naics4__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/sitemap/employers method: get operationId: sitemap_employers_v1_sitemap_employers_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /auth/signup method: post operationId: signup_auth_signup_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/verify method: post operationId: verify_email_auth_verify_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/login method: post operationId: login_auth_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/logout method: post operationId: logout_auth_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/me method: get operationId: get_me_auth_me_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /auth/forgot-password method: post operationId: forgot_password_auth_forgot_password_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/reset-password method: post operationId: reset_password_auth_reset_password_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: /dashboard/plan method: get operationId: get_plan_dashboard_plan_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /dashboard/keys method: get operationId: list_keys_dashboard_keys_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /dashboard/keys method: post operationId: create_key_dashboard_keys_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: /dashboard/keys/{key_id}/rotate method: post operationId: rotate_key_dashboard_keys__key_id__rotate_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: /dashboard/keys/{key_id} method: delete operationId: revoke_key_dashboard_keys__key_id__delete 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: /dashboard/account method: delete operationId: delete_account_dashboard_account_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: /webhooks/stripe method: post operationId: stripe_webhook_tombstone_webhooks_stripe_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: /v1/employers/upload-csv method: post operationId: upload_csv_v1_employers_upload_csv_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: /v1/stats/state/{code} method: get operationId: state_stats_v1_stats_state__code__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/stats/industry/{naics} method: get operationId: industry_stats_v1_stats_industry__naics__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/stats/industries method: get operationId: industries_index_v1_stats_industries_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/stats/nursing-home/{ccn} method: get operationId: nursing_home_detail_v1_stats_nursing_home__ccn__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/stats/nursing-homes/{state_code} method: get operationId: nursing_homes_by_state_v1_stats_nursing_homes__state_code__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/stats/nursing-homes method: get operationId: nursing_homes_index_v1_stats_nursing_homes_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/stats/states method: get operationId: states_index_v1_stats_states_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/export method: post operationId: create_export_v1_export_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: /v1/export/{job_id} method: get operationId: get_export_v1_export__job_id__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/export/{job_id}/download method: get operationId: download_export_v1_export__job_id__download_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/usage/lookup method: post operationId: log_lookup_v1_usage_lookup_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: /v1/usage/pdf-report-claim method: post operationId: claim_pdf_report_v1_usage_pdf_report_claim_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: /v1/usage method: get operationId: get_usage_v1_usage_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/health method: get operationId: health_v1_health_head x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/health method: head operationId: health_v1_health_head x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/health/detail method: get operationId: health_detail_v1_health_detail_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none