GET/tes/jobs/detailapiKey1 credit/request
Returns detail for one job posting by its numeric id (the id field returned by tes-job-search): employer, location, salary, contract terms/types, dates, and application contact/URL, plus a short excerpt of the listing description rather than the full long-form HTML copy.
Required: id.
Sampled 14 Oct 2026: 18 fields returned with a value. In the sample: posted_date: 2026-08-31; title: “Minibus Driver”; url: tes.com; quick_apply: false; description_excerpt: 602 characters; contract_terms: 1 entry; employer: “Epsom College”; employer_url: tes.com.
Open in Playground
GET/tes/jobs/employerapiKey1 credit/request
Returns detail for one jobs employer profile by its numeric id (the trailing id in tes-job-detail's employer_url field, e.g. .../jobs/employer/epsom-college-1039424 -- the 1039424): name, location, school type/phase/funding status/gender/age range, an about description, its postal address, and every currently-open position listed on the employer's own profile page (id, title, url -- call tes-job-detail with each id for the full posting).
Required: id.
Sampled 14 Oct 2026: 3 items. Filled in every item: id, title, url. In the sample: url: tes.com; title: median 135 characters.
Open in Playground
GET/tes/jobs/searchapiKey1 credit/request
Searches Tes's (tes.com) teaching-jobs board. Returns listing facts (title, employer, location, salary, contract terms/types) plus a short excerpt of the listing description, not the full long-form job-description copy, and the same live faceted-search breakdown (position/subject/workplace category trees with counts, plus contract type/term counts) the real search page renders as its filter sidebar. location is a free-text place name (a UK town/city, an international city, or a bare country name) resolved to coordinates; omit for Tes's own default market, "United Kingdom". radius_miles selects the search radius around location. contract_type and contract_term are validated against Tes's own small, closed label sets. position, subject, and workplace are comma-separated filters -- Tes's own category labels are numerous and can change, so read a prior response's own facets.positions[].value (and facets.positions[].children[].value)/facets.subjects[].value/facets.workplaces[].children[].value for the live, current set rather than guessing. salary_min filters to jobs with an advertised salary at or above that amount (in the searched market's local currency); Tes's own filter panel offers only a minimum, no maximum.
Optional: keywords, location, radius_miles (10 allowed values: 3, 5, 10, 15, 20, 30, 50, 70, 100, 500), page, page_size, sort (3 allowed values: relevance, newest, distance), contract_type (2 allowed values: Full Time, Part Time), contract_term (6 allowed values: Permanent, Fixed Term, Casual, Maternity Cover, Temporary, Supply), position, subject, workplace, salary_min.
Sampled 14 Oct 2026: 40 items. Filled in every item: id, title, url, employer, employer_logo_url, location, contract_terms, contract_types and 2 more. Not in every item: salary (39). In the sample: closing_date: 2026-10-15 to 2026-11-14; title: “Teacher (SEN)” and 21 other values; url: tes.com; short_description: median 244 characters; contract_terms: median 1 entry; employer: “Heather Bridge School” and 26 other values; employer_logo_url: l.imgt.es; location: “Devon” and 25 other values.
Open in Playground
GET/tes/resources/detailapiKey1 credit/request
Returns detail for one teaching resource by its numeric id (the id field returned by tes-resource-search). Descriptive facts (title, subject, age range, resource type, author, price, rating, licence label), a per-file attachment list (file type, size, and a preview thumbnail -- metadata only), and the most recent page of reviews are returned -- not the downloadable resource file itself.
Required: id. Optional: country (7 allowed values: GB, US, AU, IE, CA, NZ, UN).
Sampled 14 Oct 2026: 13 items. Filled in every item: file_type, size, preview_image_url. In the sample: size: “256.71 KB” and 12 other values; preview_image_url: d1uvxqwmcz8fl1.cloudfront.net.
Open in Playground
GET/tes/resources/searchapiKey1 credit/request
Searches Tes's (tes.com) teaching-resources marketplace. Returns listing facts (title, author, price, rating, downloads) -- not full listing descriptions. query is optional: omit it (alone, or combined with key_stage/subject/on_sale) for pure filter-driven or fully unfiltered browsing. sort mirrors the real search page's own Sort by dropdown; key_stage and subject mirror its left-hand Refine by filters (both closed, validated enums taken from Tes's own facet taxonomy, and always resolved against Tes's own single GB-taxonomy regardless of country). country controls result currency/localisation only (confirmed live for all seven values); it does not change which key_stage/subject values are valid.
Optional: query, country (7 allowed values: GB, US, AU, IE, CA, NZ, UN), page, page_size, sort (4 allowed values: relevance, newest, highest_rated, lowest_price), key_stage (7 allowed values: 3-5, 5-7, 7-11, 11-14, 14-16, 16+, age_not_applicable), subject (), on_sale.
Sampled 14 Oct 2026: 40 items. Filled in every item: id, title, url, author, price, currency, free, on_sale and 9 more. Not in every item: license (35). In the sample: first_published: 2010-10-09 to 2026-10-08; license: Paid (17), CC-BY-SA (12), CC-BY-ND (6); price: 0 to 2, median 0; title: “Phonics roll and write” and 38 other values; url: tes.com; free: true in 23 of 40; resource_types: median 1 entry; on_sale: true in 0 of 40.
Open in Playground
GET/tes/resources/shopapiKey1 credit/request
Returns detail for one teaching-resources author/seller shop by its username (from tes-resource-search/tes-resource-detail's author field, or the trailing path segment of author_url): display name, average rating, upload/view/download counts, a bio, and a page of that author's resource listing (id, title, price, thumbnail -- call tes-resource-detail with each id for subject/age-range/resource-type/rating/description). subject narrows the listing to one of the subject tabs shown on the shop's own page; these vary per author and are not a curated enum.
Required: username. Optional: subject, page.
Sampled 14 Oct 2026: 21 items. Filled in every item: id, title, url, price, currency, free, thumbnail_url. In the sample: price: 1.25 to 22, median 1.75; title: “ShREC - Adult Prompt Sheets for Continuous Provision” and 20 other values; url: tes.com; free: true in 0 of 21; thumbnail_url: d1e4pidl3fu268.cloudfront.net.
Open in Playground
GET/tes/schools/searchapiKey1 credit/request
Searches Tes's (tes.com) public Schools Directory by school name or location. Returns listing facts (name, logo, a short description, address) for each matching school/employer. Each result's id is the same employer id tes-job-employer accepts, so a caller can go straight from a name/location search to a full employer profile (school type/phase/funding status/gender/age range, and its currently-open positions) without first needing a job posting to discover the id.
Required: query. Optional: page, page_size.
Sampled 14 Oct 2026: 6 items. Filled in every item: id, name, url, logo_url, address, country, post_code. Not in every item: description (5). In the sample: country: United Kingdom (5), Malaysia (1); name: “Cranmore” and 5 other values; url: tes.com; description: median 303 characters; logo_url: d2yw9izrmawh7r.cloudfront.net.
Open in Playground