Overview
This is a POC of the Explore Education Statistics API
- Markdown
- More markdown
Documents
- ExploreEducationStatisticsPublicAPI.json
- Uploaded schema
Current release
Release name | Available from |
---|---|
0.1 | 1st October 2024 |
Operations
GET Download a data set as CSV
- Description
-
The CSV response will render its metadata in a human-readable format (instead of machine-readable IDs). The CSV is not subject to the same backward compatibility guarantees as the data set's JSON representation in other endpoints.
- URL template
- /api/v{version}/data-sets/{dataSetId}/csv
GET Get a data set version
- Description
-
Get a data set version's summary details.
- URL template
- /api/v{version}/data-sets/{dataSetId}/versions/{dataSetVersion}
GET Get a data set version's changes
- Description
-
Lists the changes made by a data set version relative to the version prior to it.
- URL template
- /api/v{version}/data-sets/{dataSetId}/versions/{dataSetVersion}/changes
GET Get a data set’s metadata
- Description
-
Get the metadata about a data set. Use this to create data set queries.
- URL template
- /api/v{version}/data-sets/{dataSetId}/meta
GET Get a data set’s summary
- Description
-
Gets a specific data set’s summary details.
- URL template
- /api/v{version}/data-sets/{dataSetId}
GET Get a publication’s details
- Description
-
Get a specific publication's summary details.
- URL template
- /api/v{version}/publications/{publicationId}
GET List a data set’s versions
- Description
-
List a data set’s versions. Only provides summary information of each version.
- URL template
- /api/v{version}/data-sets/{dataSetId}/versions
GET List a publication’s data sets
- Description
-
Lists summary details of all the data sets related to a publication.
- URL template
- /api/v{version}/publications/{publicationId}/data-sets
GET List publications
- Description
-
Lists details about publications with data available for querying.
- URL template
- /api/v{version}/publications
GET Query a data set (GET)
- Description
-
Query a data set using a
GET
request, returning the filtered results.Note that there is a
POST
variant of this endpoint which provides a more complete set of querying functionality. TheGET
variant is only recommended for initial exploratory testing or simple queries that do not need advanced functionality.Unlike the
POST
variant, this endpoint does not allow condition clauses (and
,or
,not
) and consequently cannot express more complex queries. Use thePOST
variant instead for these types of queries.Indicators
The
indicators
query parameter is required and at least one indicator must be specified.Each indicator should be a string containing the indicator ID e.g.
headcount
,enrolments
.Filters
The
filters
query parameter is used to filter by other filter options (not locations, geographic levels or time periods).Each filter should be a string containing the required filter option ID e.g.
z4FQE
,DcQeg
.Geographic levels
The
geographicLevels
query parameter is used to filter results by geographic level.The geographic levels are specified as codes, and can be one of the following:
EDA
- English devolved areaINST
- InstitutionLA
- Local authorityLAD
- Local authority districtLEP
- Local enterprise partnershipLSIP
- Local skills improvement plan areaMCA
- Mayoral combined authorityMAT
- MATNAT
- NationalOA
- Opportunity areaPA
- Planning areaPCON
- Parliamentary constituencyPROV
- ProviderREG
- RegionalRSC
- RSC regionSCH
- SchoolSPON
- SponsorWARD
- Ward
Locations
The
locations
query parameter is used to filter results by location.The locations should be strings formatted like
{level}|{property}|{value}
where:{level}
is the location's level code (e.g.NAT
,REG
,LA
){property}
is the name of the identifying property to match on (e.g.id,
code,
urn`){value}
is the value for the property to match
An ID or a code can be used to identify a location, with the following differences:
- IDs only match a single location
- Codes may match multiple locations
Whilst codes are generally unique to a single location, they can be used for multiple locations. This may match more results than you expect so it's recommended to use IDs where possible.
Examples
LA|code|E08000019
matches any local authority with codeE08000019
REG|id|abcde
matches any region with IDabcde
SCH|urn|140821
matches any school with URN140821
Time periods
The
timePeriods
query parameter is used to filter results by time period.The time periods should be strings formatted like
{period}|{code}
where:period
is the time period or range (e.g.2020
or2020/2021
)code
is the code identifying the time period type (e.g.AY
,CY
,M1
,W20
)
The
period
should be a single year like2020
, or a range like2020/2021
. Currently, only years (or year ranges) are supported.Some time period types span two years e.g. financial year part 2 (
P2
), or may fall in a latter year e.g. academic year summer term (T3
). For these types, a singular yearperiod
like2020
is considered as2020/2021
.For example, a
period
value of2020
is applicable to the following time periods:- 2020 calendar year
- 2020/2021 academic year
- 2020/2021 financial year part 2 (October to March)
- 2020/2021 academic year's summer term
If you wish to be more explicit, you may use a range for the
period
e.g.2020/2021
. However, a range cannot be used with time period types which only span a single year, for example,2020/21
cannot be used withCY
,M
orW
codes.Examples
2020|AY
is the 2020/21 academic year2021|FY
is the 2021/22 financial year2020|T3
is the 2020/21 academic year's summer term2020|P2
is the 2020/21 financial year part 2 (October to March)2020|CY
is the 2020 calendar year2020|W32
is 2020 week 322020/2021|AY
is the 2020/21 academic year2021/2022|FY
is the 2021/22 financial year
Sorts
The
sorts
query parameter is used to sort the results.Sorts are applied in the order they are provided and should be strings formatted like
{field}|{direction}
where:field
is the name of the field to sort e.g.time_period
direction
is the direction to sort in e.g. ascending (Asc
) or descending (Desc
)
The
field
can be one of the following:timePeriod
to sort by time periodgeographicLevel
to sort by the geographic level of the datalocation|{level}
to sort by locations in a geographic level where{level}
is the level code (e.g.REG
,LA
)- A filter ID (e.g.
characteristic
,school_type
) to sort by the options in that filter - An indicator ID (e.g.
sess_authorised
,enrolments
) to sort by the values in that indicator
Examples
timePeriod|Desc
sorts by time period in descending ordergeographicLevel|Asc
sorts by geographic level in ascending orderlocation|REG|Asc
sorts by regions in ascending order
- URL template
- /api/v{version}/data-sets/{dataSetId}/query?indicators={indicators}
POST Query a data set (POST)
- Description
-
Query a data set using a
POST
request, returning the filtered results.Note that for simpler queries or exploratory testing, there is also GET variant of this endpoint only handles a smaller subset of querying functionality. However, for most use-cases, this endpoint is recommended as it provides the complete set of functionality.
Unlike the
GET
endpoint, thePOST
endpoint allows condition criteria (and
,or
,not
) and consequently can express more complex queries. - URL template
- /api/v{version}/data-sets/{dataSetId}/query
Back to top