Otter website screenshot

Otter

Otter (TryOtter) is a Restaurant Operating System used by hundreds of thousands of restaurants worldwide to aggregate delivery and online orders, consolidate menus, analyze sales, and control third-party delivery services from one place. For developers and integration partners, Otter publishes a Public API (OpenAPI 3.0, OAuth 2.0) and developer guides spanning account pairing, orders, menus, delivery, finance, reports, reviews, storefront, loyalty, organization, and inventory — with HMAC-signed webhooks for event-driven integration. Onboarding begins by registering an application, configuring webhooks, and onboarding stores; authentication and the account-specific base URL are provisioned through an Otter account representative.

1 APIs 9 Features
RestaurantOrder ManagementDeliveryOnline OrderingMenu ManagementAnalytics

APIs

Otter Public API

The Otter Public API enables integrations across the digital food ecosystem, covering account pairing, orders, menus, delivery, finance, reports, reviews, storefront, loyalty, a...

Collections

Public API

OPEN

Pricing Plans

Otter Plans Pricing

4 plans

PLANS

Rate Limits

Otter Rate Limits

6 limits

RATE LIMITS

FinOps

Otter Finops

FINOPS

Features

Order Aggregation

Receive, confirm, update, and fulfill orders from multiple delivery and online-ordering channels through a single Public API.

Menu Management

Upsert, publish, and synchronize menus, hours, and item availability across connected storefronts and channels.

Delivery Orchestration

Request delivery quotes, create and update delivery requests, and track courier status via webhooks.

Finance & Payouts

Post financial transactions and invoices and retrieve payout and order-total data.

Reports

Generate orders, items, payouts, and ratings/reviews reports for stores over a time period.

Reviews & Loyalty

Reply to customer reviews and compute, redeem, accumulate, refund, and simulate loyalty rewards.

Storefront Control

Pause and unpause storefronts and report store availability and hours configuration.

Account Pairing & Organization

Onboard stores, manage store links, and read organization, brand, and store data via OAuth authorization-code flow.

Webhooks

Subscribe to order, menu, delivery, storefront, reports, and account-pairing events signed with HMAC-SHA256.

Use Cases

POS Integration

Sync orders and menus between a third-party point-of-sale system and Otter-connected channels.

Delivery Provider Integration

Provide delivery services by responding to quote and delivery-request webhooks and posting status updates.

Menu Aggregator

Centrally manage and publish menus and availability across many stores and storefronts.

Financial Reconciliation

Pull payout, order-total, and transaction data to reconcile restaurant finances.

Loyalty Program

Power a loyalty program by computing and redeeming rewards against Otter orders.

Integrations

Delivery Service Providers

Third-party delivery marketplaces and on-demand courier networks.

Point of Sale Platforms

Restaurant POS systems exchanging orders and menus with Otter.

Online Ordering Channels

Branded and third-party online ordering storefronts aggregated by Otter.

Semantic Vocabularies

Otter Public Api Context

294 classes · 557 properties

JSON-LD

API Governance Rules

Otter API Rules

29 rules · 6 errors 13 warnings 10 info

SPECTRAL

JSON Structure

Public Api Accept Delivery Event Structure

24 properties

JSON STRUCTURE

Public Api Account Holder Type Structure

0 properties

JSON STRUCTURE

Public Api Account Type Structure

0 properties

JSON STRUCTURE

Public Api Additional Charge Structure

4 properties

JSON STRUCTURE

Public Api Address Structure

8 properties

JSON STRUCTURE

Public Api Allergen Classification Structure

2 properties

JSON STRUCTURE

Public Api Application Id Structure

0 properties

JSON STRUCTURE

Public Api Bootstrap Menu Request Structure

5 properties

JSON STRUCTURE

Public Api Brand Info Structure

3 properties

JSON STRUCTURE

Public Api Brand Structure

2 properties

JSON STRUCTURE

Public Api Bulk Update Item Status Structure

1 properties

JSON STRUCTURE

Public Api Cancel Delivery Event Structure

1 properties

JSON STRUCTURE

Public Api Card Brand Type Structure

0 properties

JSON STRUCTURE

Public Api Card Funding Type Structure

0 properties

JSON STRUCTURE

Public Api Card Info Structure

2 properties

JSON STRUCTURE

Public Api Card Wallet Type Structure

0 properties

JSON STRUCTURE

Public Api Category Structure

6 properties

JSON STRUCTURE

Public Api Composite Finance Line Structure

1 properties

JSON STRUCTURE

Public Api Connection Structure

1 properties

JSON STRUCTURE

Public Api Courier Structure

5 properties

JSON STRUCTURE

Public Api Create Shipment Request Structure

2 properties

JSON STRUCTURE

Public Api Create Shipment Response Structure

1 properties

JSON STRUCTURE

Public Api Create User Request Structure

1 properties

JSON STRUCTURE

Public Api Create User Response Structure

1 properties

JSON STRUCTURE

