Indeed API endpoint
Returns one Indeed job posting by its job key (the `job_key` field returned by search).
/indeed/jobQuery parameters:
jk (required): Indeed job key, a 16-character hexadecimal string, e.g. a055dc6ab3a91a3b.Notable response behavior:
404.remote / employment_type / benefits / direct_apply are only populated on some responses and are omitted otherwise. description_text, description_html, salary_text, salary_currency, and company_url are populated on every response.url is always the canonical https://www.indeed.com/viewjob?jk=... link, not an upstream apply-through redirect.| Field | In the sample | Value in the sample |
|---|---|---|
| job_key | Has a value | |
| title | Has a value | “Sr. Backend Engineer” |
| company | Has a value | “dv01” |
| company_url | Has a value | indeed.com |
| location | Has a value | “New York, NY 10003” |
| city | Has a value | “New York” |
| state | Has a value | “NY” |
| postal_code | Has a value | |
| country | Has a value | “US” |
| salary_currency | Has a value | “USD” |
| salary_text | Has a value | “$140,000 - $160,000 a year” |
| posted_at | Has a value | 2026-06-29 |
| description_html | Has a value | 6,494 characters |
| description_text | Has a value | 5,969 characters |
| url | Has a value | indeed.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| jk | string | Yes | Indeed job key (16-character hex) | a055dc6ab3a91a3b | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/indeed/job?jk=a055dc6ab3a91a3b" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"job_key": "5e52165ce276aa5a",
"title": "Staff HPC Applications Engineer",
"company": "NextSilicon",
"company_url": "https://www.indeed.com/cmp/Nextsilicon",
"location": "Austin, TX",
"city": "Austin",
"state": "TX",
"country": "US",
"posted_at": "2026-08-03T05:00:00Z",
"description_text": "NextSilicon is reimagining high-performance computing...",
"url": "https://www.indeed.com/viewjob?jk=5e52165ce276aa5a"
}
}Request schema
No body schema
Response schema
#/definitions/indeed.jobResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | indeed.Job | No | ||||
| data.benefits | array | No | ||||
| data.city | string | No | New York | |||
| data.company | string | No | dv01 | |||
| data.company_rating | number | No | 3.5 | |||
| data.company_review_count | integer | No | 20 | |||
| data.company_url | string | No | https://www.indeed.com/cmp/Dv01 | |||
| data.country | string | No | US | |||
| data.description_html | string | No | ||||
| data.description_text | string | No | ||||
| data.direct_apply | boolean | No | true | |||
| data.employment_type | array | No | ||||
| data.job_key | string | No | a055dc6ab3a91a3b | |||
| data.location | string | No | New York, NY 10003 | |||
| data.postal_code | string | No | 10003 | |||
| data.posted_at | string | No | 2026-06-29T16:52:09Z | |||
| data.remote | boolean | No | false | |||
| data.salary_currency | string | No | USD | |||
| data.salary_max | number | No | 160000 | |||
| data.salary_min | number | No | 140000 | |||
| data.salary_period | string | No | yearly | |||
| data.salary_text | string | No | $140,000 - $160,000 a year | |||
| data.state | string | No | NY | |||
| data.title | string | No | Senior Backend Engineer | |||
| data.url | string | No | https://www.indeed.com/viewjob?jk=a055dc6ab3a91a3b | |||
| data.valid_through | string | No | 2026-11-10T07:28:05Z | |||
| 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/indeed/job?jk=a055dc6ab3a91a3b" \
-H "x-api-key: $CRAWLORA_API_KEY"