{"uid":"cap_xN74n3KA-YjcuVg_1WPSE","slug":"agents-openwebninja-com-indeed-job-details-batch-907f1582","name":"Indeed Job Details (Batch)","description":"Fetch full details for up to 20 jobs in a single request. Indeed resolves the whole\nbatch in one upstream call (measured: 5 jobs in 761 ms), so a multi-id request costs\nthe same as a single-id one.\n\nThe job objects returned here carry the same fields as `/search` results, with\n`job_position` null because the details surface has no notion of rank.\n","url":"https://agents.openwebninja.com/realtime-indeed-data/job-details?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"type":"object","required":["job_id"],"properties":{"fields":{"type":"string","description":"Comma-delimited projection, as on `/search`."},"job_id":{"type":"string","description":"Comma-delimited list of up to 20 `job_id` values taken from a `/search` response.\nThe raw 16-hex `job_uid` is also accepted. An invalid/expired job id is omitted\nfrom the response array while the rest of the batch resolves normally.\n"},"country":{"type":"string","default":"us","description":"ISO 3166-1 alpha-2 market code."},"language":{"type":"string","description":"ISO 639-1 language. Defaults to the primary language of `country`."}}},"responseSchema":{"type":"object","required":["status","request_id","parameters","data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["job_id","job_title","employer_name","employer_logo","employer_website","job_publisher","job_employment_type","job_employment_types","job_apply_link","job_apply_is_direct","apply_options","job_description","job_is_remote","job_posted_at","job_posted_at_timestamp","job_posted_at_datetime_utc","job_location","job_city","job_state","job_country","job_latitude","job_longitude","job_benefits","job_benefits_strings","job_google_link","job_salary","job_salary_string","job_min_salary","job_max_salary","job_salary_period","job_highlights","job_onet_soc","job_onet_job_zone","employer_reviews","job_uid","job_indeed_ref_num","job_indeed_normalized_title","job_indeed_source_employer_name","job_indeed_employer_key","job_indeed_company_page_url","job_indeed_employer_header_image","job_indeed_employer_industry","job_indeed_occupations","job_indeed_attributes","job_indeed_experience_levels","job_indeed_is_hybrid","job_indeed_is_urgent_hire","job_indeed_is_high_volume_hiring","job_indeed_expired","job_indeed_language","job_indeed_postal_code","job_indeed_street_address","job_published_at_timestamp","job_published_at_datetime_utc","job_description_html","job_position"],"properties":{"job_id":{"type":"string","example":"aW5kZWVkOjNkNjM4ZGI0MjBiZmM4MmY","nullable":true,"description":"Stable, opaque job identifier: base64url(\"indeed:\" + the Indeed job key). Pass this to /job-details. Always present."},"job_uid":{"type":"string","example":"3d638db420bfc82f","nullable":true,"description":"The raw 16-hex Indeed job key that job_id encodes. Stable and valid indefinitely."},"job_city":{"type":"string","example":"New York","nullable":true,"description":"City. 100% coverage."},"job_state":{"type":"string","example":"NY","nullable":true,"description":"State / province / admin-1 code, e.g. \"NY\". 100% coverage."},"job_title":{"type":"string","example":"Full Stack Engineer (Laravel)","nullable":true,"description":"Job title as posted by the employer."},"job_salary":{"type":"number","example":187500,"nullable":true,"description":"Single headline salary figure: the midpoint of the stated range, or the single stated bound. Null when the employer stated no salary."},"job_country":{"type":"string","example":"US","nullable":true,"description":"ISO 3166-1 alpha-2 country code. Resolved from Indeed's country name, which is localised per market (\"Deutschland\" for de-DE), and falls back to the requested `country` when unrecognised. Always a 2-letter code."},"job_benefits":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Always null. The normalized JSearch benefit enum has no Indeed equivalent; the raw benefit labels are in job_benefits_strings."},"job_latitude":{"type":"number","example":40.71427,"nullable":true,"description":"Latitude. 100% coverage on measured jobs."},"job_location":{"type":"string","example":"New York, NY","nullable":true,"description":"Full formatted location, e.g. \"New York, NY 10003\"."},"job_onet_soc":{"type":"string","nullable":true,"description":"Always null. Indeed's occupations[] are its own SUID taxonomy, not O*NET SOC codes; they are exposed verbatim as job_indeed_occupations."},"job_position":{"type":"integer","example":1,"nullable":true,"description":"Absolute 1-based rank of the job within the full result set for this query. Null on /job-details, which has no notion of rank."},"apply_options":{"type":"array","items":{"type":"object","required":["publisher","apply_link","is_direct"],"properties":{"is_direct":{"type":"boolean","description":"True when the link goes to the employer/ATS rather than another job board."},"publisher":{"type":"string","example":"Workday","description":"Who serves the application - the employer/ATS host, mapped to a friendly name where known."},"apply_link":{"type":"string","description":"The application URL."}},"description":"A single route to apply for the job."},"nullable":true,"description":"Application routes. Indeed exposes exactly one source per posting, so this array holds 0 or 1 entries."},"employer_logo":{"type":"string","nullable":true,"description":"Square employer logo. From Indeed's employer dossier (69% of 600 measured jobs); where Indeed has none, a Google faviconV2 URL derived from the employer website or apply domain is substituted. Null only when neither is available."},"employer_name":{"type":"string","example":"PactFi","nullable":true,"description":"Employer name. Falls back to Indeed's `sourceEmployerName` when the employer record is absent. Populated on 100% of measured jobs."},"job_is_remote":{"type":"boolean","example":false,"description":"True when the posting carries Indeed's \"Remote\" attribute. Hybrid roles are false here and true on job_indeed_is_hybrid."},"job_longitude":{"type":"number","example":-74.00597,"nullable":true,"description":"Longitude. 100% coverage on measured jobs."},"job_posted_at":{"type":"string","example":"10 days ago","nullable":true,"description":"Relative posting age in the JSearch vocabulary: \"today\", \"N days ago\" up to 30, then \"N month(s) ago\". Derived from job_posted_at_timestamp."},"job_publisher":{"type":"string","example":"Ashby","nullable":true,"description":"Who is serving the application: the employer/ATS host derived from the apply URL, mapped to a friendly name for known ATSs (Workday, Greenhouse, Lever, iCIMS, ...)."},"job_apply_link":{"type":"string","example":"https://jobs.ashbyhq.com/pactfi/c4058bd0-55f3-49fd-a3de-994b4d2bb39e?utm_source=Zw9jOe6Ka6","nullable":true,"description":"Direct application URL. On Indeed this is the employer's own careers page or ATS, not an Indeed redirect - populated on 600/600 measured jobs."},"job_highlights":{"type":"object","nullable":true,"description":"Always an empty object. Indeed ships one flat description with no qualifications/responsibilities/benefits split, so there is nothing to structure. Present for shape parity with the Google-backed surface.","additionalProperties":true},"job_max_salary":{"type":"number","example":200000,"nullable":true,"description":"Upper salary bound in the units of job_salary_period. Null when unstated or when only a lower bound was given."},"job_min_salary":{"type":"number","example":175000,"nullable":true,"description":"Lower salary bound in the units of job_salary_period. Null when unstated or when only an upper bound was given."},"job_description":{"type":"string","nullable":true,"description":"Full plain-text job description, returned in the SEARCH response. See job_description_html for the markup."},"job_google_link":{"type":"string","nullable":true,"description":"Always null. Google-for-Jobs specific and not applicable to an Indeed-sourced posting."},"employer_reviews":{"type":"array","items":{"type":"object"},"nullable":true,"description":"Always null here. Indeed publishes its company rating and review count on the /cmp company surface. GET /company-reviews returns them with the full review list, the category ratings and the 1-5 star distribution, at one request per 20 reviews. Pass job_indeed_company_page_url from any job here as the company parameter."},"employer_website":{"type":"string","example":"https://www.americanexpress.com","nullable":true,"description":"Employer's corporate website (72% of 600 measured jobs)."},"job_onet_job_zone":{"type":"string","nullable":true,"description":"Always null. See job_onet_soc."},"job_salary_period":{"enum":["YEAR","MONTH","WEEK","DAY","HOUR",null],"type":"string","example":"YEAR","nullable":true,"description":"Unit the salary bounds are expressed in: YEAR, MONTH, WEEK, DAY or HOUR. Salary values keep the unit the employer stated."},"job_salary_string":{"type":"string","example":"$175,000 - $200,000 a year","nullable":true,"description":"Salary exactly as Indeed renders it, e.g. \"$152,000 - $221,000 a year\" (60% of measured jobs)."},"job_indeed_expired":{"type":"boolean","example":false,"description":"True when Indeed has marked the posting expired."},"job_indeed_ref_num":{"type":"string","example":"c4058bd0-55f3-49fd-a3de-994b4d2bb39e","nullable":true,"description":"The employer's own requisition id, e.g. \"JR2025219\". 100% coverage."},"job_apply_is_direct":{"type":"boolean","example":true,"description":"True when job_apply_link points at the employer/ATS rather than at another job board."},"job_employment_type":{"enum":["FULLTIME","CONTRACTOR","PARTTIME","INTERN",null],"type":"string","example":"FULLTIME","nullable":true,"description":"Primary employment type. One of FULLTIME, CONTRACTOR, PARTTIME, INTERN. Null when Indeed tagged none of them."},"job_indeed_language":{"type":"string","example":"en","nullable":true,"description":"ISO 639-1 language of the posting as detected by Indeed."},"job_benefits_strings":{"type":"array","items":{"type":"string"},"example":["Health insurance","401(k)"],"nullable":true,"description":"Benefit labels as Indeed states them, e.g. \"401(k)\", \"Health insurance\", \"Paid time off\". Null when the posting lists none."},"job_description_html":{"type":"string","nullable":true,"description":"The job description with Indeed's original HTML markup preserved."},"job_employment_types":{"type":"array","items":{"type":"string"},"example":["FULLTIME"],"nullable":true,"description":"All employment types tagged on the posting, in the enum order FULLTIME, CONTRACTOR, PARTTIME, INTERN. Empty array when Indeed tagged none. Indeed also uses Temporary and Seasonal tags, which have no JSearch enum member and are exposed only in job_indeed_attributes rather than being folded into CONTRACTOR."},"job_indeed_is_hybrid":{"type":"boolean","example":true,"description":"True when the posting carries Indeed's \"Hybrid work\" attribute."},"job_indeed_attributes":{"type":"array","items":{"type":"object","required":["key","label"],"properties":{"key":{"type":"string","example":"CF3CP","description":"Indeed's stable SUID for the term."},"label":{"type":"string","example":"Full-time","description":"Human-readable label, localised to the requested language."}},"description":"An Indeed taxonomy entry - a stable SUID plus its human label in the requested language."},"nullable":true,"description":"Every attribute Indeed tagged on the posting - 27 to 66 per job, mixing skills, employment type, seniority, benefits and work arrangement. The SUIDs here are the same tokens the employment_types / experience_level / work_from_home filters use upstream."},"job_indeed_occupations":{"type":"array","items":{"type":"object","required":["key","label"],"properties":{"key":{"type":"string","example":"CF3CP","description":"Indeed's stable SUID for the term."},"label":{"type":"string","example":"Full-time","description":"Human-readable label, localised to the requested language."}},"description":"An Indeed taxonomy entry - a stable SUID plus its human label in the requested language."},"nullable":true,"description":"Indeed's occupation taxonomy for the posting."},"job_indeed_postal_code":{"type":"string","example":"10040","nullable":true,"description":"Postal code (51% coverage)."},"job_indeed_employer_key":{"type":"string","example":"fda3f19471b1c223","nullable":true,"description":"Indeed's stable company identifier (96% coverage). Also the encodedFccId used by the /cmp company pages."},"job_posted_at_timestamp":{"type":"integer","example":1788222664,"nullable":true,"description":"Unix timestamp (seconds) of when the posting appeared on Indeed. 100% coverage."},"job_indeed_is_urgent_hire":{"type":"boolean","example":false,"description":"True when Indeed flags the posting as urgently hiring."},"job_indeed_street_address":{"type":"string","example":"World Financial Center","nullable":true,"description":"Street address (41% coverage)."},"job_posted_at_datetime_utc":{"type":"string","format":"date-time","example":"2026-09-01T00:31:04.000Z","nullable":true,"description":"ISO 8601 UTC form of job_posted_at_timestamp."},"job_published_at_timestamp":{"type":"integer","example":1788152400,"nullable":true,"description":"Unix timestamp (seconds) of the employer's own publish date. Distinct from job_posted_at_timestamp, which is when the posting reached Indeed."},"job_indeed_company_page_url":{"type":"string","example":"https://www.indeed.com/cmp/Haq-Bpo-Solutions","nullable":true,"description":"Absolute URL of the employer's Indeed company page, e.g. \"https://www.indeed.com/cmp/Capgemini\"."},"job_indeed_normalized_title":{"type":"string","example":"full stack developer","nullable":true,"description":"Indeed's normalized job title, e.g. \"devops engineer\"."},"job_indeed_employer_industry":{"type":"string","nullable":true,"description":"Industry from the Indeed company dossier (13% coverage)."},"job_indeed_experience_levels":{"type":"array","items":{"type":"string"},"example":["MID_LEVEL"],"nullable":true,"description":"Seniority tags on the posting: ENTRY_LEVEL, MID_LEVEL, SENIOR_LEVEL and/or NO_EXPERIENCE. Empty array when Indeed tagged none."},"job_published_at_datetime_utc":{"type":"string","format":"date-time","example":"2026-08-31T05:00:00.000Z","nullable":true,"description":"ISO 8601 UTC form of job_published_at_timestamp."},"job_indeed_source_employer_name":{"type":"string","example":"PactFi","nullable":true,"description":"Employer name as it appeared on the source feed, before Indeed matched it to a company record."},"job_indeed_employer_header_image":{"type":"string","example":"https://d2q79iu7y748jz.cloudfront.net/s/_headerimage/1960x400/aae57269f3888005ede005b80239171b","nullable":true,"description":"Employer banner image from the Indeed company dossier (54% coverage)."},"job_indeed_is_high_volume_hiring":{"type":"boolean","example":false,"description":"True when Indeed flags the posting as high-volume hiring."}},"description":"A job posting. A superset of the 35-key JSearch `/search` contract: all 35 keys are\nalways present (null / [] / {} where Indeed cannot fill them), followed by 20+\nIndeed-specific keys.\n"}},"status":{"enum":["OK"],"type":"string"},"parameters":{"type":"object","required":["job_id","country","language"],"properties":{"fields":{"type":"string"},"job_id":{"type":"string"},"country":{"type":"string"},"language":{"type":"string"}}},"request_id":{"type":"string"}}},"example":null,"exampleRequest":null,"tags":[],"displayCostAmount":"unknown","displayCostAsset":"USD","priceDynamic":true,"priceHint":null,"priceStatus":"unprobed","priceSource":"registry","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"unknown","summary":"price unknown","primary":{"kind":"dynamic","protocol":"mpp","network":"tempo","amountUsd":null,"per":"call","confidence":"unknown"},"accepted":[{"kind":"dynamic","protocol":"mpp","network":"tempo","amountUsd":null,"per":"call","confidence":"unknown"}]},"paymentMethods":[{"uid":"pm_omnGeP-03DgWA951kN_-p","protocol":"mpp","methodType":"crypto","chain":"tempo","mode":"charge","costAmount":"unknown","costPer":"request","priority":0,"asset":null,"unit":"request","depositMicros":null,"planRef":null}],"brandName":"agents.openwebninja.com","brandSlug":"agents-openwebninja-com-x402","brandBaseUrl":"https://agents.openwebninja.com","brandDocsUrl":null,"whatItDoes":"Fetches full job details for up to 20 Indeed job IDs in a single batched request, returning rich structured data including salary, benefits, description, and employer info.","exampleAgentPrompt":"Pull the full details — job description, salary range, benefits, and apply link — for these Indeed job IDs: aW5kZWVkOjNkNjM4ZGI0MjBiZmM4MmY and aW5kZWVkOjhhYjEyMzQ1Njc4OWFiY2Q, searching the US market.","exampleUseCases":[{"title":"Enrich search results with full descriptions","prompt":"I just got a list of job IDs from an Indeed search for software engineers in Austin — can you fetch the full details for all 10 of them at once, including salary ranges and whether they're remote?"},{"title":"Compare benefits across multiple job offers","prompt":"I have three job offers from Indeed and their job IDs — can you pull the full details including benefits, employment type, and employer reviews for all three so I can compare them side by side?"},{"title":"Check if a saved job is still active","prompt":"I saved this Indeed job ID a couple weeks ago: aW5kZWVkOjNkNjM4ZGI0MjBiZmM4MmY — can you fetch the current details and let me know if it's expired or still open, and what the apply link is?"}],"resultDescription":"Returns an array of job objects (one per valid job ID), each containing: job title, employer name and logo, job description (plain text and HTML), salary range and period, employment type, remote/hybrid status, location with lat/lon, apply link, benefits, job highlights, posted and published timestamps, employer reviews, Indeed-specific metadata (industry, experience levels, urgency, normalized title), and O*NET occupation codes. Invalid or expired job IDs are silently omitted from the array.","failureModes":["Invalid or expired job_id values are omitted from the response array without raising an error — agent must check array length vs input count","Providing more than 20 job IDs may result in truncation or an error","Missing required job_id parameter returns a 400-level error","Country/language mismatch may return listings in unexpected language or no results","Rate limits or payment issues return 402 or 429 status codes"],"whenToPreferThis":"Use this endpoint after a job search to retrieve full structured details for specific job IDs, especially when you need salary, benefits, HTML description, or apply links that are not returned in search snippets. It is more efficient than making 20 separate requests since the batch is resolved in a single upstream call at the same cost. Prefer this over search when you already have job IDs from a prior search step.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-14T00:36:40.841Z","isFirstParty":false,"canonicalSlug":"agents-openwebninja-com-indeed-job-details-batch-907f1582"}