Tes API endpoint
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.
/tes/jobs/detailQuery parameters:
id (required): a numeric Tes job id, e.g. 2340998.Notable response behavior:
404.description_excerpt is plain text with HTML tags stripped and truncated to roughly 600 characters, not the full listing copy.employer_url's trailing numeric id (e.g. 1039424 in .../jobs/employer/epsom-college-1039424) is the id tes-job-employer accepts.employer_logo_url and employer_header_url are empty when the employer hasn't uploaded that image.| Field | In the sample | Value in the sample |
|---|---|---|
| id | Has a value | |
| title | Has a value | “Minibus Driver” |
| url | Has a value | tes.com |
| employer | Has a value | “Epsom College” |
| employer_url | Has a value | tes.com |
| employer_website | Has a value | epsomcollege.org.uk |
| employer_logo_url | Has a value | l.imgt.es |
| employer_header_url | Has a value | l.imgt.es |
| location | Has a value | “Surrey” |
| salary | Has a value | “£11,956 per year” |
| contract_terms | Has a value | 1 entry |
| contract_types | Has a value | 1 entry |
| description_excerpt | Has a value | 602 characters |
| posted_date | Has a value | 2026-08-31 |
| closing_date | Has a value | 2026-10-08 |
| application_url | Has a value | epsomcollege.org.uk |
| application_email | Has a value | |
| quick_apply | Has a value | false |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | string | Yes | Tes job id | 2340998 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/tes/jobs/detail?id=2340998" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"id": "2340998",
"title": "Minibus Driver",
"url": "https://www.tes.com/jobs/vacancy/minibus-driver-epsom-2340998",
"employer": "Epsom College",
"employer_url": "https://www.tes.com/jobs/employer/epsom-college-1039424",
"employer_website": "http://www.epsomcollege.org.uk",
"employer_logo_url": "https://l.imgt.es/employer-assets/employers/1039424/brandimages/20181030_1126AM_desktop_1039424_logo.jpg",
"employer_header_url": "https://l.imgt.es/employer-assets/employers/1039424/brandimages/20160908_1226PM_desktop_1039424_header.jpg",
"location": "Epsom",
"salary": "£11,956 per year",
"contract_terms": [
"Permanent"
],
"contract_types": [
"Part Time"
],
"description_excerpt": "Epsom College is an independent co educational day and boarding school with approximately 1100 pupils...",
"posted_date": "2026-08-31T23:00:00.000Z",
"closing_date": "2026-09-29T23:00:00.000Z",
"application_url": "https://www.epsomcollege.org.uk/vacancies/minibus-driver/",
"application_email": "hr.recruitment@epsomcollege.org.uk",
"quick_apply": false
}
}Request schema
No body schema
Response schema
#/definitions/tes.jobDetailResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | tes.JobDetail | No | ||||
| data.application_email | string | No | ||||
| data.application_url | string | No | ||||
| data.closing_date | string | No | ||||
| data.contract_terms | array | No | ||||
| data.contract_types | array | No | ||||
| data.description_excerpt | string | No | ||||
| data.employer | string | No | ||||
| data.employer_header_url | string | No | ||||
| data.employer_logo_url | string | No | ||||
| data.employer_url | string | No | ||||
| data.employer_website | string | No | ||||
| data.id | string | No | ||||
| data.location | string | No | ||||
| data.posted_date | string | No | ||||
| data.quick_apply | boolean | No | ||||
| data.salary | string | No | ||||
| data.title | string | No | ||||
| data.url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/tes/jobs/detail?id=2340998" \
-H "x-api-key: $CRAWLORA_API_KEY"