{
  "openapi": "3.0.1",
  "info": {
    "title": "Pracezarohem.cz Scraper ($2.39/1K): Czech Jobs, Salary & GPS",
    "description": "Scrape Práce za rohem (Pracezarohem.cz) jobs with salary, GPS, region and the portal each ad comes from. Distance search, own-ads filter, monitoring, ARES. Unofficial.",
    "version": "0.0",
    "x-build-id": "VpRWOXFod2fW4bVQi"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tsutseisoftware~pracezarohem-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tsutseisoftware-pracezarohem-scraper",
        "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/tsutseisoftware~pracezarohem-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tsutseisoftware-pracezarohem-scraper",
        "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/tsutseisoftware~pracezarohem-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tsutseisoftware-pracezarohem-scraper",
        "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": {
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "Keywords or professions to search for, e.g. 'skladník', 'řidič', 'python', 'účetní'. Each query is a separate search (combined with Locations, Regions and the website filters). At most 20.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Czech towns, districts or regions, e.g. 'Brno', 'Praha', 'okres Kladno', 'Jihomoravský kraj', or the location part of a website URL ('stredocesky/kladno/kladno'). A town with the name of its district (Kladno, Benešov) means the whole district; write 'obec Kladno' for the town only. One search per location, at most 20.",
            "items": {
              "type": "string"
            }
          },
          "regions": {
            "title": "Regions",
            "type": "array",
            "description": "Regions (kraj) to search, one search each. Can be combined with Locations.",
            "items": {
              "type": "string",
              "enum": [
                "hlavni-mesto-praha",
                "stredocesky",
                "jihocesky",
                "plzensky",
                "karlovarsky",
                "ustecky",
                "liberecky",
                "kralovehradecky",
                "pardubicky",
                "vysocina",
                "jihomoravsky",
                "olomoucky",
                "zlinsky",
                "moravskoslezsky"
              ],
              "enumTitles": [
                "Prague (Hlavní město Praha)",
                "Central Bohemia (Středočeský kraj)",
                "South Bohemia (Jihočeský kraj)",
                "Plzeň (Plzeňský kraj)",
                "Karlovy Vary (Karlovarský kraj)",
                "Ústí nad Labem (Ústecký kraj)",
                "Liberec (Liberecký kraj)",
                "Hradec Králové (Královéhradecký kraj)",
                "Pardubice (Pardubický kraj)",
                "Vysočina (Kraj Vysočina)",
                "South Moravia (Jihomoravský kraj)",
                "Olomouc (Olomoucký kraj)",
                "Zlín (Zlínský kraj)",
                "Moravia-Silesia (Moravskoslezský kraj)"
              ]
            }
          },
          "radiusKm": {
            "title": "Distance from the location (km)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Only jobs at most this far (straight line) from the centre of the place in Locations, e.g. 20 for 'Kladno'. The website's own distance search works only in its app, so the actor reads the whole region of the place (Prague together with Central Bohemia) and measures the distance from each job's GPS position; the result has distanceKm. Jobs across another region's border are not included, and Regions in the same run are not limited by the distance. Slower than a plain location search: a region has 400 to 4 200 jobs (8 to 85 pages)."
          },
          "startUrls": {
            "title": "Pracezarohem.cz URLs",
            "type": "array",
            "description": "Search URLs from Pracezarohem.cz, e.g. https://www.pracezarohem.cz/nabidky/jihomoravsky/brno-mesto/skladnik (set the search on the website and paste the URL), or job URLs https://www.pracezarohem.cz/dl/jd/<id>. Website filters below are added to these URLs too, unless the URL already sets them.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "onlyOwnOffers": {
            "title": "Only Práce za rohem's own ads",
            "type": "boolean",
            "description": "Return only ads placed on Práce za rohem itself (ID PZR-…, sourcePortal 'pracezarohem.cz'), not the ads it shows from Jobs.cz / Prace.cz, Úřad práce (labour office) and Profesia.cz. They are about 2 % of the site, so the actor reads the whole search to find them (listing pages are not charged, only saved jobs).",
            "default": false
          },
          "jobTypes": {
            "title": "Employment type",
            "type": "array",
            "description": "Website filter: full-time, part-time or temporary job (brigáda). Several = any of them.",
            "items": {
              "type": "string",
              "enum": [
                "fullTime",
                "partTime",
                "temporary"
              ],
              "enumTitles": [
                "Full-time (plný úvazek)",
                "Part-time (částečný úvazek)",
                "Temporary job (brigáda)"
              ]
            }
          },
          "education": {
            "title": "Education",
            "enum": [
              "any",
              "elementary",
              "apprenticeship",
              "highSchool",
              "university"
            ],
            "type": "string",
            "description": "Website filter \"Jaké máš vzdělání?\": jobs open to people with this education.",
            "default": "any"
          },
          "minSalary": {
            "title": "Salary from (CZK per month)",
            "minimum": 0,
            "type": "integer",
            "description": "Website filter: jobs that pay at least this much per month. The website decides, also for jobs whose employer does not show the salary; add \"Only jobs with a salary\" to keep only jobs that show one. Use this or \"Salary from (CZK per hour)\", not both."
          },
          "minHourlySalary": {
            "title": "Salary from (CZK per hour)",
            "minimum": 0,
            "type": "integer",
            "description": "Website filter: jobs that pay at least this much per hour (typical for temporary jobs)."
          },
          "onlyWithSalary": {
            "title": "Only jobs with a salary",
            "type": "boolean",
            "description": "Keep only jobs that show a salary (about half of them).",
            "default": false
          },
          "postedWithinDays": {
            "title": "Posted in the last N days",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only jobs published at most this many days ago (postedAt). Empty or 0 = any age. Not applied to job URLs (the job page has no publication date)."
          },
          "employerType": {
            "title": "Employer type",
            "enum": [
              "any",
              "directEmployer",
              "agency"
            ],
            "type": "string",
            "description": "Direct employers only or recruitment agencies only, as the website marks them.",
            "default": "any"
          },
          "titleKeywords": {
            "title": "Title must contain",
            "type": "array",
            "description": "Keep only jobs whose title contains one of these words (case and diacritics ignored).",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Title must not contain",
            "type": "array",
            "description": "Skip jobs whose title contains one of these words.",
            "items": {
              "type": "string"
            }
          },
          "companies": {
            "title": "Company",
            "type": "array",
            "description": "Keep only jobs whose employer name contains one of these words.",
            "items": {
              "type": "string"
            }
          },
          "excludeCompanies": {
            "title": "Exclude companies",
            "type": "array",
            "description": "Skip jobs whose employer name contains one of these words.",
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Add description and details",
            "type": "boolean",
            "description": "Open each job page to add the description (e-mails, phone numbers and the recruiter's name removed), contract type, employment type, education, languages, suitable for, benefits, start date, full address and the company website. One extra request per job (2 seconds each at the normal speed). The recruiter's name, e-mail and phone are never returned.",
            "default": false
          },
          "descriptionMaxLength": {
            "title": "Description length limit",
            "minimum": 0,
            "type": "integer",
            "description": "Cut descriptions to this many characters (0 = full text)."
          },
          "contractTypes": {
            "title": "Contract type",
            "type": "array",
            "description": "Keep only jobs with one of these contracts (pracovní smlouva, živnostenský list / IČO, dohoda DPP/DPČ). The contract type is on the job page, so this needs \"Add description and details\". A job whose page could not be read is kept.",
            "items": {
              "type": "string",
              "enum": [
                "employee",
                "freelance",
                "workAgreement"
              ],
              "enumTitles": [
                "Employment contract (pracovní smlouva)",
                "Self-employed (živnostenský list / IČO)",
                "Work agreement (DPP / DPČ)"
              ]
            }
          },
          "maxItems": {
            "title": "Max jobs",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of jobs saved. You pay per saved job. 0 = no limit.",
            "default": 100
          },
          "maxItemsPerStartUrl": {
            "title": "Max jobs per search",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of jobs saved from each search or URL. 0 = no limit.",
            "default": 0
          },
          "maxPages": {
            "title": "Max pages per search",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum listing pages (50 jobs each) read per search. 0 = until the end (the website shows at most 101 pages per search; bigger searches are read region by region automatically).",
            "default": 0
          },
          "includeCompanyInfo": {
            "title": "Add company data from ARES (extra charge)",
            "type": "boolean",
            "description": "Add data about the employer from ARES, the public register of economic subjects of the Czech Ministry of Finance: IČO (company ID), legal form, registered office, employee count range, main activity (CZ-NACE) and founding date. Off by default: when off, the actor never contacts ARES. Extra charge \"Company info\" (see the Pricing tab) only for saved jobs whose company data were found and returned. Matching is by the exact company name including its legal form, so some jobs stay without company data. Recruitment agencies and private persons are never looked up or returned. About 1 second per new company name.",
            "default": false
          },
          "onlyNewOrChanged": {
            "title": "Monitoring: only new or changed jobs",
            "type": "boolean",
            "description": "Return only jobs that are new or whose title, company, salary or place changed since the previous run with the same Monitoring key. Unchanged jobs are free; every listing page read in this mode is $0.0001 (the monitoring-page event).",
            "default": false
          },
          "monitoringKey": {
            "title": "Monitoring: key",
            "type": "string",
            "description": "Name of the saved state. Use a different key for each watched search (e.g. 'skladnik-brno'). Empty = \"default\". The value is stored encrypted."
          },
          "includeRemovedJobs": {
            "title": "Monitoring: include removed jobs",
            "type": "boolean",
            "description": "With \"Monitoring: only new or changed jobs\": also return jobs from the previous run with the same Monitoring key that are no longer in the search, as rows with changeType \"removed\", removedAt, firstSeenAt, daysOnline and the last known title, company, place, salary and URL. Checked only when the run reads the whole search (Max jobs, Max jobs per search, Max pages per search, unread pages or rejected requests skip the check, and the status message says why). Removed rows are normal dataset rows and are charged like any other job.",
            "default": false
          },
          "fastMode": {
            "title": "Fast mode (small extra charge)",
            "type": "boolean",
            "description": "Reads Pracezarohem.cz up to 4x faster: at most 120 requests per minute and 4 at a time instead of 30 per minute and 2 at a time. It stays polite: the moment the website answers \"too many requests\", \"service unavailable\" or slows down, the run switches back to the normal speed for the rest of the run, it waits when the website asks it to wait, and it never changes IP address to get around a limit. Extra charge \"Fast mode\" (see the Pricing tab, $0.01 per 1 000 jobs) only for jobs saved while the fast speed was on.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Not needed: Pracezarohem.cz answered every request without a proxy and without a challenge in our tests. You can use Apify Proxy or your own proxies if you prefer.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}