HasData Zillow MCP Server

Listados de Zillow en venta, alquiler y vendidos, además de detalles completos de propiedades, como JSON estructurado.

Documentación

Servidor MCP de Zillow

Un servidor de Protocolo de Contexto de Modelo (MCP) alojado que brinda a Claude, Cursor, Windsurf y cualquier otro cliente MCP dos herramientas de solo lectura de Zillow. Busque listados en venta, en alquiler y vendidos con filtros enriquecidos, y lea una propiedad individual en su totalidad, todo como JSON estructurado, sin cuenta de Zillow y sin nada que alojar.

Lee páginas públicas de listados en Zillow.com que un visitante sin sesión puede ver.

https://mcp.hasdata.com/api/mcp?apis=zillow

Glama score tool contract MCP Tools npm PyPI License

Contenido

Lo que necesitas

Un cliente MCP y una clave de API de HasData desde el panel de control, gratis de crear sin tarjeta, y la prueba cubre alrededor de 200 llamadas a la tarifa de 5 créditos. Este es un servidor remoto, por lo que la ruta más simple es una URL y un encabezado x-api-key, sin contenedor que ejecutar y sin cuenta de Zillow en ningún lugar del flujo. Un cliente que solo habla stdio lo alcanza a través de un lanzador ligero, publicado como @hasdata/zillow-mcp en npm y hasdata-zillow-mcp en PyPI, que se muestra a continuación.

Inicio rápido

La URL del servidor es la misma para cada cliente. Lo ejecutamos de forma práctica en Claude Code y Claude Desktop. Los otros bloques siguen el formato documentado de cada cliente para un servidor remoto.

CampoValor
URLhttps://mcp.hasdata.com/api/mcp?apis=zillow
TransporteHTTP, transmisible
Encabezado de autenticaciónx-api-key: HASDATA_API_KEY

Los clientes con soporte OAuth pueden agregar la misma URL como conector e iniciar sesión sin poner una clave en un archivo de configuración.

Claude Code
claude mcp add --transport http zillow "https://mcp.hasdata.com/api/mcp?apis=zillow" \
  --header "x-api-key: HASDATA_API_KEY"
Claude Desktop

Configuración, luego Conectores, luego Agregar conector personalizado, luego pegue https://mcp.hasdata.com/api/mcp?apis=zillow e inicie sesión.

Para la ruta de archivo de configuración, Claude Desktop carga solo servidores locales (stdio), por lo que alcanza un servidor remoto a través de un lanzador stdio. El paquete @hasdata/zillow-mcp es ese lanzador, y lee la clave del entorno. Agregue esto a claude_desktop_config.json:

