{
  "openapi": "3.0.1",
  "info": {
    "title": "FINN.no Job Scraper",
    "description": "[💰 $1.00 / 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": "BGJhU5fcqge7nVOm0"
  },
  "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/search?q=utvikler&location=1.20001.20061 for developer jobs in Oslo). The filters baked into each URL are scraped exactly as-is; the filters below are not added to pasted URLs. 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. Limits of 50 or less are exact; larger limits can run slightly over (by less than 2%). 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 posted in the last 24 hours, counted back from when the run starts, so runs scheduled once a day don't overlap. Leave off to include jobs from any date. (FINN.no only offers this 'new today' window — longer windows such as 3 or 7 days are not available on 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}