{
  "data": {
    "a": {
      "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"
      }
    },
    "answer": "Square Appointments (Bookings API) scores 68.1 (B) on agent readiness against TheFork B2B API's 43.6 (E), and leads in every scored category.",
    "b": {
      "slug": "thefork",
      "name": "TheFork B2B API",
      "vendor": "TheFork (La Fourchette SAS)",
      "vendorUrl": "https://www.thefork.com",
      "kind": "http-api",
      "category": "local-bookings",
      "summary": "TheFork's B2B API lets restaurants and their software partners, such as CRM vendors and AI phone agents, read availability and create, change and cancel reservations in TheFork Manager, with webhooks, reviews and customer data.",
      "url": "https://www.anchorterminal.com/tools/thefork",
      "markdownUrl": "https://www.anchorterminal.com/tools/thefork.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/thefork.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/thefork.json",
      "license": "Proprietary service under TheFork Partners API Terms of Use (La Fourchette SAS) and any core agreement with TheFork",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.thefork.io/manager",
      "packages": [],
      "auth": "oauth",
      "authNotes": "Partner approval required. Credentials are requested from the integrations team at integrations@thefork.com with a company name and use case. TheFork sends a client_id and client_secret through a secure channel, and the client exchanges them at https://auth.thefork.io/oauth/token (OAuth 2.0 client credentials, audience https://api.thefork.io) for a Bearer token that lasts 8,600 seconds. Nine scopes limit each client, from full access (tfm-restaurant) to read-only availability. restaurantUuid and groupUuid values for each restaurant come from TheFork, as no endpoint lists them.",
      "pricing": "byo-plan",
      "pricingNotes": "No API prices are published. Access follows a partnership with TheFork, and the rate limit is set by contract. The API terms mention test data for pre-launch testing. No sandbox host or self-serve tier is documented (https://docs.thefork.io/getting-started).",
      "priceSummary": "Your plan",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer portal, llms.txt or OpenAPI schema (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://docs.thefork.io/B2B-API/introduction",
      "llmsTxt": "https://docs.thefork.io/B2B-API/llms.txt",
      "openapi": "https://api.thefork.io/manager/openapi.json",
      "capabilities": [
        "booking.reservations",
        "booking.availability",
        "booking.venue",
        "crm.records",
        "events.webhooks-send"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "partner-only",
        "rest",
        "oauth",
        "openapi",
        "llms-txt",
        "webhooks",
        "eu",
        "restaurants"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 43.6,
        "grade": "E",
        "agentReady": false,
        "rank": 966,
        "ranked": true,
        "rankOf": 1094,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 56,
          "maintenance": 15,
          "payments": 5,
          "reliability": 35,
          "schema": 87,
          "security": 42,
          "transparency": 47
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "A venue-side API with a generated OpenAPI 3.1 schema, an llms.txt written for agents and nine OAuth scopes down to read-only availability. It acts for restaurants and their vendors, not diners, needs partner approval, cannot take card guarantees, and has no public status page, changelog or published prices.",
        "bestFor": "CRM, PMS and AI phone-agent vendors and restaurant groups that run on TheFork Manager, mainly in Europe.",
        "strengths": [
          "OpenAPI 3.1 schema generated from the deployed code, with 19 operations, enums, examples and error responses",
          "llms.txt for the B2B API covers scopes per endpoint, time zones, reservation statuses and error formats",
          "Nine OAuth scopes, including read-only availability and a separate scope for unrestricted bookings that is off by default",
          "Business error codes such as NO_AVAILABILITY, DOUBLE_BOOKING and RESERVATION_NOT_FOUND",
          "Written versioning policy with 6 months of support for the previous version"
        ],
        "weaknesses": [
          "Venue-side only. Credentials cover the restaurants that granted access, and no endpoint lists restaurants",
          "Credentials come from the integrations team by email after approval, with no self-serve route",
          "Timeslots that need a payment guarantee cannot be booked through the API",
          "The status page at status.thefork.io redirects to a private Rootly page that needs a sign-in",
          "No changelog, idempotency key or published production rate limit"
        ],
        "agentNotes": [
          "Read hasPaymentGuaranteeRequirement in the timeslots response before booking, since the API cannot take a card",
          "Check the status field after creating a reservation and treat REQUESTED as unconfirmed",
          "Send the timeslot datetime unchanged as mealDate, because times are the restaurant's local time",
          "Check for an existing reservation before retrying a failed POST, as no idempotency key exists and 409 signals DOUBLE_BOOKING",
          "Cache the access token for its 8,600 seconds and do not request a new one while it is valid"
        ],
        "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": 43.6
          }
        ],
        "editorialScores": {
          "ergonomics": 56,
          "maintenance": 15,
          "payments": 5,
          "reliability": 35,
          "schema": 87,
          "security": 42,
          "transparency": 33
        },
        "provenanceScore": 60
      },
      "connect": {
        "http": "curl -X POST https://auth.thefork.io/oauth/token -H 'Content-Type: application/x-www-form-urlencoded' -d 'audience=https://api.thefork.io\u0026grant_type=client_credentials\u0026client_id=CLIENT_ID\u0026client_secret=CLIENT_SECRET'"
      },
      "letme": {
        "capability": "https://letme.dev/booking.reservations",
        "tool": "https://letme.dev/thefork"
      },
      "area": "everyday",
      "provenance": {
        "legalEntity": "La Fourchette SAS",
        "domain": "thefork.io",
        "domainRegistered": "2016-05-30",
        "endpointOnVendorDomain": true,
        "terms": "https://docs.thefork.io/pdf/LaFourchette-Partners-API-Licence-2.pdf",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-14",
        "notes": [
          "The developer portal footer links the TheFork Partners API Terms of Use, a PDF naming La Fourchette SAS, 70 rue Saint Lazare, Paris, company number 494 447 949, where no core agreement exists.",
          "www.thefork.com answered with a bot check (403), so its privacy policy and terms were not read and no privacy URL is recorded.",
          "status.thefork.io redirects to a private Rootly status page that needs a sign-in, so no public status page is recorded.",
          "www.thefork.com/.well-known/security.txt returns 404 and docs.thefork.io/.well-known/security.txt returns 403.",
          "No changelog was found. docs.thefork.io/changelog returns 403.",
          "RDAP gives thefork.io a registration date of 2016-05-30 and thefork.com 1998-11-04."
        ],
        "score": 60
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/thefork.json",
      "live": {
        "slug": "thefork",
        "probe": {
          "target": "https://api.thefork.io/manager",
          "method": "get",
          "lastAt": "2026-10-15T11:30:13.589623586Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 52,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 50,
          "p95ms24h": 90,
          "samples24h": 254,
          "samples30d": 289,
          "days": [
            {
              "date": "2026-10-14",
              "probes": 166,
              "ok": 166
            },
            {
              "date": "2026-10-15",
              "probes": 123,
              "ok": 123
            }
          ]
        },
        "securityTxt": {
          "url": "https://thefork.io/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-10-14T15:47:20.172853448Z"
        },
        "llmsTxt": {
          "url": "https://docs.thefork.io/B2B-API/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-14T14:15:13.331674231Z"
        },
        "updatedAt": "2026-10-15T11:30:13.589623586Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Block, Inc.",
        "b": "TheFork (La Fourchette SAS)",
        "name": "Vendor"
      },
      {
        "a": "https://connect.squareup.com/v2/bookings",
        "b": "https://api.thefork.io/manager",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Your plan",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the Square Developer Terms of Service. The OpenAPI specification and MCP server are Apache 2.0",
        "b": "Proprietary service under TheFork Partners API Terms of Use (La Fourchette SAS) and any core agreement with TheFork",
        "name": "Licence"
      },
      {
        "a": "3",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-16",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "2026-09-10",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-15",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Arbitration or class-action waiver"
      }
    ],
    "faq": [
      {
        "answer": "Square Appointments (Bookings API) scores 68.1 (B) on agent readiness against TheFork B2B API's 43.6 (E), and leads in every scored category.",
        "question": "Which is better for AI agents, Square Appointments (Bookings API) or TheFork B2B API?"
      },
      {
        "answer": "Square Appointments (Bookings API) takes an API key or an OAuth sign-in. TheFork B2B API uses an OAuth sign-in.",
        "question": "Do Square Appointments (Bookings API) and TheFork B2B API need an API key?"
      },
      {
        "answer": "Yes. Square Appointments (Bookings API) has a hosted endpoint at https://connect.squareup.com/v2/bookings and TheFork B2B API at https://api.thefork.io/manager.",
        "question": "Can an agent call Square Appointments (Bookings API) and TheFork B2B API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 55 against 35",
          "Agent ergonomics, 80 against 56",
          "Security \u0026 auth, 70 against 42",
          "Payments \u0026 pricing, 40 against 5",
          "Maintenance \u0026 community, 71 against 15",
          "Transparency \u0026 trust, 70 against 47"
        ],
        "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"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "CRM, PMS and AI phone-agent vendors and restaurant groups that run on TheFork Manager, mainly in Europe.",
        "slug": "thefork",
        "watchFor": "Venue-side only. Credentials cover the restaurants that granted access, and no endpoint lists restaurants"
      }
    ],
    "job": {
      "capability": "booking.availability",
      "name": "Booking availability"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/chope-vs-thefork.json",
        "title": "Chope vs TheFork B2B API",
        "url": "https://www.anchorterminal.com/compare/chope-vs-thefork"
      },
      {
        "json": "https://www.anchorterminal.com/compare/eat-app-vs-thefork.json",
        "title": "Eat App Partner API vs TheFork B2B API",
        "url": "https://www.anchorterminal.com/compare/eat-app-vs-thefork"
      },
      {
        "json": "https://www.anchorterminal.com/compare/resy-vs-thefork.json",
        "title": "Resy vs TheFork B2B API",
        "url": "https://www.anchorterminal.com/compare/resy-vs-thefork"
      },
      {
        "json": "https://www.anchorterminal.com/compare/thefork-vs-tock.json",
        "title": "TheFork B2B API vs Tock",
        "url": "https://www.anchorterminal.com/compare/thefork-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-square-appointments.json",
        "title": "OpenTable APIs vs Square Appointments (Bookings API)",
        "url": "https://www.anchorterminal.com/compare/opentable-vs-square-appointments"
      },
      {
        "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/tablecheck-vs-thefork.json",
        "title": "TableCheck API vs TheFork B2B API",
        "url": "https://www.anchorterminal.com/compare/tablecheck-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/sevenrooms-vs-thefork.json",
        "title": "SevenRooms vs TheFork B2B API",
        "url": "https://www.anchorterminal.com/compare/sevenrooms-vs-thefork"
      },
      {
        "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",
        "square-appointments": 55,
        "thefork": 35,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 2,
        "edge": "square-appointments",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "square-appointments": 89,
        "thefork": 87,
        "weight": 13
      },
      {
        "by": 24,
        "edge": "square-appointments",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "square-appointments": 80,
        "thefork": 56,
        "weight": 13
      },
      {
        "by": 28,
        "edge": "square-appointments",
        "key": "security",
        "name": "Security \u0026 auth",
        "square-appointments": 70,
        "thefork": 42,
        "weight": 14
      },
      {
        "by": 35,
        "edge": "square-appointments",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "square-appointments": 40,
        "thefork": 5,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 56,
        "edge": "square-appointments",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "square-appointments": 71,
        "thefork": 15,
        "weight": 7
      },
      {
        "by": 23,
        "edge": "square-appointments",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "square-appointments": 70,
        "thefork": 47,
        "weight": 7
      }
    ],
    "summary": "Square Appointments (Bookings API) scores 68.1 (B) on agent readiness against TheFork B2B API's 43.6 (E), and leads in every scored category. Both do booking availability.",
    "verdicts": {
      "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.",
      "thefork": "A venue-side API with a generated OpenAPI 3.1 schema, an llms.txt written for agents and nine OAuth scopes down to read-only availability. It acts for restaurants and their vendors, not diners, needs partner approval, cannot take card guarantees, and has no public status page, changelog or published prices."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/square-appointments-vs-thefork",
    "json": "https://www.anchorterminal.com/compare/square-appointments-vs-thefork.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/square-appointments-vs-thefork.md",
    "slim": "https://www.anchorterminal.com/compare/square-appointments-vs-thefork.min.md"
  },
  "markdown": "Square Appointments (Bookings API) scores 68.1 (B) on agent readiness against TheFork B2B API's 43.6 (E), and leads in every scored category. Both do booking availability.\n\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- TheFork B2B API: grade E, 43.6/100, rank #966 of 1094. Markdown https://www.anchorterminal.com/tools/thefork.md · JSON https://www.anchorterminal.com/api/v1/tools/thefork.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### 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- Agent ergonomics, 80 against 56\n- Security \u0026 auth, 70 against 42\n- Payments \u0026 pricing, 40 against 5\n- Maintenance \u0026 community, 71 against 15\n- Transparency \u0026 trust, 70 against 47\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### TheFork B2B API (E)\n\nGood for: CRM, PMS and AI phone-agent vendors and restaurant groups that run on TheFork Manager, mainly in Europe.\n\nWatch for: Venue-side only. Credentials cover the restaurants that granted access, and no endpoint lists restaurants\n\n\n## Score by category\n\n| Category | Weight | Square Appointments (Bookings API) | TheFork B2B API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 55 | 35 | 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) | 89 | 87 | Square Appointments (Bookings API) +2 |\n| Agent ergonomics | 13% (16.2 this run) | 80 | 56 | Square Appointments (Bookings API) +24 |\n| Security \u0026 auth | 14% (17.5 this run) | 70 | 42 | Square Appointments (Bookings API) +28 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 5 | 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) | 71 | 15 | Square Appointments (Bookings API) +56 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 70 | 47 | Square Appointments (Bookings API) +23 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **68.1 · B** | **43.6 · E** | |\n\n## Facts side by side\n\n| Fact | Square Appointments (Bookings API) | TheFork B2B API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Block, Inc. | TheFork (La Fourchette SAS) |\n| Hosted endpoint | `https://connect.squareup.com/v2/bookings` | `https://api.thefork.io/manager` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP |\n| Auth | OAuth or key | OAuth |\n| Pricing | Freemium | Your plan |\n| x402 | no | no |\n| Licence | Proprietary service under the Square Developer Terms of Service. The OpenAPI specification and MCP server are Apache 2.0 | Proprietary service under TheFork Partners API Terms of Use (La Fourchette SAS) and any core agreement with TheFork |\n| Tools exposed | 3 | none |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-09-16 | none |\n| Terms last updated | 2026-09-10 |  |\n| Privacy policy last updated | 2026-09-15 | no document linked |\n| Customer content may train models | not found in the text |  |\n| Terms restrict automated access | yes |  |\n| Terms restrict benchmarking | yes |  |\n| Terms or service can change without notice | not found in the text |  |\n| Arbitration or class-action waiver | yes |  |\n\n## Verdicts\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**TheFork B2B API.** A venue-side API with a generated OpenAPI 3.1 schema, an llms.txt written for agents and nine OAuth scopes down to read-only availability. It acts for restaurants and their vendors, not diners, needs partner approval, cannot take card guarantees, and has no public status page, changelog or published prices.\n\n## Before you call either\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### TheFork B2B API\n\n1. Read hasPaymentGuaranteeRequirement in the timeslots response before booking, since the API cannot take a card\n2. Check the status field after creating a reservation and treat REQUESTED as unconfirmed\n3. Send the timeslot datetime unchanged as mealDate, because times are the restaurant's local time\n4. Check for an existing reservation before retrying a failed POST, as no idempotency key exists and 409 signals DOUBLE_BOOKING\n5. Cache the access token for its 8,600 seconds and do not request a new one while it is valid\n\n## Questions\n\n### Which is better for AI agents, Square Appointments (Bookings API) or TheFork B2B API?\n\nSquare Appointments (Bookings API) scores 68.1 (B) on agent readiness against TheFork B2B API's 43.6 (E), and leads in every scored category.\n\n### Do Square Appointments (Bookings API) and TheFork B2B API need an API key?\n\nSquare Appointments (Bookings API) takes an API key or an OAuth sign-in. TheFork B2B API uses an OAuth sign-in.\n\n### Can an agent call Square Appointments (Bookings API) and TheFork B2B API without installing anything?\n\nYes. Square Appointments (Bookings API) has a hosted endpoint at https://connect.squareup.com/v2/bookings and TheFork B2B API at https://api.thefork.io/manager.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/square-appointments-vs-thefork.json, and with the fewest tokens: https://www.anchorterminal.com/compare/square-appointments-vs-thefork.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"square-appointments\", \"b\": \"thefork\"}`. From a terminal: `anchor compare square-appointments thefork`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/square-appointments.json and https://www.anchorterminal.com/api/v1/tools/thefork.json\n\n## Other comparisons with Square Appointments (Bookings API) or TheFork B2B API\n\n- [Chope vs TheFork B2B API](https://www.anchorterminal.com/compare/chope-vs-thefork.md)\n- [Eat App Partner API vs TheFork B2B API](https://www.anchorterminal.com/compare/eat-app-vs-thefork.md)\n- [Resy vs TheFork B2B API](https://www.anchorterminal.com/compare/resy-vs-thefork.md)\n- [TheFork B2B API vs Tock](https://www.anchorterminal.com/compare/thefork-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 Square Appointments (Bookings API)](https://www.anchorterminal.com/compare/opentable-vs-square-appointments.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- [TableCheck API vs TheFork B2B API](https://www.anchorterminal.com/compare/tablecheck-vs-thefork.md)\n- [SevenRooms vs Square Appointments (Bookings API)](https://www.anchorterminal.com/compare/sevenrooms-vs-square-appointments.md)\n- [SevenRooms vs TheFork B2B API](https://www.anchorterminal.com/compare/sevenrooms-vs-thefork.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": "Square Appointments (Bookings API) vs TheFork B2B API",
        "url": ""
      }
    ],
    "description": "Square Appointments scores 68.1 (B) to TheFork B2B's 43.6 (E) for booking availability. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Square Appointments (Bookings API) B 68.1",
      "TheFork B2B API E 43.6",
      "scores"
    ],
    "h1": "Square Appointments (Bookings API) vs TheFork B2B API",
    "image": "https://www.anchorterminal.com/assets/og/compare-square-appointments-vs-thefork.png",
    "path": "/compare/square-appointments-vs-thefork",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Square Appointments vs TheFork B2B for AI agents (2026)",
    "toc": null,
    "updated": "2026-10-15",
    "url": "https://www.anchorterminal.com/compare/square-appointments-vs-thefork"
  },
  "tokens": {
    "markdown": 2350,
    "slim": 730
  },
  "version": 1
}
