{
  "openapi": "3.0.1",
  "info": {
    "title": "MyHome.ie Scraper - Ireland Real Estate Data & Prices",
    "description": "MyHome.ie listings for sale or rent as clean JSON: price as a number with its meaning (sale, monthly rent, auction AMV, POA), bedrooms, bathrooms, floor area, BER rating, address with coordinates, the agency, listing dates and viewings. No agent contacts, no private landlords named. Unofficial.",
    "version": "0.1",
    "x-build-id": "uRqCGqbcjPmhYi2My"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~myhome-listings/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-myhome-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/neverempty~myhome-listings/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-myhome-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/neverempty~myhome-listings/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-myhome-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": {
          "searchUrl": {
            "title": "MyHome search URL (optional)",
            "type": "string",
            "description": "Paste a MyHome listing page, e.g. https://www.myhome.ie/residential/dublin/property-for-sale or https://www.myhome.ie/rentals/cork/property-to-rent. Only the path is used; query parameters are dropped because MyHome's robots.txt allows only ?page= and every filter runs on the rows already fetched. When set, channel and location are ignored."
          },
          "channel": {
            "title": "For sale or to rent",
            "enum": [
              "sale",
              "rent"
            ],
            "type": "string",
            "description": "sale = /residential/.../property-for-sale, rent = /rentals/.../property-to-rent. A rental's unit (monthly, weekly) is read from the price text and returned as rentalTerm.",
            "default": "sale"
          },
          "location": {
            "title": "Area",
            "type": "string",
            "description": "An area as MyHome spells it in its own addresses: a county (dublin, cork, galway, limerick, waterford), a postal district (dublin-4) or a town (swords). Not every town has its own page: an area MyHome does not know answers 404 and is reported as a no-such-search row.",
            "default": "dublin"
          },
          "maxListings": {
            "title": "Maximum listings to return",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many listings to return. You are charged for the rows you actually receive. MyHome serves 20 listings per page (Dublin for sale: 4,225 listings on 212 pages on 2026-09-05).",
            "default": 20
          },
          "maxPages": {
            "title": "Maximum pages to read",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "Hard cap on the number of list pages requested. 0 = decide from maxListings (20 listings per page, plus a margin). Reading pages is free; only returned listings are charged.",
            "default": 0
          },
          "useProxy": {
            "title": "Use Apify proxy",
            "type": "boolean",
            "description": "Off by default: MyHome answers Apify's network directly. If a request is blocked (403/429/503) the Actor switches to a proxy session by itself and retries.",
            "default": false
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Keep only listings whose address, type, agency, price text or BER rating contains these words. Matching is case-insensitive.",
            "items": {
              "type": "string"
            }
          },
          "keywordMatch": {
            "title": "Keyword match",
            "enum": [
              "any",
              "all"
            ],
            "type": "string",
            "description": "any = at least one keyword must appear; all = every keyword must appear.",
            "default": "any"
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop listings containing any of these words.",
            "items": {
              "type": "string"
            }
          },
          "agencyNames": {
            "title": "Agency names",
            "type": "array",
            "description": "Keep only listings from these agencies (partial match). Private landlords carry no agency name, so this filter drops them.",
            "items": {
              "type": "string"
            }
          },
          "minPrice": {
            "title": "Minimum price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Sale price, or monthly rent. 0 = off. A listing whose price is on application is kept; a weekly rent or a rent without a unit is kept (not comparable with a monthly budget).",
            "default": 0
          },
          "maxPrice": {
            "title": "Maximum price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Sale price, or monthly rent. 0 = off. A listing whose price is on application is kept.",
            "default": 0
          },
          "requirePrice": {
            "title": "Only listings with a published price",
            "type": "boolean",
            "description": "Drop listings whose price is on application.",
            "default": false
          },
          "minBedrooms": {
            "title": "Minimum bedrooms",
            "minimum": -1,
            "type": "integer",
            "description": "-1 = off. A listing with no bedroom count (site, studio) is kept.",
            "default": -1
          },
          "maxBedrooms": {
            "title": "Maximum bedrooms",
            "minimum": -1,
            "type": "integer",
            "description": "-1 = off.",
            "default": -1
          },
          "minBathrooms": {
            "title": "Minimum bathrooms",
            "minimum": 0,
            "type": "integer",
            "description": "0 = off.",
            "default": 0
          },
          "minSizeSqm": {
            "title": "Minimum floor area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "0 = off. A listing with no published area is kept.",
            "default": 0
          },
          "maxSizeSqm": {
            "title": "Maximum floor area (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "0 = off.",
            "default": 0
          },
          "propertyTypes": {
            "title": "Property types",
            "type": "array",
            "description": "Partial match on MyHome's words: Apartment, Terraced House, Semi-Detached House, Detached House, End of Terrace House, Duplex, Penthouse, Bungalow, Cottage, Site. A listing with no type is kept.",
            "items": {
              "type": "string"
            }
          },
          "berRatings": {
            "title": "BER ratings",
            "type": "array",
            "description": "Keep only these Building Energy Ratings (A1, A2, B1 ... G, EXEMPT). MyHome also publishes bare letters (A, B, C ...) and A0 - list them too if you want them. A listing with no rating is kept.",
            "items": {
              "type": "string"
            }
          },
          "excludeSaleAgreed": {
            "title": "Exclude sale agreed",
            "type": "boolean",
            "description": "Drop listings flagged as sale agreed.",
            "default": false
          },
          "excludeBuildToRent": {
            "title": "Exclude build-to-rent developments",
            "type": "boolean",
            "description": "Drop listings flagged as build-to-rent.",
            "default": false
          },
          "excludeAuctions": {
            "title": "Exclude auctions",
            "type": "boolean",
            "description": "Drop listings priced as an auction AMV (advised minimum value).",
            "default": false
          },
          "advertiserType": {
            "title": "Advertiser",
            "enum": [
              "any",
              "agency",
              "private"
            ],
            "type": "string",
            "description": "agency = estate agents only; private = private landlords only (rentals). any = both.",
            "default": "any"
          },
          "activatedWithinDays": {
            "title": "Activated within days",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only listings MyHome activated within this many days (its ActivatedOn date). 0 = off. A listing with no activation date is kept.",
            "default": 0
          },
          "monitoringMode": {
            "title": "Monitoring mode (only new listings)",
            "type": "boolean",
            "description": "Turn this on and schedule the Actor: each run returns only the listings it has never returned before, reading on past the ones it already knows (up to 60 pages, or maxPages) until it has maxListings new ones. Listings removed by your filters are remembered too. Listings that did not fit under the limit are not remembered, so they are still waiting for you on the next run.",
            "default": false
          },
          "resetMonitoringState": {
            "title": "Reset monitoring memory",
            "type": "boolean",
            "description": "One-shot: forget every listing returned so far for this search. The next monitoring run returns everything again.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}