Public Api Customer Payment Structure

8 properties

JSON STRUCTURE

Public Api Customer Payment V2 Structure

4 properties

JSON STRUCTURE

Public Api Customer Tip Structure

1 properties

JSON STRUCTURE

Public Api Delivery Cost Structure

2 properties

JSON STRUCTURE

Public Api Delivery Fee Structure

1 properties

JSON STRUCTURE

Public Api Delivery Info Structure

7 properties

JSON STRUCTURE

Public Api Delivery Metadata Structure

2 properties

JSON STRUCTURE

Public Api Delivery Status Structure

0 properties

JSON STRUCTURE

Public Api Delivery Window Structure

2 properties

JSON STRUCTURE

Public Api Dietary Classification Structure

1 properties

JSON STRUCTURE

Public Api Discovered Store Structure

2 properties

JSON STRUCTURE

Public Api Distance Structure

2 properties

JSON STRUCTURE

Public Api Dropoff Info Structure

2 properties

JSON STRUCTURE

Public Api Dropoff Instructions Structure

2 properties

JSON STRUCTURE

Public Api Eater Order Structure

9 properties

JSON STRUCTURE

Public Api Energy Kcal Structure

2 properties

JSON STRUCTURE

Public Api Enrollment Field Structure

4 properties

JSON STRUCTURE

Public Api Error Detail Structure

2 properties

JSON STRUCTURE

Public Api Error Message Structure

2 properties

JSON STRUCTURE

Public Api Event Callback Error Structure

2 properties

JSON STRUCTURE

Public Api Event Notification Base Structure

3 properties

JSON STRUCTURE

Public Api Event Notification Structure

4 properties

JSON STRUCTURE

Public Api Event Result Metadata Structure

3 properties

JSON STRUCTURE

Public Api Existing Credential Structure

2 properties

JSON STRUCTURE

Public Api Exposed Third Party Info Structure

2 properties

JSON STRUCTURE

Public Api Fetch Credentials Event Structure

1 properties

JSON STRUCTURE

Public Api Financial Data Structure

19 properties

JSON STRUCTURE

Public Api Financial Invoice Structure

4 properties

JSON STRUCTURE

Public Api Financial Transaction Structure

12 properties

JSON STRUCTURE

Public Api Fulfilled Credential Structure

2 properties

JSON STRUCTURE

Public Api Fulfillment Info Structure

7 properties

JSON STRUCTURE

Public Api Fulfillment Path Entity Structure

2 properties

JSON STRUCTURE

Public Api Generate Report Response Structure

1 properties

JSON STRUCTURE

Public Api Get User Response Structure

1 properties

JSON STRUCTURE

Public Api Gtin Structure

0 properties

JSON STRUCTURE

Public Api Hour Interval Structure

5 properties

JSON STRUCTURE

Public Api Hours Data Structure

3 properties

JSON STRUCTURE

Public Api Hours Structure

1 properties

JSON STRUCTURE

Public Api Hydra Token Structure

4 properties

JSON STRUCTURE

Public Api Intent To Cancel Event Structure

2 properties

JSON STRUCTURE

Public Api Inventory Summary Structure

8 properties

JSON STRUCTURE

Public Api Invoice Payout Info Structure

4 properties

JSON STRUCTURE

Public Api Item 2 Structure

5 properties

JSON STRUCTURE

Public Api Item 3 Structure

3 properties

JSON STRUCTURE

Public Api Item 4 Structure

5 properties

JSON STRUCTURE

Public Api Item Added Modification Structure

1 properties

JSON STRUCTURE

Public Api Item Modifier Structure

11 properties

JSON STRUCTURE

Public Api Item Price Override Structure

3 properties

JSON STRUCTURE

Public Api Item Selector Structure

2 properties

JSON STRUCTURE

Public Api Item Status Structure

2 properties

JSON STRUCTURE

Public Api Item Structure

14 properties

JSON STRUCTURE

Public Api Item Tax Structure

2 properties

JSON STRUCTURE

Public Api Item Update Request Structure

9 properties

JSON STRUCTURE

Public Api Job Id Structure

0 properties

JSON STRUCTURE

Public Api Job Reference Structure

2 properties

JSON STRUCTURE

Public Api List Brands Response Structure

2 properties

JSON STRUCTURE

Public Api List Shipments Response Structure

2 properties

JSON STRUCTURE

Public Api List Stores Response Structure

2 properties

JSON STRUCTURE

Public Api Location Structure

2 properties

JSON STRUCTURE

Public Api Loyalty Info Structure

1 properties

JSON STRUCTURE

Public Api Manager Item Issue Structure

2 properties

JSON STRUCTURE

Public Api Manager Item Issues Structure

2 properties

JSON STRUCTURE

Public Api Manager Order Issue Structure

2 properties

JSON STRUCTURE

Public Api Manager Order Issues Structure

2 properties

JSON STRUCTURE

Public Api Mandate Status Structure

0 properties

JSON STRUCTURE

