{
  "openapi": "3.0.1",
  "info": {
    "title": "spitogatos.gr",
    "description": "Scrape real estate listings and Agents from Spitogatos.gr in both English and Greek. Collect prices, photos, location, and more. Easy setup, fast results, ready for Excel, JSON, or API integration",
    "version": "0.0",
    "x-build-id": "20qjxIosX4GkHaylB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fayoussef~spitogatos-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fayoussef-spitogatos-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/fayoussef~spitogatos-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fayoussef-spitogatos-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/fayoussef~spitogatos-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fayoussef-spitogatos-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": {
          "start_urls": {
            "title": "Start URLs",
            "type": "array",
            "description": "URLs to start with, for example https://www.spitogatos.gr/en/for_sale-studios/analipsi-mpotsari-nea-paralia/newly_built/maxprice-110000 . This is the main way to use the Actor and it always takes priority: if you fill this in, the 'Search by filters' section below is ignored. To search by filters instead, remove every row here with the X button rather than just clearing its text, since a blank row counts as an invalid URL.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "max_depth": {
            "title": "Pages to Scrape",
            "type": "integer",
            "description": "How many pages the scraper should go through. Leave empty to scrape ALL pages of the URL."
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Search by place name instead of pasting a URL, for example 'Analipsi - Mpotsari - Nea Paralia' or 'Kolonaki'. English or Greek both work, and a partial name is enough. Postcodes do not work. Add several to search them all at once. Names repeat around Greece, so if you mean the one in Thiva rather than Athens, type the full name as the site shows it: 'Kolonaki (Thiva)'.",
            "items": {
              "type": "string"
            }
          },
          "listing_type": {
            "title": "Sale or rent",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "Whether to look for properties for sale or for rent.",
            "default": "sale"
          },
          "category": {
            "title": "Category",
            "enum": [
              "residential",
              "commercial",
              "land",
              "other",
              "new_development",
              "student_housing"
            ],
            "type": "string",
            "description": "The broad kind of property, matching the tabs on the site's own search. This has to agree with the Property types below: asking for an office under Home is rejected by the site. New development and Student housing are Home searches narrowed to those listings, so they take the Home property types.",
            "default": "residential"
          },
          "property_types": {
            "title": "Property type",
            "enum": [
              "apartment",
              "studio",
              "maisonette",
              "detached",
              "villa",
              "loft",
              "bungalow",
              "building",
              "apartment complex",
              "farm",
              "houseboat",
              "other residential",
              "office",
              "store",
              "warehouse",
              "industrial space",
              "craft space",
              "hotel",
              "business building",
              "hall",
              "showroom",
              "other commercial",
              "plot",
              "parcel",
              "island",
              "other land",
              "parking spot",
              "business",
              "prefabricated",
              "detachable",
              "air",
              "other"
            ],
            "type": "string",
            "description": "One property type to look for. Pick a type that belongs to the Category chosen above, the category each one belongs to is shown in brackets. New development and Student housing use the home types. Leave empty for all types in that category."
          },
          "price_min": {
            "title": "Price from (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price to include. For rentals this is the monthly rent."
          },
          "price_max": {
            "title": "Price to (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price to include. For rentals this is the monthly rent."
          },
          "area_min": {
            "title": "Area from (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest living area to include, in square metres."
          },
          "area_max": {
            "title": "Area to (m2)",
            "minimum": 0,
            "type": "integer",
            "description": "Largest living area to include, in square metres."
          },
          "rooms_min": {
            "title": "Rooms from",
            "minimum": 0,
            "type": "integer",
            "description": "Fewest rooms to include. Ignored for the Land category, where it would match nothing."
          },
          "rooms_max": {
            "title": "Rooms to",
            "minimum": 0,
            "type": "integer",
            "description": "Most rooms to include. Ignored for the Land category, where it would match nothing."
          },
          "construction_year_min": {
            "title": "Built after",
            "minimum": 1800,
            "type": "integer",
            "description": "Earliest construction year to include, for example 1988."
          },
          "construction_year_max": {
            "title": "Built before",
            "minimum": 1800,
            "type": "integer",
            "description": "Latest construction year to include."
          },
          "floor_min": {
            "title": "Lowest floor",
            "enum": [
              "basement",
              "semi_basement",
              "ground_floor",
              "semi_ground_floor",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10"
            ],
            "type": "string",
            "description": "Lowest floor to include. Ignored for the Land category, where it would match nothing."
          },
          "floor_max": {
            "title": "Highest floor",
            "enum": [
              "ground_floor",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "15",
              "20",
              "40"
            ],
            "type": "string",
            "description": "Highest floor to include. Ignored for the Land category, where it would match nothing."
          },
          "heating_controllers": {
            "title": "Heating",
            "type": "array",
            "description": "Keep only properties with heating, or with a particular heating arrangement.",
            "items": {
              "type": "string",
              "enum": [
                "with_heating",
                "autonomous",
                "central"
              ],
              "enumTitles": [
                "With heating",
                "Autonomous heating",
                "Central heating"
              ]
            }
          },
          "heating_media": {
            "title": "Heating type",
            "type": "array",
            "description": "Which fuel or heating system the property uses.",
            "items": {
              "type": "string",
              "enum": [
                "natural_gas",
                "gas",
                "wood",
                "pellet",
                "thermal_accumulator"
              ],
              "enumTitles": [
                "Natural gas",
                "Gas",
                "Wood",
                "Pellet",
                "Thermal accumulator"
              ]
            }
          },
          "energy_class": {
            "title": "Energy class",
            "enum": [
              "a",
              "b",
              "c",
              "d",
              "e",
              "f",
              "g"
            ],
            "type": "string",
            "description": "Keep only properties of this energy class or better."
          },
          "amenities": {
            "title": "Features",
            "type": "array",
            "description": "Extra features the property must have. Each one you add narrows the result, and stacking many of them on a small area can easily match nothing.",
            "items": {
              "type": "string",
              "enum": [
                "hasMainImage",
                "reductions",
                "garage",
                "storage",
                "elevator",
                "furnished",
                "airConditioning",
                "balcony",
                "garden",
                "fireplace",
                "secureDoor",
                "alarm",
                "penthouse",
                "corner",
                "petsAllowed",
                "accessibleForDisabled",
                "loadingDock",
                "auction"
              ],
              "enumTitles": [
                "With photos",
                "Reduced price",
                "Garage",
                "Storage",
                "Elevator",
                "Furnished",
                "Air conditioning",
                "Balcony",
                "Garden",
                "Fireplace",
                "Secure door",
                "Alarm",
                "Penthouse",
                "Corner",
                "Pets allowed",
                "Accessible for disabled",
                "Loading dock",
                "Auction"
              ]
            }
          },
          "posted_within": {
            "title": "First posted within",
            "enum": [
              "24hours",
              "3days",
              "1week",
              "1month",
              "3months",
              "6months",
              "1year"
            ],
            "type": "string",
            "description": "Keep only listings first published in this window."
          },
          "updated_within": {
            "title": "Updated within",
            "enum": [
              "24hours",
              "3days",
              "1week",
              "1month",
              "3months",
              "6months",
              "1year"
            ],
            "type": "string",
            "description": "Keep only listings updated in this window."
          },
          "sort_by": {
            "title": "Sort by",
            "enum": [
              "rankingscore",
              "price"
            ],
            "type": "string",
            "description": "How the site should rank the results before they are collected.",
            "default": "rankingscore"
          },
          "sort_order": {
            "title": "Sort direction",
            "enum": [
              "desc",
              "asc"
            ],
            "type": "string",
            "description": "Whether the sort above runs from high to low or low to high.",
            "default": "desc"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}