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

Raw ↑
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