API endpoints
The following lists are available to facilitate using other endpoints:
The top-level endpoints (key stages, subjects, threads) provide an overview of our data model, while the lower-level endpoints provide detailed information on specific subjects, key stages and threads.
This endpoint returns an array of all available subjects and their associated sequences, key stages and years.
Name | Type | Description |
---|---|---|
subjectTitle | string | The subject title |
subjectSlug | string | The subject slug identifier |
sequenceSlugs | array[object] | Information about the years, key stages and key stage 4 variance for each sequence |
sequenceSlug | string | The unique identifier for each sequence |
years | array[number] | The years for which this subject has content available for |
keyStages | array[object] | The key stage slug identifiers for which this subject has content available for. |
keyStageTitle | string | The key stage title for the given key stage |
keyStageSlug | string | The unique identifier for a given key stage |
phaseSlug | string | The unique identifier for the phase to which this sequence belongs |
phaseTitle | string | The title for the phase to which this sequence belongs |
ks4Options | object | The key stage 4 study pathway that this sequence represents. May be null. |
[
{
"subjectTitle": "Art and design",
"subjectSlug": "art",
"sequenceSlugs": [
{
"sequenceSlug": "art-primary",
"years": [
1,
2,
3,
4,
5,
6
],
"keyStages": [
{
"keyStageTitle": "Key Stage 1",
"keyStageSlug": "ks1"
},
{
"keyStageTitle": "Key Stage 2",
"keyStageSlug": "ks2"
}
],
"phaseSlug": "primary",
"phaseTitle": "Primary",
"ks4Options": null
},
{
"sequenceSlug": "art-secondary",
"years": [
7,
8,
9,
10,
11
],
"keyStages": [
{
"keyStageTitle": "Key Stage 3",
"keyStageSlug": "ks3"
},
{
"keyStageTitle": "Key Stage 4",
"keyStageSlug": "ks4"
}
],
"phaseSlug": "secondary",
"phaseTitle": "Secondary",
"ks4Options": null
}
],
"years": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11
],
"keyStages": [
{
"keyStageTitle": "Key Stage 1",
"keyStageSlug": "ks1"
},
{
"keyStageTitle": "Key Stage 2",
"keyStageSlug": "ks2"
},
{
"keyStageTitle": "Key Stage 3",
"keyStageSlug": "ks3"
},
{
"keyStageTitle": "Key Stage 4",
"keyStageSlug": "ks4"
}
]
}
]
This endpoint returns the sequences, key stages and years that are currently available for a given subject.
Name | Type | Description | Example |
---|---|---|---|
subject | string | The slug identifier for the subject | art |
Name | Type | Description |
---|---|---|
subjectTitle | string | The subject title |
subjectSlug | string | The subject slug identifier |
sequenceSlugs | array[object] | Information about the years, key stages and key stage 4 variance for each sequence |
sequenceSlug | string | The unique identifier for each sequence |
years | array[number] | The years for which this subject has content available for |
keyStages | array[object] | The key stage slug identifiers for which this subject has content available for. |
keyStageTitle | string | The key stage title for the given key stage |
keyStageSlug | string | The unique identifier for a given key stage |
phaseSlug | string | The unique identifier for the phase to which this sequence belongs |
phaseTitle | string | The title for the phase to which this sequence belongs |
ks4Options | object | The key stage 4 study pathway that this sequence represents. May be null. |
{
"subjectTitle": "Art and design",
"subjectSlug": "art",
"sequenceSlugs": [
{
"sequenceSlug": "art-primary",
"years": [
1,
2,
3,
4,
5,
6
],
"keyStages": [
{
"keyStageTitle": "Key Stage 1",
"keyStageSlug": "ks1"
},
{
"keyStageTitle": "Key Stage 2",
"keyStageSlug": "ks2"
}
],
"phaseSlug": "primary",
"phaseTitle": "Primary",
"ks4Options": null
},
{
"sequenceSlug": "art-secondary",
"years": [
1,
2,
3,
4,
5,
6
],
"keyStages": [
{
"keyStageTitle": "Key Stage 1",
"keyStageSlug": "ks1"
},
{
"keyStageTitle": "Key Stage 2",
"keyStageSlug": "ks2"
}
],
"phaseSlug": "secondary",
"phaseTitle": "Secondary",
"ks4Options": null
}
],
"years": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11
],
"keyStages": [
{
"keyStageTitle": "Key Stage 1",
"keyStageSlug": "ks1"
},
{
"keyStageTitle": "Key Stage 2",
"keyStageSlug": "ks2"
},
{
"keyStageTitle": "Key Stage 3",
"keyStageSlug": "ks3"
},
{
"keyStageTitle": "Key Stage 4",
"keyStageSlug": "ks4"
}
]
}
This endpoint returns an array of sequence objects that are currently available for a given subject. For secondary sequences, this includes information about key stage 4 variance such as exam board sequences and non-GCSE ‘core’ unit sequences.
Name | Type | Description | Example |
---|---|---|---|
subject | string | The slug identifier for the subject | art |
Name | Type | Description |
---|---|---|
sequenceSlug | string | The unique identifier for each sequence |
years | array[number] | The years for which this subject has content available for |
keyStages | array[object] | The key stage slug identifiers for which this subject has content available for. |
keyStageTitle | string | The key stage title for the given key stage |
keyStageSlug | string | The unique identifier for a given key stage |
phaseSlug | string | The unique identifier for the phase to which this sequence belongs |
phaseTitle | string | The title for the phase to which this sequence belongs |
ks4Options | object | The key stage 4 study pathway that this sequence represents. May be null. |
[
{
"sequenceSlug": "art-primary",
"years": [
1,
2,
3,
4,
5,
6
],
"keyStages": [
{
"keyStageTitle": "Key Stage 1",
"keyStageSlug": "ks1"
},
{
"keyStageTitle": "Key Stage 2",
"keyStageSlug": "ks2"
}
],
"phaseSlug": "primary",
"phaseTitle": "Primary",
"ks4Options": null
},
{
"sequenceSlug": "art-secondary",
"years": [
1,
2,
3,
4,
5,
6
],
"keyStages": [
{
"keyStageTitle": "Key Stage 1",
"keyStageSlug": "ks1"
},
{
"keyStageTitle": "Key Stage 2",
"keyStageSlug": "ks2"
}
],
"phaseSlug": "secondary",
"phaseTitle": "Secondary",
"ks4Options": null
}
]
This endpoint returns a list of key stages that are currently available for a given subject.
Name | Type | Description | Example |
---|---|---|---|
subject | string | The subject slug identifier | art |
Name | Type | Description |
---|---|---|
keyStageTitle | string | The key stage title for the given key stage |
keyStageSlug | string | The unique identifier for a given key stage |
[
{
"keyStageTitle": "Key Stage 1",
"keyStageSlug": "ks1"
},
{
"keyStageTitle": "Key Stage 2",
"keyStageSlug": "ks2"
},
{
"keyStageTitle": "Key Stage 3",
"keyStageSlug": "ks3"
},
{
"keyStageTitle": "Key Stage 4",
"keyStageSlug": "ks4"
}
]
This endpoint returns an array of years that are currently available for a given subject.
Name | Type | Description | Example |
---|---|---|---|
subject | string | Subject slug to filter by | cooking-nutrition |
[
1,
2,
3,
4,
5,
6,
7,
8,
9
]
This endpoint returns all the key stages (titles and slugs) that are currently available on Oak
Name | Type | Description |
---|---|---|
slug | string | The key stage slug identifier |
title | string | The key stage title |
[
{
"slug": "ks1",
"title": "Key Stage 1"
}
]
This endpoint returns an array of available published lessons for a given subject and key stage, grouped by unit.
Name | Type | Description | Example |
---|---|---|---|
keyStage | string | Key stage slug to filter by, e.g. 'ks2' - note that casing is important here, and should be lowercase | ks1 |
subject | string | Subject slug to filter by, e.g. 'english' - note that casing is important here, and should be lowercase | english |
unit [optional] | string | Optional unit slug to additionally filter by | word-class |
offset [optional] | number | If limiting results returned, this allows you to return the next set of results, starting at the given offset point | 50 |
limit [optional] | number | Limit the number of lessons, e.g. return a maximum of 100 lessons | 10 |
Name | Type | Description |
---|---|---|
unitSlug | string | The unit slug identifier |
unitTitle | string | The unit title |
lessons | array[object] | List of lessons for the specified unit |
lessonSlug | string | The lesson slug identifier |
lessonTitle | string | The lesson title |
[
{
"unitSlug": "simple-compound-and-adverbial-complex-sentences",
"unitTitle": "Simple, compound and adverbial complex sentences",
"lessons": [
{
"lessonSlug": "four-types-of-simple-sentence",
"lessonTitle": "Four types of simple sentence"
},
{
"lessonSlug": "three-ways-for-co-ordination-in-compound-sentences",
"lessonTitle": "Three ways for co-ordination in compound sentences"
}
]
}
]
This endpoint returns an array of units containing available published lessons for a given key stage and subject, grouped by year. Units without published lessons will not be returned by this endpoint.
Name | Type | Description | Example |
---|---|---|---|
keyStage | string | Key stage slug to filter by, e.g. 'ks2' | ks1 |
subject | string | Subject slug to search by, e.g. 'science' - note that casing is important here (always lowercase) | art |
Name | Type | Description |
---|---|---|
yearSlug | string | The year identifier |
yearTitle | string | The year title |
units | array[object] | List of units for the specified year |
[
{
"units": [
{
"unitSlug": "2-4-and-8-times-tables-using-times-tables-to-solve-problems",
"unitTitle": "2, 4 and 8 times tables: using times tables to solve problems"
},
{
"unitSlug": "bridging-100-counting-on-and-back-in-10s-adding-subtracting-multiples-of-10",
"unitTitle": "Bridging 100: counting on and back in 10s, adding/subtracting multiples of 10"
}
],
"yearSlug": "year-3",
"yearTitle": "Year 3"
}
]
This endpoint returns an array of all threads, across all subjects. Threads signpost groups of units that link to one another, building a common body of knowledge over time. They are an important component of how Oak’s curricula are sequenced.
Name | Type | Description |
---|---|---|
title | string | The thread title |
slug | string | The thread slug identifier |
[
{
"title": "Number: Multiplication and division",
"slug": "number-multiplication-and-division"
}
]
This endpoint returns all of the units that belong to a given thread.
Name | Type | Example |
---|---|---|
threadSlug | string | number-multiplication-and-division |
Name | Type | Description |
---|---|---|
unitTitle | string | The unit title |
unitSlug | string | The unit slug identifier |
unitOrder | number | The position of the unit within the thread |
[
{
"unitTitle": "Unitising and coin recognition - counting in 2s, 5s and 10s",
"unitSlug": "unitising-and-coin-recognitions-counting-in-2s-5s-and-10s",
"unitOrder": 1
},
{
"unitTitle": "Solving problems in a range of contexts",
"unitSlug": "unitising-and-coin-recognition-solving-problems-involving-money",
"unitOrder": 2
}
]