{
  "openapi": "3.0.1",
  "info": {
    "title": "Spitogatos Cyprus Scraper: Property Listings & Agent Phones",
    "description": "Scrape property listings and estate agents from Spitogatos.com.cy in English or Greek. Paste any search, listing or agent URL, or search by town, price and property type, and get price, area, rooms, GPS, photos and the agency phone across Limassol, Nicosia, Larnaca, Paphos and Famagusta.",
    "version": "0.1",
    "x-build-id": "QVd9rxzqRwMyDgoVt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fayoussef~spitogatos-cy-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fayoussef-spitogatos-cy-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-cy-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fayoussef-spitogatos-cy-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-cy-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fayoussef-spitogatos-cy-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": "Spitogatos.com.cy pages to scrape, in English (/en/...) or Greek. Accepts search results pages such as https://www.spitogatos.com.cy/en/for-sale/property/limassol or https://www.spitogatos.com.cy/poliseis/katoikies/limassol, single listings such as https://www.spitogatos.com.cy/en/20674937, agent profiles, and agent directories such as https://www.spitogatos.com.cy/en/agents/limassol. Records come back in the language of the URL. This always takes priority: if you fill it in, the 'Search by filters' section below is ignored. To search by filters instead, remove every row here with the X button.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "max_depth": {
            "title": "Pages to scrape",
            "minimum": 1,
            "type": "integer",
            "description": "How many result pages to go through per search URL (about 24 listings each on a search page, up to 300 on a filter search). Leave empty to scrape every page."
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Places in Cyprus to search, for example 'Limassol', 'Germasogeia' or 'Paphos'. English or Greek both work ('Λεμεσός'), and a partial name is enough. Add several to search them together. Leave empty to search all of Cyprus. Places in Greece are not matched here.",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Result language",
            "enum": [
              "en",
              "el"
            ],
            "type": "string",
            "description": "Language of the records a filter search returns: area names, category labels and descriptions where the agency wrote one. Start URLs ignore this and follow the language of the URL.",
            "default": "en"
          },
          "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. This has to agree with the Property type 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. 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 2010."
          },
          "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."
          },
          "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."
          },
          "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"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional override. Paid runs already include a residential proxy network and need nothing here. Free runs use Apify Proxy residential on your own account. Add your own proxy URLs only to force a specific proxy.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}