{
  "openapi": "3.0.1",
  "info": {
    "title": "FINN.no Scraper: Torget, Cars, Homes and Jobs",
    "description": "Norway's FINN.no in one Actor: Torget, cars, MC and boats, homes and rentals, jobs, by keyword, place, FINN filters or links, no login, read past the 50 page cap. Rows carry price, totalpris, felleskostnader, bedrooms, make, mileage, employer, deadline. Monitor alerts, pay per row, Excel, API.",
    "version": "0.1",
    "x-build-id": "jqH3DBaZOcoKPAelj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automation_craft~finn-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automation_craft-finn-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/automation_craft~finn-scraper/runs": {
      "post": {
        "operationId": "runs-sync-automation_craft-finn-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/automation_craft~finn-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-automation_craft-finn-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": {
          "verticals": {
            "title": "Verticals",
            "type": "array",
            "description": "The parts of FINN.no to search: torget (the general marketplace), vehicles (cars, MC, boats, caravans, business vehicles), realestate (homes, rentals, new builds, plots, commercial), jobs. Each is searched on its own, once per keyword. Left empty, the vertical is taken from the vertical settings you give (vehicle types, property types, job types, a Torget category), else Torget.",
            "items": {
              "type": "string",
              "enum": [
                "torget",
                "vehicles",
                "realestate",
                "jobs"
              ],
              "enumTitles": [
                "Torget (the general marketplace)",
                "Cars and vehicles (FINN motor)",
                "Real estate (FINN eiendom)",
                "Jobs (FINN jobb)"
              ]
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Search words, each one its own search (\"sofa\", \"tesla model y\", \"sykepleier\", \"balkong\"). Left empty, the vertical is searched without words in FINN's default order (newest first on vehicles and real estate, relevance on Torget and jobs). Up to 100 characters each.",
            "items": {
              "type": "string"
            }
          },
          "torgetCategories": {
            "title": "Torget categories",
            "type": "array",
            "description": "Torget only: categories by FINN's Norwegian name or value (\"Møbler og interiør\", \"Sofaer\", \"Kunst\", or \"0.78\"), each its own search. A name FINN uses on two levels takes the wider one.",
            "items": {
              "type": "string"
            }
          },
          "vehicleTypes": {
            "title": "Vehicle types",
            "type": "array",
            "description": "Vehicles only: which FINN motor searches to read (17 kinds). Left empty: used cars.",
            "items": {
              "type": "string",
              "enum": [
                "car",
                "mc",
                "scooter",
                "atv",
                "snowmobile",
                "boat",
                "boatEngine",
                "boatDock",
                "caravan",
                "mobileHome",
                "truck",
                "bus",
                "construction",
                "tractor",
                "agriTools",
                "threshers",
                "b2bAll"
              ],
              "enumTitles": [
                "Used cars (vans, new, leasing, auctions by filter)",
                "Motorcycles",
                "Mopeds and scooters",
                "ATVs",
                "Snowmobiles",
                "Boats",
                "Boat engines",
                "Boat docks and berths",
                "Caravans",
                "Motorhomes",
                "Trucks",
                "Buses",
                "Construction machinery",
                "Tractors",
                "Farm tools",
                "Combine harvesters",
                "All business vehicles"
              ]
            }
          },
          "propertyTypes": {
            "title": "Real estate sections",
            "type": "array",
            "description": "Real estate only: which FINN eiendom sections to read (12). Left empty: homes for sale.",
            "items": {
              "type": "string",
              "enum": [
                "homes",
                "lettings",
                "newbuildings",
                "leisuresale",
                "abroad",
                "plots",
                "leisureplots",
                "businessrent",
                "businesssale",
                "businessplots",
                "companyforsale",
                "wanted"
              ],
              "enumTitles": [
                "Homes for sale",
                "Homes to rent",
                "New builds",
                "Holiday homes for sale",
                "Homes abroad",
                "Plots",
                "Holiday plots",
                "Commercial property to rent",
                "Commercial property for sale",
                "Commercial plots",
                "Companies for sale",
                "Wanted to buy or rent"
              ]
            }
          },
          "jobTypes": {
            "title": "Job searches",
            "type": "array",
            "description": "Jobs only: all FINN jobs (the default), part time, management, or the NAV job ads FINN shows beside its own.",
            "items": {
              "type": "string",
              "enum": [
                "all",
                "parttime",
                "management",
                "nav"
              ],
              "enumTitles": [
                "All FINN jobs (full and part time)",
                "Part time jobs",
                "Management jobs",
                "NAV job ads shown on FINN"
              ]
            }
          },
          "locations": {
            "title": "Places",
            "type": "array",
            "description": "Counties, municipalities or districts by FINN's Norwegian name (\"Oslo\", \"Bergen\", \"Trøndelag\", \"Grünerløkka\") or FINN's value (\"0.20061\"). Several places are one search (any of them). Works in every vertical.",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "Agder",
                "Akershus",
                "Buskerud",
                "Finnmark",
                "Innlandet",
                "Møre og Romsdal",
                "Nordland",
                "Oslo",
                "Rogaland",
                "Telemark",
                "Troms",
                "Trøndelag",
                "Vestfold",
                "Vestland",
                "Østfold",
                "Utlandet"
              ]
            }
          },
          "latitude": {
            "title": "Latitude",
            "minimum": 57,
            "maximum": 81,
            "type": "number",
            "description": "With longitude and radiusKm: search around a point in Norway (FINN's own map radius, every vertical)."
          },
          "longitude": {
            "title": "Longitude",
            "minimum": 4,
            "maximum": 32,
            "type": "number",
            "description": "With latitude and radiusKm."
          },
          "radiusKm": {
            "title": "Radius (km)",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "With latitude and longitude: the distance in kilometres."
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Torget, vehicles and real estate: the lowest price in kroner (for rentals the monthly rent, for homes the asking price), sent to FINN."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Torget, vehicles and real estate: the highest price in kroner."
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "any",
              "private",
              "business"
            ],
            "type": "string",
            "description": "Private sellers only, or businesses only (dealers, shops, agencies), in Torget, vehicles and real estate. FINN's own filter.",
            "default": "any"
          },
          "postedToday": {
            "title": "New today",
            "type": "boolean",
            "description": "Only ads FINN marks as new today (\"Nye i dag\"), in every vertical.",
            "default": false
          },
          "conditions": {
            "title": "Condition (Torget)",
            "type": "array",
            "description": "Torget only: the item condition by FINN's name (\"Helt ny - Uåpnet/med lapp\", \"Som ny - Ikke synlig brukt\", \"Pent brukt - I god stand\", \"Godt brukt - Synlig brukt\", \"Må fikses - Noen mangler/ødelagte deler\").",
            "items": {
              "type": "string"
            }
          },
          "tradeTypes": {
            "title": "Ad type (Torget)",
            "type": "array",
            "description": "Torget only: \"Til salgs\" (for sale), \"Gis bort\" (given away), \"Ønskes kjøpt\" (wanted).",
            "items": {
              "type": "string"
            }
          },
          "brands": {
            "title": "Brands (Torget)",
            "type": "array",
            "description": "Torget only: brands by FINN's name (\"IKEA\", \"H&M\", \"Apple\").",
            "items": {
              "type": "string"
            }
          },
          "shippingOnly": {
            "title": "Fiks ferdig only (Torget)",
            "type": "boolean",
            "description": "Torget only: ads that can be bought and shipped with FINN's Fiks ferdig.",
            "default": false
          },
          "makes": {
            "title": "Makes",
            "type": "array",
            "description": "Vehicles only: makes by FINN's name (\"Tesla\", \"Volvo\", \"Yamaha\", \"Bavaria\").",
            "items": {
              "type": "string"
            }
          },
          "models": {
            "title": "Models",
            "type": "array",
            "description": "Cars only, with makes: models or series by FINN's name (\"Model Y\", \"XC60\", \"Golf\").",
            "items": {
              "type": "string"
            }
          },
          "minYear": {
            "title": "Minimum model year",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Vehicles only."
          },
          "maxYear": {
            "title": "Maximum model year",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Vehicles only."
          },
          "minMileage": {
            "title": "Minimum mileage (km)",
            "minimum": 0,
            "maximum": 5000000,
            "type": "integer",
            "description": "Vehicles only."
          },
          "maxMileage": {
            "title": "Maximum mileage (km)",
            "minimum": 0,
            "maximum": 5000000,
            "type": "integer",
            "description": "Vehicles only."
          },
          "minPowerHp": {
            "title": "Minimum power (hp)",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Vehicles only."
          },
          "maxPowerHp": {
            "title": "Maximum power (hp)",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Vehicles only."
          },
          "minSeats": {
            "title": "Minimum seats",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Cars only."
          },
          "maxSeats": {
            "title": "Maximum seats",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Cars only."
          },
          "fuelTypes": {
            "title": "Fuel",
            "type": "array",
            "description": "Vehicles only: \"Bensin\", \"Diesel\", \"El\", \"Hybrid bensin\", \"Plug-in hybrid bensin\" and the other names FINN lists.",
            "items": {
              "type": "string"
            }
          },
          "transmissions": {
            "title": "Gearbox",
            "type": "array",
            "description": "Cars only: \"Automat\" or \"Manuell\".",
            "items": {
              "type": "string"
            }
          },
          "bodyTypes": {
            "title": "Body type",
            "type": "array",
            "description": "Vehicles only: the body or type FINN lists for the vehicle type (\"Stasjonsvogn\", \"SUV/Offroad\", \"Kombi 5-dørs\"; MC types; boat classes).",
            "items": {
              "type": "string"
            }
          },
          "wheelDrives": {
            "title": "Wheel drive",
            "type": "array",
            "description": "Cars only: \"Firehjulsdrift\", \"Forhjulsdrift\", \"Bakhjulsdrift\".",
            "items": {
              "type": "string"
            }
          },
          "colours": {
            "title": "Colour",
            "type": "array",
            "description": "Cars only: \"Svart\", \"Hvit\", \"Grå\", \"Blå\" and the other names FINN lists.",
            "items": {
              "type": "string"
            }
          },
          "salesForms": {
            "title": "Sales form",
            "type": "array",
            "description": "Vehicles only: \"Bruktbil til salgs\", \"Nybil til salgs\", \"Leasing\", \"Auksjon\" on cars; \"Brukt båt\", \"Båt til leie\", \"Båt ønskes\" on boats.",
            "items": {
              "type": "string"
            }
          },
          "vansOnly": {
            "title": "Vans only",
            "type": "boolean",
            "description": "Cars only: vans (FINN's registration class \"Varebil\").",
            "default": false
          },
          "propertyKinds": {
            "title": "Property types",
            "type": "array",
            "description": "Real estate only: \"Leilighet\", \"Enebolig\", \"Tomannsbolig\", \"Rekkehus\", \"Hytte\" and the other names FINN lists in the section.",
            "items": {
              "type": "string"
            }
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Real estate only: 1 to 5 (FINN's \"N+\")."
          },
          "minArea": {
            "title": "Minimum area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Real estate only: the usable area in square metres."
          },
          "maxArea": {
            "title": "Maximum area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Real estate only."
          },
          "minTotalPrice": {
            "title": "Minimum total price",
            "minimum": 0,
            "type": "integer",
            "description": "Homes, new builds, holiday homes and plots: the total price with shared debt, in kroner."
          },
          "maxTotalPrice": {
            "title": "Maximum total price",
            "minimum": 0,
            "type": "integer",
            "description": "Homes, new builds, holiday homes and plots."
          },
          "minPlotArea": {
            "title": "Minimum plot area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Real estate only."
          },
          "maxPlotArea": {
            "title": "Maximum plot area (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Real estate only."
          },
          "ownershipTypes": {
            "title": "Ownership",
            "type": "array",
            "description": "Real estate only: \"Selveier\", \"Andel\", \"Aksje\", \"Obligasjon\".",
            "items": {
              "type": "string"
            }
          },
          "facilities": {
            "title": "Facilities",
            "type": "array",
            "description": "Real estate only: \"Balkong/Terrasse\", \"Garasje/P-plass\", \"Heis\" and the other facilities FINN lists.",
            "items": {
              "type": "string"
            }
          },
          "newBuildOnly": {
            "title": "New builds only",
            "type": "boolean",
            "description": "Homes for sale and holiday homes: only new builds (\"Nybygg\").",
            "default": false
          },
          "occupations": {
            "title": "Occupations",
            "type": "array",
            "description": "Jobs only: occupation fields by FINN's name (\"Analyse\", \"Helse\", \"IT utvikling\"). Not together with industries: FINN asks robots not to combine them.",
            "items": {
              "type": "string"
            }
          },
          "industries": {
            "title": "Industries",
            "type": "array",
            "description": "Jobs only: industries by FINN's name (\"Bank, finans og forsikring\", \"Helse og omsorg\"). Not together with occupations.",
            "items": {
              "type": "string"
            }
          },
          "extents": {
            "title": "Extent",
            "type": "array",
            "description": "Jobs only: \"Heltid\" (full time) or \"Deltid\" (part time).",
            "items": {
              "type": "string"
            }
          },
          "sectors": {
            "title": "Sector",
            "type": "array",
            "description": "Jobs only: \"Privat\", \"Offentlig\", \"Organisasjoner\", \"Samvirke\", \"Franchise/Selvstendig næringsdrivende\".",
            "items": {
              "type": "string"
            }
          },
          "remoteOptions": {
            "title": "Home office",
            "type": "array",
            "description": "Jobs only: \"Kun hjemmekontor\" (fully remote), \"Delvis hjemmekontor\" (hybrid), \"Ingen hjemmekontor\".",
            "items": {
              "type": "string"
            }
          },
          "includeNavAds": {
            "title": "Include NAV job ads",
            "type": "boolean",
            "description": "Jobs: FINN also shows job ads copied from NAV (Arbeidsplassen); they are left out unless this is on (or the NAV job search is chosen). Rows say jobSource FINN or NAV.",
            "default": false
          },
          "attributeFilters": {
            "title": "Any other FINN filter",
            "type": "object",
            "description": "Any other filter of the search's own FINN filter list, by FINN's name or Norwegian label, with values by label or value, or {\"min\": n, \"max\": n} for a range. For example {\"energy_label\": [\"A\", \"B\"], \"construction_year\": {\"min\": 2015}, \"job_duration\": [\"Fast\"]}. A filter the search does not offer is refused with the filters it does offer."
          },
          "postedAfter": {
            "title": "Posted on or after",
            "type": "string",
            "description": "Only ads published on or after this day in Norway (YYYY-MM-DD), checked on every row."
          },
          "postedWithinHours": {
            "title": "Posted within (hours)",
            "minimum": 1,
            "maximum": 8760,
            "type": "integer",
            "description": "Only ads published within this many hours of the run's start, checked on every row."
          },
          "includeKeywords": {
            "title": "Must contain",
            "type": "array",
            "description": "Words a row must contain (title, and description when the ad page is read). Any one of them, or all with requireAllKeywords.",
            "items": {
              "type": "string"
            }
          },
          "requireAllKeywords": {
            "title": "Require all words",
            "type": "boolean",
            "description": "With includeKeywords: every word must be in the row.",
            "default": false
          },
          "excludeKeywords": {
            "title": "Must not contain",
            "type": "array",
            "description": "Rows holding any of these words are left out, free.",
            "items": {
              "type": "string"
            }
          },
          "titleOnly": {
            "title": "Look in titles only",
            "type": "boolean",
            "description": "includeKeywords and excludeKeywords look at the title only.",
            "default": false
          },
          "excludeAdIds": {
            "title": "Exclude FINN codes",
            "type": "array",
            "description": "FINN codes (finnkode) or ad links never to deliver.",
            "items": {
              "type": "string"
            }
          },
          "searchUrls": {
            "title": "Search links",
            "type": "array",
            "description": "Search pages copied from FINN.no: Torget (/recommerce/forsale/search), vehicles (/mobility/search/...), real estate (/realestate/<section>/search.html) and jobs (/job/search), read with all their filters. FINN's sort is never sent (its robots.txt asks robots not to): a link is read in FINN's own order.",
            "items": {
              "type": "string"
            }
          },
          "adUrls": {
            "title": "Ad links or FINN codes",
            "type": "array",
            "description": "Ad links of any vertical or FINN codes (finnkode): each read with its ad page and billed as one row of its vertical (Listing, Vehicle, Home or Job), the ad page included. A removed or unknown ad is a free row.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Maximum rows",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "The most paid rows the run delivers (ads, change rows, removed rows), across all searches and links.",
            "default": 100
          },
          "maxItemsPerSearch": {
            "title": "Maximum rows per search",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "The most paid rows from one search or search link."
          },
          "maxPagesPerSearch": {
            "title": "Maximum pages per search",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "The most result pages read for one search (50 rows a page, up to 200 on Torget)."
          },
          "maxRowsPerSearch": {
            "title": "Rows read per search (window)",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "How many rows of each search are read at most; a monitor reads this window of every search every run (100 by default)."
          },
          "includeDetails": {
            "title": "Include the ad page",
            "type": "boolean",
            "description": "Read each ad's page: the full description, every key fact, all images, the seller or dealer card, car equipment and inspection dates, property costs, viewings and agency. Included in the row price, no extra event; it takes about a second per row. Job rows always hold their ad page.",
            "default": false
          },
          "includePersonalData": {
            "title": "Include personal data",
            "type": "boolean",
            "description": "Deliver the fields that name or reach a private person: a private seller's FINN id, street, cadastre numbers, exact map point and map image, a private seller's vehicle plate, VIN (also in the list of facts) and vehicle register link, contact persons (names, titles, phones, e-mails of dealers', agencies' and employers' staff and real estate brokers), and the contacts found in the texts of private ads and job ads. Off by default; you are responsible for using such data lawfully (GDPR). Business data is always delivered.",
            "default": false
          },
          "includeRawData": {
            "title": "Include raw search row",
            "type": "boolean",
            "description": "Add FINN's search row as served (a private seller's only with personal data on).",
            "default": false
          },
          "descriptionFormat": {
            "title": "Description format",
            "enum": [
              "asServed",
              "text",
              "markdown"
            ],
            "type": "string",
            "description": "How the description of the ad page is delivered.",
            "default": "asServed"
          },
          "descriptionMaxLength": {
            "title": "Description maximum length",
            "minimum": 20,
            "maximum": 100000,
            "type": "integer",
            "description": "Cut descriptions to this many characters (descriptionCut marks the row)."
          },
          "compactOutput": {
            "title": "Compact rows",
            "type": "boolean",
            "description": "Deliver only the most used fields.",
            "default": false
          },
          "excludeEmptyFields": {
            "title": "Leave out empty fields",
            "type": "boolean",
            "description": "Drop fields that are empty on a row.",
            "default": false
          },
          "extractContacts": {
            "title": "Extract contacts from texts",
            "type": "boolean",
            "description": "Add the e-mail addresses, phone numbers, websites and social profiles written in the title and description (business ads always; private ads and job ads only with personal data on).",
            "default": false
          },
          "phoneExtractionMode": {
            "title": "Phone extraction",
            "enum": [
              "strict",
              "lenient"
            ],
            "type": "string",
            "description": "With extractContacts."
          },
          "priceSummary": {
            "title": "Price summary per search",
            "type": "boolean",
            "description": "Each search's coverage row carries the count, lowest, quartiles, median, mean and highest price of the ads it met (free).",
            "default": true
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Name a monitor to deliver only ads new to it on every scheduled run (each ad billed once; each search page a monitor run reads is a Results page, also on a day with nothing new). The memory belongs to this Actor; up to 60 characters of letters, digits, spaces and . _ , - : # ( )."
          },
          "resetMonitor": {
            "title": "Reset the monitor",
            "type": "boolean",
            "description": "Forget what the monitor delivered and start again (a run that restarts never resets).",
            "default": false
          },
          "trackChanges": {
            "title": "Track changes",
            "type": "boolean",
            "description": "With a monitor: deliver a known ad again when its price changed (priceChanged, with the previous price and a price history), its title, images, place or status changed (updated) or it came back (reappeared), and report ads no longer on FINN when every search was read to its end (removed rows, confirmed on the ad page). Each such row is billed as its vertical's row.",
            "default": false
          },
          "changesToDeliver": {
            "title": "Changes to deliver",
            "enum": [
              "all",
              "priceChanges",
              "priceDrops"
            ],
            "type": "string",
            "description": "With trackChanges."
          },
          "emitUnchanged": {
            "title": "Deliver unchanged ads too",
            "type": "boolean",
            "description": "With a monitor: deliver known ads again as unchanged (billed as their row).",
            "default": false
          },
          "markReposts": {
            "title": "Mark reposts",
            "type": "boolean",
            "description": "With a monitor: mark a new ad whose vertical, title, price and seller match one the monitor delivered (possibleRepostOf).",
            "default": false
          },
          "skipReposts": {
            "title": "Skip reposts",
            "type": "boolean",
            "description": "With markReposts: leave reposts out, free.",
            "default": false
          },
          "telegramBotToken": {
            "title": "Telegram bot token",
            "type": "string",
            "description": "Send the rows of the run to Telegram through your own bot (the token BotFather gave you)."
          },
          "telegramChatId": {
            "title": "Telegram chat id",
            "type": "string",
            "description": "Your chat id, or a channel name starting with @."
          },
          "slackWebhookUrl": {
            "title": "Slack webhook",
            "type": "string",
            "description": "A Slack incoming webhook link (https://hooks.slack.com/...)."
          },
          "discordWebhookUrl": {
            "title": "Discord webhook",
            "type": "string",
            "description": "A Discord webhook link."
          },
          "whatsappAccessToken": {
            "title": "WhatsApp Cloud API token",
            "type": "string",
            "description": "Your WhatsApp Cloud API token."
          },
          "whatsappPhoneNumberId": {
            "title": "WhatsApp phone number id",
            "type": "string",
            "description": "Your WhatsApp Cloud API phone number id."
          },
          "whatsappTo": {
            "title": "WhatsApp recipient",
            "type": "string",
            "description": "The number to send to, international form without +."
          },
          "webhookUrl": {
            "title": "Webhook",
            "type": "string",
            "description": "A link of your own that receives the delivered rows as JSON (POST, batches of 100)."
          },
          "webhookSecret": {
            "title": "Webhook secret",
            "type": "string",
            "description": "Signs each webhook call (HMAC SHA-256 in X-Signature-Sha256)."
          },
          "webhookHeaders": {
            "title": "Webhook headers",
            "type": "object",
            "description": "Extra headers for the webhook (at most 10)."
          },
          "notificationLimit": {
            "title": "Rows per notification",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "How many rows a message lists (10 by default)."
          },
          "notifyOnlyChanges": {
            "title": "Notify changes only",
            "type": "boolean",
            "description": "With trackChanges: notify changed and removed ads, not new ones.",
            "default": false
          },
          "failIfIncomplete": {
            "title": "Fail if incomplete",
            "type": "boolean",
            "description": "End the run as failed when a search or link could not be read in full (the rows delivered stay).",
            "default": false
          },
          "maxFailedRequestsPercent": {
            "title": "Fail above this share of failed reads (%)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "End the run as failed when more of its reads failed."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave as is: FINN is read through Apify's datacenter proxy, which every FINN door answers. Your own proxy links replace it."
          },
          "requestsPerSecond": {
            "title": "Requests per second",
            "minimum": 0.2,
            "maximum": 2,
            "type": "number",
            "description": "The pace of the run's one exit (0.2 to 2).",
            "default": 1
          },
          "maxConcurrency": {
            "title": "Requests in flight",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "At most this many requests in flight, inside the pace.",
            "default": 2
          },
          "maxRequestRetries": {
            "title": "Retries",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Tries of a failed read after the first.",
            "default": 2
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}