Endpoint Playground
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.
14 Oct 2026: 40 jobs; 10 fields had a value in every checked item and 1 varied between items.
Sample value profiles: closing_date: 2026-10-15 to 2026-11-14; title: “Teacher (SEN)” and 21 other values; url: tes.com.
curl 'https://api.crawlora.net/api/v1/tes/jobs/search?radius_miles=3&sort=relevance&contract_type=Full+Time&contract_term=Permanent' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| keywords | string | No | Job title or keyword | |
| location | string | No | Free-text place name resolved via Tes's own location autocomplete | |
| radius_miles | integer | No | 3 | Search radius around location, in miles |
| page | integer | No | One-based page | |
| page_size | integer | No | Results per page | |
| sort | string | No | relevance | Sort order |
| contract_type | string | No | Full Time | Contract type |
| contract_term | string | No | Permanent | Contract term |
| position | string | No | Comma-separated position category label(s) -- see the endpoint markdown | |
| subject | string | No | Comma-separated subject label(s) -- see the endpoint markdown | |
| workplace | string | No | Comma-separated workplace/organisation-type label(s) -- see the endpoint markdown | |
| salary_min | integer | No | Minimum advertised salary, in the searched market's local currency |
{
"code": 200,
"msg": "OK",
"data": {
"keywords": "teacher",
"location": "United Kingdom",
"page": 1,
"page_size": 20,
"total": 1504,
"jobs": [
{
"id": "2340998",
"title": "Minibus Driver",
"url": "https://www.tes.com/jobs/vacancy/minibus-driver-epsom-2340998",
"employer": "Epsom College",
"employer_logo_url": "https://l.imgt.es/employer-assets/employers/1039424/brandimages/20181030_1126AM_desktop_1039424_logo.jpg",
"location": "Epsom",
"salary": "£11,956 per year",
"contract_terms": [
"Permanent"
],
"contract_types": [
"Part Time"
],
"short_description": "Epsom College is an independent co educational day and boarding school...",
"closing_date": "2026-09-29T23:00:00.000Z"
}
],
"facets": {
"positions": [
{
"value": "Teaching and Lecturing",
"count": 713,
"children": [
{
"value": "Cover Supervisor",
"count": 120
}
]
}
],
"subjects": [
{
"value": "Mathematics",
"count": 200
}
],
"workplaces": [
{
"value": "Workplaces",
"count": 1000,
"children": [
{
"value": "Secondary",
"count": 400
}
]
}
],
"contract_types": [
{
"value": "Full Time",
"count": 1036
},
{
"value": "Part Time",
"count": 577
}
],
"contract_terms": [
{
"value": "Permanent",
"count": 1192
},
{
"value": "Fixed Term",
"count": 161
}
]
}
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.