Public Api Marketintel Coordinates Structure

2 properties

JSON STRUCTURE

Public Api Marketintel Hours Data Structure

3 properties

JSON STRUCTURE

Public Api Marketintel Store Chain Structure

2 properties

JSON STRUCTURE

Public Api Marketintel Store Details Structure

21 properties

JSON STRUCTURE

Public Api Marketintel Store Menu Structure

3 properties

JSON STRUCTURE

Public Api Marketintel Store Rating Structure

3 properties

JSON STRUCTURE

Public Api Marketintel Store Sales Structure

3 properties

JSON STRUCTURE

Public Api Marketintel Time Range Structure

2 properties

JSON STRUCTURE

Public Api Menu 3 Pd Structure

8 properties

JSON STRUCTURE

Public Api Menu Async Job Type Structure

0 properties

JSON STRUCTURE

Public Api Menu Asynchronous Job Structure

3 properties

JSON STRUCTURE

Public Api Menu Data Structure

5 properties

JSON STRUCTURE

Public Api Menu Item 3 Pd Structure

12 properties

JSON STRUCTURE

Public Api Menu Item Pos Structure

11 properties

JSON STRUCTURE

Public Api Menu Job Publish State Structure

0 properties

JSON STRUCTURE

Public Api Menu Job Type Structure

0 properties

JSON STRUCTURE

Public Api Menu Pos Structure

7 properties

JSON STRUCTURE

Public Api Menu Publish Event Structure

1 properties

JSON STRUCTURE

Public Api Menu Publish Job State Structure

2 properties

JSON STRUCTURE

Public Api Menu Publish Request Structure

1 properties

JSON STRUCTURE

Public Api Menu Publish Response Structure

3 properties

JSON STRUCTURE

Public Api Menu Publish Target Structure

1 properties

JSON STRUCTURE

Public Api Menu Publish Targets Structure

1 properties

JSON STRUCTURE

Public Api Menus Reward Structure

3 properties

JSON STRUCTURE

Public Api Menus Structure

5 properties

JSON STRUCTURE

Public Api Menus Upsert Request Structure

4 properties

JSON STRUCTURE

Public Api Metadata Object Structure

5 properties

JSON STRUCTURE

Public Api Modifier Group Structure

10 properties

JSON STRUCTURE

Public Api Modifier Item Structure

5 properties

JSON STRUCTURE

Public Api Money Structure

2 properties

JSON STRUCTURE

Public Api Null Event Structure

0 properties

JSON STRUCTURE

Public Api Nutrition Content Structure

22 properties

JSON STRUCTURE

Public Api Nutritional Info Structure

2 properties

JSON STRUCTURE

Public Api Operation Type Structure

0 properties

JSON STRUCTURE

Public Api Order 2 Structure

4 properties

JSON STRUCTURE

Public Api Order Component Id Structure

2 properties

JSON STRUCTURE

Public Api Order Confirm Event Structure

1 properties

JSON STRUCTURE

Public Api Order Feed Structure

2 properties

JSON STRUCTURE

Public Api Order Fulfilled Event Structure

1 properties

JSON STRUCTURE

Public Api Order Handed Off Event Structure

4 properties

JSON STRUCTURE

Public Api Order Identifier Finance Structure

2 properties

JSON STRUCTURE

Public Api Order Identifier Structure

2 properties

JSON STRUCTURE

Public Api Order Issue Structure

1 properties

JSON STRUCTURE

Public Api Order Item Information Structure

3 properties

JSON STRUCTURE

Public Api Order Ready Event Structure

1 properties

JSON STRUCTURE

Public Api Order Reference Structure

2 properties

JSON STRUCTURE

Public Api Order Status Event Structure

2 properties

JSON STRUCTURE

Public Api Order Status History Structure

2 properties

JSON STRUCTURE

Public Api Order Structure

14 properties

JSON STRUCTURE

Public Api Order Total Structure

8 properties

JSON STRUCTURE

Public Api Order Total V2 Structure

3 properties

JSON STRUCTURE

Public Api Order With Manager Info Structure

5 properties

JSON STRUCTURE

Public Api Org Info Structure

2 properties

JSON STRUCTURE

Public Api Organization Structure

2 properties

JSON STRUCTURE

Public Api Override Rule 3 Pd Structure

1 properties

JSON STRUCTURE

Public Api Override Rule Structure

1 properties

JSON STRUCTURE

Public Api Pause Reason Structure

0 properties

JSON STRUCTURE

Public Api Pause Request Structure

4 properties

JSON STRUCTURE

Public Api Pause Response Structure

1 properties

JSON STRUCTURE

Public Api Pause Store Event Result Structure

2 properties

JSON STRUCTURE

Public Api Payment Details Ach Structure

7 properties

JSON STRUCTURE

Public Api Payment Details Acss Structure

9 properties

JSON STRUCTURE

Public Api Payment Details Bacs Structure

6 properties

JSON STRUCTURE

