{"openapi":"3.1.0","info":{"title":"National Taxi Network — Direct Driver Booking API","version":"1.0.0","description":"Fare quotes and booking handoff for a zero-commission, direct passenger-to-driver taxi network. Fares use regulated local council tariffs or the licensed operator's own approved rates — no platform percentage is added. Booking is confirmed by the passenger on the site; this API never takes payment or personal details."},"servers":[{"url":"https://www.lochlomondtaxis.com","description":"Host this manifest was fetched from (use this one)."},{"url":"https://1sthelensburghprivatehiretaxis.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://1sthelensburghprivatehiretaxis.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://3peakschallangebushire.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://3peakschallangebushire.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://3peakschallengetransfers.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://3peakschallengetransfers.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://8seaterhirehelensburgh.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://airport-taxis-scotland.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://airport-taxis-scotland.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://airport-transfers-scotland.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://airportaxiglasgow.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://airporttaxisglasgow.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://airporttransfers-helensburgh.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://airporttransfershelensburgh.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://argylltaxis.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://argylltaxis.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://arrochartaxis.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://book-a-taxi-in-uk.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://bookatouruk.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://bookatransferbytaxi.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://cambeltowntaxitransfers.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://cardrosstaxis.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://centralscottishairporttransfers.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://cheap-taxi-to-glasgow-airport.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://cheap-taxis-from-glasgow-airport.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://colintaxi.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://dundeeprivatetaxi.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://dunoonprivatehire.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://dunoonprivatehiretaxi.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://edinburghairporttransfer.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://glasgow-airport-cab-hire.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://glasgow-airport-to-oban-taxis.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://glasgow-airporttransfers.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://glasgowairport-transfers.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://glasgowtaxisbytrident.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://glasgowtoobantaxi.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://helensburghprivatehire.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://helensburghtaxi.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://helensburghtaxiservice.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://internationaltaxinetwork.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://lochlomondprivatehire.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://lochlomondtaxis.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://lochlomondtaxis.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://lochlomondtransfers.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://lochlomondtravel.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://londontaxistransfers.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://londontransfersbytaxi.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://make-a-booking.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://mydaytripscotland.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://mydaytripscotland.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://nationalprivatetaxi.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://nationalprivatetaxihire.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://nationalprivatetaxihire.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://nationaltaxibooking.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://nationaltaxinetwork.app","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://obantaxionline.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://obantaxis.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://obantaxis.online","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://scottish-airport-transfers.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://scottishairporttransfer.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://tartanwolftaxis.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://taxiprivatehire.services","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://taxishelensburgh.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://travelbytaxiuk.com","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://trident.taxi","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://tridenttaxi.com","description":"Primary brand domain — identical API, shared driver network."},{"url":"https://tridenttaxis.app","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://tridenttaxis.online","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://tridenttaxis.services","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://tridenttaxis.tours","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://tridenttaxishelensburgh.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://tridenttaxislochgoilhead.co.uk","description":"Connected brand domain — identical API, shared driver network."},{"url":"https://tridenttaxislochgoilhead.com","description":"Connected brand domain — identical API, shared driver network."}],"paths":{"/api/public/quotes/estimate":{"post":{"operationId":"getTaxiQuote","summary":"Retrieve an upfront taxi fare estimate matching local tariffs.","description":"Simple AI-agent contract: addresses plus passenger count in, an upfront fare and a quote_id out. Redeem the quote_id with createTaxiBooking within 24 hours.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["pickup_address","dropoff_address","passenger_count"],"properties":{"pickup_address":{"type":"string"},"dropoff_address":{"type":"string"},"passenger_count":{"type":"integer","minimum":1,"maximum":8},"depart_at":{"type":"string","format":"date-time"},"vehicle_type":{"type":"string","enum":["saloon","estate","executive","luxury","mpv","wav"]}}}}}},"responses":{"200":{"description":"Returns calculated upfront fare with quote_id and currency."},"400":{"description":"Invalid input."},"422":{"description":"Addresses could not be located."}}}},"/api/public/bookings/create":{"post":{"operationId":"createTaxiBooking","summary":"Dispatches a live booking request directly to a localized driver.","description":"Redeems a quote_id and creates a real booking in the live dispatch pool. The nearest available licensed driver is notified by SMS/WhatsApp. Passengers pay the driver directly.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["quote_id","passenger_name","passenger_phone_whatsapp","payment_method"],"properties":{"quote_id":{"type":"string","format":"uuid"},"passenger_name":{"type":"string"},"passenger_phone_whatsapp":{"type":"string"},"payment_method":{"type":"string","enum":["cash_to_driver","card_to_driver","account"]},"passenger_email":{"type":"string","format":"email"},"flight_number":{"type":"string"},"notes":{"type":"string"}}}}}},"responses":{"200":{"description":"Booking successfully created; returns booking_reference and status."},"400":{"description":"Invalid input."},"404":{"description":"Unknown quote_id."},"410":{"description":"Quote expired."}}}},"/api/public/v1/quote":{"post":{"operationId":"estimateFare","summary":"Estimate a taxi fare and get a prefilled booking link","description":"Returns a live fare quote in GBP (distance, duration, itemised rules, tariff source) plus a prefilled booking URL the passenger opens to confirm name, phone and payment. Rate limit: 30 requests/hour per caller.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["pickup","dropoff"],"properties":{"pickup":{"type":"string","description":"Pickup address, station, postcode or airport name."},"dropoff":{"type":"string","description":"Dropoff address, station, postcode or airport name."},"departAt":{"type":"string","format":"date-time","description":"Planned departure (ISO 8601, UTC). Night rates apply automatically."},"vehicleType":{"type":"string","enum":["saloon","estate","executive","luxury","5seater","6seater","7seater","mpv","wav"],"description":"Vehicle class. Use mpv/6seater+ for groups over 4, wav for wheelchair-accessible."},"passengers":{"type":"integer","minimum":1,"maximum":8},"meetAndGreet":{"type":"boolean","description":"Airport meet & greet (+£25)."},"worldwide":{"type":"boolean","description":"Set true for journeys outside the UK."}}}}}},"responses":{"200":{"description":"Quote with fare, distance, duration, applied rules and booking URL."},"400":{"description":"Invalid input."},"422":{"description":"Addresses could not be geocoded."},"429":{"description":"Rate limit exceeded."}}}},"/api/public/v1/booking":{"post":{"operationId":"createBooking","summary":"Create a real, dispatched booking","description":"Creates the ride and sends it straight to the nearest available licensed driver by SMS/WhatsApp. Requires a genuine passenger email — disposable and role addresses are rejected, and an unconfirmed address is limited to 8 price checks an hour. Returns the booking reference, status link and pay-the-driver link. The fare is paid directly to the driver; the network takes no commission from the passenger.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["pickup","dropoff","departAt","passengerName","passengerEmail","passengerPhone"],"properties":{"pickup":{"type":"string"},"dropoff":{"type":"string"},"departAt":{"type":"string","format":"date-time","description":"Pickup time, ISO 8601 UTC."},"passengerName":{"type":"string"},"passengerEmail":{"type":"string","format":"email","description":"Real, reachable passenger email. A confirmation link is emailed."},"passengerPhone":{"type":"string","description":"Mobile number in international format."},"passengers":{"type":"integer","minimum":1,"maximum":8},"vehicleType":{"type":"string"},"flightNumber":{"type":"string"},"notes":{"type":"string"},"fareGBP":{"type":"number","description":"Partner-supplied fare. Omit to price on our published tariffs."},"paymentMethod":{"type":"string","enum":["cash","card","pay_driver","bank_transfer"]}}}}}},"responses":{"201":{"description":"Booking created and dispatched."},"400":{"description":"Invalid input or pickup time in the past."},"403":{"description":"Blocked passenger account or partner not allowed to book."},"429":{"description":"Too many quotes or bookings from this email."}}}},"/api/public/v1/booking/{ref}":{"get":{"operationId":"getBooking","summary":"Check a booking","description":"Returns status, driver assignment and payment state. The passenger email on the booking must be supplied.","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string"},"description":"Booking reference, e.g. TRIDENT-9K2H4A."},{"name":"email","in":"query","required":true,"schema":{"type":"string","format":"email"}}],"responses":{"200":{"description":"Booking details."},"403":{"description":"Email does not match."},"404":{"description":"Not found."}}},"post":{"operationId":"cancelBooking","summary":"Cancel a booking","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["action","email"],"properties":{"action":{"type":"string","enum":["cancel"]},"email":{"type":"string","format":"email"},"reason":{"type":"string"}}}}}},"responses":{"200":{"description":"Booking cancelled."},"403":{"description":"Email does not match."},"404":{"description":"Not found."}}}},"/api/public/v1/jobs":{"post":{"operationId":"submitPartnerJobs","summary":"Send jobs from another booking system (partners only)","description":"Universal intake for minicabit and any other booking platform, aggregator or operator worldwide. Send one job or a batch of up to 100. New, amended and cancelled jobs are matched idempotently on your own job reference, and accepted jobs go straight into live dispatch. Authenticate with an issued API key (Authorization: Bearer, or x-api-key), or sign the raw body with HMAC SHA-256 using x-partner and x-signature.","security":[{"partnerApiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PartnerJob"},{"type":"array","items":{"$ref":"#/components/schemas/PartnerJob"},"maxItems":100}]}}}},"responses":{"200":{"description":"All jobs accepted."},"207":{"description":"Mixed result — see per-job outcomes."},"401":{"description":"Missing or invalid partner credentials."},"429":{"description":"Daily job limit reached."}}}}},"components":{"securitySchemes":{"partnerApiKey":{"type":"http","scheme":"bearer","description":"Partner API key issued by the network operator."}},"schemas":{"PartnerJob":{"type":"object","required":["jobRef","pickup","dropoff","pickupTime"],"properties":{"jobRef":{"type":"string","description":"Your own unique reference for this job — used for idempotency, amendments and cancellations."},"action":{"type":"string","enum":["new","amend","cancel"],"default":"new"},"pickup":{"type":"string"},"dropoff":{"type":"string"},"pickupTime":{"type":"string","format":"date-time"},"passengerName":{"type":"string"},"passengerPhone":{"type":"string"},"passengerEmail":{"type":"string","format":"email"},"passengers":{"type":"integer","minimum":1,"maximum":8},"vehicleType":{"type":"string"},"flightNumber":{"type":"string"},"fare":{"type":"number","description":"Agreed fare in GBP, if your system prices the job."},"notes":{"type":"string"}}}}},"x-mcp-server":{"url":"https://www.lochlomondtaxis.com/mcp","description":"Full MCP server (OAuth 2.1) with estimate_fare, get_service_info and start_booking tools for ChatGPT, Claude and other MCP clients."}}