For developers & AI assistants

Built for AI agents

The Vesey is designed for AI agents: live availability, transparent guide prices, and bookings completable by API. Whether your assistant speaks REST or the Model Context Protocol, it can search our services, quote guide prices, check real slots, and start a booking — end to end.

Why this exists

A clinic a machine can actually act on

More and more "book me a private GP near Sutton Coldfield" requests are handled by AI assistants rather than people clicking through a website. We publish the same live slot data, server-owned guide prices and in-house checkout that our own site uses — as a documented API and a remote MCP server — so an assistant can complete the whole task honestly.

Everything here returns real data: real availability or nothing at all, guide prices confirmed at booking, and a genuine payment step before any appointment is held. No fabricated urgency, no fake prices.

QuickstartMCP

Model Context Protocol server

Connect a remote MCP server at:

https://www.thevesey.co.uk/api/mcp

Tools available:

  • search_services(q) — find services and their guide prices
  • get_service(id) — one service's details and guide price
  • check_availability(service, days) — real bookable slots
  • request_booking(name, email, phone, service, dateTime) — returns a Stripe checkout URL (payment-first)
  • get_clinic_facts() — address, hours, contact, regulation
QuickstartREST

REST API

Search services and read guide prices:

curl "https://www.thevesey.co.uk/api/agent/services?q=private%20gp"

Check real availability for the next 7 days:

curl "https://www.thevesey.co.uk/api/agent/availability?service=gp&days=7"

Start a booking (returns a Stripe checkout URL):

curl -X POST "https://www.thevesey.co.uk/api/agent/bookings" \ -H "Content-Type: application/json" \ -d '{"name":"Jane Doe","email":"jane@example.com","phone":"+447700900000","service":"gp","dateTime":"2026-07-10T09:00:00+01:00"}'

Full machine-readable spec: /openapi-agent.json (OpenAPI 3.1).

How booking works

Payment-first, always

A booking request never confirms an appointment on its own. request_booking / POST /api/agent/bookings returns a Stripe-hosted checkoutUrl and a bookingIntentId. The slot is confirmed only once the patient completes that checkout. Your agent should hand the checkout link to the patient (or their authorised human) to finish — that keeps consent and payment with the patient, where they belong.

This is the same secure checkout our website uses. The clinic never receives card details through the API.

Guide prices

Every price is a guide price

Prices returned by the API, the MCP tools and the pricing feed are guide prices in GBP, confirmed at booking. They may vary with clinical need, and nothing returned is a firm quote or an offer to treat. Please surface that caveat to patients verbatim (each booking response includes a guidePriceNotice for exactly this).

Feeds & specs

Machine-readable everything

Fair use

Rate limits & keys

Unauthenticated requests are rate limited at the edge (as a guide, 60 GET requests per minute per IP, and 10 booking requests per minute). Exceeding a limit returns 429 with a Retry-After header. The whole surface is fail-closed: if the API is disabled you will see 404.

Building something that needs higher limits or a partnership key? Get in touch below.

Responsible use

The terms, in plain English

  • No scraping of personal data. These endpoints return services, prices and availability — not patient information.
  • No medical advice. The API is for navigation and booking only; it does not diagnose, triage or interpret results.
  • Real details, real consent. Only submit a booking with the actual patient's details and their consent to be booked and contacted.
  • Guide prices only. Present prices as confirmed at booking, never as a firm quote.

Full Terms of Service apply to use of the API and will be linked from the published spec.

Partnering with us?

Request a partnership API key, higher rate limits, or a technical chat about integrating The Vesey into your assistant.

Email the team View the OpenAPI spec