{
  "openapi": "3.0.1",
  "info": {
    "title": "Pracuj.pl Jobs Scraper: Oferty Pracy Polska with Salary Filters",
    "description": "Scrape Pracuj.pl oferty pracy in Poland by keyword, city and radius, category, level, contract and work mode. Salaries parsed to numbers (min, max, hour or month, gross or net), plus requirements, technologies and benefits with details. Monitor new offers on a schedule. JSON, CSV, Excel. No login.",
    "version": "0.1",
    "x-build-id": "TamPAgiY14PnYEs3v"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~pracuj-pl-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-pracuj-pl-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/getascraper~pracuj-pl-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-pracuj-pl-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/getascraper~pracuj-pl-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-pracuj-pl-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": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Job titles, skills or any words to look for, for example python or kierowca kat. C. Each keyword runs as its own search and the results are merged without duplicates. Polish and English both work. Leave empty to list the newest offers in Poland.",
            "default": [
              "python"
            ],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Cities",
            "type": "array",
            "description": "Cities or towns, for example Warszawa or Kraków. Each city is searched separately (combined with every keyword) and the results are merged without duplicates. Leave empty to search all of Poland.",
            "default": [
              "Warszawa"
            ],
            "items": {
              "type": "string"
            }
          },
          "radiusKm": {
            "title": "Search radius around each city",
            "enum": [
              "0",
              "10",
              "20",
              "30",
              "50",
              "75",
              "100"
            ],
            "type": "string",
            "description": "How far around each city to include offers. Only used when at least one city is set. 0 means the city itself only.",
            "default": "30"
          },
          "regions": {
            "title": "Voivodeships",
            "type": "array",
            "description": "Whole regions of Poland (województwa). Combine with cities or use alone to cover a region. Leave empty for no region limit.",
            "items": {
              "type": "string",
              "enum": [
                "dolnoslaskie",
                "kujawsko-pomorskie",
                "lubelskie",
                "lubuskie",
                "lodzkie",
                "malopolskie",
                "mazowieckie",
                "opolskie",
                "pomorskie",
                "podkarpackie",
                "podlaskie",
                "swietokrzyskie",
                "slaskie",
                "warminsko-mazurskie",
                "wielkopolskie",
                "zachodniopomorskie",
                "abroad"
              ],
              "enumTitles": [
                "Lower Silesia (dolnośląskie)",
                "Kuyavian-Pomeranian (kujawsko-pomorskie)",
                "Lublin (lubelskie)",
                "Lubusz (lubuskie)",
                "Łódź (łódzkie)",
                "Lesser Poland (małopolskie)",
                "Masovia (mazowieckie)",
                "Opole (opolskie)",
                "Pomerania (pomorskie)",
                "Subcarpathia (podkarpackie)",
                "Podlaskie",
                "Holy Cross (świętokrzyskie)",
                "Silesia (śląskie)",
                "Warmia-Masuria (warmińsko-mazurskie)",
                "Greater Poland (wielkopolskie)",
                "West Pomerania (zachodniopomorskie)",
                "Abroad (zagranica)"
              ]
            },
            "default": []
          },
          "startUrls": {
            "title": "Pracuj.pl search URLs",
            "type": "array",
            "description": "Optional. Paste search pages copied from pracuj.pl (for example https://www.pracuj.pl/praca/python;kw/warszawa;wp?rd=10). Each address is scraped with its own filters and the keyword, city and filter fields of this form are not added to it. The salary range, details and monitoring options still apply. Leave empty to search with the form.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Industry or function of the job, as grouped by Pracuj.pl. Leave empty for all categories.",
            "items": {
              "type": "string",
              "enum": [
                "5001",
                "5002",
                "5003",
                "5004",
                "5005",
                "5006",
                "5037",
                "5036",
                "5007",
                "5008",
                "5009",
                "5010",
                "5011",
                "5013",
                "5014",
                "5015",
                "5016",
                "5034",
                "5017",
                "5018",
                "5019",
                "5020",
                "5021",
                "5022",
                "5023",
                "5024",
                "5025",
                "5026",
                "5027",
                "5028",
                "5031",
                "5032",
                "5033",
                "5035",
                "5012"
              ],
              "enumTitles": [
                "Office administration (Administracja biurowa)",
                "Research and development (Badania i rozwój)",
                "Banking (Bankowość)",
                "Health, safety and environment (BHP / Ochrona środowiska)",
                "Construction (Budownictwo)",
                "Call center (Call Center)",
                "Consulting (Doradztwo / Konsulting)",
                "Energy (Energetyka)",
                "Education and training (Edukacja / Szkolenia)",
                "Finance and economics (Finanse / Ekonomia)",
                "Franchise and own business (Franczyza / Własny biznes)",
                "Hospitality, gastronomy and tourism (Hotelarstwo / Gastronomia / Turystyka)",
                "Human resources (Human Resources / Zasoby ludzkie)",
                "Internet, e-commerce and new media (Internet / e-Commerce / Nowe media)",
                "Engineering (Inżynieria)",
                "IT administration (IT - Administracja)",
                "IT software development (IT - Rozwój oprogramowania)",
                "Quality control (Kontrola jakości)",
                "Supply chain (Łańcuch dostaw)",
                "Marketing",
                "Media, art and entertainment (Media / Sztuka / Rozrywka)",
                "Real estate (Nieruchomości)",
                "Customer service (Obsługa klienta)",
                "Manual work (Praca fizyczna)",
                "Law (Prawo)",
                "Production (Produkcja)",
                "Public relations (Public Relations)",
                "Advertising, graphics and creative (Reklama / Grafika / Kreacja / Fotografia)",
                "Public sector (Sektor publiczny)",
                "Sales (Sprzedaż)",
                "Transport, forwarding and logistics (Transport / Spedycja / Logistyka)",
                "Insurance (Ubezpieczenia)",
                "Purchasing (Zakupy)",
                "Health, beauty and recreation (Zdrowie / Uroda / Rekreacja)",
                "Other (Inne)"
              ]
            },
            "default": []
          },
          "positionLevels": {
            "title": "Position levels",
            "type": "array",
            "description": "Seniority of the role. Leave empty for all levels.",
            "items": {
              "type": "string",
              "enum": [
                "intern",
                "manual_worker",
                "assistant",
                "junior",
                "mid",
                "senior",
                "expert",
                "coordinator",
                "manager",
                "director",
                "president"
              ],
              "enumTitles": [
                "Intern or trainee (praktykant, stażysta)",
                "Manual worker (pracownik fizyczny)",
                "Assistant (asystent)",
                "Junior (młodszy specjalista)",
                "Mid or regular (specjalista)",
                "Senior (starszy specjalista)",
                "Expert (ekspert)",
                "Team leader or coordinator (kierownik, koordynator)",
                "Manager (menedżer)",
                "Director (dyrektor)",
                "President or C-level (prezes)"
              ]
            },
            "default": []
          },
          "contractTypes": {
            "title": "Contract types",
            "type": "array",
            "description": "Type of agreement offered. A posting matches when it offers at least one of the chosen types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "employment",
                "b2b",
                "mandate",
                "specific_task",
                "replacement",
                "agency",
                "temporary",
                "internship"
              ],
              "enumTitles": [
                "Employment contract (umowa o pracę)",
                "B2B contract (kontrakt B2B)",
                "Mandate contract (umowa zlecenie)",
                "Specific-task contract (umowa o dzieło)",
                "Replacement contract (umowa na zastępstwo)",
                "Agency contract (umowa agencyjna)",
                "Temporary work contract (umowa o pracę tymczasową)",
                "Internship or traineeship (staż, praktyki)"
              ]
            },
            "default": []
          },
          "workModes": {
            "title": "Work modes",
            "type": "array",
            "description": "Where the work is done. Remote and hybrid are the filters job seekers use most. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "onsite",
                "hybrid",
                "remote",
                "mobile"
              ],
              "enumTitles": [
                "On site (praca stacjonarna)",
                "Hybrid (praca hybrydowa)",
                "Remote (praca zdalna)",
                "Mobile or field work (praca mobilna)"
              ]
            },
            "default": []
          },
          "workSchedules": {
            "title": "Working time",
            "type": "array",
            "description": "Full-time, part-time or additional work. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "full_time",
                "part_time",
                "additional"
              ],
              "enumTitles": [
                "Full-time (pełny etat)",
                "Part-time (część etatu)",
                "Additional or temporary (dodatkowa, tymczasowa)"
              ]
            },
            "default": []
          },
          "employerType": {
            "title": "Employer type",
            "enum": [
              "any",
              "direct"
            ],
            "type": "string",
            "description": "Choose direct employers only to leave out postings placed by recruitment agencies.",
            "default": "any"
          },
          "onlyWithSalary": {
            "title": "Only offers that show a salary",
            "type": "boolean",
            "description": "Skip offers where the employer hides the pay. Turned on automatically when a minimum or maximum salary is set.",
            "default": false
          },
          "minSalary": {
            "title": "Minimum salary (PLN)",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Keep only offers whose pay range reaches at least this amount. Pay is read per month or per hour, see the period below; the other kind is converted at 168 working hours a month. Leave empty for no minimum."
          },
          "maxSalary": {
            "title": "Maximum salary (PLN)",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Keep only offers whose pay range starts at or below this amount. Leave empty for no maximum."
          },
          "salaryPeriod": {
            "title": "Salary amounts are per",
            "enum": [
              "month",
              "hour"
            ],
            "type": "string",
            "description": "Whether the minimum and maximum above are monthly or hourly amounts. Offers paid the other way are converted at 168 working hours a month.",
            "default": "month"
          },
          "postedWithin": {
            "title": "Posted within",
            "enum": [
              "any",
              "24h",
              "3d",
              "7d",
              "14d",
              "30d"
            ],
            "type": "string",
            "description": "Only offers published or refreshed in this time window.",
            "default": "any"
          },
          "oneClickApplyOnly": {
            "title": "One-click apply only",
            "type": "boolean",
            "description": "Keep only offers you can apply to without leaving Pracuj.pl.",
            "default": false
          },
          "superOffersOnly": {
            "title": "Super offers only",
            "type": "boolean",
            "description": "Keep only offers the employer promoted as a Super Offer (SuperOferta).",
            "default": false
          },
          "ukrainianFriendly": {
            "title": "Open to Ukrainian speakers",
            "type": "boolean",
            "description": "Keep only offers marked as welcoming candidates from Ukraine.",
            "default": false
          },
          "disabilityFriendly": {
            "title": "Disability-friendly employers",
            "type": "boolean",
            "description": "Keep only offers whose employer says people with disabilities are welcome.",
            "default": false
          },
          "includeDetails": {
            "title": "Fetch full offer details",
            "type": "boolean",
            "description": "Opens every offer to add the full description, responsibilities, required and optional requirements, technologies, benefits, application link, recruiter phone, address, category and the pay for each contract type. Slower and billed as a separate detail event. Off by default so the default run stays fast.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "How many offers to return in total across all searches. Postings published for several cities count once. Free plan runs are capped at 25.",
            "default": 25
          },
          "monitorScope": {
            "title": "Monitor scope name",
            "type": "string",
            "description": "Give this search a name (for example warsaw-python-remote) to turn on monitoring. The Actor remembers which offers it has already delivered under that name and returns only offers it has not shown you before. Use a different name for each saved search. Leave empty to return everything every time.",
            "default": ""
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy used to load the pages. The default Apify datacenter proxy is enough; the site blocks direct connections without a proxy.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}