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.
GET
Path Parameters
idnumberRequiredThe unique numeric identifier of the job.
Example:
40652107What you get back
Same job payload as
GET /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.TypeScript
JobsApiJobDetail and JobDetailResponse are documented on the API types (TypeScript)
Response Schema
Returns one job object (not wrapped in data).
Example response
{
"id": 40652107,
"title": "Senior Full Stack Engineer (AI/Node.js)",
"location": "San Francisco, CA; Remote",
"locations": [1 items],
"description": "<h1>Job Description</h1><p>We are looking for a Senior Full Stack Engineer with experience in React, Node.js, and AI integrations...</p>",
"company": {18 keys},
"published": "2024-05-07T12:00:00.000Z",
"application_url": "https://stripe.com/jobs/listing/123",
"has_remote": true,
"is_active": true,
"expired_at": null,
"language": "en",
"employment_type": "FULL_TIME",
"experience_level": "SE",
"experience_levels": [1 items],
"salary_min": 180000,
"salary_max": 240000,
"salary_currency": "USD",
"salary_text": "$180,000 - $240,000 per year"
}
The Job Object
PrimaryidnumberUnique identifier for the job listing.
titlestringThe official job title.
locationstring | nullNullableA human-readable location string (e.g., 'San Francisco, CA; Remote').
publishedstringISO 8601 timestamp of when the job was published.
descriptionstring | nullNullableFull HTML description of the job.
application_urlstringThe direct URL to apply for the job.
employment_typestring | nullNullableValues: FULL_TIME, CONTRACT, PART_TIME, or INTERN.
experience_levelstring | nullNullablePrimary seniority level: EN (Entry), MI (Mid), SE (Senior), or EX (Executive).
has_remotebooleanIndicates if the job is explicitly marked as remote.
is_activebooleanIndicates if the job listing is currently active.
expired_atstring | nullNullableISO 8601 timestamp of when the job listing expired (if applicable).
languagestring | nullNullableThe primary language of the job listing (e.g., 'en', 'de').
salary_minnumber | nullNullableMinimum annual or hourly salary (if available).
salary_maxnumber | nullNullableMaximum annual or hourly salary (if available).
salary_currencystring | nullNullableISO currency code (e.g., USD, EUR).
salary_textstring | nullNullableHuman-readable salary string (e.g., '$120k - $150k').
experience_levelsarrayAn array of all detected experience levels for this job.
The 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.namestringLegal name of the company.
company.logostring | nullNullableURL to the company's logo image.
company.website_urlstring | nullNullablePrimary website URL.
company.descriptionstring | nullNullableA brief overview of the company.
company.industrystring | nullNullableThe primary sector (e.g., 'Fintech', 'SaaS').
company.employee_countstring | nullNullableEstimated size range (e.g., '11-50', '5001-10000').
company.linkedin_urlstring | nullNullableDirect link to the company's LinkedIn profile.
company.twitter_urlstring | nullNullableDirect link to the company's Twitter/X profile.
company.github_urlstring | nullNullableDirect link to the company's GitHub organization.
company.facebook_urlstring | nullNullableDirect link to the company's Facebook page.
company.instagram_urlstring | nullNullableDirect link to the company's Instagram profile.
company.youtube_urlstring | nullNullableDirect link to the company's YouTube channel.
company.teamarrayAn array of key team members. Each object contains:
name: 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 | nullNullableThe resolution granularity of this location.
city_state_country: Fully resolved.city_country: City and country resolved.city_state: City and state resolved.city,state, orcountry: Single level resolved.
locations[].display_labelstring | nullNullableFormatted name, e.g., 'San Francisco, CA, US'.
locations[].city_namestring | nullNullableThe name of the city.
locations[].city_idnumber | nullNullableThe unique ID for the city (if available).
locations[].state_namestring | nullNullableThe name of the state or province.
locations[].state_idnumber | nullNullableThe unique ID for the state (if available).
locations[].state_codestring | nullNullableShort code for the state (e.g., 'CA').
locations[].country_namestring | nullNullableThe name of the country.
locations[].country_idnumber | nullNullableThe unique ID for the country (if available).
locations[].country_codestring | nullNullableISO 3166-1 alpha-2 country code.
locations[].timezonestring | nullNullableThe IANA timezone ID (e.g., 'America/Los_Angeles').
locations[].is_remotebooleanIndicates if this specific location entry represents a remote setting.
locations[].is_primarybooleanTrue if this is the primary location for the job.
Example Request
cURL
curl -X GET "https://api.cleanjobdata.com/jobs/40652107" \
-H "Authorization: Bearer YOUR_API_KEY"