Public Api Payment Details Becs Structure

5 properties

JSON STRUCTURE

Public Api Payment Details Card Structure

10 properties

JSON STRUCTURE

Public Api Payment Details Sepa Structure

8 properties

JSON STRUCTURE

Public Api Payment Record Structure

7 properties

JSON STRUCTURE

Public Api Payout Info Structure

2 properties

JSON STRUCTURE

Public Api Payout Structure

3 properties

JSON STRUCTURE

Public Api Percentage Value Structure

1 properties

JSON STRUCTURE

Public Api Person Structure

5 properties

JSON STRUCTURE

Public Api Personal Identifiers Structure

2 properties

JSON STRUCTURE

Public Api Photo Structure

4 properties

JSON STRUCTURE

Public Api Pick Up Info Structure

1 properties

JSON STRUCTURE

Public Api Picture Proof Structure

1 properties

JSON STRUCTURE

Public Api Picture Requirement Structure

1 properties

JSON STRUCTURE

Public Api Ping Event Structure

1 properties

JSON STRUCTURE

Public Api Pong Object Structure

2 properties

JSON STRUCTURE

Public Api Pos Menu Sync Request Structure

3 properties

JSON STRUCTURE

Public Api Pos Menu Sync Response Structure

1 properties

JSON STRUCTURE

Public Api Preparation Time Structure

1 properties

JSON STRUCTURE

Public Api Price Override Structure

2 properties

JSON STRUCTURE

Public Api Promotion Details Structure

3 properties

JSON STRUCTURE

Public Api Record Payment Type Structure

0 properties

JSON STRUCTURE

Public Api Record Provider Type Structure

0 properties

JSON STRUCTURE

Public Api Refund Rewards Request Structure

2 properties

JSON STRUCTURE

Public Api Refund Rewards Response Structure

1 properties

JSON STRUCTURE

Public Api Regular Hours Structure

2 properties

JSON STRUCTURE

Public Api Remove Storelink Event Structure

1 properties

JSON STRUCTURE

Public Api Report Generated Event Structure

2 properties

JSON STRUCTURE

Public Api Request Action Structure

4 properties

JSON STRUCTURE

Public Api Request State Info Structure

6 properties

JSON STRUCTURE

Public Api Request State Structure

0 properties

JSON STRUCTURE

Public Api Required Address Structure

8 properties

JSON STRUCTURE

Public Api Required Delivery Info Structure

7 properties

JSON STRUCTURE

Public Api Required Person Structure

5 properties

JSON STRUCTURE

Public Api Review Reply Request Structure

5 properties

JSON STRUCTURE

Public Api Review Reply Response Structure

1 properties

JSON STRUCTURE

Public Api Reward Effect Structure

1 properties

JSON STRUCTURE

Public Api Reward Structure

7 properties

JSON STRUCTURE

Public Api Search Users Response Structure

2 properties

JSON STRUCTURE

Public Api Selected Menu Reward Structure

1 properties

JSON STRUCTURE

Public Api Selected Reward Structure

3 properties

JSON STRUCTURE

Public Api Self Drop Delivery Info Structure

0 properties

JSON STRUCTURE

Public Api Send Menu Event Callback Structure

1 properties

JSON STRUCTURE

Public Api Service Override Rule Structure

0 properties

JSON STRUCTURE

Public Api Servings Structure

2 properties

JSON STRUCTURE

Public Api Shipment Delivery Info Structure

0 properties

JSON STRUCTURE

Public Api Shipment Line Item Structure

4 properties

JSON STRUCTURE

Public Api Shipment State Change Structure

2 properties

JSON STRUCTURE

Public Api Shipment State Structure

0 properties

JSON STRUCTURE

Public Api Shipment Structure

4 properties

JSON STRUCTURE

Public Api Signature Proof Structure

3 properties

JSON STRUCTURE

Public Api Signature Requirement Structure

3 properties

JSON STRUCTURE

Public Api Simple Finance Line Structure

3 properties

JSON STRUCTURE

Public Api Simulate Rewards Request Structure

3 properties

JSON STRUCTURE

Public Api Sku Barcode Structure

2 properties

JSON STRUCTURE

Public Api Sku Details Structure

13 properties

JSON STRUCTURE

Public Api Special Hours Structure

3 properties

JSON STRUCTURE

Public Api Status Structure

0 properties

JSON STRUCTURE

Public Api Storage Requirement Structure

1 properties

JSON STRUCTURE

Public Api Store 2 Structure

6 properties

JSON STRUCTURE

Public Api Store 3 Structure

2 properties

JSON STRUCTURE

Public Api Store Hours Structure

2 properties

JSON STRUCTURE

Public Api Store Id Structure

0 properties

JSON STRUCTURE

Public Api Store Info 2 Structure

5 properties

JSON STRUCTURE

Public Api Store Info Structure

6 properties

JSON STRUCTURE

Public Api Store Structure

3 properties

JSON STRUCTURE

Public Api Storefront Error Structure

