Oak Curriculum API

API endpoints

Unit and curriculum data

In addition to lesson-level data and lesson assets, we also provide information about each sequence and the units within them, as well as assets and quiz data for each sequence.

3.1 Units within a sequence

GET /sequences/{sequence}/units

This endpoint returns high-level information for all of the units in a sequence. Units are returned in the intended sequence order and are grouped by year.

Inputs (path, query)

Name
Type
Description
Example

sequence

string

The sequence slug identifier, including the key stage 4 option where relevant.

english-primary

year [optional]

string

The year group to filter by. For the physical-education-primary sequence, a value of all-years can also be used.

1

Output (response)

Name
Type
Description

year

number, string

The year group

title

string

An optional alternative title for the year sequence

units

array[object, object]

A list of units that make up a full sequence, grouped by year.

unitTitle

string

The title of the unit

unitOrder

number

The position of the unit within the sequence.

unitOptions

array[object]

The unique slug identifier for the unit

categories

array[object]

The categories (if any) that are assigned to the unit. If the unit does not have any categories, this property is omitted.

categoryTitle

string

The title of the category

categorySlug

string

The unique identifier for the category

threads

array[object]

A list of threads (if any) that are assigned to the unit. If the unit does not have any categories, this property is omitted.

threadTitle

string

The title of the category

threadSlug

string

The unique identifier for the thread

order

number

Deprecated

unitSlug

string

The unique slug identifier for the unit

examSubjects

array[object, object]

Only used in secondary science. Contains a full year's unit sequences based on which subject is being studied at KS4.

tierTitle

string

The title of the tier

tierSlug

string

The tier identifier

Sample response

[
  {
    "year": 1,
    "units": [
      {
        "unitTitle": "Speaking and Listening",
        "unitOrder": 1,
        "unitSlug": "speaking-and-listening",
        "categories": [
          {
            "categoryTitle": "Reading, writing & oracy"
          }
        ],
        "threads": [
          {
            "threadTitle": "Developing spoken language",
            "threadSlug": "developing-spoken-language",
            "order": 8
          }
        ]
      }
    ]
  }
]

3.2 Assets within a sequence

GET /sequences/{sequence}/assets

This endpoint returns all assets for a given sequence, and the download endpoints for each. The assets are grouped by lesson. This endpoint contains licence information for any third-party content contained in the lesson’s downloadable resources. Third-party content is exempt from the open-government license, and users will need to consider whether their use is covered by the stated licence, or if they need to procure their own agreement.

Inputs (path, query)

Name
Type
Description
Example

sequence

string

The sequence slug identifier, including the key stage 4 option where relevant.

english-primary

year [optional]

number

The year group to filter by. For the physical-education-primary sequence, a value of all-years can also be used.

3

type [optional]

string

Use the this type and the lesson slug in conjunction to get a signed download URL to the asset type from the /api/lessons/{slug}/asset/{type} endpoint

slideDeck

Output (response)

Name
Type
Description

lessonSlug

string

The unique slug identifier for the lesson

lessonTitle

string

The title for the lesson

attribution

array[string]

Licence information for any third-party content contained in the lessons' downloadable resources

assets

array[object]

List of assets

label

string

The label for the asset

url

string

The download endpoint for the asset.

Sample response

[
  {
    "lessonSlug": "using-numerals",
    "lessonTitle": "Using numerals",
    "assets": [
      {
        "label": "Worksheet",
        "type": "worksheet",
        "url": "https://open-api.thenational.academy/api/v0/lessons/using-numerals/assets/worksheet"
      },
      {
        "label": "Worksheet Answers",
        "type": "worksheetAnswers",
        "url": "https://open-api.thenational.academy/api/v0/lessons/using-numerals/assets/worksheetAnswers"
      },
      {
        "label": "Video",
        "type": "video",
        "url": "https://open-api.thenational.academy/api/v0/lessons/using-numerals/assets/video"
      }
    ]
  }
]

3.3 Questions within a sequence

GET /sequences/{sequence}/questions

This endpoint returns all quiz questions for a given sequence. The assets are separated into starter quiz and entry quiz arrays, grouped by lesson.

Inputs (path, query)

Name
Type
Description
Example

sequence

string

The sequence slug identifier, including the key stage 4 option where relevant.

english-primary

year [optional]

number

The year group to filter by. For the physical-education-primary sequence, a value of all-years can also be used.

3

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

Output (response)

Name
Type
Description

lessonSlug

string

The lesson slug identifier

lessonTitle

string

The title of the lesson

starterQuiz

array[object]

The starter quiz questions - which test prior knowledge

question

string

The question text

questionType

string, string, string, string

The type of quiz question which could be one of the following:

  • multiple-choice
  • order
  • match
  • explanatory-text
  • short-answer

