{
  "schemaVersion": 1,
  "generatedAt": "2026-09-15T12:04:55.770Z",
  "homeUrl": "https://connect.tryotter.com/docs/",
  "llmsTxtUrl": "https://connect.tryotter.com/docs/llms.txt",
  "aiCodingAgentsGuideUrl": "https://connect.tryotter.com/docs/guides-ai-coding-agents/",
  "api": {
    "openapiVersion": "v1",
    "url": "https://connect.tryotter.com/docs/openapi/public-api.yaml"
  },
  "mcp": {
    "url": "https://connect.tryotter.com/docs/mcp",
    "transport": "streamable-http",
    "tools": [
      "search_docs",
      "get_guide",
      "get_openapi"
    ]
  },
  "fullCorpusUrl": "https://connect.tryotter.com/docs/llms-full.txt",
  "searchIndexUrl": "https://connect.tryotter.com/docs/agent-search.json",
  "guides": [
    {
      "slug": "delivery-integrations-cancellation-flow",
      "title": "Cancel a delivery",
      "summary": "Cancel an in-flight delivery when Otter requests it before the job is fulfilled.",
      "url": "https://connect.tryotter.com/docs/delivery-integrations-cancellation-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/delivery-integrations-cancellation-flow.md"
    },
    {
      "slug": "delivery-integrations-creation-flow",
      "title": "Create a delivery",
      "summary": "Quote, accept, and update a delivery job until it is completed or canceled.",
      "url": "https://connect.tryotter.com/docs/delivery-integrations-creation-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/delivery-integrations-creation-flow.md"
    },
    {
      "slug": "delivery-integrations-error-event-flow",
      "title": "Handle delivery errors",
      "summary": "Report processing failures during async delivery work so users see a clear message.",
      "url": "https://connect.tryotter.com/docs/delivery-integrations-error-event-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/delivery-integrations-error-event-flow.md"
    },
    {
      "slug": "delivery-integrations-operations",
      "title": "Delivery",
      "summary": "Coordinate delivery quotes, job creation, live updates, and cancellation with your courier or logistics partner.",
      "url": "https://connect.tryotter.com/docs/delivery-integrations-operations/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/delivery-integrations-operations.md"
    },
    {
      "slug": "delivery-integrations-update-request-flow",
      "title": "Handle delivery update requests",
      "summary": "Respond when Otter asks you to revise an in-flight delivery (cost, pickup, payments, or tip).",
      "url": "https://connect.tryotter.com/docs/delivery-integrations-update-request-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/delivery-integrations-update-request-flow.md"
    },
    {
      "slug": "direct-orders-integrations-operations",
      "title": "Direct Order",
      "summary": "Query orders placed by an eater through your direct-order channel.",
      "url": "https://connect.tryotter.com/docs/direct-orders-integrations-operations/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/direct-orders-integrations-operations.md"
    },
    {
      "slug": "finance-integration-operations",
      "title": "Finance",
      "summary": "Post financial transaction data for orders after checkout so Otter has payout, fee, tax, and adjustment detail.",
      "url": "https://connect.tryotter.com/docs/finance-integration-operations/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/finance-integration-operations.md"
    },
    {
      "slug": "financial-transaction-flow",
      "title": "Financial transactions",
      "summary": "Send order financials to Otter after the order concludes.",
      "url": "https://connect.tryotter.com/docs/financial-transaction-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/financial-transaction-flow.md"
    },
    {
      "slug": "guides-ai-coding-agents",
      "title": "Use these docs with AI",
      "summary": "Connect Cursor, Claude Code, and similar tools to the live Otter guides and API reference — so generated code matches the current contract, not training-data guesses.",
      "url": "https://connect.tryotter.com/docs/guides-ai-coding-agents/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/guides-ai-coding-agents.md"
    },
    {
      "slug": "guides-authentication",
      "title": "Authentication",
      "summary": "How your app proves who it is when calling the Otter API — and how you verify that inbound webhooks really came from Otter.",
      "url": "https://connect.tryotter.com/docs/guides-authentication/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/guides-authentication.md"
    },
    {
      "slug": "guides-contract-status",
      "title": "API behavior and feature status",
      "summary": "Use this page to distinguish production contracts from behavior that still requires product-specific confirmation.",
      "url": "https://connect.tryotter.com/docs/guides-contract-status/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/guides-contract-status.md"
    },
    {
      "slug": "guides-events-and-webhooks",
      "title": "Events and webhooks",
      "summary": "How Otter notifies your app when something happens outside a REST call you started — and how you should respond.",
      "url": "https://connect.tryotter.com/docs/guides-events-and-webhooks/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/guides-events-and-webhooks.md"
    },
    {
      "slug": "guides-find-event-id",
      "title": "Find an event ID",
      "summary": "Use the `eventId` at the top level of a webhook payload to correlate the event with callbacks, logs, and retries.",
      "url": "https://connect.tryotter.com/docs/guides-find-event-id/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/guides-find-event-id.md"
    },
    {
      "slug": "guides-quickstart",
      "title": "Quickstart",
      "summary": "Get credentials, connect a store, call the Otter API, and receive a verified webhook — in one path.",
      "url": "https://connect.tryotter.com/docs/guides-quickstart/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/guides-quickstart.md"
    },
    {
      "slug": "guides-rate-limiting",
      "title": "Understand rate limits",
      "summary": "Stay within Otter API quotas so your integration remains reliable under load.",
      "url": "https://connect.tryotter.com/docs/guides-rate-limiting/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/guides-rate-limiting.md"
    },
    {
      "slug": "guides-stores-and-connections",
      "title": "Stores and connections",
      "summary": "How restaurant locations are linked to your application — and why store-scoped API calls need `X-Store-Id`.",
      "url": "https://connect.tryotter.com/docs/guides-stores-and-connections/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/guides-stores-and-connections.md"
    },
    {
      "slug": "guides-webhook-authentication",
      "title": "Webhook authentication",
      "summary": "Webhook authentication means validating every Otter webhook before you trust the payload. This guide is the deep how-to for HMAC and `Authorization` options.",
      "url": "https://connect.tryotter.com/docs/guides-webhook-authentication/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/guides-webhook-authentication.md"
    },
    {
      "slug": "loyalty-manager-integrations-operations",
      "title": "Loyalty Manager",
      "summary": "Enroll guests, compute rewards, and redeem or refund loyalty for orders.",
      "url": "https://connect.tryotter.com/docs/loyalty-manager-integrations-operations/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/loyalty-manager-integrations-operations.md"
    },
    {
      "slug": "menu-integrations-operations",
      "title": "Menus",
      "summary": "Keep menus, hours, and item availability in sync when Otter pushes changes to your integrated service.",
      "url": "https://connect.tryotter.com/docs/menu-integrations-operations/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/menu-integrations-operations.md"
    },
    {
      "slug": "menus-integrations-failed-event-flow",
      "title": "Handle failed events",
      "summary": "Tell Otter when you cannot complete a menu webhook operation so users see a clear error.",
      "url": "https://connect.tryotter.com/docs/menus-integrations-failed-event-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/menus-integrations-failed-event-flow.md"
    },
    {
      "slug": "menus-integrations-publish-flow",
      "title": "Publish a menu",
      "summary": "Sync menus from Otter to your integrated service after Otter matches entities with what you already have on the target.",
      "url": "https://connect.tryotter.com/docs/menus-integrations-publish-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/menus-integrations-publish-flow.md"
    },
    {
      "slug": "menus-integrations-update-menu-entities-availability-flow",
      "title": "Update availability",
      "summary": "Suspend or unsuspend a menu item (or other entity) on your integrated service when Otter requests it.",
      "url": "https://connect.tryotter.com/docs/menus-integrations-update-menu-entities-availability-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/menus-integrations-update-menu-entities-availability-flow.md"
    },
    {
      "slug": "menus-integrations-upsert-hours-flow",
      "title": "Upsert hours",
      "summary": "Apply menu hour changes on your integrated service when Otter sends a [Menu upsert hours (`menus.upsert_hours`)](/docs/api-reference/reference/upsert-menu-hours-webhook) webhook.",
      "url": "https://connect.tryotter.com/docs/menus-integrations-upsert-hours-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/menus-integrations-upsert-hours-flow.md"
    },
    {
      "slug": "menus-manager-integrations-manager-menu-sync-flow",
      "title": "Manager menu sync",
      "summary": "Synchronize Manager menus with Otter menus for a store, optionally publishing to OFO in the same request.",
      "url": "https://connect.tryotter.com/docs/menus-manager-integrations-manager-menu-sync-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/menus-manager-integrations-manager-menu-sync-flow.md"
    },
    {
      "slug": "menus-manager-integrations-operations",
      "title": "Menus Manager",
      "summary": "Own the menu catalog in your app and sync menus with Otter, then publish to connected targets.",
      "url": "https://connect.tryotter.com/docs/menus-manager-integrations-operations/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/menus-manager-integrations-operations.md"
    },
    {
      "slug": "menus-manager-integrations-publish-menus-to-target-flow",
      "title": "Publish menus to a target",
      "summary": "Push menus from Menus Manager to another integrated service Otter supports for the store.",
      "url": "https://connect.tryotter.com/docs/menus-manager-integrations-publish-menus-to-target-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/menus-manager-integrations-publish-menus-to-target-flow.md"
    },
    {
      "slug": "menus-manager-integrations-read-upsert-menus-flow",
      "title": "Read, send, and upsert menus",
      "summary": "Read menus stored in Otter, replace a store's complete menu snapshot, return the current menu when Otter requests it, and track asynchronous menu jobs to completion.",
      "url": "https://connect.tryotter.com/docs/menus-manager-integrations-read-upsert-menus-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/menus-manager-integrations-read-upsert-menus-flow.md"
    },
    {
      "slug": "menus-manager-integrations-suspend-unsupend-menu-entities-flow",
      "title": "Suspend or unsuspend entities",
      "summary": "Change availability of categories, items, or modifiers in Otter, then push changes to publish targets.",
      "url": "https://connect.tryotter.com/docs/menus-manager-integrations-suspend-unsupend-menu-entities-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/menus-manager-integrations-suspend-unsupend-menu-entities-flow.md"
    },
    {
      "slug": "onboard-application",
      "title": "Register your application",
      "summary": "This step is part of the **[Quickstart](guides-quickstart.md#step-1-register-your-application)**.",
      "url": "https://connect.tryotter.com/docs/onboard-application/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/onboard-application.md"
    },
    {
      "slug": "onboard-store",
      "title": "Connect your stores",
      "summary": "This step is part of the **[Quickstart](guides-quickstart.md#step-3-connect-your-stores)**.",
      "url": "https://connect.tryotter.com/docs/onboard-store/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/onboard-store.md"
    },
    {
      "slug": "onboard-webhook",
      "title": "Register webhooks",
      "summary": "This step is part of the **[Quickstart](guides-quickstart.md#step-4-register-webhooks-and-verify-signatures)**.",
      "url": "https://connect.tryotter.com/docs/onboard-webhook/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/onboard-webhook.md"
    },
    {
      "slug": "order-consumer-integrations-operations",
      "title": "Orders (receive into your system)",
      "summary": "Use this when Otter (or another connected channel) creates orders and your system — for example a POS — needs to ingest them and stay in sync on status.",
      "url": "https://connect.tryotter.com/docs/order-consumer-integrations-operations/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/order-consumer-integrations-operations.md"
    },
    {
      "slug": "order-provider-integrations-operations",
      "title": "Orders (send into Otter)",
      "summary": "Use this when your system is the source of truth for orders — for example a marketplace or channel that pushes orders into Otter for kitchen prep.",
      "url": "https://connect.tryotter.com/docs/order-provider-integrations-operations/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/order-provider-integrations-operations.md"
    },
    {
      "slug": "order-status-notifications",
      "title": "Handle status notifications",
      "summary": "Receive optional webhooks when an order reaches Ready, HandedOff, or Fulfilled (Order Manager integrations).",
      "url": "https://connect.tryotter.com/docs/order-status-notifications/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/order-status-notifications.md"
    },
    {
      "slug": "orders-integrations-cancellation-flow",
      "title": "Cancel an order",
      "summary": "Cancel an order before it is fulfilled — either from your app or after a restaurant intent-to-cancel.",
      "url": "https://connect.tryotter.com/docs/orders-integrations-cancellation-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/orders-integrations-cancellation-flow.md"
    },
    {
      "slug": "orders-integrations-create-event-flow",
      "title": "Handle create events",
      "summary": "Ingest orders Otter created internally (integrations or manual entry) into your POS or back office.",
      "url": "https://connect.tryotter.com/docs/orders-integrations-create-event-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/orders-integrations-create-event-flow.md"
    },
    {
      "slug": "orders-integrations-creation-flow",
      "title": "Create an order",
      "summary": "Push a new order into Otter and follow status through fulfillment.",
      "url": "https://connect.tryotter.com/docs/orders-integrations-creation-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/orders-integrations-creation-flow.md"
    },
    {
      "slug": "orders-integrations-creation-order-total-v2",
      "title": "Migrate to Order Total v2",
      "summary": "Move from deprecated `orderTotal` to `orderTotalV2` for clearer financial breakdown on orders.",
      "url": "https://connect.tryotter.com/docs/orders-integrations-creation-order-total-v2/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/orders-integrations-creation-order-total-v2.md"
    },
    {
      "slug": "orders-integrations-lifecycle",
      "title": "Order lifecycle",
      "summary": "Understand the statuses an order moves through from create to fulfilled or canceled.",
      "url": "https://connect.tryotter.com/docs/orders-integrations-lifecycle/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/orders-integrations-lifecycle.md"
    },
    {
      "slug": "organization-integrations-onboarding-flow",
      "title": "Onboard an organization",
      "summary": "Let merchants authorize your app and connect stores using OAuth and the organization API.",
      "url": "https://connect.tryotter.com/docs/organization-integrations-onboarding-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/organization-integrations-onboarding-flow.md"
    },
    {
      "slug": "otter-101",
      "title": "Otter 101",
      "summary": "An intro to Otter for API partners — how restaurants, applications, and integrations fit together.",
      "url": "https://connect.tryotter.com/docs/otter-101/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/otter-101.md"
    },
    {
      "slug": "overview",
      "title": "Overview",
      "summary": "Connect Otter to the systems restaurants already use — marketplaces, POS, delivery, back-office tools, and more.",
      "url": "https://connect.tryotter.com/docs/overview/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/overview.md"
    },
    {
      "slug": "reviews-integration-operations",
      "title": "Reviews",
      "summary": "Post public replies to customer reviews (immediately or on a schedule).",
      "url": "https://connect.tryotter.com/docs/reviews-integration-operations/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/reviews-integration-operations.md"
    },
    {
      "slug": "reviews-integrations-reply-to-a-review-flow",
      "title": "Reply to a review",
      "summary": "Post a merchant response to a customer review, optionally at a scheduled time.",
      "url": "https://connect.tryotter.com/docs/reviews-integrations-reply-to-a-review-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/reviews-integrations-reply-to-a-review-flow.md"
    },
    {
      "slug": "reviews-overview",
      "title": "Reviews Documentation",
      "summary": "",
      "url": "https://connect.tryotter.com/docs/reviews-overview/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/reviews-overview.md"
    },
    {
      "slug": "scenarios",
      "title": "Scenarios",
      "summary": "Choose the application type that best matches the system you are connecting to Otter. Each scenario combines the existing domain guides into an end-to-end implementation roadmap and a certification-readiness checklist.",
      "url": "https://connect.tryotter.com/docs/scenarios/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/scenarios.md"
    },
    {
      "slug": "scenarios-3pl",
      "title": "Build a third-party logistics application",
      "summary": "Use this roadmap when your third-party logistics (3PL) application quotes, accepts, and fulfills delivery jobs for Otter. A certification-ready 3PL flow supports quoting, delivery creation, live updates, update requests, cancellation, errors, and both successful and canceled term",
      "url": "https://connect.tryotter.com/docs/scenarios-3pl/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/scenarios-3pl.md"
    },
    {
      "slug": "scenarios-ofo",
      "title": "Build an online food ordering application",
      "summary": "Use this roadmap when your online food ordering (OFO) application is a marketplace or ordering channel that sends orders into Otter. A certification-ready OFO flow keeps orders, menus, hours, item availability, and storefront status synchronized for every connected store.",
      "url": "https://connect.tryotter.com/docs/scenarios-ofo/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/scenarios-ofo.md"
    },
    {
      "slug": "scenarios-pos",
      "title": "Build a point-of-sale application",
      "summary": "Use this roadmap when your point-of-sale (POS) or kitchen system receives orders from Otter and owns the menu catalog. A certification-ready POS flow ingests each order once, tracks status changes, and publishes the POS menu into Otter through Menus Manager.",
      "url": "https://connect.tryotter.com/docs/scenarios-pos/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/scenarios-pos.md"
    },
    {
      "slug": "store-integrations-operations",
      "title": "Store",
      "summary": "Read Otter store metadata only when your integration specifically needs it.",
      "url": "https://connect.tryotter.com/docs/store-integrations-operations/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/store-integrations-operations.md"
    },
    {
      "slug": "storefront-integrations-get-store-availability-event-flow",
      "title": "Get store availability",
      "summary": "Report whether a store is open, paused, or otherwise unavailable when Otter asks on a schedule.",
      "url": "https://connect.tryotter.com/docs/storefront-integrations-get-store-availability-event-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/storefront-integrations-get-store-availability-event-flow.md"
    },
    {
      "slug": "storefront-integrations-operations",
      "title": "Storefront",
      "summary": "Keep store hours, availability, and pause state aligned between Otter and your online storefront.",
      "url": "https://connect.tryotter.com/docs/storefront-integrations-operations/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/storefront-integrations-operations.md"
    },
    {
      "slug": "storefront-integrations-pause-unpause-event-flow",
      "title": "Pause or unpause",
      "summary": "Pause or resume a store on your storefront when an operator requests it in Otter.",
      "url": "https://connect.tryotter.com/docs/storefront-integrations-pause-unpause-event-flow/",
      "contentUrl": "https://connect.tryotter.com/docs/agent-guides/storefront-integrations-pause-unpause-event-flow.md"
    }
  ]
}
