# Monster Job Details Batch Lookup

> Monster Job Details Batch Lookup is a paid API for AI agents from agents.openwebninja.com, paid per call via MPP, price unknown, status unknown (last checked 2026-10-14).

Fetches full detail objects for up to 20 Monster job postings in a single concurrent call, accepting multiple id formats.

## Facts

- Endpoint: GET https://agents.openwebninja.com/realtime-monster-data/job-details?utm_source=zero.xyz
- Price: price unknown
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Provider: agents.openwebninja.com
- Website: https://agents.openwebninja.com
- Canonical page: https://www.zero.xyz/c/agents-openwebninja-com-monster-job-details-batch-lookup-700911ab
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_qHiTteEspGJ2Ois6uSKf8

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agents-openwebninja-com-monster-job-details-batch-lookup-700911ab
```

Example prompt: Can you pull the full details — salary, description, apply link, and employer info — for these Monster job posting ids: bW9uc3RlcjplNzc2MTJmNS1iYjNiLTQ2NWUtYTk2NS00MzlhZjk0MDk0YmQ and e77612f5-bb3b-465e-a965-439af94094bd?

## When to prefer this

Use this endpoint when you have one or more Monster job ids (from a prior search, stored cache, or a monster.com URL) and need complete posting details including description, salary, apply link, employer info, and location. It is more efficient than re-running a search because it resolves up to 20 ids in one concurrent call. Prefer it over the search endpoint when you already know the job ids and just need to refresh or re-resolve the full detail object.

## Known failure modes

- Unknown or expired job id — omitted from response array silently, still billed
- All ids unknown — HTTP 200 with empty data array
- More than 20 ids submitted — likely 400 error
- Invalid field name in fields projection — 400 error
- Missing required job_id parameter — 400 error
- Monster service unavailable — upstream error propagated

## How this service works

Full detail for up to 20 Monster job postings in one call, fetched concurrently and
bounded to 10 in flight.

**This is a lookup.** A Monster search row already IS the detail object: description,
salary, coordinates and apply URL are all present on `/search`, and the detail endpoint
returns the same object. Use it to re-resolve ids you stored earlier.

Three id shapes are accepted: the `job_id` this API mints, Monster's own `job_uid`, and a
full `job_seo_id` or a monster.com job URL containing one. Monster resolves the last two
itself and returns a byte-identical posting either way.

An id Monster does not know, or a posting it has taken down, is omitted from the array
while the rest of the batch resolves normally, and a request made entirely of foreign ids
is a 200 with an empty array.

**Billing:** `Requests` counts one per requested id, including ids that turn out to be
unknown, so the cost of a call is predictable before you make it.


## Output

An array of full Monster job posting objects (up to 20), each containing job title, employer name and description, employer logo, employer website, employer reviews, salary range and period, job description, employment type, apply link, location (city, state, country, latitude, longitude), remote flag, posting date, expiry date, benefits, skills, industry, occupational category, highlights, and SEO/canonical URLs. Unknown or taken-down ids are silently omitted; a batch of all-unknown ids returns an empty array with HTTP 200.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "job_id"
 ],
 "properties": {
  "fields": {
   "type": "string",
   "description": "Comma-separated projection over the job object, for example\n`job_title,employer_name,job_apply_link`. `job_id` and `job_title` are always\nincluded. An unknown field name is a 400.\n"
  },
  "job_id": {
   "type": "string",
   "example": "bW9uc3RlcjplNzc2MTJmNS1iYjNiLTQ2NWUtYTk2NS00MzlhZjk0MDk0YmQ",
   "description": "Comma-separated job ids from a `/search` response, up to 20 per request. Monster's own\n`job_uid`, a full `job_seo_id`, and a monster.com job URL are accepted too. Duplicates\nare collapsed before the cap applies.\n"
  },
  "country": {
   "type": "string",
   "default": "us",
   "description": "2-letter country code. Selects the Monster locale the detail lookup runs on, and is\nthe fallback for `job_country` when the posting itself names no country.\n\n**Default:** `us`\n"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "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_seo_id",
     "job_canonical_url",
     "job_apply_type",
     "job_skills",
     "job_industry",
     "job_occupational_category",
     "job_location_type",
     "job_status",
     "job_valid_through",
     "job_provider",
     "employer_description",
     "employer_founding_date",
     "employer_size",
     "employer_address",
     "job_posted_at_date",
     "job_salary_currency",
     "job_publisher_recency_label",
     "job_position"
    ],
    "properties": {
     "job_id": {
      "type": "string",
      "example": "bW9uc3RlcjplNzc2MTJmNS1iYjNiLTQ2NWUtYTk2NS00MzlhZjk0MDk0YmQ",
      "description": "Opaque public id for the posting, `base64url(\"monster:\" + <Monster job uuid>)`. Pass it back to `/job-details`. Stable for the life of the posting."
     },
     "job_uid": {
      "type": "string",
      "example": "e77612f5-bb3b-465e-a965-439af94094bd",
      "description": "Monster's own job id, a permanent UUIDv4. Accepted directly by `/job-details` and the right key for a downstream cache."
     },
     "job_city": {
      "type": "string",
      "example": "DFW Airport",
      "nullable": true,
      "description": "City. `null` on a country-level or region-only posting."
     },
     "job_state": {
      "type": "string",
      "example": "Texas",
      "nullable": true,
      "description": "The full state or province NAME, matching JSearch. The code appears inside `job_location`."
     },
     "job_title": {
      "type": "string",
      "example": 
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-openwebninja-com-monster-job-details-batch-lookup-700911ab/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.openwebninja.com](https://www.zero.xyz/host/agents.openwebninja.com/llms.txt)
