For developers
Data API
Term dates, holidays and INSET days for councils, and profiles for every school in England. Fees, admissions and bus routes for independent schools. Every figure checked against its source.
Get a free key
Free keys are for personal and non-commercial projects, with up to 1,000 requests a month. Businesses need a paid plan.
Authentication
Send your key in an X-API-Key header. Check it, and your usage this month, at /v1/me.
curl -H "X-API-Key: YOUR_KEY" https://termwise.vertova.co.uk/v1/councils.json
Plans and limits
| Plan | Requests a month | Bulk exports | Change webhooks |
|---|---|---|---|
| Free | 1,000 | No | No |
| Starter, £19 a month | 10,000 | No | Yes |
| Business, £79 a month | 100,000 | Yes | Yes |
| Bulk licence, £499 a year | 100,000 | Yes | Yes |
Limits reset on the 1st of each month (UTC). Responses carry X-RateLimit-Limit and X-RateLimit-Remaining headers. Going over returns HTTP 429.
Endpoints
| Request | Returns | Available to |
|---|---|---|
GET /v1/me | Your plan, status and usage this month | All keys |
GET /v1/councils.json | Every council with checked term dates | All keys |
GET /v1/councils/{la_code}.json | Terms, holidays, INSET days and source for one council | All keys |
GET /v1/schools.json | Every independent school, with whether it has checked term dates | All keys |
GET /v1/schools/{urn}.json | One independent school: profile, term dates, fees, admissions, bus routes | All keys |
GET /v1/changes.json | Recent changes to dates, fees, admissions and bus routes | All keys |
GET /v1/export/index.json | List of bulk files | Business, Bulk |
GET /v1/export/schools.csv | Every school in England, one row each | Business, Bulk |
GET /v1/export/term-dates.csv | Every checked term period and INSET day | Business, Bulk |
GET /v1/export/independent-details.json | Fees, admissions and bus routes for independent schools | Business, Bulk |
POST /v1/webhooks | Register a URL for daily change notifications | Paid plans |
Change webhooks
Register an https address and we send new changes to it once a day, at 07:00 UK time.
curl -X POST -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"url": "https://example.com/termwise-hook"}' https://termwise.vertova.co.uk/v1/webhooksThe reply includes a secret. Each delivery carries an X-Termwise-Signature header: the hex HMAC-SHA256 of the request body, using that secret. Check it before trusting the delivery. GET shows your registration and DELETE removes it.
Slack: register a Slack incoming-webhook address (https://hooks.slack.com/…) and the changes arrive as a readable message in your channel instead.
Use Termwise in AI assistants (MCP)
Termwise runs a Model Context Protocol server, so Claude, ChatGPT and other assistants that support MCP can look up term dates, the next school holiday and schools near a postcode. Add it as a remote MCP server:
URL: https://termwise.vertova.co.uk/mcp Header: Authorization: Bearer YOUR_KEY
Tools: council_term_dates, school_term_dates, next_school_holiday and find_schools. Each tool call counts as one request on your plan, and a free key works.
Calendar feeds
Calendar feeds stay free and need no key: /ics/{la_code}.ics for a council and /ics/school/{urn}.ics for an independent school.
Errors
| Code | Meaning |
|---|---|
| 401 | No key, or the key isn't recognised |
| 403 | Your plan doesn't include this, or the subscription has ended |
| 429 | Monthly limit reached |
Need data or an endpoint we don't have yet? Suggest a feature.