Otter · Agentic Access

Otter Agentic Access

x-agentic-access generated

Otter exposes 80 API operations that an AI agent could call, of which 59 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: 21 read, 38 write, and 21 physical.

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.

RestaurantOrder ManagementDeliveryOnline OrderingMenu ManagementAnalytics
Operations: 80 Acting: 59 Human-in-the-loop: 0 Method: generated

By consequence

read 21 write 38 physical 21

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.

MethodPathConsequenceHuman-in-loop
POST /finance/v1/financial-invoices physical conditional
POST /inventories/v1/shipments physical conditional
POST /manager/loyalty/v1/{source}/rewards/refund physical conditional
POST /manager/order/v1/orders/order-created physical conditional
POST /manager/order/v1/sources/{source}/orders/{orderId}/cancel physical conditional
POST /manager/order/v1/sources/{source}/orders/{orderId}/close physical conditional
POST /manager/order/v1/sources/{source}/orders/{orderId}/confirm physical conditional
POST /manager/order/v1/sources/{source}/orders/{orderId}/create-packaging-component physical conditional
POST /manager/order/v1/sources/{source}/orders/{orderId}/fulfill physical conditional
PUT /manager/order/v1/sources/{source}/orders/{orderId}/items physical conditional
POST /manager/order/v1/sources/{source}/orders/{orderId}/prep-time physical conditional
POST /manager/order/v1/sources/{source}/orders/{orderId}/ready-to-pickup physical conditional
POST /v1/eater/order-history physical conditional
POST /v1/menus/current physical conditional
POST /v1/orders physical conditional
POST /v1/orders/past-orders physical conditional
PUT /v1/orders/{orderId} physical conditional
PUT /v1/orders/{orderId}/delivery physical conditional
PUT /v1/orders/{orderId}/payments physical conditional
POST /v1/orders/{orderId}/status physical conditional
PUT /v1/stores/status physical conditional

Source

Agentic Access

Raw ↑
generated: '2026-07-15'
method: generated
source: openapi/otter-public-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: 80
  by_action_class:
    acting: 59
    connected: 21
  by_consequence:
    physical: 21
    read: 21
    write: 38
  human_in_the_loop_required: 0
operations:
- path: /v1/orders
  method: post
  operationId: createOrder
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - orders.create
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/orders/{orderId}
  method: put
  operationId: updateOrder
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - orders.update
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/orders/{orderId}/status
  method: post
  operationId: updateOrderStatus
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - orders.update
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/orders/{orderId}/payments
  method: put
  operationId: updateOrderCustomerPayment
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - orders.update
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/orders/{orderId}/delivery
  method: put
  operationId: updateOrderDeliveryInfo
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - orders.update
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/orders/past-orders
  method: post
  operationId: uploadPastOrders
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - orders.create
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/order/v1/orders/order-created
  method: post
  operationId: orderCreated
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - manager.orders
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/order/v1/orders
  method: get
  operationId: managerGetOrderFeed
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - manager.orders
    token:
      max-ttl: 3600
    audit: none
- path: /manager/order/v1/sources/{source}/orders/{orderId}
  method: get
  operationId: getManagerOrder
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - manager.orders
    token:
      max-ttl: 3600
    audit: none
- path: /manager/order/v1/sources/{source}/orders/{orderId}/confirm
  method: post
  operationId: requestOrderConfirmation
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - manager.orders
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/order/v1/sources/{source}/orders/{orderId}/cancel
  method: post
  operationId: requestOrderCancelation
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - manager.orders
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/order/v1/sources/{source}/orders/{orderId}/ready-to-pickup
  method: post
  operationId: markAsReadyToPickup
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - manager.orders
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/order/v1/sources/{source}/orders/{orderId}/create-packaging-component
  method: post
  operationId: createPackagingOrderComponent
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - manager.orders
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/order/v1/sources/{source}/orders/{orderId}/fulfill
  method: post
  operationId: markAsFulfilled
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - manager.orders
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/order/v1/sources/{source}/orders/{orderId}/close
  method: post
  operationId: markDineInOrderClosed
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - manager.orders
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/order/v1/sources/{source}/orders/{orderId}/items
  method: put
  operationId: managerUpdateOrderCustomerItems
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - manager.orders
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/order/v1/sources/{source}/orders/{orderId}/prep-time
  method: post
  operationId: updateOrderPrepTime
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - orders.update
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/storefront/v1/storefront/pause
  method: post
  operationId: pauseStorefronts
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - manager.storefront
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/storefront/v1/storefront/unpause
  method: post
  operationId: unpauseStorefronts
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - manager.storefront
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/storefront/v1/storefront/pause/request/{requestId}/status
  method: get
  operationId: getPauseRequestStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - manager.storefront
    token:
      max-ttl: 3600
    audit: none