2 properties

JSON STRUCTURE

Public Api Storefront Regular Hours Structure

2 properties

JSON STRUCTURE

Public Api Storefront Special Hours Structure

3 properties

JSON STRUCTURE

Public Api Storefront Time Range Structure

2 properties

JSON STRUCTURE

Public Api Subtotal Reward Structure

2 properties

JSON STRUCTURE

Public Api Subtotal Structure

1 properties

JSON STRUCTURE

Public Api Suspend Items Request Structure

3 properties

JSON STRUCTURE

Public Api Suspension Status Structure

2 properties

JSON STRUCTURE

Public Api Time Range Structure

2 properties

JSON STRUCTURE

Public Api Totals Structure

4 properties

JSON STRUCTURE

Public Api Trigger Menu Structure

3 properties

JSON STRUCTURE

Public Api Trigger Structure

1 properties

JSON STRUCTURE

Public Api Unit Price And Count Structure

2 properties

JSON STRUCTURE

Public Api Unpause Request Structure

1 properties

JSON STRUCTURE

Public Api Unpause Response Structure

1 properties

JSON STRUCTURE

Public Api Unpause Store Event Structure

0 properties

JSON STRUCTURE

Public Api Unsuspend Items Request Structure

2 properties

JSON STRUCTURE

Public Api Update Item Status Entry Structure

2 properties

JSON STRUCTURE

Public Api Upsert Hours Event Structure

1 properties

JSON STRUCTURE

Public Api Upsert Storelink Event Structure

3 properties

JSON STRUCTURE

Public Api User Account Structure

3 properties

JSON STRUCTURE

Public Api User Balance Structure

2 properties

JSON STRUCTURE

Public Api User Field Structure

2 properties

JSON STRUCTURE

Public Api User Structure

2 properties

JSON STRUCTURE

Public Api Vehicle Information Structure

3 properties

JSON STRUCTURE

Public Api Verification Proof Structure

2 properties

JSON STRUCTURE

Public Api View Credential Structure

5 properties

JSON STRUCTURE

Public Api View Credentials Array Structure

2 properties

JSON STRUCTURE

Example Payloads

Public Api Address Example

8 fields

EXAMPLE

Public Api Brand Example

2 fields

EXAMPLE

Public Api Card Info Example

2 fields

EXAMPLE

Public Api Category Example

6 fields

EXAMPLE

Public Api Courier Example

5 fields

EXAMPLE

Public Api Distance Example

2 fields

EXAMPLE

Public Api Hours Example

1 fields

EXAMPLE

Public Api Item 2 Example

5 fields

EXAMPLE

Public Api Item 3 Example

3 fields

EXAMPLE

Public Api Item 4 Example

5 fields

EXAMPLE

Public Api Item Example

14 fields

EXAMPLE

Public Api Item Tax Example

2 fields

EXAMPLE

Public Api Location Example

2 fields

EXAMPLE

Public Api Menu 3 Pd Example

8 fields

EXAMPLE

Public Api Menu Data Example

5 fields

EXAMPLE

Public Api Menu Pos Example

7 fields

EXAMPLE

Public Api Menus Example

5 fields

EXAMPLE

Public Api Order 2 Example

4 fields

EXAMPLE

Public Api Order Example

14 fields

EXAMPLE

Public Api Org Info Example

2 fields

EXAMPLE

Public Api Payout Example

3 fields

EXAMPLE

Public Api Person Example

5 fields

EXAMPLE

Public Api Photo Example

4 fields

EXAMPLE

Public Api Reward Example

7 fields

EXAMPLE

Public Api Servings Example

2 fields

EXAMPLE

Public Api Shipment Example

4 fields

EXAMPLE

Public Api Sku Details Example

13 fields

EXAMPLE

Public Api Store 2 Example

6 fields

EXAMPLE

Public Api Store 3 Example

2 fields

EXAMPLE

Public Api Store Example

3 fields

EXAMPLE

Public Api Subtotal Example

1 fields

EXAMPLE

Public Api Totals Example

4 fields

EXAMPLE

Public Api Trigger Example

1 fields

EXAMPLE

Public Api User Example

2 fields

EXAMPLE

Resources

🔗
Website
Website
🔗
Documentation
Documentation
💬
Support
Support
📰
Blog
Blog
🔗
LinkedIn
LinkedIn
🔗
X
X
🔗
SpectralRules
SpectralRules
🔗
JSONLD
JSONLD
🔗
Vocabulary
Vocabulary
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
💰
Pricing
Pricing
👥
GitHubRepository
GitHubRepository

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Public API
  version: v1
