Zonas
Tu sistema guarda cada propiedad con tus zonas. El nuestro espera las nuestras. Antes de
mandarnos la primera propiedad necesitás una tabla de equivalencias —"mi zona 4471 es 1-1-49-0 de
Mapaprop"— que armás una vez y después reusás en cada alta.
Esta página explica cómo armarla. Para eso hay dos formas de pedirnos las zonas, y cuál te conviene depende de qué estés haciendo.
Las dos formas, y cuándo usar cada una
| Estás haciendo | Usá | Por qué |
|---|---|---|
| Mapear tu catálogo entero, una vez, de tu lado | La lista completa | Te traés todas las zonas del país y las cruzás contra las tuyas sin ir y venir |
| Resolver una rama puntual (una provincia, un partido) | La cascada | Tres llamadas chicas en vez de bajar miles de filas |
Lo normal es usar las dos: la lista para el mapeo inicial, la cascada para consultas puntuales después.
El catálogo se baja una vez y se guarda. No es un endpoint para llamar en cada alta de propiedad: las zonas cambian muy poco. Guardate el resultado de tu lado y refrescalo de vez en cuando — el endpoint te ayuda con eso, ver caché y ETag.
El código de zona: 4 segmentos, siempre
Cada zona tiene un código que es lo único que viaja en el objeto de la propiedad:
1-2-201-0
│ │ │ └─ zone3 — localidad / barrio (0 si no bajás a ese nivel)
│ │ └──── zone2 — partido / municipio
│ └─────── zone1 — provincia / estado
└───────── zone0 — país
Siempre cuatro segmentos, aunque no haya zone3. Cuando no bajás al último nivel, ahí va 0 —
no se omite. 1-1-49 no es un código válido; el válido es 1-1-49-0.
Los cuatro números también vienen sueltos en cada fila (zone0, zone1, zone2, zone3), así que
podés llenar el objeto sin partir el string.
Qué es una zona publicable
Acá está lo que más sorprende, y conviene entenderlo antes de mapear:
No sólo las hojas del árbol son publicables. El partido también lo es, por sí mismo.
| Código | Es | ¿Publicable? |
|---|---|---|
1-2-201-0 | La Matanza (el partido entero) | Sí |
1-2-201-117 | Aldo Bonzi (una localidad de La Matanza) | Sí |
1-1-49-0 | Palermo Hollywood (un barrio porteño, sin nivel debajo) | Sí |
Si sabés la localidad exacta, mandá la localidad. Si sólo sabés el partido, mandá el partido con -0
al final: es una dirección válida y no necesitás inventar una localidad.
Cada fila trae un campo level que te dice cuál de los dos es (2 = partido, 3 = localidad).
Cómo cruzar contra tus zonas
Cada fila trae los nombres de los ancestros como campos propios, además del path armado:
{
"code": "1-2-201-117",
"zone0": 1, "zone1": 2, "zone2": 201, "zone3": 117,
"level": 3,
"description": "Aldo Bonzi",
"zone1Description": "Buenos Aires",
"zone2Description": "La Matanza",
"path": "Buenos Aires > La Matanza > Aldo Bonzi"
}
- Para matchear por texto contra tus nombres, usá
path: incluye la ancestría, que es lo que desambigua. Hay decenas de "San Martín" en Argentina; "Buenos Aires > San Martín" hay uno. - Para armar un árbol de tu lado, agrupá por
zone1y después porzone2. No hace falta partir elpathni llamar a la cascada: la lista plana ya trae todo.
Guardá el code, no el nombre. Los nombres se pueden corregir (una tilde, una abreviatura);
el código no cambia. Si tu mapeo se apoya en el texto, un día se rompe solo.
Los países
Antes que nada necesitás saber qué número es tu país, porque todo lo demás lo pide:
GET https://mapaprop.app/api/action/property-catalog-v1/countries
Sin parámetros. Devuelve los países con su ISO y su id (el zone0):
[
{ "id": 1, "iso": "AR", "description": "Argentina" },
{ "id": 2, "iso": "ES", "description": "España" }
]
En el resto de los endpoints el país va por ISO (country=AR), no por número.
Autenticación
Todo el catálogo pide Authorization: Bearer {tu access_token} con el scope
property-api-catalog.
El catálogo sale de mapaprop.app/api/action/…, no de property-api.mapaprop.com. Son dos
hosts y es a propósito: el catálogo vive donde viven los datos. El token es el mismo para los
dos, no necesitás credenciales aparte.
Si te devuelve 403, es el token o el scope; si te devuelve 404, es el método o la URL (todos
estos endpoints son GET).
Ver también
- La lista completa de zonas — para el mapeo en lote
- La cascada — para resolver una rama
- El objeto JSON de la propiedad — dónde va el código
- POST /properties/verify — probá tu objeto antes de publicar