{
  "openapi": "3.0.1",
  "info": {
    "title": "Platsbanken Scraper: Sweden Jobs, Employers, Org Numbers",
    "description": "Every job ad on Platsbanken (Arbetsförmedlingen) from the official JobTech API: headline, employer and organisation number, occupation codes, municipality, coordinates, salary type, deadline and full text. Filter by region, occupation, employer or date, go past the 2,000-result cap, pay per ad.",
    "version": "1.1",
    "x-build-id": "XHDR6SKwi0FDHqF5c"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rowcraft~platsbanken-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rowcraft-platsbanken-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/rowcraft~platsbanken-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-rowcraft-platsbanken-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/rowcraft~platsbanken-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-rowcraft-platsbanken-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": "Search text",
            "type": "string",
            "description": "Free text, as on Platsbanken: job title, skill, employer or place. Examples: \"sjuksköterska\", \"python\", \"truckförare Göteborg\". Leave empty for all ads."
          },
          "regions": {
            "title": "Regions (län)",
            "type": "array",
            "description": "Limit to one or more Swedish regions (län). Pick from the list.",
            "items": {
              "type": "string",
              "enum": [
                "DQZd_uYs_oKb",
                "oDpK_oZ2_WYt",
                "K8iD_VQv_2BA",
                "zupA_8Nt_xcD",
                "wjee_qH2_yb6",
                "65Ms_7r1_RTG",
                "MtbE_xWT_eMi",
                "9QUH_2bb_6Np",
                "tF3y_MF9_h5G",
                "9hXe_F4g_eTG",
                "CaRE_1nn_cSU",
                "CifL_Rzy_Mku",
                "s93u_BEb_sx2",
                "zBon_eET_fFU",
                "EVVp_h6U_GSZ",
                "g5Tt_CAV_zBd",
                "NvUF_SP1_1zo",
                "G6DV_fKE_Viz",
                "zdoY_6u5_Krt",
                "xTCk_nT5_Zjm",
                "oLT3_Q9p_3nn"
              ],
              "enumTitles": [
                "Blekinge län",
                "Dalarnas län",
                "Gotlands län",
                "Gävleborgs län",
                "Hallands län",
                "Jämtlands län",
                "Jönköpings län",
                "Kalmar län",
                "Kronobergs län",
                "Norrbottens län",
                "Skåne län",
                "Stockholms län",
                "Södermanlands län",
                "Uppsala län",
                "Värmlands län",
                "Västerbottens län",
                "Västernorrlands län",
                "Västmanlands län",
                "Västra Götalands län",
                "Örebro län",
                "Östergötlands län"
              ]
            }
          },
          "municipalities": {
            "title": "Municipalities (kommun)",
            "type": "array",
            "description": "One or more municipality names, e.g. \"Lund\", \"Uppsala\", \"Luleå\". All 290 Swedish municipalities are recognised.",
            "items": {
              "type": "string"
            }
          },
          "occupationFields": {
            "title": "Occupation fields",
            "type": "array",
            "description": "Limit to one or more of the 21 official occupation fields (yrkesområden).",
            "items": {
              "type": "string",
              "enum": [
                "X82t_awd_Qyc",
                "j7Cq_ZJe_GkT",
                "bh3H_Y3h_5eD",
                "apaJ_2ja_LuF",
                "RPTn_bxG_ExZ",
                "PaxQ_o1G_wWH",
                "ScKy_FHB_7wT",
                "NYW6_mP6_vwf",
                "wTEr_CBC_bqh",
                "yhCP_AqT_tns",
                "Uuf1_GMh_Uvw",
                "9puE_nYg_crq",
                "bH5L_uXD_ZAX",
                "VuuL_7CH_adj",
                "kJeN_wmw_9wX",
                "MVqp_eS8_kDZ",
                "whao_Q6A_ScE",
                "E7hm_BLq_fqZ",
                "ASGV_zcE_bWf",
                "GazW_2TU_kJw",
                "6Hq3_tKo_V57"
              ],
              "enumTitles": [
                "Administration, ekonomi, juridik (Administration, finance, law)",
                "Bygg och anläggning (Construction and civil engineering)",
                "Chefer och verksamhetsledare (Managers and executives)",
                "Data/IT (IT and software)",
                "Försäljning, inköp, marknadsföring (Sales, purchasing, marketing)",
                "Hantverk (Crafts and trades)",
                "Hotell, restaurang, storhushåll (Hotels, restaurants, catering)",
                "Hälso- och sjukvård (Healthcare)",
                "Industriell tillverkning (Manufacturing)",
                "Installation, drift, underhåll (Installation, operations, maintenance)",
                "Kropps- och skönhetsvård (Body care and beauty)",
                "Kultur, media, design (Culture, media, design)",
                "Militära yrken (Military occupations)",
                "Naturbruk (Agriculture, forestry, fishing)",
                "Naturvetenskap (Natural sciences)",
                "Pedagogik (Education and teaching)",
                "Sanering och renhållning (Cleaning and sanitation)",
                "Säkerhet och bevakning (Security and surveillance)",
                "Transport, distribution, lager (Transport, distribution, logistics)",
                "Yrken med social inriktning (Social work and care)",
                "Yrken med teknisk inriktning (Engineering and technical occupations)"
              ]
            }
          },
          "employer": {
            "title": "Employer",
            "type": "string",
            "description": "Employer name or Swedish organisation number (digits only, e.g. 5560125790)."
          },
          "publishedAfter": {
            "title": "Published after",
            "type": "string",
            "description": "Only ads published after this moment. Accepts a date (2026-10-01), an ISO timestamp, or a relative value such as \"7 days\", \"24 hours\", \"2 weeks\"."
          },
          "publishedBefore": {
            "title": "Published before",
            "type": "string",
            "description": "Only ads published before this date (2026-10-07) or timestamp."
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Permanent, fixed-term, temporary cover, on-demand or seasonal.",
            "items": {
              "type": "string",
              "enum": [
                "1paU_aCR_nGn",
                "EBhX_Qm2_8eX",
                "sTu5_NBQ_udq",
                "kpPX_CNN_gDU",
                "gro4_cWF_6D7"
              ],
              "enumTitles": [
                "Behovsanställning (On-demand (behovsanställning))",
                "Säsongsanställning (Seasonal)",
                "Tidsbegränsad anställning (Fixed-term)",
                "Tillsvidareanställning (inkl. eventuell provanställning) (Permanent (incl. probation))",
                "Vikariat (Temporary cover (vikariat))"
              ]
            }
          },
          "workingHours": {
            "title": "Working hours",
            "type": "array",
            "description": "Full-time and/or part-time.",
            "items": {
              "type": "string",
              "enum": [
                "947z_JGS_Uk2",
                "6YE1_gAC_R2G"
              ],
              "enumTitles": [
                "Deltid (Part-time)",
                "Heltid (Full-time)"
              ]
            }
          },
          "durations": {
            "title": "Employment duration",
            "type": "array",
            "description": "From \"until further notice\" down to \"up to 10 days\".",
            "items": {
              "type": "string",
              "enum": [
                "Sy9J_aRd_ALx",
                "9RGe_UxD_FZw",
                "Xj7x_7yZ_jEn",
                "gJRb_akA_95y",
                "a7uU_j21_mkL",
                "cAQ8_TpB_Tdv"
              ],
              "enumTitles": [
                "11 dagar – upp till 3 månader (11 days to 3 months)",
                "12 månader – upp till 2 år (12 months to 2 years)",
                "3 månader – upp till 6 månader (3 to 6 months)",
                "6 månader – upp till 12 månader (6 to 12 months)",
                "Tills vidare (Until further notice)",
                "Upp till 10 dagar (Up to 10 days)"
              ]
            }
          },
          "remoteOnly": {
            "title": "Remote-friendly only",
            "type": "boolean",
            "description": "Keep only ads that Arbetsförmedlingen's classifier marks as likely to allow remote work.",
            "default": false
          },
          "experienceRequired": {
            "title": "Experience required",
            "enum": [
              "any",
              "yes",
              "no"
            ],
            "type": "string",
            "description": "Filter by whether the ad requires previous experience.",
            "default": "any"
          },
          "drivingLicenseRequired": {
            "title": "Driving licence required",
            "enum": [
              "any",
              "yes",
              "no"
            ],
            "type": "string",
            "description": "Filter by whether the ad requires a driving licence.",
            "default": "any"
          },
          "includeAbroad": {
            "title": "Include jobs abroad",
            "type": "boolean",
            "description": "Also return ads for work outside Sweden that match your place filters.",
            "default": false
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "pubdate-desc",
              "pubdate-asc",
              "relevance",
              "applydate-desc",
              "applydate-asc",
              "updated"
            ],
            "type": "string",
            "description": "Order of results when you take fewer than all matching ads.",
            "default": "pubdate-desc"
          },
          "maxItems": {
            "title": "Maximum ads",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many ads. 0 = all matching ads (the actor goes past the API's 2,000-result limit automatically).",
            "default": 500
          },
          "includeDescription": {
            "title": "Include the ad text",
            "type": "boolean",
            "description": "Plain-text description plus the structured sections (company information, needs, requirements, conditions) when the employer filled them in.",
            "default": true
          },
          "includeHtmlDescription": {
            "title": "Include the HTML description",
            "type": "boolean",
            "description": "Adds the formatted (HTML) version of the ad text as descriptionHtml.",
            "default": false
          },
          "adIds": {
            "title": "Fetch specific ads by ID or URL",
            "type": "array",
            "description": "Platsbanken ad IDs (e.g. 31563143) or ad URLs. When set, all search filters above are ignored.",
            "items": {
              "type": "string"
            }
          },
          "countOnly": {
            "title": "Count only (free check)",
            "type": "boolean",
            "description": "Only count how many rows match your filters and estimate the cost at your price tier. Nothing is delivered and nothing is charged apart from the start event. Turn it off to get the data.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new rows since the last run",
            "type": "boolean",
            "description": "Remember the rows already delivered to you (in a key-value store in your Apify account) and deliver only rows that appeared since the last run with the same state key. The first run delivers everything that matches; later runs cost only the new rows. Ideal for schedules.",
            "default": false
          },
          "stateName": {
            "title": "State name",
            "type": "string",
            "description": "Name of the memory used by \"Only new rows\". Use a different name for each schedule or search (for example `stockholm-python`) so they do not share one memory.",
            "default": "default"
          },
          "notifyUrl": {
            "title": "Notify this URL when the run ends",
            "type": "string",
            "description": "A webhook address that receives one JSON POST with the number of new rows and links to the dataset: a Slack or Discord incoming webhook, a Make, n8n or Zapier catch hook, or your own endpoint. The message is also in the `text` (Slack) and `content` (Discord) fields."
          },
          "notifyWhenEmpty": {
            "title": "Notify also when there are no new rows",
            "type": "boolean",
            "description": "By default the notification is sent only when at least one row was delivered.",
            "default": false
          },
          "requestIntervalMs": {
            "title": "Delay between API requests (ms)",
            "minimum": 250,
            "maximum": 10000,
            "type": "integer",
            "description": "Default 1000 ms (one request per second). Each request returns up to 100 ads. Minimum 250.",
            "default": 1000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}