Use Crawlora's Tes API endpoints to extract supported public Tes data as structured JSON. This documentation covers 7 active endpoints including Get a Tes teaching job, Get a Tes jobs employer profile, Search Tes teaching jobs, Get a Tes teaching resource, and related APIs. Developers can use these endpoints for monitoring, enrichment, research dashboards, internal data pipelines, and agent-native workflows without maintaining platform-specific scraping code. Each endpoint page documents authentication, request parameters such as id, username, query, cURL examples, response examples, response schemas, errors, credit cost, and Playground testing. Send requests to the Crawlora API with an x-api-key header, review usage and plan limits on pricing, and test safe sample requests in Playground before moving the workflow into production.
Choose an endpoint, send an authenticated request with the x-api-key header, and inspect the normalized JSON response. The examples below use the public Crawlora API base URL and the same endpoint catalog used by Playground.
Base URL
https://api.crawlora.net/api/v1
Auth header
x-api-key: $CRAWLORA_API_KEY
Primary endpoint
GET /tes/jobs/search
Credit cost
1 credit/request
curl -X GET "https://api.crawlora.net/api/v1/tes/jobs/search?radius_miles=3&page=1&sort=relevance&contract_type=Full+Time&contract_term=Permanent" \
-H "x-api-key: $CRAWLORA_API_KEY"
These endpoint cards are generated from the active Crawlora endpoint catalog, including method, path, auth mode, credit cost, parameter summary, docs, and Playground links.
GET/tes/jobs/detailapiKey1 credit/request
Get a Tes teaching job
Returns normalized 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.
Returns normalized 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).
Searches Tes's (tes.com) teaching-jobs board. Returns normalized 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 via Tes's own location-autocomplete endpoint; 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 passthrough 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.
Returns normalized 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, which robots.txt already disallows scraping regardless.
Searches Tes's (tes.com) teaching-resources marketplace. Returns normalized listing facts (title, author, price, rating, downloads) -- not full listing descriptions -- out of respect for Tes's general reproduction/republication restriction. query is optional: omit it (alone, or combined with key_stage/subject/on_sale) for pure filter-driven or fully unfiltered browsing, matching Tes's own search API. 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.
Returns normalized 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.
Searches Tes's (tes.com) public Schools Directory by school name or location. Returns normalized 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.