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

PlanRequests a monthBulk exportsChange webhooks
Free1,000NoNo
Starter, £19 a month10,000NoYes
Business, £79 a month100,000YesYes
Bulk licence, £499 a year100,000YesYes

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

RequestReturnsAvailable to
GET /v1/meYour plan, status and usage this monthAll keys
GET /v1/councils.jsonEvery council with checked term datesAll keys
GET /v1/councils/{la_code}.jsonTerms, holidays, INSET days and source for one councilAll keys
GET /v1/schools.jsonEvery independent school, with whether it has checked term datesAll keys
GET /v1/schools/{urn}.jsonOne independent school: profile, term dates, fees, admissions, bus routesAll keys
GET /v1/changes.jsonRecent changes to dates, fees, admissions and bus routesAll keys
GET /v1/export/index.jsonList of bulk filesBusiness, Bulk
GET /v1/export/schools.csvEvery school in England, one row eachBusiness, Bulk
GET /v1/export/term-dates.csvEvery checked term period and INSET dayBusiness, Bulk
GET /v1/export/independent-details.jsonFees, admissions and bus routes for independent schoolsBusiness, Bulk
POST /v1/webhooksRegister a URL for daily change notificationsPaid 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/webhooks

The 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

CodeMeaning
401No key, or the key isn't recognised
403Your plan doesn't include this, or the subscription has ended
429Monthly limit reached

Need data or an endpoint we don't have yet? Suggest a feature.