{
  "openapi": "3.0.1",
  "info": {
    "title": "Pracuj.pl Jobs Scraper",
    "description": "Scrape Pracuj.pl job offers in Poland: titles, companies, salaries, B2B and other contract types, remote and hybrid work, seniority, requirements, technologies, benefits and apply links. Filter by keyword, city, category and date. Export JSON, CSV, Excel or use the API.",
    "version": "1.0",
    "x-build-id": "nUjHxqxChoax67BUx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parsebird~pracuj-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parsebird-pracuj-jobs-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/parsebird~pracuj-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parsebird-pracuj-jobs-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/parsebird~pracuj-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parsebird-pracuj-jobs-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": {
          "query": {
            "title": "Keyword",
            "type": "string",
            "description": "Job title, skill or company, like \"python\", \"księgowa\" or \"magazynier\". Works like the search box on pracuj.pl. Leave empty to search all offers."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City or town, like \"Warszawa\", \"Kraków\" or \"Wrocław\" (Polish letters optional). Separate several cities with commas. Countries such as \"Niemcy\" work too. Leave empty for all of Poland."
          },
          "radius": {
            "title": "Search radius (km)",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "Also include offers within this many kilometres of the Location (or of the latitude/longitude point). Leave empty to match the city only."
          },
          "startUrls": {
            "title": "Pracuj.pl search URLs",
            "type": "array",
            "description": "Paste search result URLs copied from pracuj.pl (including it.pracuj.pl and the other sub-portals), like https://www.pracuj.pl/praca/python;kw/warszawa;wp?rd=30. Each URL is scraped with all its filters. When you add URLs, the keyword, location and filter fields are ignored.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Only offers in these Pracuj.pl job categories. \"IT - Software development\" plus \"IT - Administration\" match it.pracuj.pl.",
            "items": {
              "type": "string",
              "enum": [
                "5001",
                "5026",
                "5003",
                "5006",
                "5005",
                "5037",
                "5021",
                "5007",
                "5036",
                "5014",
                "5008",
                "5009",
                "5004",
                "5035",
                "5010",
                "5011",
                "5032",
                "5013",
                "5015",
                "5016",
                "5023",
                "5022",
                "5024",
                "5018",
                "5019",
                "5027",
                "5025",
                "5033",
                "5034",
                "5020",
                "5002",
                "5028",
                "5017",
                "5031",
                "5012"
              ],
              "enumTitles": [
                "Office administration (Administracja biurowa)",
                "Advertising / Graphic design / Creative / Photography (Reklama / Grafika / Kreacja / Fotografia)",
                "Banking (Bankowość)",
                "Call Center",
                "Construction (Budownictwo)",
                "Consulting (Doradztwo / Konsulting)",
                "Customer service (Obsługa klienta)",
                "Education / Training (Edukacja / Szkolenia)",
                "Energy (Energetyka)",
                "Engineering (Inżynieria)",
                "Finance / Economics (Finanse / Ekonomia)",
                "Franchise / Own business (Franczyza / Własny biznes)",
                "Health & safety / Environment (BHP / Ochrona środowiska)",
                "Health / Beauty / Recreation (Zdrowie / Uroda / Rekreacja)",
                "Hospitality / Catering / Tourism (Hotelarstwo / Gastronomia / Turystyka)",
                "Human Resources (Human Resources / Zasoby ludzkie)",
                "Insurance (Ubezpieczenia)",
                "Internet / e-Commerce / New media (Internet / e-Commerce / Nowe media)",
                "IT - Administration (IT - Administracja)",
                "IT - Software development (IT - Rozwój oprogramowania)",
                "Law (Prawo)",
                "Manual work (Praca fizyczna)",
                "Manufacturing (Produkcja)",
                "Marketing",
                "Media / Arts / Entertainment (Media / Sztuka / Rozrywka)",
                "Public sector (Sektor publiczny)",
                "Public Relations",
                "Purchasing (Zakupy)",
                "Quality control (Kontrola jakości)",
                "Real estate (Nieruchomości)",
                "Research & development (Badania i rozwój)",
                "Sales (Sprzedaż)",
                "Supply chain (Łańcuch dostaw)",
                "Transport / Forwarding / Logistics (Transport / Spedycja / Logistyka)",
                "Other (Inne)"
              ]
            }
          },
          "contractTypes": {
            "title": "Contract type",
            "type": "array",
            "description": "Only offers with one of these contract types.",
            "items": {
              "type": "string",
              "enum": [
                "0",
                "3",
                "2",
                "1",
                "4",
                "5",
                "6",
                "7"
              ],
              "enumTitles": [
                "Employment contract (umowa o pracę)",
                "B2B contract (kontrakt B2B)",
                "Mandate contract (umowa zlecenie)",
                "Contract for specific work (umowa o dzieło)",
                "Substitution contract (umowa na zastępstwo)",
                "Agency contract (umowa agencyjna)",
                "Temporary work contract (umowa o pracę tymczasową)",
                "Internship contract (umowa o staż / praktyki)"
              ]
            }
          },
          "workModes": {
            "title": "Work mode",
            "type": "array",
            "description": "Only offers with one of these work modes.",
            "items": {
              "type": "string",
              "enum": [
                "full-office",
                "hybrid",
                "home-office",
                "mobile"
              ],
              "enumTitles": [
                "On-site (praca stacjonarna)",
                "Hybrid (praca hybrydowa)",
                "Remote (praca zdalna)",
                "Mobile (praca mobilna)"
              ]
            }
          },
          "positionLevels": {
            "title": "Seniority",
            "type": "array",
            "description": "Only offers for these position levels.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "3",
                "17",
                "4",
                "18",
                "19",
                "5",
                "20",
                "6",
                "21",
                "2"
              ],
              "enumTitles": [
                "Intern / Trainee (praktykant / stażysta)",
                "Assistant (asystent)",
                "Junior specialist (młodszy specjalista)",
                "Specialist, mid / regular (specjalista)",
                "Senior specialist (starszy specjalista)",
                "Expert (ekspert)",
                "Team leader / Coordinator (kierownik / koordynator)",
                "Manager (menedżer)",
                "Director (dyrektor)",
                "President / CEO (prezes)",
                "Manual worker (pracownik fizyczny)"
              ]
            }
          },
          "workSchedules": {
            "title": "Working time",
            "type": "array",
            "description": "Only offers with one of these working-time options.",
            "items": {
              "type": "string",
              "enum": [
                "0",
                "1",
                "2"
              ],
              "enumTitles": [
                "Full-time (pełny etat)",
                "Part-time (część etatu)",
                "Additional / temporary (dodatkowa / tymczasowa)"
              ]
            }
          },
          "regions": {
            "title": "Region (voivodeship)",
            "type": "array",
            "description": "Only offers in these Polish regions. \"Abroad\" is offers outside Poland.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8",
                "9",
                "10",
                "11",
                "12",
                "13",
                "14",
                "15",
                "16",
                "17"
              ],
              "enumTitles": [
                "Lower Silesia (dolnośląskie)",
                "Kuyavia-Pomerania (kujawsko-pomorskie)",
                "Lublin (lubelskie)",
                "Lubusz (lubuskie)",
                "Łódź (łódzkie)",
                "Lesser Poland (małopolskie)",
                "Masovia (mazowieckie)",
                "Opole (opolskie)",
                "Pomerania (pomorskie)",
                "Subcarpathia (podkarpackie)",
                "Podlaskie (podlaskie)",
                "Holy Cross (świętokrzyskie)",
                "Silesia (śląskie)",
                "Warmia-Masuria (warmińsko-mazurskie)",
                "Greater Poland (wielkopolskie)",
                "West Pomerania (zachodniopomorskie)",
                "Abroad (zagranica)"
              ]
            }
          },
          "period": {
            "title": "Posted within",
            "enum": [
              "any",
              "1",
              "3",
              "7",
              "14",
              "30"
            ],
            "type": "string",
            "description": "Only offers published (or refreshed) within this period.",
            "default": "any"
          },
          "postedBy": {
            "title": "Posted by",
            "enum": [
              "anyone",
              "employer",
              "agency"
            ],
            "type": "string",
            "description": "Use Pracuj.pl's own classification to keep only offers posted by the hiring company, or only offers posted by registered recruitment agencies for their clients.",
            "default": "anyone"
          },
          "companyName": {
            "title": "Company name",
            "type": "string",
            "description": "Only offers from employers whose name matches, like \"Allegro\" or \"PKO\"."
          },
          "withSalary": {
            "title": "Only offers with salary",
            "type": "boolean",
            "description": "Keep only offers that show a salary range.",
            "default": false
          },
          "oneClickApply": {
            "title": "Only one-click apply",
            "type": "boolean",
            "description": "Keep only offers you can apply to with one click on Pracuj.pl.",
            "default": false
          },
          "ukrainianFriendly": {
            "title": "Only Ukrainian-friendly offers",
            "type": "boolean",
            "description": "Keep only offers the employer marks as open to candidates from Ukraine.",
            "default": false
          },
          "noPolishRequired": {
            "title": "Only offers without Polish required",
            "type": "boolean",
            "description": "Keep only offers that don't require Polish.",
            "default": false
          },
          "seniorFriendly": {
            "title": "Only senior-friendly offers",
            "type": "boolean",
            "description": "Keep only offers the employer marks as open to candidates 50+.",
            "default": false
          },
          "disabilityFriendly": {
            "title": "Only disability-friendly offers",
            "type": "boolean",
            "description": "Keep only offers the employer marks as open to candidates with disabilities.",
            "default": false
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "default",
              "relevance",
              "date",
              "salary"
            ],
            "type": "string",
            "description": "Order of results. With a result limit, this decides which jobs you get. Newest first sorts by publication day (within a day, promoted offers come first), the same as on pracuj.pl.",
            "default": "default"
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of jobs to save. A job posted in several cities counts once (all its city links are in allOfferUrls). Set 0 for no limit. In incremental mode, this is the number of jobs checked.",
            "default": 50
          },
          "includeDetails": {
            "title": "Include full details",
            "type": "boolean",
            "description": "Open each offer and add requirements, responsibilities, technologies, benefits, categories, full address, structured salaries per contract type, apply links and the full description. Charged as an extra event per job.",
            "default": false
          },
          "compact": {
            "title": "Compact output",
            "type": "boolean",
            "description": "Save only the core fields (title, company, location, salary, contract, work mode, seniority, date, URL). Handy for AI agents and spreadsheets.",
            "default": false
          },
          "incrementalMode": {
            "title": "Only new or changed jobs",
            "type": "boolean",
            "description": "Remember jobs between runs and save only jobs that are new or changed since the last run with the same state key. Each record gets a changeType of NEW, UPDATED or UNCHANGED.",
            "default": false
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "Name for the remembered job list. Use a different key for each search you monitor, like \"python-warszawa\".",
            "default": "default"
          },
          "emitUnchanged": {
            "title": "Also save unchanged jobs",
            "type": "boolean",
            "description": "In incremental mode, also save jobs that haven't changed (tagged UNCHANGED).",
            "default": false
          },
          "latitude": {
            "title": "Latitude",
            "type": "string",
            "description": "Centre of a map search, like \"52.2297\". Use with Longitude and Search radius. Replaces the Location field."
          },
          "longitude": {
            "title": "Longitude",
            "type": "string",
            "description": "Centre of a map search, like \"21.0122\". Use with Latitude."
          },
          "excludeLocations": {
            "title": "Exclude cities",
            "type": "string",
            "description": "Leave out offers in these cities, separated by commas, like \"Warszawa, Kraków\"."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy (datacenter) by default. If Pracuj.pl refuses requests, the scraper moves to residential proxies on its own.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}