items:
- info:
    name: Orders Endpoints
    type: folder
  items:
  - info:
      name: Otter Create Order
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/orders
      headers:
      - name: X-Store-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 32 per minute`

      '
  - info:
      name: Otter Update Order
      type: http
    http:
      method: PUT
      url: https://{public-api-url}/v1/orders/:orderId
      headers:
      - name: X-Store-Id
        value: ''
      params:
      - name: orderId
        value: ''
        type: path
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 32 per minute`

      '
  - info:
      name: Otter Update Order Status
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/orders/:orderId/status
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      params:
      - name: orderId
        value: ''
        type: path
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 32 per minute`

      '
  - info:
      name: Otter Update Order Customer Payment
      type: http
    http:
      method: PUT
      url: https://{public-api-url}/v1/orders/:orderId/payments
      headers:
      - name: X-Store-Id
        value: ''
      params:
      - name: orderId
        value: ''
        type: path
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`


      Notice that this operation do not completely replace the existent customer payment, instead, it overwrites the field
      if the latest update is a non-null value. If the update value is null, the existent value will continue to be used.

      '
  - info:
      name: Otter Update Order Delivery Information
      type: http
    http:
      method: PUT
      url: https://{public-api-url}/v1/orders/:orderId/delivery
      headers:
      - name: X-Store-Id
        value: ''
      params:
      - name: orderId
        value: ''
        type: path
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`

      '
  - info:
      name: Otter Upload Past Orders
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/orders/past-orders
      headers:
      - name: X-Store-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 32 per minute`; orders must have a status of FULFILLED, REJECTED, or CANCELED

      '
- info:
    name: Manager Order Endpoints
    type: folder
  items:
  - info:
      name: Otter Notify the Result of a Create Order Event
      type: http
    http:
      method: POST
      url: https://{public-api-url}/manager/order/v1/orders/order-created
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 32 per minute`

      '
  - info:
      name: Otter Fetch Order Feed for a Store
      type: http
    http:
      method: GET
      url: https://{public-api-url}/manager/order/v1/orders
      headers:
      - name: X-Store-Id
        value: ''
      params:
      - name: limit
        value: ''
        type: query
      - name: token
        value: ''
        type: query
      - name: minDateTime
        value: ''
        type: query
      - name: maxDateTime
        value: ''
        type: query
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: Otter Fetch Order Feed for a Store
  - info:
      name: Otter Fetch Order with Manager Info
      type: http
    http:
      method: GET
      url: https://{public-api-url}/manager/order/v1/sources/:source/orders/:orderId
      headers:
      - name: X-Store-Id
        value: ''
      params:
      - name: orderId
        value: ''
        type: path
      - name: source
        value: ''
        type: path
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: Otter Fetch Order with Manager Info
  - info:
      name: Otter Request Order Confirmation
      type: http
    http:
      method: POST
      url: https://{public-api-url}/manager/order/v1/sources/:source/orders/:orderId/confirm
      headers:
      - name: X-Store-Id
        value: ''
      params:
      - name: source
        value: ''
        type: path
      - name: orderId
        value: ''
        type: path
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 32 per minute`

      '
  - info:
      name: Otter Request Order Cancelation
      type: http
    http:
      method: POST
      url: https://{public-api-url}/manager/order/v1/sources/:source/orders/:orderId/cancel
      headers:
      - name: X-Store-Id
        value: ''
      params:
      - name: source
        value: ''
        type: path
      - name: orderId
        value: ''
        type: path
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 32 per minute`

      '
  - info:
      name: Otter Mark an Order as Ready to Pickup
      type: http
    http:
      method: POST
      url: https://{public-api-url}/manager/order/v1/sources/:source/orders/:orderId/ready-to-pickup
      headers:
      - name: X-Store-Id
        value: ''
      params:
      - name: source
        value: ''
        type: path
      - name: orderId
        value: ''
        type: path
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 32 per minute`

      '
  - info:
      name: Otter Create a Packaging Component
      type: http
    http:
      method: POST
      url: https://{public-api-url}/manager/order/v1/sources/:source/orders/:orderId/create-packaging-component
      headers:
      - name: X-Store-Id
        value: ''
      params:
      - name: source
        value: ''
        type: path
      - name: orderId
        value: ''
        type: path
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 32 per minute`

      '
  - info:
      name: Otter Mark an Order as Fulfilled
      type: http
    http:
      method: POST
      url: https://{public-api-url}/manager/order/v1/sources/:source/orders/:orderId/fulfill
      headers:
      - name: X-Store-Id
        value: ''
      params:
      - name: source
        value: ''
        type: path
      - name: orderId
        value: ''
        type: path
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 32 per minute`

      '
  - info:
      name: Otter Mark a Dine-in (open-tab) Order as Closed
      type: http
    http:
      method: POST
      url: https://{public-api-url}/manager/order/v1/sources/:source/orders/:orderId/close
      headers:
      - name: X-Store-Id
        value: ''
      params:
      - name: source
        value: ''
        type: path
      - name: orderId
        value: ''
        type: path
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'Marks an open-tab dine-in order as closed. The closing party is always the merchant/POS (system). `RATE LIMIT:
      32 per minute`

      '
  - info:
      name: Otter Update Order Customer Items
      type: http
    http:
      method: PUT
      url: https://{public-api-url}/manager/order/v1/sources/:source/orders/:orderId/items
      headers:
      - name: X-Store-Id
        value: ''
      params:
      - name: source
        value: ''
        type: path
      - name: orderId
        value: ''
        type: path
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'Updates customer items for a dine-in order (quantity change, price adjustment, or add item). Only supported when
      integration slug is d2c-eater-website, order fulfillment type is dine-in, and the order tab is open (order is modifiable).
      Modifying party and modification request ID are set by the endpoint. `RATE LIMIT: 8 per minute`

      '
  - info:
      name: Otter Update Order Prep Time
      type: http
    http:
      method: POST
      url: https://{public-api-url}/manager/order/v1/sources/:source/orders/:orderId/prep-time
      headers:
      - name: X-Store-Id
        value: ''
      params:
      - name: source
        value: ''
        type: path
      - name: orderId
        value: ''
        type: path
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 32 per minute`

      '
