# Otter API documentation for AI agents This is the discovery manifest for the public Otter Partner API documentation. If you were given only the docs homepage URL, fetch this file next (https://connect.tryotter.com/docs/llms.txt), then use MCP or the static corpus below. ## Start here - Docs homepage: https://connect.tryotter.com/docs/ - This manifest: https://connect.tryotter.com/docs/llms.txt - Human guide for coding agents: https://connect.tryotter.com/docs/guides-ai-coding-agents/ ## MCP (preferred for focused retrieval) - Streamable HTTP endpoint: https://connect.tryotter.com/docs/mcp - Tools: `search_docs`, `get_guide`, `get_openapi` (read-only; does not call the Partner API or access customer data) - Use MCP when your coding agent can connect to MCP servers; otherwise use the static artifacts below. ## Canonical API contract - OpenAPI v1: https://connect.tryotter.com/docs/openapi/public-api.yaml ## Complete agent-readable corpus - All guides in one file: https://connect.tryotter.com/docs/llms-full.txt - Machine-readable guide index: https://connect.tryotter.com/docs/agent-index.json - BM25 search index (guides + OpenAPI ops/webhooks/schemas): https://connect.tryotter.com/docs/agent-search.json - Per-guide Markdown: https://connect.tryotter.com/docs/agent-guides/.md ## Guides - [Cancel a delivery](https://connect.tryotter.com/docs/delivery-integrations-cancellation-flow/): Cancel an in-flight delivery when Otter requests it before the job is fulfilled. - [Create a delivery](https://connect.tryotter.com/docs/delivery-integrations-creation-flow/): Quote, accept, and update a delivery job until it is completed or canceled. - [Handle delivery errors](https://connect.tryotter.com/docs/delivery-integrations-error-event-flow/): Report processing failures during async delivery work so users see a clear message. - [Delivery](https://connect.tryotter.com/docs/delivery-integrations-operations/): Coordinate delivery quotes, job creation, live updates, and cancellation with your courier or logistics partner. - [Handle delivery update requests](https://connect.tryotter.com/docs/delivery-integrations-update-request-flow/): Respond when Otter asks you to revise an in-flight delivery (cost, pickup, payments, or tip). - [Direct Order](https://connect.tryotter.com/docs/direct-orders-integrations-operations/): Query orders placed by an eater through your direct-order channel. - [Finance](https://connect.tryotter.com/docs/finance-integration-operations/): Post financial transaction data for orders after checkout so Otter has payout, fee, tax, and adjustment detail. - [Financial transactions](https://connect.tryotter.com/docs/financial-transaction-flow/): Send order financials to Otter after the order concludes. - [Use these docs with AI](https://connect.tryotter.com/docs/guides-ai-coding-agents/): 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. - [Authentication](https://connect.tryotter.com/docs/guides-authentication/): How your app proves who it is when calling the Otter API — and how you verify that inbound webhooks really came from Otter. - [API behavior and feature status](https://connect.tryotter.com/docs/guides-contract-status/): Use this page to distinguish production contracts from behavior that still requires product-specific confirmation. - [Events and webhooks](https://connect.tryotter.com/docs/guides-events-and-webhooks/): How Otter notifies your app when something happens outside a REST call you started — and how you should respond. - [Find an event ID](https://connect.tryotter.com/docs/guides-find-event-id/): Use the `eventId` at the top level of a webhook payload to correlate the event with callbacks, logs, and retries. - [Quickstart](https://connect.tryotter.com/docs/guides-quickstart/): Get credentials, connect a store, call the Otter API, and receive a verified webhook — in one path. - [Understand rate limits](https://connect.tryotter.com/docs/guides-rate-limiting/): Stay within Otter API quotas so your integration remains reliable under load. - [Stores and connections](https://connect.tryotter.com/docs/guides-stores-and-connections/): How restaurant locations are linked to your application — and why store-scoped API calls need `X-Store-Id`. - [Webhook authentication](https://connect.tryotter.com/docs/guides-webhook-authentication/): Webhook authentication means validating every Otter webhook before you trust the payload. This guide is the deep how-to for HMAC and `Authorization` options. - [Loyalty Manager](https://connect.tryotter.com/docs/loyalty-manager-integrations-operations/): Enroll guests, compute rewards, and redeem or refund loyalty for orders. - [Menus](https://connect.tryotter.com/docs/menu-integrations-operations/): Keep menus, hours, and item availability in sync when Otter pushes changes to your integrated service. - [Handle failed events](https://connect.tryotter.com/docs/menus-integrations-failed-event-flow/): Tell Otter when you cannot complete a menu webhook operation so users see a clear error. - [Publish a menu](https://connect.tryotter.com/docs/menus-integrations-publish-flow/): Sync menus from Otter to your integrated service after Otter matches entities with what you already have on the target. - [Update availability](https://connect.tryotter.com/docs/menus-integrations-update-menu-entities-availability-flow/): Suspend or unsuspend a menu item (or other entity) on your integrated service when Otter requests it. - [Upsert hours](https://connect.tryotter.com/docs/menus-integrations-upsert-hours-flow/): 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. - [Manager menu sync](https://connect.tryotter.com/docs/menus-manager-integrations-manager-menu-sync-flow/): Synchronize Manager menus with Otter menus for a store, optionally publishing to OFO in the same request. - [Menus Manager](https://connect.tryotter.com/docs/menus-manager-integrations-operations/): Own the menu catalog in your app and sync menus with Otter, then publish to connected targets. - [Publish menus to a target](https://connect.tryotter.com/docs/menus-manager-integrations-publish-menus-to-target-flow/): Push menus from Menus Manager to another integrated service Otter supports for the store. - [Read, send, and upsert menus](https://connect.tryotter.com/docs/menus-manager-integrations-read-upsert-menus-flow/): 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. - [Suspend or unsuspend entities](https://connect.tryotter.com/docs/menus-manager-integrations-suspend-unsupend-menu-entities-flow/): Change availability of categories, items, or modifiers in Otter, then push changes to publish targets. - [Register your application](https://connect.tryotter.com/docs/onboard-application/): This step is part of the **[Quickstart](guides-quickstart.md#step-1-register-your-application)**. - [Connect your stores](https://connect.tryotter.com/docs/onboard-store/): This step is part of the **[Quickstart](guides-quickstart.md#step-3-connect-your-stores)**. - [Register webhooks](https://connect.tryotter.com/docs/onboard-webhook/): This step is part of the **[Quickstart](guides-quickstart.md#step-4-register-webhooks-and-verify-signatures)**. - [Orders (receive into your system)](https://connect.tryotter.com/docs/order-consumer-integrations-operations/): 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. - [Orders (send into Otter)](https://connect.tryotter.com/docs/order-provider-integrations-operations/): 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. - [Handle status notifications](https://connect.tryotter.com/docs/order-status-notifications/): Receive optional webhooks when an order reaches Ready, HandedOff, or Fulfilled (Order Manager integrations). - [Cancel an order](https://connect.tryotter.com/docs/orders-integrations-cancellation-flow/): Cancel an order before it is fulfilled — either from your app or after a restaurant intent-to-cancel. - [Handle create events](https://connect.tryotter.com/docs/orders-integrations-create-event-flow/): Ingest orders Otter created internally (integrations or manual entry) into your POS or back office. - [Create an order](https://connect.tryotter.com/docs/orders-integrations-creation-flow/): Push a new order into Otter and follow status through fulfillment. - [Migrate to Order Total v2](https://connect.tryotter.com/docs/orders-integrations-creation-order-total-v2/): Move from deprecated `orderTotal` to `orderTotalV2` for clearer financial breakdown on orders. - [Order lifecycle](https://connect.tryotter.com/docs/orders-integrations-lifecycle/): Understand the statuses an order moves through from create to fulfilled or canceled. - [Onboard an organization](https://connect.tryotter.com/docs/organization-integrations-onboarding-flow/): Let merchants authorize your app and connect stores using OAuth and the organization API. - [Otter 101](https://connect.tryotter.com/docs/otter-101/): An intro to Otter for API partners — how restaurants, applications, and integrations fit together. - [Overview](https://connect.tryotter.com/docs/overview/): Connect Otter to the systems restaurants already use — marketplaces, POS, delivery, back-office tools, and more. - [Reviews](https://connect.tryotter.com/docs/reviews-integration-operations/): Post public replies to customer reviews (immediately or on a schedule). - [Reply to a review](https://connect.tryotter.com/docs/reviews-integrations-reply-to-a-review-flow/): Post a merchant response to a customer review, optionally at a scheduled time. - [Reviews Documentation](https://connect.tryotter.com/docs/reviews-overview/): - [Scenarios](https://connect.tryotter.com/docs/scenarios/): 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. - [Build a third-party logistics application](https://connect.tryotter.com/docs/scenarios-3pl/): 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 - [Build an online food ordering application](https://connect.tryotter.com/docs/scenarios-ofo/): 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. - [Build a point-of-sale application](https://connect.tryotter.com/docs/scenarios-pos/): 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. - [Store](https://connect.tryotter.com/docs/store-integrations-operations/): Read Otter store metadata only when your integration specifically needs it. - [Get store availability](https://connect.tryotter.com/docs/storefront-integrations-get-store-availability-event-flow/): Report whether a store is open, paused, or otherwise unavailable when Otter asks on a schedule. - [Storefront](https://connect.tryotter.com/docs/storefront-integrations-operations/): Keep store hours, availability, and pause state aligned between Otter and your online storefront. - [Pause or unpause](https://connect.tryotter.com/docs/storefront-integrations-pause-unpause-event-flow/): Pause or resume a store on your storefront when an operator requests it in Otter. Use the OpenAPI document for endpoint, schema, authentication-scope, request, and response details. Use guides for integration workflows, webhooks, rate limiting, and operational behavior. Prefer live guide/API reference URLs over memorized paths.