{
  "openapi": "3.0.1",
  "info": {
    "title": "Madlan - Israel Real Estate Listings",
    "description": "Scrape Madlan.co.il property listings in Israel. Rent & buy across 127+ cities. Returns prices, rooms, area, photos, amenities, property type, and agent contact info.",
    "version": "1.0",
    "x-build-id": "mMhKn26vh9ZUV8TlJ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/swerve~madlan-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-swerve-madlan-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/swerve~madlan-scraper/runs": {
      "post": {
        "operationId": "runs-sync-swerve-madlan-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/swerve~madlan-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-swerve-madlan-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",
        "required": [
          "city",
          "dealType"
        ],
        "properties": {
          "city": {
            "title": "City",
            "type": "string",
            "description": "City name in Hebrew or English (e.g. 'Tel Aviv', 'תל אביב', 'Haifa', 'Jerusalem'). Comma-separated for multiple cities, or 'all' for all 127+ cities. Common cities: Tel Aviv, Jerusalem, Haifa, Beer Sheva, Raanana, Herzliya, Netanya, Ashdod, Rishon Lezion, Petah Tikva, Ramat Gan, Holon, Bat Yam, Rehovot, Modiin, Ashkelon, Kfar Saba, Hadera, Bnei Brak, Eilat"
          },
          "dealType": {
            "title": "Deal Type",
            "enum": [
              "rent",
              "buy"
            ],
            "type": "string",
            "description": "Type of listing to scrape",
            "default": "rent"
          },
          "maxItems": {
            "title": "Max Listings Per City",
            "minimum": 1,
            "type": "integer",
            "description": "Optional cost cap on listings per city. Leave it blank to get EVERY matching listing (there is no default limit). Big cities like Tel Aviv can have thousands of listings, and you pay per result, so set a number (e.g. 200) if you only need a sample."
          },
          "minPrice": {
            "title": "Min Price (₪)",
            "type": "integer",
            "description": "Minimum price filter in ILS (optional)"
          },
          "maxPrice": {
            "title": "Max Price (₪)",
            "type": "integer",
            "description": "Maximum price filter in ILS (optional)"
          },
          "minRooms": {
            "title": "Min Rooms",
            "type": "number",
            "description": "Minimum number of rooms (optional)"
          },
          "maxRooms": {
            "title": "Max Rooms",
            "type": "number",
            "description": "Maximum number of rooms (optional)"
          },
          "publishedAfter": {
            "title": "Published After",
            "type": "string",
            "description": "Only include listings first published on or after this date. Drastically reduces cost for daily monitoring. Accepts ISO (YYYY-MM-DD) or full ISO timestamps."
          },
          "neighbourhood": {
            "title": "Neighbourhood / Street (שכונה / רחוב)",
            "type": "string",
            "description": "Filter by neighbourhood or street name in Hebrew (e.g. נווה זמר, הצפון הישן). Matches against neighbourhood, street name, and address fields."
          },
          "propertyType": {
            "title": "Property Type",
            "enum": [
              "flat",
              "penthouseapp",
              "roofflat",
              "minipenthouse",
              "gardenapartment",
              "duplex",
              "villa",
              "cottage",
              "dualcottage",
              "studio"
            ],
            "type": "string",
            "description": "Filter by property type. Leave empty for all types."
          },
          "excludeAgents": {
            "title": "Exclude Agents",
            "type": "boolean",
            "description": "Only return listings from private owners (exclude agent/broker listings)",
            "default": false
          },
          "requireParking": {
            "title": "Require Parking",
            "type": "boolean",
            "description": "Only return listings that have parking",
            "default": false
          },
          "requireElevator": {
            "title": "Require Elevator",
            "type": "boolean",
            "description": "Only return listings with an elevator in the building",
            "default": false
          },
          "requireBalcony": {
            "title": "Require Balcony",
            "type": "boolean",
            "description": "Only return listings that have a balcony",
            "default": false
          },
          "requireSecureRoom": {
            "title": "Require Secure Room (ממ״ד)",
            "type": "boolean",
            "description": "Only return listings that have a secure room (safe room / mamad)",
            "default": false
          },
          "enrichInsights": {
            "title": "Include Neighborhood Insights",
            "type": "boolean",
            "description": "Adds a 'locationInsights' array to each listing with categorized neighborhood data (planning, safety, livability, transportation, prices) in Hebrew. Costs 1 extra GraphQL call per scan.",
            "default": false
          },
          "includeContactMetadata": {
            "title": "Include contact metadata",
            "type": "boolean",
            "description": "OFF by default. Adds a contactMetadata object to every listing that explains the number in contactPhone: whether Madlan gave it as the private seller's contact number (poc.contactInfo.phone) or as the number it displays for the listing (poc.displayNumber), and when the actor received it. Madlan does not say whether a number is a routing number, so isVirtualPhoneNumber is always null. Makes no extra requests; leaving it off keeps the output exactly as before. contactPhone is not guaranteed to be the publisher's direct line, and the actor does not reveal or try to find the number behind a routing number.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}