{
  "openapi": "3.0.1",
  "info": {
    "title": "FINN.no Job Scraper",
    "description": "[💰 $1.0 / 1K] Extract job listings from FINN.no, Norway's largest classifieds and job marketplace. Search by keyword and county, filter by occupation, employment type, contract, remote work and sector, and get titles, employers, locations, salaries, deadlines and full descriptions.",
    "version": "1.0",
    "x-build-id": "0QcriCsFhWEkdRfks"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~finn-no-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-finn-no-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/solidcode~finn-no-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-finn-no-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/solidcode~finn-no-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-finn-no-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 Keywords",
            "maxItems": 50,
            "type": "array",
            "description": "Job titles or keywords to search for, such as 'utvikler', 'sykepleier', or 'prosjektleder'. Each keyword runs a separate search and results are merged and de-duplicated. Up to 50 keywords per run. Leave empty to list all jobs (optionally narrowed by the filters below), or if you are only using direct search URLs.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Direct FINN.no Search URLs",
            "maxItems": 50,
            "type": "array",
            "description": "Paste full FINN.no job-search URLs (for example https://www.finn.no/job/fulltime/search.html?q=utvikler&location=0.20061). The filters baked into each URL are scraped exactly as-is. Useful when you have already dialed in a search on the FINN.no website. Up to 50 URLs per run.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Max Results per Search",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum number of jobs to collect per search keyword (or per URL). Use 50 for a quick scan or a higher number for deep research. The last page is always kept in full, so the final count can slightly overshoot this number. Set to 0 to collect all available results. Note: FINN.no returns at most ~2,500 jobs for any single search — to gather more, split your search across counties or occupation categories.",
            "default": 100
          },
          "counties": {
            "title": "Counties (fylke)",
            "uniqueItems": true,
            "type": "array",
            "description": "Limit results to one or more Norwegian counties. Leave empty to search all of Norway.",
            "items": {
              "type": "string",
              "enum": [
                "Oslo",
                "Akershus",
                "Vestland",
                "Rogaland",
                "Trøndelag",
                "Innlandet",
                "Agder",
                "Østfold",
                "Buskerud",
                "Vestfold",
                "Nordland",
                "Møre og Romsdal",
                "Telemark",
                "Troms",
                "Finnmark",
                "Svalbard"
              ],
              "enumTitles": [
                "Oslo",
                "Akershus",
                "Vestland",
                "Rogaland",
                "Trøndelag",
                "Innlandet",
                "Agder",
                "Østfold",
                "Buskerud",
                "Vestfold",
                "Nordland",
                "Møre og Romsdal",
                "Telemark",
                "Troms",
                "Finnmark",
                "Svalbard"
              ]
            },
            "default": []
          },
          "occupations": {
            "title": "Occupation Categories",
            "uniqueItems": true,
            "type": "array",
            "description": "Limit results to one or more job categories (yrkeskategori). Leave empty for all categories.",
            "items": {
              "type": "string",
              "enum": [
                "Barnehage",
                "Butikkansatt",
                "Helsepersonell",
                "Håndverker",
                "Ingeniør",
                "Kontor og administrasjon",
                "Kundeservice",
                "Ledelse",
                "Logistikk og lager",
                "Mat og servering",
                "Omsorg og sosialt arbeid",
                "Sykepleier",
                "Undervisning og pedagogikk"
              ],
              "enumTitles": [
                "Childcare / Kindergarten",
                "Retail / Shop staff",
                "Healthcare staff",
                "Skilled trades / Craftsperson",
                "Engineering",
                "Office & administration",
                "Customer service",
                "Management",
                "Logistics & warehouse",
                "Food & hospitality",
                "Care & social work",
                "Nursing",
                "Teaching & education"
              ]
            },
            "default": []
          },
          "employmentExtent": {
            "title": "Full-time / Part-time",
            "enum": [
              "",
              "fulltime",
              "parttime"
            ],
            "type": "string",
            "description": "Filter by working hours. Leave on 'Any' for both.",
            "default": ""
          },
          "contractType": {
            "title": "Contract Type",
            "enum": [
              "",
              "permanent",
              "temporary",
              "engagement",
              "seasonal"
            ],
            "type": "string",
            "description": "Filter by the type of employment contract. Leave on 'Any' for all contract types.",
            "default": ""
          },
          "remoteWork": {
            "title": "Remote Work",
            "enum": [
              "",
              "partial",
              "full"
            ],
            "type": "string",
            "description": "Filter by home-office / remote arrangement. Leave on 'Any' for jobs with or without remote work.",
            "default": ""
          },
          "sector": {
            "title": "Sector",
            "enum": [
              "",
              "private",
              "public"
            ],
            "type": "string",
            "description": "Filter by employer sector. Leave on 'Any' for both private and public.",
            "default": ""
          },
          "managerRole": {
            "title": "Management Roles Only",
            "type": "boolean",
            "description": "Only return management / leadership positions (leder, direktør, fagleder).",
            "default": false
          },
          "workLanguage": {
            "title": "Work Language",
            "enum": [
              "",
              "norwegian",
              "english"
            ],
            "type": "string",
            "description": "Only return jobs where the working language is the one selected. Leave on 'Any' to include all.",
            "default": ""
          },
          "postedToday": {
            "title": "Posted Today Only",
            "type": "boolean",
            "description": "Only return jobs that were posted today. Leave off to include jobs from any date. (FINN.no only supports a 'new today' filter — older posted-within windows such as 3 or 7 days are not offered by the site.)",
            "default": false
          },
          "sortBy": {
            "title": "Sort Order",
            "enum": [
              "relevant",
              "published"
            ],
            "type": "string",
            "description": "How to order the search results.",
            "default": "relevant"
          },
          "fetchJobDetails": {
            "title": "Fetch Full Job Details",
            "type": "boolean",
            "description": "Turn on to fetch each job's detail page, adding the full description, application deadline, named contact person, street address and structured fields. Off by default for fast, lightweight scans (detail fetching makes a run several times slower because it loads every ad individually). Enable this whenever you need descriptions, deadlines, or contacts.",
            "default": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}