---
title: "Scottish recipe API documentation · Rampant Scotland"
description: "Free anonymous read-only JSON API for the restored Rampant Scotland recipes. No authentication."
canonical: "https://rampant-scotland.pages.dev/docs"
last-updated: "2026-11-09"
date-basis: "authored and reviewed on this date; not an original-author date"
---

# Scottish recipe API documentation · Rampant Scotland

API

# Rampant Scotland API

Read the restored recipes as JSON. Authentication: none. Every endpoint is anonymous, read-only and free.

Last reviewed 2026-11-09.

## Try it

curl 'https://rampant-scotland.pages.dev/api/v1/recipes?limit=5' curl 'https://rampant-scotland.pages.dev/api/v1/recipes/search?q=oatmeal&limit=5' curl https://rampant-scotland.pages.dev/api/v1/recipes/blrecipe_dundee.htm curl https://rampant-scotland.pages.dev/api/v1/status

## Endpoints

Method and pathPurpose

GET /api/v1/recipes?limit=&offset=List recipes. limit 1 to 20 (default 10), offset 0 to 10000.

GET /api/v1/recipes/search?q=&limit=&offset=Search titles and text. q is 1 to 500 characters.

GET /api/v1/recipes/{id}One recipe as markdown. id is the exact filename from a list, such as one ending .htm.

GET /api/v1/termsThe US and UK cooking terms page.

GET /api/v1/statusService status.

HEAD and OPTIONS also work. Other methods return 405.

## Responses

Lists return data, pagination (limit, offset, total) and sandbox. A single recipe or the terms page returns data (id, title, path, url, description, markdown_url, content_markdown) and sandbox.

## Errors

Errors are application/json with a top-level error object holding string fields code, message and hint, as in the example below. Codes are NOT_FOUND, METHOD_NOT_ALLOWED, INVALID_QUERY, INVALID_PATH and DATA_UNAVAILABLE.

{ "error": { "code": "INVALID_QUERY", "message": "q must contain 1 to 500 characters", "hint": "Use only the documented parameters and limits in /openapi.json." } }

## Limits

No application quota is enforced and no rate-limit headers carry a quota. Responses send X-RateLimit-Policy: none. Hosting limits may still apply, so keep requests modest.

## Machine-readable

- [OpenAPI 3.1 (JSON)](https://rampant-scotland.pages.dev/openapi.json)
- [OpenAPI as YAML](https://rampant-scotland.pages.dev/api/openapi.yaml). The content is JSON, which is valid YAML, served as application/yaml.
- [API catalog (RFC 9727)](https://rampant-scotland.pages.dev/.well-known/api-catalog)
- [llms.txt for these docs](https://rampant-scotland.pages.dev/docs/llms.txt)

## Identity

The agent discovery file names the domain of this site as its identity. That is an unsigned statement of origin only. It carries no signature, audit or third-party attestation, and nothing here claims otherwise.

## Not offered

There is no A2A agent card because this site has no agent-to-agent message handler, and no Web Bot Auth because requests are not signed or verified. Nothing here needs either.