- path: /manager/storefront/v1/storefront/unpause/request/{requestId}/status
  method: get
  operationId: getUnpauseRequestStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - manager.storefront
    token:
      max-ttl: 3600
    audit: none
- path: /v1/menus
  method: get
  operationId: getMenu
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - menus.read
    token:
      max-ttl: 3600
    audit: none
- path: /v1/menus
  method: post
  operationId: upsertMenu
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - menus.upsert
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/menus/jobs/{jobId}
  method: get
  operationId: getAsyncJobStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - menus.async_job.read
    token:
      max-ttl: 3600
    audit: none
- path: /v1/menus/publish
  method: post
  operationId: menuPublishCallback
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - menus.publish
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/menus/current
  method: post
  operationId: menuSendCallback
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - menus.get_current
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/menus/hours
  method: post
  operationId: menuUpsertHours
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - menus.upsert_hours
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/menus/menu-sync
  method: post
  operationId: posMenuSync
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - menus.sync
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/menus/entity/availability/bulk
  method: post
  operationId: updateMenuEntitiesAvailabilitiesCallback
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - menus.entity_suspension
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/menu/v1/menus/publish-targets
  method: get
  operationId: managerGetMenuPublishTargets
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - manager.menus
    token:
      max-ttl: 3600
    audit: none
- path: /manager/menu/v1/menus/publish
  method: post
  operationId: managerPublishMenu
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - manager.menus
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/menu/v1/menus/menu-sync
  method: post
  operationId: menuSync
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - manager.menus
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/menu/v1/menus/entities/availability/suspend
  method: post
  operationId: managerSuspendMenuEntities
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - manager.menus
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/menu/v1/menus/entities/availability/unsuspend
  method: post
  operationId: managerUnsuspendMenuEntities
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - manager.menus
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/menu/v1/bootstrap
  method: post
  operationId: managerBootstrap
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - manager.menus
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/storefront/availability
  method: post
  operationId: postStoreAvailabilityChange
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - storefront.store_availability
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/storefront/hours
  method: post
  operationId: postStoreHoursConfigurationChange
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - storefront.store_hours_configuration
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/storefront/pause
  method: post
  operationId: postPauseStoreEventResult
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - storefront.store_pause_unpause
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/storefront/unpause
  method: post
  operationId: postUnpauseStoreEventResult
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - storefront.store_pause_unpause
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/storefront/eater-side/status
  method: post
  operationId: postEaterSideStoreAvailabilityChange
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - storefront.store_availability
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/storefront/eater-side/hours
  method: post
  operationId: postEaterSideStoreHoursConfigurationChange
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - storefront.store_hours_configuration
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/delivery/{deliveryReferenceId}/status
  method: put
  operationId: updateDeliveryStatus
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - delivery.provider
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/delivery/{deliveryReferenceId}/quotes
  method: post
  operationId: requestDeliveryQuoteCallback
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - delivery.provider
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/delivery/{deliveryReferenceId}/accept
  method: post
  operationId: acceptDeliveryCallback
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - delivery.provider
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/delivery/{deliveryReferenceId}/cancel
  method: post
  operationId: cancelDeliveryCallback
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - delivery.provider
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/delivery/callback/error
  method: post
  operationId: deliveryCallbackError
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - callback.error.write
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/delivery/{deliveryReferenceId}/update
  method: post
  operationId: updateDeliveryRequestCallback
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - delivery.provider
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/callback/error
  method: post
  operationId: publishError
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - callback.error.write
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/ping
  method: get
  operationId: ping
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - ping
    token:
      max-ttl: 3600
    audit: none
- path: /v1/reports/{jobId}
  method: get
  operationId: getReportStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - reports.generate_report
    token:
      max-ttl: 3600
    audit: none
