{
  "openapi": "3.0.1",
  "info": {
    "title": "Finn.no $0.8💰 URL | Keyword |  Deep Search Scraper",
    "description": "From $0.8/1K. Scrape active Finn.no ads via search builder or URL. Returns 30+ fields per ad, including full HTML description, employer details, deadline, contacts, languages, sector, industries, keywords, and apply URL.",
    "version": "1.4",
    "x-build-id": "4aEKHhpfss57JejhO"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~finn-no-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-finn-no-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/abotapi~finn-no-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-finn-no-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/abotapi~finn-no-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-finn-no-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "1. Search mode",
            "enum": [
              "search",
              "url"
            ],
            "type": "string",
            "description": "Search mode = pick keywords + location + filters below. URL mode = paste any finn.no/job URL refined in a browser (recommended for filters not exposed below).",
            "default": "search"
          },
          "queries": {
            "title": "Keywords (optional)",
            "type": "array",
            "description": "Free-text search terms (e.g. \"developer\", \"sykepleier\", \"prosjektleder\"). One scrape per keyword; leave empty to browse without a keyword filter. Combine with location + employment type for narrower results.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location code (optional)",
            "type": "string",
            "description": "Finn.no hierarchical location code from the URL ?location= param. Format is <level>.<country>.<region>[.<municipality>]. Common values: 0.20001 (Norge, country-wide), 1.20001.20061 (Oslo), 1.20001.20003 (Akershus), 1.20001.20015 (Vestland), 1.20001.20016 (Trøndelag), 1.20001.20012 (Rogaland). The simplest way: open finn.no/job, click a location filter, and copy the code from the URL. Leave empty to search Norway-wide."
          },
          "employmentType": {
            "title": "Employment type",
            "enum": [
              "any",
              "fulltime",
              "parttime",
              "management"
            ],
            "type": "string",
            "description": "Filter by Finn.no employment scope: fulltime = Heltid (extent=3947), parttime = Deltid (extent=3942), management = Lederstillinger (manager_role=6702). \"any\" walks the unfiltered /job/search page.",
            "default": "fulltime"
          },
          "industry": {
            "title": "Industry filter (optional)",
            "type": "string",
            "description": "Finn.no industry code (e.g. 14 = Barn, skole og undervisning; 11 = IT; 9 = Helse og omsorg; 6 = Bygg og anlegg; 1 = Akademi, forskning. Open a Finn.no SERP, pick an industry, and copy the code from ?industry=."
          },
          "occupation": {
            "title": "Occupation filter (optional)",
            "type": "string",
            "description": "Finn.no occupation/job-function code from ?occupation=. More specific than industry. Look in a Finn.no SERP URL after picking a job function."
          },
          "sector": {
            "title": "Sector filter (optional)",
            "enum": [
              "any",
              "private",
              "public"
            ],
            "type": "string",
            "description": "Limit by employer sector.",
            "default": "any"
          },
          "workLanguage": {
            "title": "Working language (optional)",
            "enum": [
              "any",
              "norwegian",
              "english",
              "swedish",
              "danish",
              "other"
            ],
            "type": "string",
            "description": "Workplace working language. Maps to Finn.no ?workLanguage= filter.",
            "default": "any"
          },
          "publishedSince": {
            "title": "Posted since (optional)",
            "enum": [
              "any",
              "1",
              "3",
              "7",
              "14",
              "30"
            ],
            "type": "string",
            "description": "Limit to ads posted within the last N days.",
            "default": "any"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "default",
              "published_desc",
              "deadline_asc"
            ],
            "type": "string",
            "description": "How Finn.no orders the SERP. \"Default\" is Finn's relevance ranking.",
            "default": "default"
          },
          "skipSponsored": {
            "title": "Skip sponsored placements (post-filter)",
            "type": "boolean",
            "description": "Drop \"Betalt plassering\" cards (paid promotions). Applied after fetch as a client-side filter.",
            "default": false
          },
          "urls": {
            "title": "Search URLs (URL mode)",
            "type": "array",
            "description": "One or more finn.no/job URLs. Examples: https://www.finn.no/job/search?q=developer or https://www.finn.no/job/ad/461652761 (single ad). Legacy /job/<type>/search.html URLs are auto-canonicalized to the working /job/search?extent=<N> form so pagination works. Multi-URL supported; each URL pages forward independently. Filter fields above are ignored.",
            "items": {
              "type": "string"
            }
          },
          "maxPages": {
            "title": "Max pages per search",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Hard cap on how many SERP pages to walk per query × employment-type combination (or per pasted URL). Each page returns up to ~50 listings.",
            "default": 2
          },
          "maxListings": {
            "title": "Max listings (total)",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many listings across all searches. 0 = no cap.",
            "default": 0
          },
          "fetchDetails": {
            "title": "Fetch detail pages (richer data)",
            "type": "boolean",
            "description": "When ON, also fetch each ad's detail page for full HTML description, deadline, employer details, sector, industries, working languages, contact persons, keywords, and apply URL. SERP cards already carry id, title, employer, location, and posted date, so simple feeds work fine with this OFF. Default ON for richer output.",
            "default": true
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Finn.no accepts naked Apify proxy out of the box, including the default Datacenter group available on Free plans. For higher volume or stable Norwegian routing, add groups: [\"RESIDENTIAL\"], country: \"NO\"."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}