Nebulock Agentic Access
Nebulock exposes 55 API operations that an AI agent could call, of which 33 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.
By consequence: 22 read, 32 write, and 1 safety-critical.
1 operation are classed safety-critical and should require human-in-the-loop approval at runtime.
Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.
By consequence
Highest-consequence actions
The physical and safety-critical operations an agent could invoke — the ones that most warrant scoped tokens, tight TTLs, and escalation. Full per-operation contracts are in the source below.
| Method | Path | Consequence | Human-in-loop |
|---|---|---|---|
| POST | /public/v2/hunts/{hunt_id}/directives/{directive_id}/stop | safety-critical | required |
Source
Agentic Access
generated: '2026-07-20'
method: generated
source: openapi/nebulock-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: 55
by_action_class:
connected: 22
acting: 33
by_consequence:
read: 22
write: 32
safety-critical: 1
human_in_the_loop_required: 1
operations:
- path: /api/v2/findings/{finding_id}
method: get
operationId: get_finding_with_details
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/findings/{finding_id}
method: patch
operationId: update_finding
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: /api/v2/findings
method: get
operationId: list_findings
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/findings/{finding_id}/comments
method: get
operationId: get_finding_comments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/findings/{finding_id}/comments
method: post
operationId: create_finding_comment
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: /public/v1/entities/actors
method: get
operationId: get_actors
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v1/entities/actors
method: post
operationId: create_actor
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: /public/v1/entities/actors/{actor_id}
method: get
operationId: get_actor
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v1/entities/actors/{actor_id}
method: patch
operationId: update_actor_description
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: /public/v1/entities/actors/populated
method: post
operationId: create_populated_actors
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: /public/v1/entities/actors/{actor_id}/update_search_index
method: patch
operationId: update_actor_search
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: /public/v1/entities/actors/{actor_id}/users/{user_id}
method: post
operationId: associate_user_with_actor
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: /public/v1/entities/actors/{actor_id}/users/{user_id}
method: patch
operationId: update_actor_user_api
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: /public/v1/entities/actors/{actor_id}/users/{user_id}
method: delete
operationId: unlink_user_from_actor
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: /public/v1/entities/actors/{actor_id}/hosts/{host_id}
method: delete
operationId: unlink_host_from_actor
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: /public/v1/entities/actors/{actor_id}/hosts/{host_id}
method: post
operationId: associate_host_with_actor
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: /public/v1/entities/actors/{actor_id}/hosts/{host_id}
method: patch
operationId: update_actor_host_api
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: /public/v1/entities/actors/{actor_id}/new_host
method: post
operationId: create_host_for_actor_api
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: /public/v1/entities/actors/{actor_id}/new_user
method: post
operationId: create_user_for_actor_api
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: /public/v1/entities/hosts/{host_id}
method: patch
operationId: update_host_record
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: /public/v1/entities/users
method: get
operationId: get_users
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v1/entities/users
method: post
operationId: create_users
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: /public/v1/entities/users/{user_id}
method: patch
operationId: update_user
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: /public/v1/entities/hosts
method: get
operationId: get_hosts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v1/entities/hosts
method: post
operationId: create_hosts
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: /public/v1/hunt_suggestions
method: post
operationId: generate_hunt_suggestions
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: /public/v1/hunt_suggestions
method: get
operationId: list_hunt_suggestions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v1/hunt_suggestions/jobs/{job_id}
method: get
operationId: get_hunt_suggestions_by_job
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v1/hunt_suggestions/{hunt_suggestion_id}
method: get
operationId: get_hunt_suggestion
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v1/hunt_agent_versions
method: get
operationId: get_hunt_agent_versions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v1/hunt_reports
method: get
operationId: list_hunt_reports
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v1/hunt_reports/{hunt_report_id}
method: get
operationId: get_hunt_report
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v1/hunt_reports/{hunt_report_id}/pdf
method: get
operationId: get_hunt_report_pdf
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v1/hunt_reports/{hunt_report_id}/retry
method: post
operationId: retry_hunt_report
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: /public/v2/hunts
method: get
operationId: list_hunts_v2
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v2/hunts
method: post
operationId: create_hunt_v2
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: /public/v2/hunts/{hunt_id}
method: get
operationId: get_hunt_v2
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v2/hunts/{hunt_id}
method: patch
operationId: update_hunt_v2
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: /public/v2/hunts/{hunt_id}/generate_report
method: patch
operationId: generate_hunt_report_v2
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: /public/v2/hunts/{hunt_id}/directives/{directive_id}
method: get
operationId: get_directive_v2
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v2/hunts/{hunt_id}/directives
method: post
operationId: add_directive_v2
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: /public/v2/hunts/{hunt_id}/directives/{directive_id}/retry
method: post
operationId: retry_directive_v2
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: /public/v2/hunts/{hunt_id}/directives/{directive_id}/stop
method: post
operationId: stop_directive_v2
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: /public/v2/hunt_reports/{hunt_report_id}/feedback
method: get
operationId: list_hunt_report_feedback_v2
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v2/hunt_reports/{hunt_report_id}/feedback
method: post
operationId: create_hunt_report_feedback_v2
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: /public/v1/rules/validate
method: post
operationId: validate_rule_public_api
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: /public/v1/rules
method: post
operationId: create_rule_public_api
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: /public/v1/rules
method: get
operationId: list_rules_public_api
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v1/rules/{rule_id}
method: get
operationId: get_rule_public_api
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v1/rules/{rule_id}
method: delete
operationId: delete_rule_public_api
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: /public/v1/rules/{rule_id}
method: patch
operationId: update_rule_public_api
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: /public/v1/rules/{rule_id}/test_sql_rule
method: post
operationId: test_sql_rule_public_api
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: /public/v1/rules/{rule_id}/runs
method: post
operationId: run_rule_scheduled_sase_public_api
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: /public/v1/rules/{rule_id}/runs
method: get
operationId: get_rule_runs_scheduled_sase_public_api
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/v1/rules/{rule_id}/runs/{rule_run_id}
method: get
operationId: get_rule_run_results_scheduled_sase_public_api
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none