{
  "openapi": "3.0.1",
  "info": {
    "title": "Tori.fi Scraper — Finland Marketplace Listings, No Phones",
    "description": "Finnish classifieds from Tori (tori.fi), Finland's largest marketplace: price, place, seller type and company, condition, shipping, and descriptions on request. No phones.",
    "version": "0.1",
    "x-build-id": "90DRmmnLJexo6rUPT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/highbrow_fame~tori-listings/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-highbrow_fame-tori-listings",
        "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/highbrow_fame~tori-listings/runs": {
      "post": {
        "operationId": "runs-sync-highbrow_fame-tori-listings",
        "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/highbrow_fame~tori-listings/run-sync": {
      "post": {
        "operationId": "run-sync-highbrow_fame-tori-listings",
        "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": {
          "searchUrls": {
            "title": "Search links",
            "type": "array",
            "description": "Set up a search on tori.fi with all the filters you want (words, category, region or town, price, condition, private or business seller…) and paste the address of the results page. One per line.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Or search for these words, one per line — e.g. \"sohva\", \"iphone 15\", \"sähköpyörä\". The options below apply to them.",
            "items": {
              "type": "string"
            }
          },
          "maxListingsPerSearch": {
            "title": "Max listings per search",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stops each search (link or keyword) after this many listings. Tori shows at most 50 pages (2,650 listings) for one search; to go further, the Actor reads the rest region by region, town by town and in price bands.",
            "default": 200
          },
          "category": {
            "title": "Category",
            "enum": [
              "all",
              "home-and-interior",
              "electronics",
              "sport-and-outdoors",
              "children-and-parents",
              "clothes-and-beauty",
              "garden-and-renovation",
              "entertainment-and-hobbies",
              "antiques-and-art",
              "vehicle-parts",
              "animals",
              "business"
            ],
            "type": "string",
            "description": "Optional, for the keywords above. For a narrower category (e.g. sofas or bikes), set it up on tori.fi and paste the link instead.",
            "default": "all"
          },
          "region": {
            "title": "Place",
            "type": "string",
            "description": "Optional, for the keywords above: a region (maakunta) such as \"Uusimaa\" or \"Pirkanmaa\", a town such as \"Helsinki\", \"Tampere\" or \"Oulu\", or a district such as \"Kallio\". English and Swedish names work too (Lapland, Helsingfors, Åbo). Empty: all of Finland."
          },
          "minPrice": {
            "title": "Min price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional, for the keywords above."
          },
          "maxPrice": {
            "title": "Max price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional, for the keywords above."
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "any",
              "new",
              "as-new",
              "good",
              "fair",
              "for-repair"
            ],
            "type": "string",
            "description": "Optional, for the keywords above.",
            "default": "any"
          },
          "tradeType": {
            "title": "Listing type",
            "enum": [
              "all",
              "for-sale",
              "give-away",
              "wanted"
            ],
            "type": "string",
            "description": "Optional, for the keywords above.",
            "default": "all"
          },
          "sellerType": {
            "title": "Offered by",
            "enum": [
              "all",
              "private",
              "business"
            ],
            "type": "string",
            "description": "Optional, for the keywords above.",
            "default": "all"
          },
          "sortBy": {
            "title": "Sort",
            "enum": [
              "default",
              "newest",
              "cheapest",
              "most-expensive"
            ],
            "type": "string",
            "description": "For the keywords above.",
            "default": "default"
          },
          "exactMatchesOnly": {
            "title": "Only exact matches",
            "type": "boolean",
            "description": "When a search finds only a few listings with your words, Tori adds similar ones and counts them in its result (\"volvo pv444\": 53 listings, 23 of them with the words). Tick to leave the similar ones out. Every record says how it matched in \"matchedBy\".",
            "default": false
          },
          "includeDetails": {
            "title": "Open every listing for its description",
            "type": "boolean",
            "description": "Adds the full description, the category, the condition, the postcode and the item details (brand, size, measurements…) to every listing. One more page per listing, so slower.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Parallel searches",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many searches to work on at the same time.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Used only to try again after a network error: the first try goes out directly.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}