- info:
    name: Manager Storefront Endpoints
    type: folder
  items:
  - info:
      name: Otter Request Pausing Storefronts of a Store
      type: http
    http:
      method: POST
      url: https://{public-api-url}/manager/storefront/v1/storefront/pause
      headers:
      - name: X-Store-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`

      '
  - info:
      name: Otter Request Unpausing Storefronts of a Store
      type: http
    http:
      method: POST
      url: https://{public-api-url}/manager/storefront/v1/storefront/unpause
      headers:
      - name: X-Store-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`

      '
  - info:
      name: Otter Get the Process Status Details of a Pause Request
      type: http
    http:
      method: GET
      url: https://{public-api-url}/manager/storefront/v1/storefront/pause/request/:requestId/status
      headers:
      - name: X-Store-Id
        value: ''
      params:
      - name: requestId
        value: ''
        type: path
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`

      '
  - info:
      name: Otter Get the Process Status Details of an Unpause Request
      type: http
    http:
      method: GET
      url: https://{public-api-url}/manager/storefront/v1/storefront/unpause/request/:requestId/status
      headers:
      - name: X-Store-Id
        value: ''
      params:
      - name: requestId
        value: ''
        type: path
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`

      '
- info:
    name: Manager Menu Endpoints
    type: folder
  items:
  - info:
      name: Otter Get the Menus for a Store
      type: http
    http:
      method: GET
      url: https://{public-api-url}/v1/menus
      headers:
      - name: X-Store-Id
        value: ''
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`

      '
  - info:
      name: Otter Get the Async Menu Job Status
      type: http
    http:
      method: GET
      url: https://{public-api-url}/v1/menus/jobs/:jobId
      headers:
      - name: X-Store-Id
        value: ''
      params:
      - name: jobId
        value: ''
        type: path
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`

      '
  - info:
      name: Otter Get the Publish-targets for a Store
      type: http
    http:
      method: GET
      url: https://{public-api-url}/manager/menu/v1/menus/publish-targets
      headers:
      - name: X-Store-Id
        value: ''
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 2 per minute`

      '
  - info:
      name: Otter Publish Menus to Targets for a Store
      type: http
    http:
      method: POST
      url: https://{public-api-url}/manager/menu/v1/menus/publish
      headers:
      - name: X-Store-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 2 per minute`

      '
  - info:
      name: Otter Synchronize Store Menu with POS Menu
      type: http
    http:
      method: POST
      url: https://{public-api-url}/manager/menu/v1/menus/menu-sync
      headers:
      - name: X-Store-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 2 per minute`

      '
  - info:
      name: Otter Suspend Menu Entities Targets for a Store
      type: http
    http:
      method: POST
      url: https://{public-api-url}/manager/menu/v1/menus/entities/availability/suspend
      headers:
      - name: X-Store-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 16 per minute`

      '
  - info:
      name: Otter Unsuspend Menu Entities Targets for a Store
      type: http
    http:
      method: POST
      url: https://{public-api-url}/manager/menu/v1/menus/entities/availability/unsuspend
      headers:
      - name: X-Store-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 16 per minute`

      '
  - info:
      name: Otter Bootstrap Menus for a Store
      type: http
    http:
      method: POST
      url: https://{public-api-url}/manager/menu/v1/bootstrap
      headers:
      - name: X-Store-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 2 per minute`

      '
