Dunelm Cottage Developer Resources

Public developer resources for dunelmcottage.co.uk, the website of a luxury three-bedroom holiday cottage in Edale, Peak District National Park. Everything here is open, keyless and read-only — no sign-up, no API keys, no cost.

JSON API

EndpointDescription
GET /api/Index of all endpoints
GET /api/v1/cottageProperty profile: address, amenities, rating, policies
GET /api/v1/reviewsVerified guest reviews with ratings and dates
GET /api/v1/attractionsLocal Peak District attractions with travel notes
GET /api/v1/bookingBooking channels (Airbnb, Booking.com)
curl -H "Accept: application/json" https://dunelmcottage.co.uk/api/v1/cottage

Errors are always JSON: {"error": {"code", "message", "hint"}} with a proper HTTP status (404 unknown endpoint, 405 wrong method). The full contract, including typed schemas and examples, is the OpenAPI 3.1 specification.

MCP server

A Model Context Protocol server runs at /mcp using the Streamable HTTP transport (JSON-RPC 2.0 over HTTP POST; no SSE). Tools: get-cottage, list-reviews, list-attractions, get-booking-options. Discovery descriptor: /.well-known/mcp.

curl -X POST https://dunelmcottage.co.uk/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"example","version":"0"}}}'

Content negotiation

Every content page serves markdown when asked: send Accept: text/markdown to /, /welcome, /about, /contact, /privacy or this page, or fetch the .md file directly (/index.md). Responses carry Vary: Accept, Accept-Encoding.

Other machine-readable files

Usage notes

Fair use is about 60 requests per minute per client; responses are cacheable (Cache-Control: public). The data changes rarely — revalidate rather than re-fetching aggressively. There is no write surface: bookings, availability and pricing live on Airbnb and Booking.com.