{
  "openapi": "3.0.1",
  "info": {
    "title": "Inmuebles24 Scraper — Mexico Property Data",
    "description": "Extrae anuncios de inmuebles24.com en todo México: precio en MXN o USD, m², recámaras, baños, GPS, fotos, descripción completa y el teléfono del anunciante.",
    "version": "1.0",
    "x-build-id": "zzuYU8gBfhe9PKllF"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sian.agency~inmuebles24-property-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sian.agency-inmuebles24-property-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/sian.agency~inmuebles24-property-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sian.agency-inmuebles24-property-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/sian.agency~inmuebles24-property-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sian.agency-inmuebles24-property-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": {
          "operation": {
            "title": "🎯 What do you want to scrape?",
            "enum": [
              "search",
              "agency"
            ],
            "type": "string",
            "description": "Pick one per run. Property Search takes Mexican place names (states, cities, colonias) and returns listing rows; Agency Listings takes inmuebles24 agency page URLs and returns everything that agency currently has on the market.",
            "default": "search"
          },
          "location": {
            "title": "📍 Place in Mexico",
            "type": "string",
            "description": "A Mexican place name — state, city, colonia or a section of one. Ciudad de México, Monterrey, Guadalajara, Cancún, Mérida, Polanco, Zona Hotelera. The name is matched against inmuebles24's own location index and the run log prints exactly which place was matched, so you can see it picked the right one.",
            "default": "Ciudad de México"
          },
          "locations": {
            "title": "🗺️ More places",
            "type": "array",
            "description": "Extra places to search in the same run. Each one runs its own search, so three places return roughly three times the rows. This is also how you get past the per-query page ceiling on a huge search: split a whole state into its cities.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "agencyUrls": {
            "title": "🏢 Agency page URLs",
            "type": "array",
            "description": "Used by the Agency Listings operation: inmuebles24 agency pages, e.g. https://www.inmuebles24.com/inmobiliarias/intercapital-realty_102536653-inmuebles.html. The numeric id at the end of the URL is the agency, so a bare id works too. Every listing that agency currently has in the chosen market comes back.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "transactionType": {
            "title": "🤝 Market",
            "enum": [
              "sale",
              "rent",
              "temporary",
              "transfer"
            ],
            "type": "string",
            "description": "Which market to search. Sale carries 274,938 live listings and rent 114,236; vacation rental is a separate, much smaller market of about 1,100 that most listing exports never touch. One market per run — the portal does not combine them.",
            "default": "sale"
          },
          "propertyType": {
            "title": "🏘️ Property type",
            "enum": [
              "all",
              "apartment",
              "house",
              "house-condo",
              "land",
              "commercial",
              "office",
              "warehouse",
              "building",
              "development"
            ],
            "type": "string",
            "description": "Narrow to one kind of property. 'Everything' returns all of them — apartments alone account for 73,579 of the 274,938 properties on sale, houses for 105,828.",
            "default": "all"
          },
          "minPrice": {
            "title": "💵 Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest asking price to include, in the currency chosen below. For rentals this is the monthly rent. 0 means no lower bound.",
            "default": 0
          },
          "maxPrice": {
            "title": "💰 Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Highest asking price to include, in the currency chosen below. For rentals this is the monthly rent. 0 means no upper bound.",
            "default": 0
          },
          "priceCurrency": {
            "title": "💱 Price currency",
            "enum": [
              "MXN",
              "USD"
            ],
            "type": "string",
            "description": "Which currency the min and max price above are expressed in. Mexican listings are quoted in both, and the filter follows whichever you pick. Rows always report the currency the advertiser actually used.",
            "default": "MXN"
          },
          "minBedrooms": {
            "title": "🛏️ Min bedrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Fewest bedrooms (recámaras) to accept. 0 means no minimum.",
            "default": 0
          },
          "minBathrooms": {
            "title": "🛁 Min bathrooms",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Fewest full bathrooms to accept. Half bathrooms are reported on the row but do not count towards this filter. 0 means no minimum.",
            "default": 0
          },
          "minParking": {
            "title": "🚗 Min parking spaces",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Fewest parking spaces (estacionamientos) to accept. 0 means no minimum.",
            "default": 0
          },
          "minSurface": {
            "title": "📐 Min size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest area in square metres, measured against whichever surface you pick below. 0 means no minimum.",
            "default": 0
          },
          "maxSurface": {
            "title": "📏 Max size (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Largest area in square metres, measured against whichever surface you pick below. 0 means no maximum.",
            "default": 0
          },
          "surfaceType": {
            "title": "📊 Which surface to measure",
            "enum": [
              "land",
              "built"
            ],
            "type": "string",
            "description": "Mexican listings quote two areas and the size filter has to pick one. Lot size is the portal's own default and the only one land listings carry; built area is the more useful measure for apartments. Both are reported on every row regardless.",
            "default": "land"
          },
          "publisherType": {
            "title": "🧑‍💼 Listed by",
            "enum": [
              "all",
              "agency",
              "owner"
            ],
            "type": "string",
            "description": "Owner-direct listings are a small slice — 6,109 of the 274,938 on sale — and the one buyers hunt for, because there is no agency commission attached. Agency listings are the rest.",
            "default": "all"
          },
          "propertyAge": {
            "title": "🏗️ Property age",
            "enum": [
              "any",
              "under-construction",
              "brand-new",
              "up-to-5",
              "up-to-10",
              "up-to-20",
              "up-to-50",
              "over-50"
            ],
            "type": "string",
            "description": "Brand-new stock is 140,133 of the properties on sale, which is what makes this the fastest way to isolate new developments from resale.",
            "default": "any"
          },
          "publishedWithin": {
            "title": "🕒 Published within",
            "enum": [
              "any",
              "today",
              "2-days",
              "week",
              "15-days",
              "30-days",
              "45-days"
            ],
            "type": "string",
            "description": "Restrict to recently posted listings. Pair 'Last week' with a schedule and each run returns only what appeared since the last one — about 15,000 nationwide in a typical week.",
            "default": "any"
          },
          "requiredMedia": {
            "title": "🎥 Must include",
            "enum": [
              "any",
              "video",
              "tour-360",
              "floor-plan"
            ],
            "type": "string",
            "description": "Keep only listings that carry a particular kind of media. Useful when you are building a feed that has to render something richer than photos — 27,447 of the properties on sale have a video.",
            "default": "any"
          },
          "sortBy": {
            "title": "↕️ Sort by",
            "enum": [
              "relevance",
              "newest",
              "price-low",
              "price-high",
              "most-viewed",
              "price-drops"
            ],
            "type": "string",
            "description": "Newest first is what you want when running this on a schedule — the new stock lands on page 1. 'Recently reduced' surfaces listings whose asking price just dropped, which no other ordering shows you.",
            "default": "relevance"
          },
          "maxResults": {
            "title": "🔢 Max listings",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Stop after this many listings across every place searched. Each request returns 30 rows, so the run stops at the first request that crosses your limit. A single query cannot be paged past its own last page — the actor stops there and reports the true match count.",
            "default": 90
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}