# Developers and AI assistants

A free, read-only JSON API and MCP server with the same nursery data as Toddly: Ofsted inspections, fees in pence, ages in months, hours and funded hours, each with its source and date.

Updated 11 November 2026. Page: https://toddly.co.uk/developers

Toddly publishes the data behind its nursery pages as a free, read-only API, so developers and AI assistants can answer questions about nurseries and link back to the page they came from. The data covers every registered nursery and pre-school we list, refreshed on each rebuild (13 November 2026).

## What you get

- **Inspections as Ofsted publishes them.** Old-framework inspections carry `overall_grade`. Report cards (`framework: ofsted_reif`) carry their area grades and no overall grade field at all.
- **Fees** in pence, with source and date. **Ages** in months. **Dates** as ISO text.
- **Hours, funded hours and features**, each with a source link where we have one.
- **Google** rating, review count and a link to Google only. We never publish review text.
- **Our own summary** and the at-a-glance paragraph from the page. We do not republish nurseries' website text.
- A canonical `url` on every nursery and area. Please link to it when you use the data.

## JSON API

Base URL: `https://toddly.co.uk/api/v1`. GET only, no key, CORS open, cached for five minutes with an `ETag`. The full description is in [OpenAPI 3.1](https://toddly.co.uk/api/openapi.json).

| Endpoint | What it returns |
|---|---|
| `/api/v1/nurseries?q=` | Search by name, town, postcode or group |
| `/api/v1/nurseries?area=london/camden` | Nurseries in an area |
| `/api/v1/nurseries?postcode=N1&radius_km=2` | Nurseries near a postcode, nearest first |
| `/api/v1/nurseries?lat=51.54&lng=-0.14` | Nurseries near a point |
| `/api/v1/nurseries/{id}` | Everything we publish about one nursery |
| `/api/v1/areas` | The country, regions and boroughs |
| `/api/v1/areas/{path}` | One area's counts, median fee and grade mix |

Search filters combine with any search: `type` (full_day, sessional, school_nursery), `funded` (9_months, 2_year_olds, 15_hours, 30_hours, tax_free_childcare), `child_age_months` (your child's age), `max_day_fee_p` (most you want to pay for a full day, in pence), `has_fees`, `ofsted` (outstanding, good, report_card), `opens_by` and `open_until` (24-hour times such as 07:30), `min_weeks_open`, `meals_included` and `features` (slugs such as garden or forest-school). These are the same filters as the results pages. A filter keeps only nurseries whose details we know match, so a nursery that has not told us yet is left out; that never means no. `sort` is recommended, price, ofsted, rating or distance. Pages hold up to 50 results; pass `next_cursor` back as `cursor` for the next page. An id looks like `eng-100540`; the Ofsted URN works too. A nursery that has left the register answers 410.

```
curl 'https://toddly.co.uk/api/v1/nurseries?area=london&funded=30_hours&limit=5'
curl 'https://toddly.co.uk/api/v1/nurseries?postcode=NW3&child_age_months=24&max_day_fee_p=10000&open_until=18:00&sort=price'
```

Errors look like `{"error": {"code": "not_found", "message": "…"}}`. Over the rate limit you get 429 with a `Retry-After` header in seconds.

## MCP server

Connect an AI assistant to `https://toddly.co.uk/mcp`. It speaks the Model Context Protocol over Streamable HTTP (revision 2026-07-28, and the 2025 revisions with the initialize handshake), answers with plain JSON and keeps no session.

| Tool | Use it to |
|---|---|
| `search_nurseries` | Find nurseries by name, area, postcode or point, with the same filters as the API |
| `get_nursery` | Read everything we publish about one nursery |
| `get_area` | Read an area's stats, or list areas |
| `compare_nurseries` | Put 2 to 5 nurseries side by side |
| `funded_hours_rules` | Read the government childcare schemes we use in our calculators |

In Claude Code: `claude mcp add --transport http nurseries https://toddly.co.uk/mcp`. In other clients, add a remote MCP server with that URL. No sign-in is needed.

## Fair use

Cache what you can, follow `next_cursor` rather than guessing pages, and keep the attribution. The data contains public sector information licensed under the [Open Government Licence v3.0](https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/). Read [how we get our data](/how-we-get-our-data) for sources and dates, or [contact us](/contact) about higher limits or a mistake.

## Frequently asked questions

### Do I need an API key?

No. The API and the MCP server are free and open, limited to a fair number of requests per minute from each IP address. If you need more, contact us.

### How should I credit the data?

Link to the nursery or area page given in each result's url field, and name Toddly. Every response carries an attribution line you can show as it is.

### Why is a field missing or null?

null means we do not know it yet, never "no". A field that is missing altogether was hidden by the nursery itself, as it is on the nursery's page.

### Why do some inspections have no overall grade?

Ofsted report cards, used since November 2025, grade six areas separately and give no overall grade. We never compute one. Older inspections keep their single grade, labelled with the framework.

