Guide
Why there is no national school term dates API
Updated
This is the answer people arrive looking for and rarely find stated plainly, because a page that says no such thing exists is a page that sells nothing.
The statutory split
Section 32 of the Education Act 2002 is headed Responsibility for fixing dates of terms and holidays and times of sessions: England, and it divides the responsibility.
For a community, voluntary controlled or community special school in England, and for a maintained nursery school, the local authority determines the dates when the school terms and holidays are to begin and end, while the governing body determines the times of the school sessions.
For a foundation, voluntary aided or foundation special school in England, the governing body determines both.
Then academies widened it
Academies and free schools set their own dates independently of the local authority, and independent schools always have. So the number of bodies making this decision is not a few hundred councils; it is several thousand schools and trusts plus the councils.
No duty exists on any of them to publish in a common format, at a common location, or to notify anybody when a date moves.
gov.uk says so, in effect
The government's own service is the clearest available evidence. Its answer to the question is that you should find your child's school term, half term and holiday dates on your local council's website, and it is available in England and Wales only.
A government that held a national dataset would not answer the question that way. The signpost is the finding.
What this means if you are building something
Design for incomplete coverage and stale data from the start, because every aggregate source has both and none of them will tell you which records are affected.
Use the Department for Education's Get Information about Schools register to enumerate schools and establish each one's governance type, because that determines which body sets its dates and is the half of the problem that has a clean official answer.
And decide early what your system does when the date it holds is wrong, because it will be. A term dates feature that silently schedules around a wrong inset day fails a family rather than a test suite.