{
  "openapi": "3.0.1",
  "info": {
    "title": "Naukri Jobs Scraper — India + Gulf, drop-in compatible",
    "description": "Drop-in for valig/naukri-jobs-scraper and muhammetakkurtt/naukri-job-scraper — both input and output vocabularies in one actor. Public job listings from Naukri.com (India) and NaukriGulf.com: title, company, location, salary, experience, skills, apply link, UTC posted-at.",
    "version": "1.0",
    "x-build-id": "GkNLqmMmdC2tU2Krx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/diopside~naukri-jobs/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-diopside-naukri-jobs",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/diopside~naukri-jobs/runs": {
      "post": {
        "operationId": "runs-sync-diopside-naukri-jobs",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/diopside~naukri-jobs/run-sync": {
      "post": {
        "operationId": "run-sync-diopside-naukri-jobs",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "jobBoard": {
            "title": "Job board",
            "enum": [
              "naukri",
              "naukrigulf"
            ],
            "type": "string",
            "description": "Which site to scrape. 'Naukri.com' targets India; 'NaukriGulf.com' targets the Gulf/MENA region (UAE, Saudi Arabia, Qatar, ...). A start URL or job URL picks its own board, so one run can mix the two.",
            "default": "naukri"
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Skills, designation or company to search for. Alias: `keywords`."
          },
          "keywords": {
            "title": "Keyword (alias)",
            "type": "string",
            "description": "Same as `keyword` — accepted so input written for valig/naukri-jobs-scraper works unchanged."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City or region. On Naukri.com any Indian city ('Bangalore', 'Pune'); on NaukriGulf any Gulf/MENA city or country ('Dubai', 'Saudi Arabia')."
          },
          "searchUrl": {
            "title": "Search URL",
            "type": "string",
            "description": "Paste a naukri.com or naukrigulf.com search-results URL to use instead of the typed filters. Its query string is carried through to the API, so any filter the site supports works here even if it has no field below."
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Several search URLs and/or individual job URLs in one run.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "jobIds": {
            "title": "Job IDs or job URLs",
            "type": "array",
            "description": "Fetch specific postings directly by their 12-digit job id or full job URL (naukri.com or naukrigulf.com — the id is extracted). Skips search entirely.",
            "items": {
              "type": "string"
            }
          },
          "maxJobs": {
            "title": "Maximum jobs",
            "minimum": 0,
            "type": "integer",
            "description": "How many job records to return in total. 0 means every result. Alias: `limit`.",
            "default": 100
          },
          "limit": {
            "title": "Maximum jobs (alias)",
            "minimum": 0,
            "type": "integer",
            "description": "Same as `maxJobs` — accepted so input written for valig/naukri-jobs-scraper works unchanged."
          },
          "fetchDetails": {
            "title": "Fetch job details",
            "type": "boolean",
            "description": "Also open each posting's job page for the full description, role, industry, department, education, view/apply counts and company address. Defaults to off for Naukri.com and on for NaukriGulf, whose search results carry no description at all."
          },
          "outputFormat": {
            "title": "Output format",
            "enum": [
              "normalized",
              "raw"
            ],
            "type": "string",
            "description": "'Normalized' carries both incumbents' field names side by side plus the derived fields. 'Raw' emits the API record exactly as muhammetakkurtt/naukri-job-scraper does, for buyers switching from it who parse those keys.",
            "default": "normalized"
          },
          "verifyFilters": {
            "title": "Verify filters were applied",
            "type": "boolean",
            "description": "Check the returned postings against the filters asked for, and fail the search rather than push results if the API ignored one. Both Naukri APIs answer 200 with an unfiltered feed when a parameter is not the one they expect.",
            "default": true
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Relevance or newest first. Aliases: `sort` with valig's 'r'/'f' values.",
            "default": "relevance"
          },
          "sort": {
            "title": "Sort by (alias)",
            "type": "string",
            "description": "valig spelling: 'r' = relevance, 'f' = date."
          },
          "experience": {
            "title": "Years of experience",
            "enum": [
              "all",
              "0",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "11",
              "12",
              "13",
              "14",
              "15",
              "16",
              "17",
              "18",
              "19",
              "20",
              "21",
              "22",
              "23",
              "24",
              "25",
              "26",
              "27",
              "28",
              "29",
              "30"
            ],
            "type": "string",
            "description": "Required years of experience, e.g. '5'. 'all' or empty means no filter. An integer is accepted too.",
            "default": "all"
          },
          "freshness": {
            "title": "Freshness",
            "enum": [
              "all",
              "30",
              "15",
              "7",
              "3",
              "1"
            ],
            "type": "string",
            "description": "Only postings newer than this many days. Alias: `jobAge`.",
            "default": "all"
          },
          "jobAge": {
            "title": "Freshness (alias)",
            "type": "string",
            "description": "Same as `freshness` — valig spelling."
          },
          "workMode": {
            "title": "Work mode",
            "type": "array",
            "description": "Naukri.com only. Aliases: `wfhType` with valig's '0'/'2'/'3' codes.",
            "items": {
              "type": "string",
              "enum": [
                "office",
                "remote",
                "hybrid"
              ],
              "enumTitles": [
                "Work from office",
                "Remote",
                "Hybrid"
              ]
            }
          },
          "wfhType": {
            "title": "Work mode (alias)",
            "type": "array",
            "description": "valig spelling: '0' office, '2' remote, '3' hybrid.",
            "items": {
              "type": "string"
            }
          },
          "postedBy": {
            "title": "Posted by",
            "type": "array",
            "description": "'1' company jobs, '2' consultant jobs. Naukri.com only. Alias: `jobPostType`.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2"
              ],
              "enumTitles": [
                "Company jobs",
                "Consultant jobs"
              ]
            }
          },
          "jobPostType": {
            "title": "Posted by (alias)",
            "type": "array",
            "description": "Same as `postedBy` — valig spelling.",
            "items": {
              "type": "string"
            }
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Naukri.com city gids (`cityTypeGid`), e.g. '97' Pune, '139' Chennai, '183' Bengaluru. Every record carries the gid of its own locations, so a first run tells you the ids you want.",
            "items": {
              "type": "string"
            }
          },
          "department": {
            "title": "Departments",
            "type": "array",
            "description": "Naukri.com department gids (`functionAreaIdGid`).",
            "items": {
              "type": "string"
            }
          },
          "industry": {
            "title": "Industries",
            "type": "array",
            "description": "Naukri.com industry gids (`industryTypeIdGid`).",
            "items": {
              "type": "string"
            }
          },
          "roleCategory": {
            "title": "Role categories",
            "type": "array",
            "description": "Naukri.com role-category gids (`glbl_qcrc`); every record carries its own in `roleCategoryGid`.",
            "items": {
              "type": "string"
            }
          },
          "role": {
            "title": "Roles",
            "type": "array",
            "description": "Naukri.com role gids (`roleTypeFilterGid`) — a granular child of role category.",
            "items": {
              "type": "string"
            }
          },
          "companyType": {
            "title": "Company types",
            "type": "array",
            "description": "Naukri.com company-size gids (`qbusinessSize`). On NaukriGulf this maps to the employer cluster instead.",
            "items": {
              "type": "string"
            }
          },
          "salaryRange": {
            "title": "Salary ranges",
            "type": "array",
            "description": "Naukri.com salary bands (`ctcFilter`), e.g. '3to6', '6to10', '10to15'.",
            "items": {
              "type": "string"
            }
          },
          "topCompanies": {
            "title": "Top companies",
            "type": "array",
            "description": "Naukri.com top-company group ids (`qctopGroupId`).",
            "items": {
              "type": "string"
            }
          },
          "employmentType": {
            "title": "Employment types",
            "type": "array",
            "description": "Naukri.com employment types (`qcemploymentType`).",
            "items": {
              "type": "string"
            }
          },
          "ugCourse": {
            "title": "UG courses",
            "type": "array",
            "description": "Naukri.com undergraduate course gids (`ugTypeGid`).",
            "items": {
              "type": "string"
            }
          },
          "pgCourse": {
            "title": "PG courses",
            "type": "array",
            "description": "Naukri.com postgraduate course gids (`pgTypeGid`).",
            "items": {
              "type": "string"
            }
          },
          "walkin": {
            "title": "Walk-in jobs only",
            "type": "boolean",
            "description": "Naukri.com only.",
            "default": false
          },
          "walkinDate": {
            "title": "Walk-in window",
            "enum": [
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "'1' this week, '2' next week, '3' this month. Applies only with walk-in jobs."
          },
          "country": {
            "title": "Countries (Gulf)",
            "type": "array",
            "description": "NaukriGulf country cluster ids (`ClusterCountry`), e.g. '17' UAE, '14' Saudi Arabia, '13' Qatar.",
            "items": {
              "type": "string"
            }
          },
          "gulfCity": {
            "title": "Cities (Gulf)",
            "type": "array",
            "description": "NaukriGulf city cluster ids (`ClusterCity`).",
            "items": {
              "type": "string"
            }
          },
          "gulfIndustry": {
            "title": "Industries (Gulf)",
            "type": "array",
            "description": "NaukriGulf industry cluster ids.",
            "items": {
              "type": "string"
            }
          },
          "gulfFunctionalArea": {
            "title": "Functional areas (Gulf)",
            "type": "array",
            "description": "NaukriGulf functional-area cluster ids.",
            "items": {
              "type": "string"
            }
          },
          "gulfSalaryRange": {
            "title": "Monthly salary bands (Gulf)",
            "type": "array",
            "description": "NaukriGulf monthly salary cluster ids (`ClusterCTC`).",
            "items": {
              "type": "string"
            }
          },
          "nationality": {
            "title": "Nationality groups (Gulf)",
            "type": "array",
            "description": "NaukriGulf nationality cluster ids. This filters the *posting's stated preference*, which is public data on the ad; it does not identify candidates.",
            "items": {
              "type": "string"
            }
          },
          "gender": {
            "title": "Gender preference (Gulf)",
            "type": "array",
            "description": "NaukriGulf gender cluster on the posting.",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Language (Gulf)",
            "enum": [
              "english",
              "arabic"
            ],
            "type": "string",
            "description": "NaukriGulf content language.",
            "default": "english"
          },
          "urlParam": {
            "title": "Extra API parameters",
            "type": "array",
            "description": "Passed straight through to the search API. Use it for any filter without a field above; repeating a key means 'both of these'.",
            "items": {
              "type": "object",
              "required": [
                "key",
                "value"
              ],
              "properties": {
                "key": {
                  "type": "string",
                  "title": "Key"
                },
                "value": {
                  "type": "string",
                  "title": "Value"
                }
              }
            }
          },
          "resultsPerPage": {
            "title": "Results per page",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Naukri.com page size. The site itself uses 20; larger pages mean fewer requests.",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Off by default: Naukri answers Apify's own egress without one. It is the exit IP that Naukri scores, so if a run starts getting blocked, turn on the Apify proxy or let the residential fallback below handle it.",
            "default": {
              "useApifyProxy": false
            }
          },
          "residentialFallback": {
            "title": "Residential fallback",
            "type": "boolean",
            "description": "If Naukri blocks the configured tier, retry once on RESIDENTIAL in-country (IN for Naukri.com, AE for NaukriGulf) instead of failing. A healthy run never pays residential bandwidth.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many requests to run at once.",
            "default": 8
          },
          "maxRequestsPerMinute": {
            "title": "Max requests per minute",
            "minimum": 10,
            "maximum": 600,
            "type": "integer",
            "description": "Throttle, in requests per minute across the whole run.",
            "default": 240
          },
          "maxRequestRetries": {
            "title": "Max request retries",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many times to retry a request that fails or is blocked, rotating the session between attempts.",
            "default": 3
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}