- info:
    name: Menus Endpoints
    type: folder
  items:
  - info:
      name: Otter Upsert Menus for a Store
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/menus
      headers:
      - name: X-Store-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 2 per minute`

      '
  - info:
      name: Otter Notify the Result of a Publish Menu Event
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/menus/publish
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`


      Successful callback response for the [**publish menu**](/api-reference/#operation/menuPublishWebhook) webhook. If an
      error occurred, please publish a [**callback error**](/api-reference/#operation/publishError) instead. See [**failed
      event flow**](/docs/menus-integrations-failed-event-flow/) for details.

      '
  - info:
      name: Otter Notify the Result of a Send Menu Event
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/menus/current
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 4 per minute`


      Successful callback response for the [**send menu**](/api-reference/#operation/menuSendCallback) webhook. If an error
      occurred, please publish a [**callback error**](/api-reference/#operation/publishError) instead. See [**failed event
      flow**](/docs/menus-integrations-failed-event-flow/) for details.

      '
  - info:
      name: Otter Notify the Receival of a Upsert Hours Menu Event
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/menus/hours
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`


      Successful callback response for the [**upsert hours**](/api-reference/#operation/upsertMenuHoursWebhook) webhook. If
      an error occurred, please publish a [**callback error**](/api-reference/#operation/publishError) instead. See [**failed
      event flow**](/docs/menus-integrations-failed-event-flow/) for details.

      '
  - info:
      name: Otter Synchronize Store Menu with POS Menu
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/menus/menu-sync
      headers:
      - name: X-Store-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: This endpoint is used to synchronize the store menu with the connected POS.
  - info:
      name: Otter Notify the Result of an Update Menu Entities Availabilities Event
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/menus/entity/availability/bulk
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 32 per minute`


      Successful callback response for the [**update menu entities availabilities**](/api-reference/#operation/updateMenuEntitiesAvailabilitiesWebhook)
      webhook. If an error occurred, please publish a [**callback error**](/api-reference/#operation/publishError) instead.
      See [**failed event flow**](/docs/menus-integrations-failed-event-flow/) for details.

      '
- info:
    name: Storefront Endpoints
    type: folder
  items:
  - info:
      name: Otter Notify About Store Availability Change
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/storefront/availability
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 16 per minute`

      '
  - info:
      name: Otter Notify About Store Hours Configuration Change
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/storefront/hours
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 16 per minute`

      '
  - info:
      name: Otter Notify the Result of a Pause Request Event
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/storefront/pause
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`

      '
  - info:
      name: Otter Notify the Result of an Unpause Request Event
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/storefront/unpause
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`

      '
  - info:
      name: Otter Notify About Store Availability Change from the Eater Side
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/storefront/eater-side/status
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 16 per minute`

      '
  - info:
      name: Otter Notify About Store Hours Configuration Change on Eater Side
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/storefront/eater-side/hours
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 16 per minute`

      '
  - info:
      name: Otter Notify About Store Details Update
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/market-intel/store-details
      headers:
      - name: X-Event-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: Otter Notify About Store Details Update
- info:
    name: Delivery Endpoints
    type: folder
  items:
  - info:
      name: Otter Update Delivery Status
      type: http
    http:
      method: PUT
      url: https://{public-api-url}/v1/delivery/:deliveryReferenceId/status
      params:
      - name: deliveryReferenceId
        value: ''
        type: path
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`

      '
  - info:
      name: Otter Notify the Result of a Request Delivery Quote Event
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/delivery/:deliveryReferenceId/quotes
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      params:
      - name: deliveryReferenceId
        value: ''
        type: path
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`

      '
  - info:
      name: Otter Notify the Result of an Accept Delivery Event
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/delivery/:deliveryReferenceId/accept
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      params:
      - name: deliveryReferenceId
        value: ''
        type: path
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`

      '
  - info:
      name: Otter Notify the Result of a Cancel Delivery Event
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/delivery/:deliveryReferenceId/cancel
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      params:
      - name: deliveryReferenceId
        value: ''
        type: path
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`

      '
  - info:
      name: Otter Publish Delivery Callback Error
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/delivery/callback/error
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 16 per minute`

      '
  - info:
      name: Otter Notify the Result of an Update Delivery Request Event
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/delivery/:deliveryReferenceId/update
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      params:
      - name: deliveryReferenceId
        value: ''
        type: path
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`

      '
- info:
    name: Callback Endpoints
    type: folder
  items:
  - info:
      name: Otter Publish Callback Error
      type: http
    http:
      method: POST
      url: https://{public-api-url}/v1/callback/error
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Event-Id
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: "`RATE LIMIT: 16 per minute` \n\nThis is the generalized callback error that should be used to return failures for\
      \ all webhooks, unless otherwise specified. See [**failed event flow**](/docs/menus-integrations-failed-event-flow/)\
      \ for details.\n"
- info:
    name: Ping Endpoints
    type: folder
  items:
  - info:
      name: Otter Ping the System
      type: http
    http:
      method: GET
      url: https://{public-api-url}/v1/ping
      headers:
      - name: X-Store-Id
        value: ''
      - name: X-Echo-Error
        value: ''
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/auth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '`RATE LIMIT: 8 per minute`

      '
- info:
    name: Reports Endpoints
    type: folder
  items:
  - info:
      name: Otter Request Status of the Report Using JobId
      type: http
    http:
      method: GET
      url: https://{public-api-url}/v1/reports/:jobId
      params:
      - name: jobId
        value: ''
        type: path
      auth:
        type: oauth2
        flow: client_credentials
        accessToken

# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/otter/refs/heads/main/apis.yml