- path: /v1/reports/generate
  method: post
  operationId: generateReportMulti
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - reports.generate_report
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/reviews/reply
  method: post
  operationId: reviewReply
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - reviews.reply
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/auth/token
  method: post
  operationId: requestToken
  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: /v1/auth/oauth2/authorize
  method: get
  operationId: oauth2Authorize
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /v1/stores
  method: post
  operationId: upsertStorelinkEventResultEndpoint
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - stores.manage
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/stores/status
  method: put
  operationId: updateStoreStatusEndpoint
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - stores.manage
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /finance/v1/financial-transactions
  method: post
  operationId: postFinancialTransactions
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - finance
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /finance/v1/financial-invoices
  method: post
  operationId: postFinancialInvoice
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - finance
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /inventories/v1/summaries
  method: get
  operationId: listInventorySummaries
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - catalog
    token:
      max-ttl: 3600
    audit: none
- path: /inventories/v1/shipments
  method: get
  operationId: listInventoryShipments
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - catalog
    token:
      max-ttl: 3600
    audit: none
- path: /inventories/v1/shipments
  method: post
  operationId: createShipment
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - catalog
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /organization/v1/organization
  method: get
  operationId: organizationGetOrganization
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - organization.read
    token:
      max-ttl: 3600
    audit: none
- path: /organization/v1/organization/brands/{brandId}
  method: get
  operationId: organizationGetBrand
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - organization.read
    token:
      max-ttl: 3600
    audit: none
- path: /organization/v1/organization/brands
  method: get
  operationId: organizationListBrands
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - organization.read
    token:
      max-ttl: 3600
    audit: none
- path: /organization/v1/organization/brands/{brandId}/stores/{storeId}
  method: get
  operationId: organizationGetStore
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - organization.read
    token:
      max-ttl: 3600
    audit: none
- path: /organization/v1/organization/brands/{brandId}/stores
  method: get
  operationId: organizationListStores
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - organization.read
    token:
      max-ttl: 3600
    audit: none
- path: /organization/v1/organization/brands/{brandId}/stores/{storeId}/connection
  method: get
  operationId: organizationGetConnection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - organization.service_integration
    token:
      max-ttl: 3600
    audit: none
- path: /organization/v1/organization/brands/{brandId}/stores/{storeId}/connection
  method: post
  operationId: organizationCreateConnection
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - organization.service_integration
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /organization/v1/organization/brands/{brandId}/stores/{storeId}/connection
  method: delete
  operationId: organizationDeleteConnection
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - organization.service_integration
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/market-intel/discovered-stores
  method: post
  operationId: postDiscoverStoresResult
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - marketintel.service_integration
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/market-intel/store-details
  method: post
  operationId: postGetStoreDetailsResult
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - marketintel.service_integration
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/loyalty/v1/{source}/user/enrollment-config
  method: get
  operationId: getEnrollmentConfig
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - manager.loyalty
    token:
      max-ttl: 3600
    audit: none
- path: /manager/loyalty/v1/{source}/user
  method: get
  operationId: getUser
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - manager.loyalty
    token:
      max-ttl: 3600
    audit: none
- path: /manager/loyalty/v1/{source}/user
  method: post
  operationId: createUser
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - manager.loyalty
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/loyalty/v1/{source}/user/search
  method: get
  operationId: searchUsers
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - manager.loyalty
    token:
      max-ttl: 3600
    audit: none
- path: /manager/loyalty/v1/{source}/rewards/evaluate
  method: post
  operationId: computeApplicableRewards
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - manager.loyalty
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/loyalty/v1/{source}/rewards/simulate
  method: post
  operationId: simulateRewards
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - manager.loyalty
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/loyalty/v1/{source}/rewards/redeem-and-accumulate
  method: post
  operationId: redeemAndAccumulateRewards
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - manager.loyalty
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /manager/loyalty/v1/{source}/rewards/refund
  method: post
  operationId: refundRewards
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - manager.loyalty
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /v1/eater/order-history
  method: post
  operationId: eaterOrderHistory
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    scope:
    - direct.orders
    audience: null
    token:
      max-ttl: 300
      exchange: true
      purpose-required: true
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required