{
  "data": {
    "a": {
      "slug": "opentable",
      "name": "OpenTable APIs",
      "vendor": "OpenTable",
      "vendorUrl": "https://www.opentable.com",
      "kind": "http-api",
      "category": "local-bookings",
      "summary": "OpenTable's partner APIs let approved partners search restaurant availability and make, change and cancel reservations, for diners through the Consumer API or for restaurants' voice agents through the In-House Booking API, with OAuth 2.0 client credentials.",
      "url": "https://www.anchorterminal.com/tools/opentable",
      "markdownUrl": "https://www.anchorterminal.com/tools/opentable.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/opentable.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/opentable.json",
      "license": "Proprietary service under each partner's agreement with OpenTable and the Platform Policy published in the API documentation",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://platform.opentable.com",
      "packages": [],
      "auth": "oauth",
      "authNotes": "Partner approval required. A partner applies through OpenTable's become-a-partner form, the partnerships team reviews the application, and approved partners receive sandbox credentials and restaurant IDs in a welcome email. Tokens come from the OAuth 2.0 client credentials grant at https://oauth-pp.opentable.com (sandbox) or https://oauth.opentable.com (production), with the client ID and secret Base64-encoded in the Authorization header. The Platform Policy forbids sharing credentials and says OpenTable may require rotation. Restaurants connect a partner through an OAuth or unique-identifier onboarding flow in the Integrations Marketplace.",
      "pricing": "byo-plan",
      "pricingNotes": "No API prices are published. Use is governed by each partner's agreement with OpenTable, and the docs say new implementations may need additional contracting and certification. A sandbox is granted after approval. The change log describes a configurable OpenTable Service Fee (shown to diners as 2 per cent) that restaurants may pass on to diners on experiences, deposits and card holds (https://docs.opentable.com/).",
      "priceSummary": "Your plan",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the public API documentation (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://docs.opentable.com",
      "capabilities": [
        "booking.availability",
        "booking.reservations",
        "booking.venue",
        "crm.records"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "partner-only",
        "rest",
        "oauth",
        "webhooks",
        "sandbox",
        "restaurants"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 38.6,
        "grade": "E",
        "agentReady": false,
        "rank": 1010,
        "ranked": true,
        "rankOf": 1094,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 5,
          "payments": 5,
          "reliability": 35,
          "schema": 61,
          "security": 33,
          "transparency": 42
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "The public documentation covers diner-side and venue-side booking in detail, with slot locks, policy endpoints, error tables and an X-Request-Id header for safe retries. Access needs partner approval and a contract, rate limits and prices are not published, and the status page and main website could not be read.",
        "bestFor": "Approved affiliates, restaurant groups and voice AI vendors that need to book into OpenTable restaurants.",
        "strengths": [
          "Diner-side Consumer API v2 and venue-side In-House Booking API both cover availability, slot lock, booking, change and cancellation",
          "Booking and cancellation policy endpoints return deposits, holds and cut-off rules before a booking is made",
          "X-Request-Id on POST, PUT and PATCH requests makes retries safe",
          "Error tables name business-rule failures such as DinerHasOverlappingReservations with their HTTP codes",
          "A sandbox environment with its own OAuth host is granted after approval"
        ],
        "weaknesses": [
          "Access needs an application, review by the partnerships team and an agreement, with no self-serve credentials",
          "Rate limits are not published and come from the OpenTable representative",
          "No OpenAPI file, llms.txt or SDK, only a Postman collection",
          "The change log has one dated entry, the TLS 1.3 notice of 6 October 2025",
          "The Platform Policy allows API changes and suspension with or without notice and promises no support"
        ],
        "agentNotes": [
          "Lock the slot before calling Make Reservation, since the lock and its reservation_token expire within 5 minutes",
          "Send a unique X-Request-Id on every POST, PUT and PATCH so a retried booking is not duplicated",
          "Fetch booking and cancellation policies before booking and show any deposit, hold or service fee to the diner",
          "Use the Consumer API for diner bookings and the In-House Booking API only for a restaurant's own voice or phone channel",
          "Ask the OpenTable representative for the rate limit of each endpoint before going live"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 38.6
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 5,
          "payments": 5,
          "reliability": 35,
          "schema": 61,
          "security": 33,
          "transparency": 20
        },
        "provenanceScore": 64
      },
      "connect": {
        "http": "curl \"https://oauth-pp.opentable.com/api/v2/oauth/token?grant_type=client_credentials\" -H \"Authorization: Basic BASE64_CLIENT_ID_AND_SECRET\""
      },
      "letme": {
        "capability": "https://letme.dev/booking.availability",
        "tool": "https://letme.dev/opentable"
      },
      "area": "everyday",
      "provenance": {
        "legalEntity": "",
        "domain": "opentable.com",
        "domainRegistered": "1999-01-17",
        "endpointOnVendorDomain": true,
        "terms": "https://www.opentable.com/legal/terms-and-conditions",
        "privacy": "https://www.opentable.com/legal/privacy-policy",
        "statusPage": "https://status.opentable.com",
        "changelog": "https://docs.opentable.com/",
        "securityTxt": "unknown",
        "checked": "2026-10-14",
        "notes": [
          "The terms and privacy URLs are the ones the API documentation links. www.opentable.com timed out on every request from our network on 14 October 2026, including robots.txt, so neither page nor the legal entity was read.",
          "The API's own Platform Policy (last updated 20 December 2024) is published at the top of docs.opentable.com and refers to each partner's agreement with OpenTable.",
          "status.opentable.com is a StatusDashboard page whose components and history load by script and were not readable to our reader.",
          "The change log is a section of the documentation (API Reference, Change Log), not a separate page.",
          "security.txt could not be fetched because www.opentable.com did not answer.",
          "RDAP gives opentable.com a registration date of 1999-01-17."
        ],
        "score": 64
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/opentable.json",
      "live": {
        "slug": "opentable",
        "probe": {
          "target": "https://platform.opentable.com",
          "method": "get",
          "lastAt": "2026-10-15T11:30:04.323540699Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 1550,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 539,
          "p95ms24h": 1100,
          "samples24h": 254,
          "samples30d": 289,
          "days": [
            {
              "date": "2026-10-14",
              "probes": 166,
              "ok": 166
            },
            {
              "date": "2026-10-15",
              "probes": 123,
              "ok": 123
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.opentable.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-15T10:07:09.934077522Z"
        },
        "securityTxt": {
          "url": "https://opentable.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-10-14T15:46:31.411284909Z"
        },
        "pages": [
          {
            "url": "https://docs.opentable.com/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-14T20:59:08.334369092Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e3b0c44298fc"
          }
        ],
        "updatedAt": "2026-10-15T11:30:04.323540699Z"
      }
    },
    "answer": "Square Appointments (Bookings API) scores 68.1 (B) on agent readiness against OpenTable APIs's 38.6 (E), and leads in every scored category.",
    "b": {
      "slug": "square-appointments",
      "name": "Square Appointments (Bookings API)",
      "vendor": "Block, Inc.",
      "vendorUrl": "https://squareup.com/us/en/appointments",
      "kind": "http-api",
      "category": "local-bookings",
      "summary": "Square Appointments is Block's booking product for service businesses. Its Bookings API searches a seller's availability and creates, updates and cancels appointments, with location, team member and business booking profiles and custom attributes.",
      "url": "https://www.anchorterminal.com/tools/square-appointments",
      "markdownUrl": "https://www.anchorterminal.com/tools/square-appointments.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/square-appointments.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/square-appointments.json",
      "repo": "https://github.com/square/connect-api-specification",
      "license": "Proprietary service under the Square Developer Terms of Service. The OpenAPI specification and MCP server are Apache 2.0",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://connect.squareup.com/v2/bookings",
      "packages": [
        {
          "registry": "npm",
          "name": "square"
        },
        {
          "registry": "pypi",
          "name": "squareup"
        },
        {
          "registry": "npm",
          "name": "square-mcp-server"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. A Square account and a Developer Console application. OAuth access tokens carry appointment scopes (`APPOINTMENTS_READ`, `APPOINTMENTS_WRITE`, `APPOINTMENTS_ALL_READ`, `APPOINTMENTS_ALL_WRITE`, `APPOINTMENTS_BUSINESS_SETTINGS_READ`), expire after 30 days and can be refreshed and revoked. Personal access tokens are unrestricted for the owner's account. Seller-level permissions see every booking. Buyer-level permissions see only the bookings the app created (https://developer.squareup.com/docs/bookings-api/what-it-is).",
      "pricing": "freemium",
      "pricingNotes": "The API carries no charge. Square Free is $0 a month per location, Plus $49 and Premium $149, and the comparison table lists the Bookings API under Plus and Premium. Seller-level create, update and cancel need Plus or Premium, while buyer-level bookings work on the free plan. Card processing fees apply to payments. The sandbox is free (https://squareup.com/us/en/appointments/pricing, checked 2026-10-14).",
      "priceSummary": "$49 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in developer.squareup.com/llms.txt or the OpenAPI spec (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": 3,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://developer.squareup.com/docs/bookings-api/what-it-is",
      "llmsTxt": "https://developer.squareup.com/llms.txt",
      "openapi": "https://raw.githubusercontent.com/square/connect-api-specification/master/api.json",
      "capabilities": [
        "booking.appointments",
        "booking.availability",
        "booking.venue"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "rest",
        "oauth",
        "openapi",
        "llms-txt",
        "webhooks",
        "sandbox",
        "mcp",
        "freemium",
        "status-page",
        "bug-bounty",
        "venue-side"
      ],
      "lastRelease": "2026-09-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68.1,
        "grade": "B",
        "agentReady": false,
        "rank": 245,
        "ranked": true,
        "rankOf": 1094,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 71,
          "payments": 40,
          "reliability": 55,
          "schema": 89,
          "security": 70,
          "transparency": 70
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "The Bookings API lets an agent working for a Square seller search availability and create, change and cancel appointments, with a public OpenAPI spec, appointment OAuth scopes and idempotency keys. It acts for the venue. Seller-level writes need Plus or Premium, services with a no-show fee can't be booked through it, and it hasn't changed since September 2024.",
        "bestFor": "Venue-side appointment booking for salons, clinics and other service businesses already on Square.",
        "strengths": [
          "Availability search, create, update and cancel are separate documented operations, all generally available",
          "Five appointment OAuth scopes separate reading, writing and business settings",
          "`idempotency_key` on create, update and cancel, and `booking_version` for optimistic locking",
          "Buyer-level permissions work on the free Appointments plan and limit an app to its own bookings",
          "Free sandbox, and Square's MCP server includes the bookings service"
        ],
        "weaknesses": [
          "Seller-level create, update and cancel fail with 403 unless the seller pays for Plus ($49) or Premium ($149) per location",
          "Services with a non-zero no-show fee cannot be booked through the API, and the fee can't be set through it",
          "No Bookings API change in the changelog since 19 September 2024",
          "No numeric REST rate limits or SLA were found",
          "Bookable team members can only be set in the Square Dashboard"
        ],
        "agentNotes": [
          "Act for the seller. This API books into one Square seller's calendar, not across businesses",
          "Call RetrieveBusinessBookingProfile and check `support_seller_level_writes` before trying to create or cancel a seller-level booking",
          "Call SearchAvailability first, then CreateBooking with the service variation ID and version, team member, location and customer",
          "Send a fresh `idempotency_key` on each create, update or cancel, and pass `booking_version` when cancelling",
          "Check `no_show_fee` on the service. A service with a non-zero fee must be booked by the customer elsewhere"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.1
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 71,
          "payments": 40,
          "reliability": 55,
          "schema": 89,
          "security": 70,
          "transparency": 56
        },
        "provenanceScore": 84
      },
      "connect": {
        "install": "npx square-mcp-server start",
        "http": "curl https://connect.squareupsandbox.com/v2/bookings/availability/search \\\n  -X POST \\\n  -H 'Square-Version: 2026-09-16' \\\n  -H 'Authorization: Bearer {SANDBOX_ACCESS_TOKEN}' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"query\": {\"filter\": {\"start_at_range\": {\"start_at\": \"2026-10-20T09:00:00Z\", \"end_at\": \"2026-10-21T09:00:00Z\"}, \"location_id\": \"{LOCATION_ID}\"}}}'"
      },
      "letme": {
        "capability": "https://letme.dev/booking.appointments",
        "tool": "https://letme.dev/square-appointments"
      },
      "sameCompany": [
        "square"
      ],
      "area": "everyday",
      "unitPrices": [
        {
          "item": "Square Free",
          "unit": "month",
          "usd": 0,
          "note": "per location, buyer-level bookings only"
        },
        {
          "item": "Square Plus",
          "unit": "month",
          "usd": 49,
          "note": "per location, Bookings API seller-level writes"
        },
        {
          "item": "Square Premium",
          "unit": "month",
          "usd": 149,
          "note": "per location"
        }
      ],
      "provenance": {
        "legalEntity": "Block, Inc.",
        "domain": "squareup.com",
        "domainRegistered": "2007-05-26",
        "endpointOnVendorDomain": true,
        "terms": "https://squareup.com/us/en/legal/general/developers",
        "privacy": "https://squareup.com/us/en/legal/general/privacy",
        "statusPage": "https://www.issquareup.com",
        "changelog": "https://developer.squareup.com/docs/changelog/connect",
        "securityTxt": "none",
        "checked": "2026-10-14",
        "notes": [
          "The Square Developer Terms (updated 10 September 2026) are an agreement with Block, Inc. and govern the APIs, as recorded for the Square listing on 8 October 2026.",
          "The privacy notice (updated 15 September 2026) names Block, Inc., 1955 Broadway, Suite 600, Oakland, CA 94612 for US sellers.",
          "squareup.com/.well-known/security.txt returned 404 on 8 October 2026, and developer.squareup.com disallows /.well-known/ in robots.txt.",
          "RDAP gives a registration date of 2007-05-26 for squareup.com."
        ],
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/square-appointments.json",
      "live": {
        "slug": "square-appointments",
        "probe": {
          "target": "https://connect.squareup.com/v2/bookings",
          "method": "get",
          "lastAt": "2026-10-15T11:30:12.104284897Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 200,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 199,
          "p95ms24h": 277,
          "samples24h": 254,
          "samples30d": 289,
          "days": [
            {
              "date": "2026-10-14",
              "probes": 166,
              "ok": 166
            },
            {
              "date": "2026-10-15",
              "probes": 123,
              "ok": 123
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.issquareup.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-15T11:32:32.107899235Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "square",
            "version": "46.0.0",
            "seenAt": "2026-10-15T00:23:13.910946125Z"
          },
          {
            "registry": "npm",
            "name": "square-mcp-server",
            "version": "0.1.2",
            "seenAt": "2026-10-15T00:23:14.385145908Z"
          },
          {
            "registry": "pypi",
            "name": "squareup",
            "version": "46.0.0.20260916",
            "released": "2026-09-15",
            "seenAt": "2026-10-15T00:23:14.271147438Z"
          }
        ],
        "githubStars": 76,
        "npmWeekly": 335680,
        "pypiWeekly": 66305,
        "securityTxt": {
          "url": "https://squareup.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-14T15:46:32.837122381Z"
        },
        "llmsTxt": {
          "url": "https://developer.squareup.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-14T14:15:08.95701236Z"
        },
        "pages": [
          {
            "url": "https://developer.squareup.com/docs/changelog/connect",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-14T20:56:36.942381541Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "62494a1dd472"
          },
          {
            "url": "https://squareup.com/us/en/appointments/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-14T21:07:39.771343799Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1a6056b1039e"
          },
          {
            "url": "https://squareup.com/us/en/legal/general/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-14T21:07:45.32559064Z",
            "changedAt": "2026-10-10T19:10:06.312268685Z",
            "fingerprint": "64085b2a8993"
          },
          {
            "url": "https://squareup.com/us/en/legal/general/developers",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-14T21:07:42.974741378Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "74a446dafa05"
          }
        ],
        "updatedAt": "2026-10-15T11:32:32.107899235Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "OpenTable",
        "b": "Block, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://platform.opentable.com",
        "b": "https://connect.squareup.com/v2/bookings",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Your plan",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under each partner's agreement with OpenTable and the Platform Policy published in the API documentation",
        "b": "Proprietary service under the Square Developer Terms of Service. The OpenAPI specification and MCP server are Apache 2.0",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "3",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "none",
        "b": "2026-09-16",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "2026-09-10",
        "name": "Terms last updated"
      },
      {
        "a": "couldn't be read",
        "b": "2026-09-15",
        "name": "Privacy policy last updated"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      }
    ],
    "faq": [
      {
        "answer": "Square Appointments (Bookings API) scores 68.1 (B) on agent readiness against OpenTable APIs's 38.6 (E), and leads in every scored category.",
        "question": "Which is better for AI agents, OpenTable APIs or Square Appointments (Bookings API)?"
      },
      {
        "answer": "OpenTable APIs uses an OAuth sign-in. Square Appointments (Bookings API) takes an API key or an OAuth sign-in.",
        "question": "Do OpenTable APIs and Square Appointments (Bookings API) need an API key?"
      },
      {
        "answer": "Yes. OpenTable APIs has a hosted endpoint at https://platform.opentable.com and Square Appointments (Bookings API) at https://connect.squareup.com/v2/bookings.",
        "question": "Can an agent call OpenTable APIs and Square Appointments (Bookings API) without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Approved affiliates, restaurant groups and voice AI vendors that need to book into OpenTable restaurants.",
        "slug": "opentable",
        "watchFor": "Access needs an application, review by the partnerships team and an agreement, with no self-serve credentials"
      },
      {
        "aheadOn": [
          "Reliability, 55 against 35",
          "Schema \u0026 documentation, 89 against 61",
          "Agent ergonomics, 80 against 69",
          "Security \u0026 auth, 70 against 33",
          "Payments \u0026 pricing, 40 against 5",
          "Maintenance \u0026 community, 71 against 5",
          "Transparency \u0026 trust, 70 against 42"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "Venue-side appointment booking for salons, clinics and other service businesses already on Square.",
        "slug": "square-appointments",
        "watchFor": "Seller-level create, update and cancel fail with 403 unless the seller pays for Plus ($49) or Premium ($149) per location"
      }
    ],
    "job": {
      "capability": "booking.availability",
      "name": "Booking availability"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/chope-vs-opentable.json",
        "title": "Chope vs OpenTable APIs",
        "url": "https://www.anchorterminal.com/compare/chope-vs-opentable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/eat-app-vs-opentable.json",
        "title": "Eat App Partner API vs OpenTable APIs",
        "url": "https://www.anchorterminal.com/compare/eat-app-vs-opentable"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opentable-vs-tock.json",
        "title": "OpenTable APIs vs Tock",
        "url": "https://www.anchorterminal.com/compare/opentable-vs-tock"
      },
      {
        "json": "https://www.anchorterminal.com/compare/chope-vs-square-appointments.json",
        "title": "Chope vs Square Appointments (Bookings API)",
        "url": "https://www.anchorterminal.com/compare/chope-vs-square-appointments"
      },
      {
        "json": "https://www.anchorterminal.com/compare/eat-app-vs-square-appointments.json",
        "title": "Eat App Partner API vs Square Appointments (Bookings API)",
        "url": "https://www.anchorterminal.com/compare/eat-app-vs-square-appointments"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opentable-vs-resy.json",
        "title": "OpenTable APIs vs Resy",
        "url": "https://www.anchorterminal.com/compare/opentable-vs-resy"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opentable-vs-sevenrooms.json",
        "title": "OpenTable APIs vs SevenRooms",
        "url": "https://www.anchorterminal.com/compare/opentable-vs-sevenrooms"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opentable-vs-tablecheck.json",
        "title": "OpenTable APIs vs TableCheck API",
        "url": "https://www.anchorterminal.com/compare/opentable-vs-tablecheck"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opentable-vs-thefork.json",
        "title": "OpenTable APIs vs TheFork B2B API",
        "url": "https://www.anchorterminal.com/compare/opentable-vs-thefork"
      },
      {
        "json": "https://www.anchorterminal.com/compare/resy-vs-square-appointments.json",
        "title": "Resy vs Square Appointments (Bookings API)",
        "url": "https://www.anchorterminal.com/compare/resy-vs-square-appointments"
      },
      {
        "json": "https://www.anchorterminal.com/compare/square-appointments-vs-tablecheck.json",
        "title": "Square Appointments (Bookings API) vs TableCheck API",
        "url": "https://www.anchorterminal.com/compare/square-appointments-vs-tablecheck"
      },
      {
        "json": "https://www.anchorterminal.com/compare/square-appointments-vs-thefork.json",
        "title": "Square Appointments (Bookings API) vs TheFork B2B API",
        "url": "https://www.anchorterminal.com/compare/square-appointments-vs-thefork"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sevenrooms-vs-square-appointments.json",
        "title": "SevenRooms vs Square Appointments (Bookings API)",
        "url": "https://www.anchorterminal.com/compare/sevenrooms-vs-square-appointments"
      },
      {
        "json": "https://www.anchorterminal.com/compare/square-appointments-vs-tock.json",
        "title": "Square Appointments (Bookings API) vs Tock",
        "url": "https://www.anchorterminal.com/compare/square-appointments-vs-tock"
      }
    ],
    "scores": [
      {
        "by": 20,
        "edge": "square-appointments",
        "key": "reliability",
        "name": "Reliability",
        "opentable": 35,
        "square-appointments": 55,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 28,
        "edge": "square-appointments",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "opentable": 61,
        "square-appointments": 89,
        "weight": 13
      },
      {
        "by": 11,
        "edge": "square-appointments",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "opentable": 69,
        "square-appointments": 80,
        "weight": 13
      },
      {
        "by": 37,
        "edge": "square-appointments",
        "key": "security",
        "name": "Security \u0026 auth",
        "opentable": 33,
        "square-appointments": 70,
        "weight": 14
      },
      {
        "by": 35,
        "edge": "square-appointments",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "opentable": 5,
        "square-appointments": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 66,
        "edge": "square-appointments",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "opentable": 5,
        "square-appointments": 71,
        "weight": 7
      },
      {
        "by": 28,
        "edge": "square-appointments",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "opentable": 42,
        "square-appointments": 70,
        "weight": 7
      }
    ],
    "summary": "Square Appointments (Bookings API) scores 68.1 (B) on agent readiness against OpenTable APIs's 38.6 (E), and leads in every scored category. Both do booking availability.",
    "verdicts": {
      "opentable": "The public documentation covers diner-side and venue-side booking in detail, with slot locks, policy endpoints, error tables and an X-Request-Id header for safe retries. Access needs partner approval and a contract, rate limits and prices are not published, and the status page and main website could not be read.",
      "square-appointments": "The Bookings API lets an agent working for a Square seller search availability and create, change and cancel appointments, with a public OpenAPI spec, appointment OAuth scopes and idempotency keys. It acts for the venue. Seller-level writes need Plus or Premium, services with a no-show fee can't be booked through it, and it hasn't changed since September 2024."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/opentable-vs-square-appointments",
    "json": "https://www.anchorterminal.com/compare/opentable-vs-square-appointments.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/opentable-vs-square-appointments.md",
    "slim": "https://www.anchorterminal.com/compare/opentable-vs-square-appointments.min.md"
  },
  "markdown": "Square Appointments (Bookings API) scores 68.1 (B) on agent readiness against OpenTable APIs's 38.6 (E), and leads in every scored category. Both do booking availability.\n\n- OpenTable APIs: grade E, 38.6/100, rank #1010 of 1094. Markdown https://www.anchorterminal.com/tools/opentable.md · JSON https://www.anchorterminal.com/api/v1/tools/opentable.json\n- Square Appointments (Bookings API): grade B, 68.1/100, rank #245 of 1094. Markdown https://www.anchorterminal.com/tools/square-appointments.md · JSON https://www.anchorterminal.com/api/v1/tools/square-appointments.json\n- Best restaurant reservation and local appointment APIs for AI agents: https://www.anchorterminal.com/best/local-bookings/index.md\n- All 36 bookings comparisons: https://www.anchorterminal.com/compare/local-bookings/index.md\n\n## Which one, for what\n\n### OpenTable APIs (E)\n\nGood for: Approved affiliates, restaurant groups and voice AI vendors that need to book into OpenTable restaurants.\n\nWatch for: Access needs an application, review by the partnerships team and an agreement, with no self-serve credentials\n\n### Square Appointments (Bookings API) (B)\n\nGood for: Venue-side appointment booking for salons, clinics and other service businesses already on Square.\n\nAhead on:\n- Reliability, 55 against 35\n- Schema \u0026 documentation, 89 against 61\n- Agent ergonomics, 80 against 69\n- Security \u0026 auth, 70 against 33\n- Payments \u0026 pricing, 40 against 5\n- Maintenance \u0026 community, 71 against 5\n- Transparency \u0026 trust, 70 against 42\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: Seller-level create, update and cancel fail with 403 unless the seller pays for Plus ($49) or Premium ($149) per location\n\n\n## Score by category\n\n| Category | Weight | OpenTable APIs | Square Appointments (Bookings API) | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 35 | 55 | Square Appointments (Bookings API) +20 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 61 | 89 | Square Appointments (Bookings API) +28 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 80 | Square Appointments (Bookings API) +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 33 | 70 | Square Appointments (Bookings API) +37 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 5 | 40 | Square Appointments (Bookings API) +35 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 5 | 71 | Square Appointments (Bookings API) +66 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 42 | 70 | Square Appointments (Bookings API) +28 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **38.6 · E** | **68.1 · B** | |\n\n## Facts side by side\n\n| Fact | OpenTable APIs | Square Appointments (Bookings API) |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | OpenTable | Block, Inc. |\n| Hosted endpoint | `https://platform.opentable.com` | `https://connect.squareup.com/v2/bookings` |\n| Transports | HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth | OAuth or key |\n| Pricing | Your plan | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under each partner's agreement with OpenTable and the Platform Policy published in the API documentation | Proprietary service under the Square Developer Terms of Service. The OpenAPI specification and MCP server are Apache 2.0 |\n| Tools exposed | none | 3 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | none | 2026-09-16 |\n| Terms last updated | couldn't be read | 2026-09-10 |\n| Privacy policy last updated | couldn't be read | 2026-09-15 |\n| Customer content may train models | couldn't be read | not found in the text |\n| Terms restrict automated access | couldn't be read | yes |\n| Terms restrict benchmarking | couldn't be read | yes |\n| Terms or service can change without notice | couldn't be read | not found in the text |\n| Arbitration or class-action waiver | couldn't be read | yes |\n\n## Verdicts\n\n**OpenTable APIs.** The public documentation covers diner-side and venue-side booking in detail, with slot locks, policy endpoints, error tables and an X-Request-Id header for safe retries. Access needs partner approval and a contract, rate limits and prices are not published, and the status page and main website could not be read.\n\n**Square Appointments (Bookings API).** The Bookings API lets an agent working for a Square seller search availability and create, change and cancel appointments, with a public OpenAPI spec, appointment OAuth scopes and idempotency keys. It acts for the venue. Seller-level writes need Plus or Premium, services with a no-show fee can't be booked through it, and it hasn't changed since September 2024.\n\n## Before you call either\n\n### OpenTable APIs\n\n1. Lock the slot before calling Make Reservation, since the lock and its reservation_token expire within 5 minutes\n2. Send a unique X-Request-Id on every POST, PUT and PATCH so a retried booking is not duplicated\n3. Fetch booking and cancellation policies before booking and show any deposit, hold or service fee to the diner\n4. Use the Consumer API for diner bookings and the In-House Booking API only for a restaurant's own voice or phone channel\n5. Ask the OpenTable representative for the rate limit of each endpoint before going live\n\n### Square Appointments (Bookings API)\n\n1. Act for the seller. This API books into one Square seller's calendar, not across businesses\n2. Call RetrieveBusinessBookingProfile and check `support_seller_level_writes` before trying to create or cancel a seller-level booking\n3. Call SearchAvailability first, then CreateBooking with the service variation ID and version, team member, location and customer\n4. Send a fresh `idempotency_key` on each create, update or cancel, and pass `booking_version` when cancelling\n5. Check `no_show_fee` on the service. A service with a non-zero fee must be booked by the customer elsewhere\n\n## Questions\n\n### Which is better for AI agents, OpenTable APIs or Square Appointments (Bookings API)?\n\nSquare Appointments (Bookings API) scores 68.1 (B) on agent readiness against OpenTable APIs's 38.6 (E), and leads in every scored category.\n\n### Do OpenTable APIs and Square Appointments (Bookings API) need an API key?\n\nOpenTable APIs uses an OAuth sign-in. Square Appointments (Bookings API) takes an API key or an OAuth sign-in.\n\n### Can an agent call OpenTable APIs and Square Appointments (Bookings API) without installing anything?\n\nYes. OpenTable APIs has a hosted endpoint at https://platform.opentable.com and Square Appointments (Bookings API) at https://connect.squareup.com/v2/bookings.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/opentable-vs-square-appointments.json, and with the fewest tokens: https://www.anchorterminal.com/compare/opentable-vs-square-appointments.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"opentable\", \"b\": \"square-appointments\"}`. From a terminal: `anchor compare opentable square-appointments`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/opentable.json and https://www.anchorterminal.com/api/v1/tools/square-appointments.json\n\n## Other comparisons with OpenTable APIs or Square Appointments (Bookings API)\n\n- [Chope vs OpenTable APIs](https://www.anchorterminal.com/compare/chope-vs-opentable.md)\n- [Eat App Partner API vs OpenTable APIs](https://www.anchorterminal.com/compare/eat-app-vs-opentable.md)\n- [OpenTable APIs vs Tock](https://www.anchorterminal.com/compare/opentable-vs-tock.md)\n- [Chope vs Square Appointments (Bookings API)](https://www.anchorterminal.com/compare/chope-vs-square-appointments.md)\n- [Eat App Partner API vs Square Appointments (Bookings API)](https://www.anchorterminal.com/compare/eat-app-vs-square-appointments.md)\n- [OpenTable APIs vs Resy](https://www.anchorterminal.com/compare/opentable-vs-resy.md)\n- [OpenTable APIs vs SevenRooms](https://www.anchorterminal.com/compare/opentable-vs-sevenrooms.md)\n- [OpenTable APIs vs TableCheck API](https://www.anchorterminal.com/compare/opentable-vs-tablecheck.md)\n- [OpenTable APIs vs TheFork B2B API](https://www.anchorterminal.com/compare/opentable-vs-thefork.md)\n- [Resy vs Square Appointments (Bookings API)](https://www.anchorterminal.com/compare/resy-vs-square-appointments.md)\n- [Square Appointments (Bookings API) vs TableCheck API](https://www.anchorterminal.com/compare/square-appointments-vs-tablecheck.md)\n- [Square Appointments (Bookings API) vs TheFork B2B API](https://www.anchorterminal.com/compare/square-appointments-vs-thefork.md)\n- [SevenRooms vs Square Appointments (Bookings API)](https://www.anchorterminal.com/compare/sevenrooms-vs-square-appointments.md)\n- [Square Appointments (Bookings API) vs Tock](https://www.anchorterminal.com/compare/square-appointments-vs-tock.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-15",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "OpenTable APIs vs Square Appointments (Bookings API)",
        "url": ""
      }
    ],
    "description": "Square Appointments scores 68.1 (B) to OpenTable's 38.6 (E) for booking availability. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "OpenTable APIs E 38.6",
      "Square Appointments (Bookings API) B 68.1",
      "scores"
    ],
    "h1": "OpenTable APIs vs Square Appointments (Bookings API)",
    "image": "https://www.anchorterminal.com/assets/og/compare-opentable-vs-square-appointments.png",
    "path": "/compare/opentable-vs-square-appointments",
    "published": "2026-10-01",
    "section": "tools",
    "title": "OpenTable vs Square Appointments for AI agents (2026)",
    "toc": null,
    "updated": "2026-10-15",
    "url": "https://www.anchorterminal.com/compare/opentable-vs-square-appointments"
  },
  "tokens": {
    "markdown": 2400,
    "slim": 730
  },
  "version": 1
}
