generated: '2026-07-15' method: generated source: openapi/spike-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: 39 by_action_class: acting: 17 connected: 22 by_consequence: write: 17 read: 22 human_in_the_loop_required: 0 operations: - path: /auth/hmac method: post operationId: authHmac 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/client_token method: post operationId: authClientToken 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/pkcs1 method: post operationId: authPkcs1 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: /applicationinfo method: get operationId: getApplicationInfo x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /userinfo method: get operationId: getUserInfo x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /userproperties method: get operationId: getUserProperties x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /providers/{provider_slug}/integration/init method: get operationId: initProviderIntegration x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /providers/{provider_slug}/integration/init_url method: get operationId: getProviderIntegrationInitUrl x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /providers/{provider_slug}/integration method: delete operationId: deleteProviderIntegration 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: /providers/{provider_slug}/integration/callback method: get operationId: providerIntegrationCallback x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /queries/provider_records method: get operationId: listProviderRecords x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /queries/provider_records/{record_id} method: get operationId: getProviderRecord x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /queries/provider_record method: post operationId: queryProviderRecordCompat 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: /queries/sleeps method: get operationId: listSleeps x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /queries/sleeps/{sleep_id} method: get operationId: getSleep x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /queries/workouts method: get operationId: listWorkouts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /queries/workouts/{workout_id} method: get operationId: getWorkout x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /queries/timeseries method: get operationId: queryTimeSeries x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /queries/timeseries/samples method: get operationId: queryTimeSeriesSamples x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /queries/timeseries/split method: get operationId: queryTimeSeriesSplit x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /queries/statistics/daily method: get operationId: queryStatisticsDaily x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /queries/statistics/interval method: get operationId: queryStatisticsInterval x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /queries/statistics/interpolation method: get operationId: queryStatisticsInterpolation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nutrition_records method: get operationId: listNutritionRecords x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nutrition_records/image method: post operationId: analyzeNutritionImage 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: /nutrition_records/ingredients/label method: post operationId: analyzeNutritionLabel 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: /nutrition_records/text method: post operationId: analyzeNutritionText 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: /nutrition_records/manual method: post operationId: createManualNutritionRecord 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: /nutrition_records/{nutrition_record_id} method: get operationId: getNutritionRecord x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /nutrition_records/{nutrition_record_id} method: patch operationId: modifyNutritionRecord 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: /nutrition_records/{nutrition_record_id} method: put operationId: replaceNutritionRecord 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: /nutrition_records/{nutrition_record_id} method: delete operationId: deleteNutritionRecord 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: /lab_reports method: get operationId: listLabReports x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /lab_reports method: post operationId: uploadLabReport 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: /lab_reports/process method: post operationId: processLabReport 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: /lab_reports/{lab_report_id} method: get operationId: getLabReport x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /providers/apple/push method: post operationId: pushAppleHealth 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: /providers/health_connect/push method: post operationId: pushHealthConnect 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: /providers/samsung_health_data/push/proto method: post operationId: pushSamsungHealth 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