Browse the documentation

Included

Get specification references

GET/api/v1/subtopics/{subtopicId}/spec-pointsIncluded
Scope
curriculum:read
Price
Included once you've topped up

The specification reference codes a subtopic is mapped to, with the unit they sit in and a link to the exam board’s own published document.

What to know

  • NO BOARD WORDING IS RETURNED, EVER. You get reference codes, unit names, our mapping and a link to the board’s own document. Exam board specification text is board copyright and it does not cross this API.
  • `mapped: false` WITH A 200 IS THE COMMON CASE, NOT AN ERROR. Most subtopics carry no mapping, and the honest answer is an empty `points` array with `mapped` false. Handle it as a normal response.
  • MAPPING IS ROLLING OUT SUBJECT BY SUBJECT. Every subtopic on a subject we have mapped resolves; a subject we have not reached yet answers `mapped: false` throughout. Build for both from the start rather than treating an unmapped subject as a fault, and ask us at support@revisiongenie.com where a subject you depend on has got to.
  • `unresolved` counts references that could not be found in the current specification skeleton. It means the specification was re-extracted and some references are being remapped, so your coverage of that subtopic is partial rather than short.
  • `ref` is a citation label, not a permanent key. Reference ids are positional within one extraction and are renumbered when a board reissues a specification.
  • A mapping claiming more than 200 references is truncated, and the response says so with `truncated: true`.
  • `specSource.url` is null when we hold no link we are willing to pass on. We link to the board’s own site, never to our copy of their document.

Parameters

FieldTypeRequiredDescription
subtopicIdstring (path)YesA 24-character hex id from either tree. The response reports which hierarchy it belongs to.

Example request

curl
curl "https://www.revisiongenie.com/api/v1/subtopics/6612f0c3c3b4d5e6f7a80b01/spec-points" \
  -H "Authorization: Bearer rgk_live_YOUR_KEY_HERE"

Example response

json
{
  "subtopic": {
    "id": "6612f0c3c3b4d5e6f7a80b01",
    "name": "Cell structure"
  },
  "hierarchy": "curriculum",
  "mapped": true,
  "specSource": {
    "board": "AQA",
    "url": "https://www.aqa.org.uk/subjects/science/gcse/biology-8461/specification"
  },
  "points": [
    {
      "ref": "4.1.1:2",
      "unitRef": "4.1.1",
      "unitTitle": "Cell structure",
      "kind": "content"
    },
    {
      "ref": "4.1.1:3",
      "unitRef": "4.1.1",
      "unitTitle": "Cell structure",
      "tier": "higher"
    }
  ],
  "unresolved": 1
}

Errors

Every error carries the same shape: a stable error code to branch on and a message for a human. Codes specific to this endpoint come first.

CodeStatusWhen
topup_required402This developer account has never topped up. The data endpoints are included from your first top-up onwards, whatever your balance does afterwards. The body carries a top-up link.
invalid_id400subtopicId is not a 24-character hex id.
not_found404No subtopic with that id in either hierarchy.
invalid_key401The key is missing, malformed, revoked, expired, or is not a developer key.
forbidden403The key is valid but does not hold the scope this endpoint requires.
suspended403The developer account is suspended. Data reads stop as well as billable calls.
rate_limited429The key went past its ceiling: 120 calls a minute overall, 30 a minute on the paid endpoints. Also returned after repeated failed authentication from one address.
server_error500Something failed on our side. Retry; a paid call is refunded.

Revision Genie is an independent product and is not affiliated with or endorsed by AQA, Pearson Edexcel, OCR, WJEC or Eduqas.

Use of this API is governed by the developer terms. Questions: support@revisiongenie.com.