BETA

GET /property-catalog-v1/zones

Devuelve todas las zonas publicables de un país, planas y paginadas. Es el endpoint del mapeo en lote: lo llamás unas pocas veces, guardás el resultado y armás tu tabla de equivalencias.

Antes de usarlo, leé Zonas: ahí está qué es una zona publicable y qué formato tiene el código.

Información del recurso
AutenticaciónRequerida (Token de API, Bearer)
Scopeproperty-api-catalog
HTTP MethodGET
ResponseJSON
Version1

URL del recurso

https://mapaprop.app/api/action/property-catalog-v1/zones

Parámetros

KeyTypeRequiredDescripción
countrystringsíEl código ISO del país, 2 letras (AR, ES, MX…). Los conseguís en /countries
fromintnoDesde qué fila. Por defecto 0
sizeintnoCuántas filas. Por defecto 1000, máximo 5000

Código de ejemplo

GET /api/action/property-catalog-v1/zones?country=AR&from=0&size=1000 HTTP/1.1
Host: mapaprop.app
Authorization: Bearer {access_token}

Respuesta

{
  "total": 7526,
  "from": 0,
  "size": 1000,
  "zones": [
    {
      "code": "1-2-201-0",
      "zone0": 1, "zone1": 2, "zone2": 201, "zone3": 0,
      "level": 2,
      "description": "La Matanza",
      "zone1Description": "Buenos Aires",
      "zone2Description": "La Matanza",
      "path": "Buenos Aires > La Matanza"
    }
  ]
}
CampoTipoDescripción
totalintCuántas zonas tiene el país en total, no en esta página. Es con lo que sabés cuándo terminaste
fromintEl from que pediste
sizeintEl size que pediste
zonesarrayLas filas de esta página

Y dentro de cada fila:

CampoTipoDescripción
codestringEl valor que va en el objeto de la propiedad. Siempre 4 segmentos
zone0 · zone1 · zone2 · zone3intLos mismos cuatro números, sueltos, para que no tengas que partir el code
levelint2 = partido/municipio · 3 = localidad/barrio
descriptionstringEl nombre de esta zona
zone1DescriptionstringEl nombre de su provincia/estado
zone2DescriptionstringEl nombre de su partido/municipio
pathstringLa ancestría armada, Provincia > Partido > Localidad. Para matchear por texto

Paginar

El orden es estable entre llamadas, así que podés recorrerlo de a páginas sin miedo a que una fila se repita o se pierda. El patrón es:

from=0     size=1000
from=1000  size=1000
from=2000  size=1000
…hasta que from >= total

Argentina son 8 llamadas; España, 13. Un from más allá del final devuelve 200 con zones vacío, no un error.

Caché y ETag

Cada respuesta trae un ETag. Si en la llamada siguiente lo mandás en If-None-Match y el catálogo no cambió, te contestamos 304 Not Modified sin cuerpo:

GET /api/action/property-catalog-v1/zones?country=AR&size=1000 HTTP/1.1
Authorization: Bearer {access_token}
If-None-Match: "1-0-1000-46f144e43a1443ed"
HTTP/1.1 304 Not Modified
ETag: "1-0-1000-46f144e43a1443ed"

Guardate el ETag de cada página junto con sus datos: el ETag identifica esa página, no el país entero. Si mandás el de la página 1 pidiendo la página 2, te va a responder 200 con los datos — correcto, pero no te ahorra nada.

Refrescar el catálogo es barato. En vez de decidir cada cuánto rebajarlo, pedilo con el ETag que guardaste: si no cambió nada, son 304s y listo. Si cambió, te llega la versión nueva.

Errores

HTTPerrorQué pasó
400REQUIRED_INPUTFalta country
400INVALID_INPUTEl ISO no corresponde a ningún país, o from es negativo, o size es 0
400INPUT_TOO_LONGPediste más de 5000 por llamada
403INVALID_PERMISSIONTu token no tiene el scope property-api-catalog
403CREDENTIALS_DOES_NOT_MATCHNo mandaste token, o venció
404—Usaste otro método: este endpoint es GET

Ver también

  • Zonas — el concepto y el formato del código
  • La cascada — para resolver una rama sin bajar todo