Oura Ring · Agentic Access
Oura Ring Agentic Access
x-agentic-access
generated
Oura Ring exposes 75 API operations that an AI agent could call, of which 4 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: 71 read and 4 write.
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.
HealthWearablesSleepFitnessHeart RateReadinessSmart RingBiometrics
Operations: 75
Acting: 4
Human-in-the-loop: 0
Method: generated
By consequence
read 71
write 4
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/oura-oura-ring-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: 75
by_action_class:
connected: 71
acting: 4
by_consequence:
read: 71
write: 4
human_in_the_loop_required: 0
operations:
- path: /v2/usercollection/personal_info
method: get
operationId: Single_Personal_Info_Document_v2_usercollection_personal_info_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/tag
method: get
operationId: Multiple_tag_Documents_v2_usercollection_tag_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/tag
method: get
operationId: Sandbox___Multiple_tag_Documents_v2_sandbox_usercollection_tag_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/enhanced_tag
method: get
operationId: Multiple_enhanced_tag_Documents_v2_usercollection_enhanced_tag_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/enhanced_tag
method: get
operationId: Sandbox___Multiple_enhanced_tag_Documents_v2_sandbox_usercollection_enhanced_tag_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/workout
method: get
operationId: Multiple_workout_Documents_v2_usercollection_workout_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/workout
method: get
operationId: Sandbox___Multiple_workout_Documents_v2_sandbox_usercollection_workout_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/session
method: get
operationId: Multiple_session_Documents_v2_usercollection_session_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/session
method: get
operationId: Sandbox___Multiple_session_Documents_v2_sandbox_usercollection_session_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/daily_activity
method: get
operationId: Multiple_daily_activity_Documents_v2_usercollection_daily_activity_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/daily_activity
method: get
operationId: Sandbox___Multiple_daily_activity_Documents_v2_sandbox_usercollection_daily_activity_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/daily_sleep
method: get
operationId: Multiple_daily_sleep_Documents_v2_usercollection_daily_sleep_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/daily_sleep
method: get
operationId: Sandbox___Multiple_daily_sleep_Documents_v2_sandbox_usercollection_daily_sleep_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/daily_spo2
method: get
operationId: Multiple_daily_spo2_Documents_v2_usercollection_daily_spo2_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/daily_spo2
method: get
operationId: Sandbox___Multiple_daily_spo2_Documents_v2_sandbox_usercollection_daily_spo2_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/daily_readiness
method: get
operationId: Multiple_daily_readiness_Documents_v2_usercollection_daily_readiness_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/daily_readiness
method: get
operationId: Sandbox___Multiple_daily_readiness_Documents_v2_sandbox_usercollection_daily_readiness_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/sleep
method: get
operationId: Multiple_sleep_Documents_v2_usercollection_sleep_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/sleep
method: get
operationId: Sandbox___Multiple_sleep_Documents_v2_sandbox_usercollection_sleep_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/sleep_time
method: get
operationId: Multiple_sleep_time_Documents_v2_usercollection_sleep_time_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/sleep_time
method: get
operationId: Sandbox___Multiple_sleep_time_Documents_v2_sandbox_usercollection_sleep_time_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/rest_mode_period
method: get
operationId: Multiple_rest_mode_period_Documents_v2_usercollection_rest_mode_period_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/rest_mode_period
method: get
operationId: Sandbox___Multiple_rest_mode_period_Documents_v2_sandbox_usercollection_rest_mode_period_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/ring_configuration
method: get
operationId: Multiple_ring_configuration_Documents_v2_usercollection_ring_configuration_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/ring_configuration
method: get
operationId: Sandbox___Multiple_ring_configuration_Documents_v2_sandbox_usercollection_ring_configuration_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/daily_stress
method: get
operationId: Multiple_daily_stress_Documents_v2_usercollection_daily_stress_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/daily_stress
method: get
operationId: Sandbox___Multiple_daily_stress_Documents_v2_sandbox_usercollection_daily_stress_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/daily_resilience
method: get
operationId: Multiple_daily_resilience_Documents_v2_usercollection_daily_resilience_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/daily_resilience
method: get
operationId: Sandbox___Multiple_daily_resilience_Documents_v2_sandbox_usercollection_daily_resilience_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/daily_cardiovascular_age
method: get
operationId: Multiple_daily_cardiovascular_age_Documents_v2_usercollection_daily_cardiovascular_age_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/daily_cardiovascular_age
method: get
operationId: Sandbox___Multiple_daily_cardiovascular_age_Documents_v2_sandbox_usercollection_daily_cardiovascular_age_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/vO2_max
method: get
operationId: Multiple_vO2_max_Documents_v2_usercollection_vO2_max_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/vO2_max
method: get
operationId: Sandbox___Multiple_vO2_max_Documents_v2_sandbox_usercollection_vO2_max_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/tag/{document_id}
method: get
operationId: Single_tag_Document_v2_usercollection_tag__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/tag/{document_id}
method: get
operationId: Sandbox___Single_tag_Document_v2_sandbox_usercollection_tag__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/enhanced_tag/{document_id}
method: get
operationId: Single_enhanced_tag_Document_v2_usercollection_enhanced_tag__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/enhanced_tag/{document_id}
method: get
operationId: Sandbox___Single_enhanced_tag_Document_v2_sandbox_usercollection_enhanced_tag__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/workout/{document_id}
method: get
operationId: Single_workout_Document_v2_usercollection_workout__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/workout/{document_id}
method: get
operationId: Sandbox___Single_workout_Document_v2_sandbox_usercollection_workout__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/session/{document_id}
method: get
operationId: Single_session_Document_v2_usercollection_session__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/session/{document_id}
method: get
operationId: Sandbox___Single_session_Document_v2_sandbox_usercollection_session__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/daily_activity/{document_id}
method: get
operationId: Single_daily_activity_Document_v2_usercollection_daily_activity__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/daily_activity/{document_id}
method: get
operationId: Sandbox___Single_daily_activity_Document_v2_sandbox_usercollection_daily_activity__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/daily_sleep/{document_id}
method: get
operationId: Single_daily_sleep_Document_v2_usercollection_daily_sleep__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/daily_sleep/{document_id}
method: get
operationId: Sandbox___Single_daily_sleep_Document_v2_sandbox_usercollection_daily_sleep__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/daily_spo2/{document_id}
method: get
operationId: Single_daily_spo2_Document_v2_usercollection_daily_spo2__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/daily_spo2/{document_id}
method: get
operationId: Sandbox___Single_daily_spo2_Document_v2_sandbox_usercollection_daily_spo2__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/daily_readiness/{document_id}
method: get
operationId: Single_daily_readiness_Document_v2_usercollection_daily_readiness__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/daily_readiness/{document_id}
method: get
operationId: Sandbox___Single_daily_readiness_Document_v2_sandbox_usercollection_daily_readiness__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/sleep/{document_id}
method: get
operationId: Single_sleep_Document_v2_usercollection_sleep__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/sleep/{document_id}
method: get
operationId: Sandbox___Single_sleep_Document_v2_sandbox_usercollection_sleep__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/sleep_time/{document_id}
method: get
operationId: Single_sleep_time_Document_v2_usercollection_sleep_time__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/sleep_time/{document_id}
method: get
operationId: Sandbox___Single_sleep_time_Document_v2_sandbox_usercollection_sleep_time__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/rest_mode_period/{document_id}
method: get
operationId: Single_rest_mode_period_Document_v2_usercollection_rest_mode_period__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/rest_mode_period/{document_id}
method: get
operationId: Sandbox___Single_rest_mode_period_Document_v2_sandbox_usercollection_rest_mode_period__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/ring_configuration/{document_id}
method: get
operationId: Single_ring_configuration_Document_v2_usercollection_ring_configuration__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/ring_configuration/{document_id}
method: get
operationId: Sandbox___Single_ring_configuration_Document_v2_sandbox_usercollection_ring_configuration__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/daily_stress/{document_id}
method: get
operationId: Single_daily_stress_Document_v2_usercollection_daily_stress__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/daily_stress/{document_id}
method: get
operationId: Sandbox___Single_daily_stress_Document_v2_sandbox_usercollection_daily_stress__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/daily_resilience/{document_id}
method: get
operationId: Single_daily_resilience_Document_v2_usercollection_daily_resilience__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/daily_resilience/{document_id}
method: get
operationId: Sandbox___Single_daily_resilience_Document_v2_sandbox_usercollection_daily_resilience__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/daily_cardiovascular_age/{document_id}
method: get
operationId: Single_daily_cardiovascular_age_Document_v2_usercollection_daily_cardiovascular_age__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/daily_cardiovascular_age/{document_id}
method: get
operationId: Sandbox___Single_daily_cardiovascular_age_Document_v2_sandbox_usercollection_daily_cardiovascular_age__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/vO2_max/{document_id}
method: get
operationId: Single_vO2_max_Document_v2_usercollection_vO2_max__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/vO2_max/{document_id}
method: get
operationId: Sandbox___Single_vO2_max_Document_v2_sandbox_usercollection_vO2_max__document_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/webhook/subscription
method: get
operationId: list_webhook_subscriptions_v2_webhook_subscription_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/webhook/subscription
method: post
operationId: create_webhook_subscription_v2_webhook_subscription_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: /v2/webhook/subscription/{id}
method: get
operationId: get_webhook_subscription_v2_webhook_subscription__id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/webhook/subscription/{id}
method: put
operationId: update_webhook_subscription_v2_webhook_subscription__id__put
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: /v2/webhook/subscription/{id}
method: delete
operationId: delete_webhook_subscription_v2_webhook_subscription__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: /v2/webhook/subscription/renew/{id}
method: put
operationId: renew_webhook_subscription_v2_webhook_subscription_renew__id__put
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: /v2/usercollection/heartrate
method: get
operationId: Multiple_heartrate_Documents_v2_usercollection_heartrate_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/heartrate
method: get
operationId: Sandbox___Multiple_heartrate_Documents_v2_sandbox_usercollection_heartrate_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/usercollection/ring_battery_level
method: get
operationId: Multiple_ring_battery_level_Documents_v2_usercollection_ring_battery_level_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/sandbox/usercollection/ring_battery_level
method: get
operationId: Sandbox___Multiple_ring_battery_level_Documents_v2_sandbox_usercollection_ring_battery_level_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none