Skip to main content
POST
Given a subject and a topic, returns the specification learning outcomes most relevant to it, ranked. This is the retrieval step behind MESO Align. Matching is semantic: the topic is embedded server-side and compared against pre-computed embeddings of every outcome in the subject specification. Clients pass natural language and never see a vector.

Request

string
required
Specification code for the subject, e.g. "ENG" — not a display name like "English". See supported subjects.
string
required
The topic to match against, e.g. "Shakespeare's Romeo and Juliet".
string[]
Outcomes the teacher has already chosen. These are excluded from the results, so repeated calls keep surfacing new suggestions rather than the same top hits.
number
default:"5"
How many recommendations to return.

Response

boolean
true on a successful match.
object[]
Ranked outcomes, most relevant first. Each entry carries the specification metadata plus a score.
object
Echoes subjectCode and topic, plus count and an ISO timestamp.

Errors

Failures carry a machine-readable code alongside the message — this endpoint and /recommend-as are the only two that do.

Supported subjects

Junior cycle: ART, BUS, CLA, CSP, EGN, ENG, GEO, GRA, HEC, HIS, IRT1, IRT2, MAT, MFL, MUS, PE, REL, SCI, SPH, TECH, WOO. Senior cycle: ARA_SC, BIO_SC, BUS_SC, CASD_SC, CHEM_SC, DFTS_SC, GRK_SC, LAT_SC, PHY_SC, SPHE_SC.
Codes are matched case-insensitively. A subject absent from this list has no embeddings built yet — the call fails rather than falling back to a weaker match.