{
  "mcpServers": {
    "zillow": {
      "command": "npx",
      "args": ["-y", "@hasdata/zillow-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}

Para Python en lugar de Node, cambie el lanzador por el paquete PyPI, que uvx ejecuta sin instalación manual:

{
  "mcpServers": {
    "zillow": {
      "command": "uvx",
      "args": ["hasdata-zillow-mcp"],
      "env": { "HASDATA_API_KEY": "YOUR_KEY" }
    }
  }
}
Cursor

~/.cursor/mcp.json para cada proyecto, o .cursor/mcp.json para uno:

{
  "mcpServers": {
    "zillow": {
      "url": "https://mcp.hasdata.com/api/mcp?apis=zillow",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
Windsurf

~/.codeium/windsurf/mcp_config.json. Windsurf llama al campo serverUrl, no url:

{
  "mcpServers": {
    "zillow": {
      "serverUrl": "https://mcp.hasdata.com/api/mcp?apis=zillow",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}
VS Code

.vscode/mcp.json en el espacio de trabajo:

{
  "servers": {
    "zillow": {
      "type": "http",
      "url": "https://mcp.hasdata.com/api/mcp?apis=zillow",
      "headers": { "x-api-key": "HASDATA_API_KEY" }
    }
  }
}

Ejemplos de indicaciones

Indicaciones, no código. Pegue una y el agente elige la herramienta por sí mismo. Cada una está anotada con las llamadas que realiza, porque cada llamada exitosa cuesta 5 créditos.

Busque casas en venta en Austin, TX con al menos tres habitaciones por menos de $600k, ordenadas de más recientes a más antiguas, y deme las diez más recientes con precio y días en el mercado.

Una llamada, 5 créditos. Precio, habitaciones, área y días en el mercado regresan en el resultado de búsqueda.

Tome el resultado principal y extraiga su detalle completo: historial de precios, historial de impuestos, la estimación de precio y las escuelas asignadas.

Una llamada, 5 créditos. Esos viven en la página de la propiedad, que la herramienta de detalles lee por URL.

Encuentre condominios en alquiler en Austin que permitan gatos, luego extraiga la estimación de alquiler de los tres más baratos.

Cuatro llamadas, 20 créditos. Una búsqueda, luego una llamada de propiedad para cada uno de los tres.

Para esta URL de propiedad, deme el precio de lista, la estimación de precio y las últimas tres ventas en su historial de precios.

Una llamada, 5 créditos.

Un resultado de búsqueda es suficiente para clasificar y preseleccionar. El historial de precios, el historial de impuestos, la estimación, las escuelas y el agente provienen de la llamada de propiedad, por lo que una indicación que preselecciona y luego inspecciona tres casas es una búsqueda más tres llamadas de propiedad.

Herramientas

Dos herramientas, de solo lectura. Las muestras a continuación están recortadas de llamadas reales, y los números se mueven a medida que el mercado se mueve. Léalas como formas. Cada nombre de herramienta enlaza a su referencia de endpoint, que lleva la lista completa de campos.

Las muestras son la carga útil, no la respuesta completa. Un resultado tools/call lleva un bloque de texto, y ese texto es en sí mismo JSON que contiene url, status, text y json, con los datos extraídos bajo json. Desde una respuesta JSON-RPC cruda, la ruta es result.content[0].text, analizada, luego .json. Un cliente de chat desenvuelve eso por usted y el código que habla directamente con el endpoint no lo hace.

Obtener listados de bienes raíces de Zillow

hasdata_zillow_listing_getRealEstateListings

Una página de listados por palabra clave de ubicación, filtrada.

ParámetroTipoRequeridoNotas
keywordstringLa ubicación a buscar, como Austin, TX
typestringforSale, forRent o sold
price_min_ / price_max_numberBanda de precio
beds_min_ / beds_max_ / baths_min_ / baths_max_numberBandas de habitaciones y baños
homeTypes__arrayhouse, condo, townhome, multiFamily, apartment, lot, manufactured
daysOnZillownumber/string1, 7, 14, 30, 90, 6m, 12m y más
sortstringnewest, priceLowToHigh, priceHighToLow, squareFeet y más
pagenumberPágina de resultados

La referencia también documenta bandas de pies cuadrados, tamaño de lote, año de construcción y HOA, además de otherAmenities__, views__, pets__, listingType, propertyStatus__, listingPublishOptions__ y más.

Devuelve searchInformation con totalResults, un array properties, y pagination cuyo nextPage es la URL de la página siguiente. Cada propiedad lleva id, url, homeType, status, price, currency, una estimación de alquiler rentZestimate, daysOnZillow, area en pies cuadrados, addressRaw y un address estructurado, latitude, longitude, beds, baths, listingDetails, mediaDetails y photos.

{
  "id": "60134551",
  "url": "https://www.zillow.com/homedetails/6116-Speyside-Dr-Austin-TX-78754/60134551_zpid/",
  "homeType": "SINGLE_FAMILY",
  "status": "FOR_SALE",
  "price": 320000,
  "currency": "$",
  "rentZestimate": 2286,
  "daysOnZillow": 0,
  "area": 2277,
  "address": { "street": "6116 Speyside Dr", "city": "Austin", "state": "TX", "zipcode": "78754" },
  "beds": 4,
  "baths": 3
}

Obtener detalles de propiedad de Zillow

hasdata_zillow_property_getPropertyDetails

Una propiedad en su totalidad, por su URL.

ParámetroTipoRequeridoNotas
urlstringUna URL de propiedad de Zillow, el campo url de un resultado de listado
extractAgentEmailsbooleanIntenta extraer el correo electrónico del agente del listado. Agrega 5 créditos, por lo que la llamada de propiedad cuesta 10 en lugar de 5

Devuelve la página completa: price, currency, fees, beds, baths, area, yearBuilt, homeType, mlsId, un address y geo estructurados, el description y highlights, photos, schools, daysOnZillow, views, saves, un bloque agentInfo, y arrays priceHistory, taxHistory y mortgage. La propia estimación de precio de Zillow llega en un objeto zestimate que contiene zestimate, un estimatedSaleRange y un rentZestimate. Léalo como una estimación, no como un valor confirmado.

area es un objeto aquí, { livingArea, livingAreaUnits }, no el número plano que devuelve la herramienta de búsqueda. Lea area.livingArea para los pies cuadrados en una página de propiedad, o una comparación numérica como area > 2000 falla silenciosamente contra un objeto.

{
  "id": 60134551,
  "status": "FOR_SALE",
  "price": 320000,
  "currency": "USD",
  "yearBuilt": 2002,
  "beds": 4,
  "baths": 3,
  "area": { "livingArea": 2277, "livingAreaUnits": "Square Feet" },
  "fees": { "monthlyHoaFee": "$500 annually" },
  "zestimate": { "zestimate": 318100, "estimatedSaleRange": "$302K - $334K", "rentZestimate": 2286 },
  "address": { "street": "6116 Speyside Dr", "county": "Travis County" },
  "agentInfo": { "agentName": "Marie Coleman", "brokerName": "eXp Realty" },
  "priceHistory": [{ "date": "2026-08-24", "price": 320000, "event": "listedForSale" }],
  "schools": { "elementarySchool": { "name": "Bluebonnet Trail", "district": "Manor ISD" } }
}

Errores y rutas de fallo

Su cliente casi nunca ve un código de error HTTP de una llamada de herramienta. La capa MCP responde 200 y coloca el fallo dentro del resultado, con isError establecido en true y la razón como texto. El agente lee un mensaje donde podría esperar una línea de estado.

Una clave incorrecta aparece como salida de herramienta, no como una conexión fallida. tools/list acepta cualquier clave no vacía y devuelve ambas herramientas, por lo que el cliente completa su protocolo de enlace y muestra verde. La primera llamada de herramienta luego regresa con isError: true y el texto HasData API error: 401 Unauthorized. Esté atento a esa cadena, porque nada antes en el flujo informa el problema.

Una clave faltante es el único error HTTP real. La autorización se ejecuta antes de cualquier herramienta, y la conexión en sí falla con 401. Los encabezados CORS están presentes, y un cliente de navegador lee el estado y no un fallo de red opaco.

Un argumento que rompe el esquema de una herramienta se rechaza antes de convertirse en un raspado. El servidor responde con isError: true y el texto MCP error -32602: Input validation error, nombrando el campo infractor. No se obtiene nada y no se cobra nada.

Una búsqueda sin coincidencias devuelve un resultado exitoso con un array properties vacío, no un error. Una ubicación y un conjunto de filtros sin inventario aún regresan con requestMetadata.status establecido en ok. Pruebe la longitud del array antes de iterar.

Una propiedad que ha sido retirada del listado devuelve 400 con requestMetadata.status establecido en error. Una URL de una búsqueda antigua puede apuntar a un listado que ya no existe.

Los resultados que llevan datos también llevan un requestMetadata.id que vale la pena citar en soporte.

Precios, nivel gratuito y límites

Cada herramienta de Zillow cuesta 5 créditos por llamada exitosa. Activar extractAgentEmails agrega 5 créditos a la llamada de propiedad, 10 en lugar de 5, así que déjelo apagado a menos que necesite el correo electrónico. El tamaño de la respuesta no cambia el precio.

La prueba gratuita es 1,000 créditos durante 30 días sin tarjeta, que son 200 llamadas de Zillow a la tarifa base. Después de eso, una cuenta activa sigue recibiendo 100 créditos recargados cada día cuando su saldo cae por debajo de 100, por lo que un agente de bajo volumen se ejecuta en el nivel gratuito indefinidamente.

Los planes pagos comienzan en $49 al mes por 200,000 créditos, que son 40,000 llamadas. El precio unitario baja con el volumen, desde $1.23 por 1,000 llamadas en el plan de entrada hasta $0.50 en Business, $0.42 en Growth y $0.37 en los planes de alto volumen más grandes.

Su plan también establece la concurrencia. La prueba gratuita permite 1 solicitud a la vez, Startup 15, Business 30, Growth 50, y los planes de alto volumen van de 200 a 1,500. Maneje el caso de desbordamiento de manera defensiva en cualquier cosa desatendida.

Una solicitud que regresa con un estado distinto de 200 no se factura. Una llamada exitosa que no encuentra nada sigue siendo una llamada.

Selección de herramientas

El parámetro de consulta apis decide qué herramientas ve su agente. Menos herramientas significa menos contexto gastado en definiciones de herramientas, y menos oportunidades para que el modelo alcance la incorrecta.

?apis=zillow                     the two tools in this repo
?apis=zillow,redfin              add Redfin real estate
?apis=zillow,google_maps         add Google Maps places

El parámetro acepta nombres de proveedores como zillow y nombres de API individuales como zillow_listing. Los nombres mal escritos se ignoran. Si cada nombre es incorrecto, la solicitud falla con 400, y el cuerpo enumera tanto lo que no reconoció como cada valor válido. Elimine el parámetro y el mismo endpoint expone las 57 herramientas de HasData.

Cómo se compara

Los programas de API propios de Zillow están dirigidos a miembros y socios que gestionan su propio inventario, como las APIs Bridge Interactive y Mortgage, y no son una forma autónoma de leer el mercado público. Para buscar listados y leer propiedades arbitrarias, el scraping de las páginas públicas es la vía, y este servidor lo hace detrás de un esquema estable.

APIs de socios de ZillowEste servidor
PropósitoGestionar tu propio inventario o el del MLSLeer el mercado público
AccesoMembresía o aprobación de socioUna clave y una URL
Búsqueda en todo el mercadoRestringidaSí, con filtros enriquecidos
ConfiguraciónIncorporación empresarialNinguna
SalidaFeeds de sociosJSON estructurado, precio y habitaciones preanalizados

Lo que este servidor no hace. No publica, no envía leads, no accede a datos de cuentas. Lee lo que un visitante sin sesión puede ver en Zillow.com.

FAQ

¿Existe un servidor MCP oficial de Zillow?

Zillow no publica uno. Este está mantenido por HasData y lee páginas públicas, por lo que no necesita una cuenta de Zillow.

¿Qué es un servidor MCP de Zillow?

Un servidor que expone datos de listados de Zillow como herramientas que un cliente de IA puede llamar. El cliente envía una llamada de herramienta a través del Model Context Protocol, el servidor obtiene los datos y devuelve JSON estructurado, y el modelo trabaja con el resultado. Este expone dos herramientas y se ejecuta de forma remota.

¿Necesito una cuenta de Zillow o una clave de API?

No. La única credencial es tu clave de HasData. No hay membresía de Zillow que solicitar, porque las herramientas leen páginas públicas de Zillow.com.

¿Por qué un resultado de búsqueda no muestra historial de precios o escuelas?

Porque Zillow no los incluye en la tarjeta de búsqueda. Están en la página de la propiedad, que la herramienta de detalles lee por URL. Busca para preseleccionar y luego llama a la herramienta de propiedad para obtener profundidad.

¿Qué significa la estimación de precio?

El objeto zestimate contiene el valor estimado propio de Zillow, un rango alrededor de él y una estimación de alquiler. Es un resultado de modelo, no una tasación ni un precio de venta confirmado. Trátalo como una estimación.

¿Puedo usar esto junto con otras APIs de HasData?

Sí. El parámetro apis acepta una lista, y ?apis=zillow,redfin le da a tu agente Zillow más Redfin. Elimina el parámetro y obtienes todo.

¿HasData está afiliado a Zillow?

No. HasData es un servicio independiente y no está afiliado, respaldado ni patrocinado por Zillow Group, Inc. Zillow es una marca comercial de su respectivo propietario.

Cumplimiento y datos personales

HasData accede únicamente a datos disponibles públicamente. Los términos de una plataforma pueden restringir el acceso automatizado, y tú eres responsable de tu propio cumplimiento. Cuando los datos que recopilas incluyan información personal, como los datos de contacto de un agente de listados, asegúrate de tener una base legal para ello según el GDPR, la CCPA o las normas equivalentes en tu jurisdicción.

Enlaces de HasData

Página de producto y generador de solicitudesZillow Scraper API
Documentación del servidorDocumentación del servidor MCP
Las 57 herramientas en un solo servidorHasData/hasdata-mcp
Guías para clientesClientes e integraciones MCP
Todo lo demás que extraemosZillow Scraper API y 54 más
Planes y costos de créditosPlanes y costos de créditos
Claves y usoPanel de HasData
Lanzador Node en npm@hasdata/zillow-mcp
Lanzador Python en PyPIhasdata-zillow-mcp

Desarrollo

Este repositorio es configuración y documentación para un servidor remoto. No hay paso de compilación ni nada que contenerizar.

Las pruebas en test/ verifican el contrato de las herramientas, la parte que puede romperse sin un commit aquí. Comprueban que ?apis=zillow devuelve exactamente dos herramientas, que cada herramienta sigue declarando sus parámetros requeridos, que ningún nombre ha cambiado y que la clave en uso es realmente aceptada. Esa última comprobación llama a una herramienta de verdad y cuesta 5 créditos, que es el precio de un canario que puede fallar por la razón correcta.

# macOS and Linux
HASDATA_API_KEY=your_key_here npm test

# Windows PowerShell
$env:HASDATA_API_KEY="your_key_here"; npm test

La misma suite se ejecuta en CI en cada push y una vez por semana de forma programada, porque la lista de herramientas upstream puede cambiar sin que nadie toque este repositorio. Un fallo significa que la lista de herramientas se movió, la clave dejó de funcionar o el endpoint era inalcanzable, y el mensaje de la aserción indica cuál.

Contribuciones

Las correcciones a las tablas de herramientas y a los ejemplos de respuestas son la contribución más útil, porque son las partes que se desvían. Incluye la llamada que hiciste y la respuesta que obtuviste. Las solicitudes de extracción desde forks ejecutan la suite sin clave, y las comprobaciones en vivo se omiten en lugar de ponerse en rojo.

Licencia

MIT. Consulta LICENSE.