{
  "openapi": "3.0.1",
  "info": {
    "title": "xe.gr Real Estate Scraper — Greece Property Listings",
    "description": "Scrape property listings from xe.gr — Greece's #1 classifieds portal (1.5M+ visitors, 500K+ ads). Extract apartments, houses, land, commercial, parking by area, price, size and bedrooms. Returns price, €/m², floors, year, location, agent and images per listing. Direct HTML — no browser, no anti-bot.",
    "version": "0.0",
    "x-build-id": "WFOYCP0cwuKIW8gsp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/logiover~xe-gr-real-estate-scraper-greece-property-data/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-logiover-xe-gr-real-estate-scraper-greece-property-data",
        "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/logiover~xe-gr-real-estate-scraper-greece-property-data/runs": {
      "post": {
        "operationId": "runs-sync-logiover-xe-gr-real-estate-scraper-greece-property-data",
        "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/logiover~xe-gr-real-estate-scraper-greece-property-data/run-sync": {
      "post": {
        "operationId": "run-sync-logiover-xe-gr-real-estate-scraper-greece-property-data",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "geoPlaceIds"
        ],
        "properties": {
          "geoPlaceIds": {
            "title": "Google Place IDs",
            "type": "array",
            "description": "xe.gr uses Google Place IDs for geographical filtering. Each ID becomes its own task. Find one by opening any area page on xe.gr and copying the long alphanumeric segment from the URL — e.g. for /en/property/r/property-for-sale/ChIJ8UNwBh-9oRQR3Y1mdkU1Nic_athens the place ID is `ChIJ8UNwBh-9oRQR3Y1mdkU1Nic`. Common IDs are listed in the README.",
            "items": {
              "type": "string"
            }
          },
          "areaSlugs": {
            "title": "Area Name Slugs (optional)",
            "type": "array",
            "description": "Optional URL slugs paired 1:1 with `geoPlaceIds`, in the same order. Examples: 'athens', 'thessaloniki', 'patra'. Used in the URL for cleaner request URIs but not strictly required (xe.gr resolves listings from the place ID alone).",
            "items": {
              "type": "string"
            }
          },
          "variation": {
            "title": "Listing Variation",
            "enum": [
              "property-for-sale",
              "property-to-rent",
              "apartment-for-sale",
              "apartment-to-rent",
              "maisonette-for-sale",
              "maisonette-to-rent",
              "detached-house-for-sale",
              "detached-house-to-rent",
              "plots-of-land-for-sale",
              "plots-of-land-to-rent",
              "commercial-property-for-sale",
              "commercial-property-to-rent",
              "parking-spaces-for-sale",
              "parking-spaces-to-rent",
              "various-properties-for-sale",
              "various-properties-to-rent"
            ],
            "type": "string",
            "description": "Determines transaction type, item type and (for residential) building type. The actor maps this to `transaction_name`, `item_type` and `building_type_options[]` automatically.",
            "default": "property-for-sale"
          },
          "priceMin": {
            "title": "Min Price (EUR)",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Minimum price filter. 0 = no minimum.",
            "default": 0
          },
          "priceMax": {
            "title": "Max Price (EUR)",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Maximum price filter. 0 = no maximum.",
            "default": 0
          },
          "sqmMin": {
            "title": "Min Surface (m²)",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Minimum surface area. 0 = no minimum.",
            "default": 0
          },
          "sqmMax": {
            "title": "Max Surface (m²)",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum surface area. 0 = no maximum.",
            "default": 0
          },
          "bedroomsMin": {
            "title": "Min Bedrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Minimum bedroom count. 0 = no minimum.",
            "default": 0
          },
          "bedroomsMax": {
            "title": "Max Bedrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum bedroom count. 0 = no maximum.",
            "default": 0
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "el"
            ],
            "type": "string",
            "description": "URL language prefix. `en` = English, `el` = Greek.",
            "default": "en"
          },
          "maxListings": {
            "title": "Max Listings",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Total cap across all area tasks (0 = unlimited).",
            "default": 200
          },
          "maxPagesPerTask": {
            "title": "Max Pages per Task",
            "minimum": 1,
            "maximum": 295,
            "type": "integer",
            "description": "Pagination depth per Place ID. xe.gr returns ~30-100 listings per page. Site caps deep pagination around page 295.",
            "default": 10
          },
          "requestDelay": {
            "title": "Request Delay (ms)",
            "minimum": 0,
            "maximum": 30000,
            "type": "integer",
            "description": "Delay between sequential requests.",
            "default": 800
          },
          "maxRetries": {
            "title": "Max Retries",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Retries per request on HTTP errors (rotates proxy IP).",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Apify Proxy is recommended. xe.gr does not appear to deploy heavy bot defense; datacenter proxy is usually sufficient, but RESIDENTIAL with country=GR is safest for scale."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}