text

string

Supplementary text for the image, if any

distractor

boolean

Whether the multiple choice question response is the correct answer (false) or is a distractor (true)

type

string

The format of the quiz answer Note: currently, we are only returning text-based quiz answers. In the future, we will also have image-based questions available.

content

string

Quiz question answer

matchOption

object

Matching options (LHS)

correctChoice

object

Matching options (RHS), indicating the correct choice

order

number

Indicates the correct ordering of the response

exitQuiz

array[object]

The exit quiz questions - which test on the knowledge learned in the lesson

Sample response

[
  {
    "lessonTitle": "3D shapes can be composed from 2D nets",
    "lessonSlug": "3d-shapes-can-be-composed-from-2d-nets",
    "starterQuiz": [
      {
        "question": "Select all of the names of shapes that are polygons.",
        "questionType": "multiple-choice",
        "answers": [
          {
            "type": "text",
            "content": "Cube ",
            "distractor": true
          },
          {
            "type": "text",
            "content": " Square",
            "distractor": false
          },
          {
            "type": "text",
            "content": "Triangle",
            "distractor": false
          },
          {
            "type": "text",
            "content": "Semi-circle",
            "distractor": true
          }
        ]
      }
    ],
    "exitQuiz": [
      {
        "question": "What is a net?",
        "questionType": "multiple-choice",
        "answers": [
          {
            "type": "text",
            "content": "A 3D shape made of 2D shapes folded together. ",
            "distractor": false
          },
          {
            "type": "text",
            "content": "A 2D shape made of 3D shapes folded togehther.",
            "distractor": true
          },
          {
            "type": "text",
            "content": "A type of cube.",
            "distractor": true
          }
        ]
      }
    ]
  }
]

3.4 Unit summary

GET /units/{unit}/summary

This endpoint returns unit information for a given unit, including slug, title, number of lessons, prior knowledge requirements, national curriculum statements, prior unit details, future unit descriptions, and lesson titles that form the unit

Inputs (path)

Name
Type
Description
Example

unit

string

The unit slug

simple-compound-and-adverbial-complex-sentences

Output (response)

Name
Type
Description

unitSlug

string

The unit slug identifier

unitTitle

string

The unit title

yearSlug

string

The slug identifier for the year to which the unit belongs

year

number, string

The year to which the unit belongs

phaseSlug

string

The slug identifier for the phase to which the unit belongs

subjectSlug

string

The subject identifier

keyStageSlug

string

The slug identifier for the the key stage to which the unit belongs

notes

string

Unit summary notes

description

string

A short description of the unit. Not yet available for all subjects.

priorKnowledgeRequirements

array[string]

The prior knowledge required for the unit

nationalCurriculumContent

array[string]

National curriculum attainment statements covered in this unit

whyThisWhyNow

string

An explanation of where the unit sits within the sequence and why it has been placed there.

threads

array[object]

The threads that are associated with the unit

categories

array[object]

The categories (if any) that are assigned to the unit. If the unit does not have any categories, this property is omitted.

items

object

All the lessons contained in the unit

lessonSlug

string

The lesson slug identifier

lessonTitle

string

The title for the lesson

lessonOrder

number

Indicates the ordering of the lesson

state

string

If the state is 'published' then it is also available on the /lessons/* endpoints. If the state is 'new' then it's not available yet.

Sample response

{
  "unitSlug": "simple-compound-and-adverbial-complex-sentences",
  "unitTitle": "Simple, compound and adverbial complex sentences",
  "yearSlug": "year-3",
  "year": 3,
  "phaseSlug": "primary",
  "subjectSlug": "english",
  "keyStageSlug": "ks2",
  "priorKnowledgeRequirements": [
    "A simple sentence is about one idea and makes complete sense.",
    "Any simple sentence contains one verb and at least one noun.",
    "Two simple sentences can be joined with a co-ordinating conjunction to form a compound sentence."
  ],
  "nationalCurriculumContent": [
    "Ask relevant questions to extend their understanding and knowledge",
    "Articulate and justify answers, arguments and opinions",
    "Speak audibly and fluently with an increasing command of Standard English"
  ],
  "threads": [
    {
      "slug": "developing-grammatical-knowledge",
      "title": "Developing grammatical knowledge",
      "order": 10
    }
  ],
  "unitLessons": [
    {
      "lessonSlug": "four-types-of-simple-sentence",
      "lessonTitle": "Four types of simple sentence",
      "lessonOrder": 1,
      "state": "published"
    },
    {
      "lessonSlug": "three-ways-for-co-ordination-in-compound-sentences",
      "lessonTitle": "Three ways for co-ordination in compound sentences",
      "lessonOrder": 2,
      "state": "new"
    }
  ]
}