Get Job Detail
Retrieve one job by its numeric ID. You get the same job fields as in list responses, always including the full description. This endpoint does not support the fields / extra_fields query parameters—use list jobs if you need to trim the payload.
The list endpoint returns full job descriptions too. Add extra_fields=description to GET /jobs and every job in the response carries its description, so there is no need to fetch each one separately.
One list request returns a whole page of full jobs (up to your plan's page size) and counts as a single request against your quota. Fetching the same jobs one by one would cost a request each. Use this detail endpoint when you already have a specific job ID and want just that job.
Path Parameters
idnumberRequired40652107GET /jobs, with the full HTML/text description included. company and each item in locations only include keys we have for that employer and place—many listings are slimmer than the example below.application_url is left out of every job response — use GET /jobs/:id/apply to unlock it for a specific job. Every other plan gets it directly, as shown below.JobsApiJobDetail and JobDetailResponse are documented on the API types (TypeScript)
Response Schema
Returns one job object (not wrapped in data).
The Job Object
Primaryidnumbertitlestringlocationstring | nullNullablelocationsarray | nullNullablepublishedstringdescriptionstring | nullNullableapplication_urlstringemployment_typestring | nullNullableexperience_levelstring | nullNullablehas_remotebooleanremote_typestring | nullNullableis_activebooleanexpired_atstring | nullNullablelanguagestring | nullNullablesalary_minnumber | nullNullablesalary_maxnumber | nullNullablesalary_currencystring | nullNullablesalary_textstring | nullNullableexperience_levelsarraycompanyobject | nullNullableemployer_idstringThe Company Object
NestedVerified metadata about the hiring organization, stored on the job object. Not every key is present for every listing—treat optional fields as nullable/missing.
company.namestringcompany.logostring | nullNullablecompany.website_urlstring | nullNullablecompany.descriptionstring | nullNullablecompany.industrystring | nullNullablecompany.employee_countstring | nullNullablecompany.linkedin_urlstring | nullNullablecompany.twitter_urlstring | nullNullablecompany.github_urlstring | nullNullablecompany.facebook_urlstring | nullNullablecompany.instagram_urlstring | nullNullablecompany.youtube_urlstring | nullNullablecompany.teamarrayname: Full name of the team member.title: Job title or role (nullable).linkedin_url: Link to their professional profile (nullable).photo_url: URL to their profile photo (nullable).
The Location Object
Array ItemEach item in the locations[] array is a fully resolved geographic entity.
locations[].kindstring | nullNullablecity_state_country: Fully resolved.city_country: City and country resolved.state_country: State and country resolved, no specific city named.city,state, orcountry: Single level resolved.
locations[].display_labelstring | nullNullablelocations[].city_namestring | nullNullablelocations[].city_idnumber | nullNullablelocations[].state_namestring | nullNullablelocations[].state_idnumber | nullNullablelocations[].state_codestring | nullNullablelocations[].country_namestring | nullNullablelocations[].country_idnumber | nullNullablelocations[].country_codestring | nullNullablelocations[].timezonestring | nullNullablelocations[].is_remotebooleanlocations[].is_primarybooleanExample Request
curl -X GET "https://api.cleanjobdata.com/jobs/40652107" \
-H "Authorization: Bearer YOUR_API_KEY"