generated: '2026-07-15' method: generated source: openapi/octane-octane-rest-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: 101 by_action_class: connected: 46 acting: 55 by_consequence: read: 46 write: 45 physical: 10 human_in_the_loop_required: 0 operations: - path: /meters method: get operationId: metersGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /meters method: post operationId: metersPost 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: /meters/{meter_name} method: get operationId: metersMeterNameGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /meters/{meter_name} method: put operationId: metersMeterNamePut 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: /meters/{meter_name} method: delete operationId: metersMeterNameDelete 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: /meters/{meter_name}/archive method: post operationId: metersMeterNameArchivePost 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: /measurements method: post operationId: measurementsPost x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /measurements/multi method: post operationId: measurementsMultiPost x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /live_measurements method: get operationId: liveMeasurementsGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /customers method: get operationId: customersGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /customers method: post operationId: customersPost 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: /customers/{customer_name} method: get operationId: customersCustomerNameGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /customers/{customer_name} method: delete operationId: customersCustomerNameDelete 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: /customers/{customer_name}/active_subscription method: get operationId: customersCustomerNameActiveSubscriptionGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /customers/{customer_name}/active_subscription method: post operationId: customersCustomerNameActiveSubscriptionPost 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: /customers/{customer_name}/billing_settings method: get operationId: customersCustomerNameBillingSettingsGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /customers/{customer_name}/billing_settings method: post operationId: customersCustomerNameBillingSettingsPost 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: /customers/{customer_name}/billing_settings method: put operationId: customersCustomerNameBillingSettingsPut 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: /customers/{customer_name}/billing_settings method: delete operationId: customersCustomerNameBillingSettingsDelete 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: /customers/{customer_name}/invoices method: get operationId: customersCustomerNameInvoicesGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /customers/{customer_name}/credit_balance method: get operationId: customersCustomerNameCreditBalanceGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /customers/{customer_name}/credit_top_off_plan method: get operationId: customersCustomerNameCreditTopOffPlanGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /customers/{customer_name}/credit_top_off_plan method: post operationId: customersCustomerNameCreditTopOffPlanPost 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: /customers/{customer_name}/credit_top_off_plan method: put operationId: customersCustomerNameCreditTopOffPlanPut 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: /customers/{customer_name}/credit_top_off_plan method: delete operationId: customersCustomerNameCreditTopOffPlanDelete 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: /customers/{customer_name}/adhoc_charges method: get operationId: customersCustomerNameAdhocChargesGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /customers/{customer_name}/adhoc_charges method: post operationId: customersCustomerNameAdhocChargesPost x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /customers/{customer_name}/adhoc_charges/{uuid} method: get operationId: customersCustomerNameAdhocChargesUuidGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /customers/{customer_name}/adhoc_charges/{uuid} method: delete operationId: customersCustomerNameAdhocChargesUuidDelete x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /customers/{customer_name}/discounts method: post operationId: customersCustomerNameDiscountsPost 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: /customers/{customer_name}/discounts method: delete operationId: customersCustomerNameDiscountsDelete 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: /customers/{customer_name}/features/{feature_name} method: get operationId: customersCustomerNameFeaturesFeatureNameGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /customers/{customer_name}/mappings method: get operationId: customersCustomerNameMappingsGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /customers/{customer_name}/mappings method: post operationId: customersCustomerNameMappingsPost 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: /customers/{customer_name}/accrued_revenue method: get operationId: customersCustomerNameAccruedRevenueGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /price_plans method: get operationId: pricePlansGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /price_plans method: post operationId: pricePlansPost 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: /price_plans/paginate method: get operationId: pricePlansPaginateGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /price_plans/self_serve method: get operationId: pricePlansSelfServeGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /price_plans/{price_plan_name} method: get operationId: pricePlansPricePlanNameGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /price_plans/{price_plan_name} method: put operationId: pricePlansPricePlanNamePut 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: /price_plans/{price_plan_name} method: delete operationId: pricePlansPricePlanNameDelete 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: /price_plans/{price_plan_name}/archive method: post operationId: pricePlansPricePlanNameArchivePost 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: /price_plans/{price_plan_name}/{tag} method: get operationId: pricePlansPricePlanNameTagGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /price_plans/metered_components/{uuid}/update_limits method: post operationId: pricePlansMeteredComponentsUuidUpdateLimitsPost 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: /invoices method: get operationId: invoicesGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /invoices/{invoice_uuid} method: get operationId: invoicesInvoiceUuidGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /invoices/{invoice_uuid} method: delete operationId: invoicesInvoiceUuidDelete x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /invoices/{invoice_uuid}/retries method: post operationId: invoicesInvoiceUuidRetriesPost x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /invoices/{invoice_uuid}/status method: post operationId: invoicesInvoiceUuidStatusPost x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /invoices/{invoice_uuid_token}/pdf method: get operationId: invoicesInvoiceUuidTokenPdfGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /coupons method: get operationId: couponsGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /coupons method: post operationId: couponsPost 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: /coupons/{coupon_name} method: get operationId: couponsCouponNameGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /coupons/{coupon_name} method: delete operationId: couponsCouponNameDelete 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: /coupons/apply_coupon method: post operationId: couponsApplyCouponPost 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: /credits/grant method: get operationId: creditsGrantGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /credits/grant method: post operationId: creditsGrantPost 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: /credits/grant/{grant_uuid}/grant method: post operationId: creditsGrantGrantUuidGrantPost 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: /credits/grant/{grant_uuid}/void method: post operationId: creditsGrantGrantUuidVoidPost 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: /credits/ledger/{customer_name} method: get operationId: creditsLedgerCustomerNameGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /credits/ledger/{customer_name}/{as_of_str} method: get operationId: creditsLedgerCustomerNameAsOfStrGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /webhooks method: get operationId: webhooksGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /webhooks method: post operationId: webhooksPost 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/{uuid} method: get operationId: webhooksUuidGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /webhooks/{uuid} method: delete operationId: webhooksUuidDelete 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: /features method: get operationId: featuresGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /billing_settings method: get operationId: billingSettingsGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /billing_settings method: post operationId: billingSettingsPost 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: /billing_settings method: put operationId: billingSettingsPut 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: /billing_settings method: delete operationId: billingSettingsDelete 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: /payment_gateway_credentials method: get operationId: paymentGatewayCredentialsGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /payment_gateway_credentials method: post operationId: paymentGatewayCredentialsPost x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /customer_portal_settings method: get operationId: customerPortalSettingsGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /customer_portal_settings method: post operationId: customerPortalSettingsPost 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: /ecp/active_subscription method: get operationId: ecpActiveSubscriptionGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /ecp/active_subscription method: post operationId: ecpActiveSubscriptionPost 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: /ecp/active_subscription/add_ons method: post operationId: ecpActiveSubscriptionAddOnsPost 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: /ecp/contact_info method: get operationId: ecpContactInfoGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /ecp/contact_info method: put operationId: ecpContactInfoPut 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: /ecp/credit/available_balance method: get operationId: ecpCreditAvailableBalanceGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /ecp/credit_grants method: get operationId: ecpCreditGrantsGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /ecp/credit/ledger method: get operationId: ecpCreditLedgerGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /ecp/credit/purchase method: post operationId: ecpCreditPurchasePost x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /ecp/credit_top_off_plan method: get operationId: ecpCreditTopOffPlanGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /self_serve_settings method: get operationId: selfServeSettingsGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /self_serve_settings method: post operationId: selfServeSettingsPost 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: /self_serve_settings method: put operationId: selfServeSettingsPut 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: /self_serve_settings/customization method: get operationId: selfServeSettingsCustomizationGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /self_serve_settings/customization method: post operationId: selfServeSettingsCustomizationPost 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: /self_serve_settings/customization method: put operationId: selfServeSettingsCustomizationPut 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: /admin/api_key/roll method: post operationId: adminApiKeyRollPost 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: /refund method: post operationId: refundPost x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /recognized_revenue method: post operationId: recognizedRevenuePost 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: /integration/tax/avalara/settings method: get operationId: integrationTaxAvalaraSettingsGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /integration/tax/avalara/settings method: post operationId: integrationTaxAvalaraSettingsPost 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: /integration/tax/avalara/settings method: put operationId: integrationTaxAvalaraSettingsPut 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: /integration/tax/avalara/credentials/valid method: post operationId: integrationTaxAvalaraCredentialsValidPost 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: /integration/tax/avalara/company method: get operationId: integrationTaxAvalaraCompanyGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /integration/tax/avalara/tax_code method: get operationId: integrationTaxAvalaraTaxCodeGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /integration/tax/avalara/entity_use_code method: get operationId: integrationTaxAvalaraEntityUseCodeGet x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none