Geocodificación en México con marco geográfico oficial

Dirección → coordenadas, colonia oficial (INE), manzana y AGEB (INEGI). Cuando la pregunta no es "¿dónde está?" sino "¿en qué unidad oficial cae, y con qué respaldo?".

Geocodifica "Av. Paseo de la Reforma 222, CDMX" con cualquier geocoder global y obtendrás unas coordenadas correctas y un campo neighborhood que dice algo razonable. Para poner un pin en un mapa, listo, no necesitas más — y honestamente, no nos necesitas a nosotros.

El problema empieza cuando la pregunta no es "¿dónde está?" sino "¿en qué colonia oficial, manzana y AGEB cae — y con qué respaldo?". Esa pregunta la hacen los expedientes de KYC, los padrones, las zonas de cobertura reguladas, los análisis censales y los sistemas de gobierno. Y un neighborhood aproximado, sin fuente, no la responde: la unidad administrativa que usan los reguladores mexicanos no es "la zona que un mapa comercial llama Juárez", es la colonia según los polígonos del INE, la manzana y AGEB según el marco geoestadístico del INEGI, y el CP según SEPOMEX.

Qué es el marco geoestadístico (en 4 capas)

  • Colonia (INE): los polígonos oficiales de colonia que usa la autoridad electoral. Es "la colonia" con procedencia, no una etiqueta comercial.
  • Manzana y AGEB (INEGI): las unidades del marco geoestadístico nacional. El AGEB (área geoestadística básica) es la unidad del censo — si cruzas datos socioeconómicos, esta es la llave.
  • Localidad y municipio (INEGI): con sus claves (cvegeo) — la llave foránea de todo dato público mexicano.
  • Código postal (SEPOMEX): con su polígono, no solo el número.

Cada capa tiene fuente, clave y vigencia. Eso es lo que significa "oficial": no que suene institucional, sino que puedes citar de dónde salió cada campo.

La diferencia en la práctica

Una llamada real (14-jul-2026):

curl "https://api.tlaloc.sh/mx/v1/geo/geocode?address=Av+Paseo+de+la+Reforma+222,+Juarez,+06600+Cuauhtemoc,+CDMX" \
  -H "Authorization: Bearer tlmx_..."
{
  "parsed": {
    "tipo_vial": "Avenida", "calle": "de la Reforma", "num_ext": "222",
    "colonia": "Juarez", "cp": "06600", "municipio": "Cuauhtemoc",
    "estado": "Ciudad de México"
  },
  "candidates": [{
    "lat": 19.4281814, "lng": -99.1617836, "confidence": 1.0,
    "matched": {"method": "rooftop", "cp_match": 1, "col_match": 1, "sim_calle": 1.0},
    "numeracion": {"min": 222, "max": 222, "in_range": true, "interpolated": false},
    "marco": {
      "colonia":   {"nombre": "JUAREZ", "fuente": "ine_bgd", "cp": "06600"},
      "manzana":   {"cvegeo": "0901500010803008", "tipo": "Típica"},
      "ageb":      {"cvegeo": "0901500010803", "ambito": "Urbana"},
      "municipio": {"nombre": "Cuauhtémoc", "cvegeo": "09015"},
      "estado":    {"nombre": "Ciudad de México", "cve_ent": "09"},
      "cp":        {"codigo": "06600", "metodo": "manzana_dissolve"}
    }
  }]
}

Fíjate en lo que un geocoder genérico no te da:

  • parsed — la dirección mexicana descompuesta (tipo de vialidad, número exterior, colonia, CP). El parser entiende cómo se escriben direcciones en México, con sus abreviaturas y su desorden.
  • matched.method: "rooftop" y numeracion.in_range — sabes cómo se resolvió el punto: contra un predio real con el número 222, no interpolando sobre la calle. Cuando sí interpola, te lo dice (interpolated: true). La confianza es auditable, no una caja negra.
  • marco.colonia.fuente: "ine_bgd" — la colonia trae su fuente. Ese campo es la diferencia entre "el mapa dice Juárez" y "el polígono oficial del INE dice JUÁREZ".
  • manzana.cvegeo / ageb.cvegeo — claves INEGI listas para cruzar con el censo o cualquier dato público.

También al revés: de un punto al marco oficial

Si ya tienes coordenadas (del GPS de tu app, por ejemplo), reverse te da el marco por 0.02 u:

curl "https://api.tlaloc.sh/mx/v1/geo/reverse?lat=19.4270&lng=-99.1677" \
  -H "Authorization: Bearer tlmx_..."

Un detalle de esa respuesta real que vale la pena entender: el punto cae en la colonia CUAUHTÉMOC (CP 06500), pero el predio más cercano pertenece al 06600. No es un error — es una frontera de colonias, y la respuesta te da ambas capas por separado (polígono de colonia vs. predio) para que decidas cuál manda en tu caso. Un geocoder que te devuelve un solo string jamás te enseñaría esa distinción; para un expediente, esa distinción es el dato.

Cuándo SÍ necesitas esto (y cuándo no)

Sí:

  • KYC / onboarding fintech — el domicilio del expediente necesita colonia y CP con procedencia, y (spoiler del siguiente post) idealmente sin que tu proveedor guarde la dirección.
  • Padrones y programas — beneficiarios asignados a manzana/AGEB oficiales.
  • Cobertura regulada — cuando "tu zona de servicio" está definida en términos administrativos, no en un dibujo sobre el mapa.
  • Análisis censal / scoring geográfico — el AGEB es la llave al censo del INEGI.
  • Última milla en zonas difícilescalles_cercanas y el polígono del predio ayudan donde la nomenclatura es caótica.

No:

  • Pintar pines en un mapa, autocompletar direcciones en un formulario, calcular rutas. Para eso los geocoders globales son excelentes y más baratos. Úsalos. Este servicio existe para el caso en que la respuesta debe ser la unidad oficial, no una aproximación útil.

Precisión, sin adornos

Nuestra mediana de error es de ~14–17 metros, y ~68–71% de las direcciones caen a menos de 50 m del punto real (medido sobre un hold-out limpio; el caso real puede ser algo peor con direcciones mal escritas). No vamos a escribir "precisión exacta" porque no sería verdad — y porque para asignar colonia, manzana y AGEB no hace falta: esas unidades miden decenas o cientos de metros. Si tu caso necesita precisión de 2 m (replanteo topográfico, por ejemplo), este no es tu producto. Para asignar la unidad administrativa correcta, sobra.

Privacidad: no guardamos tus direcciones

Las direcciones que consultas no se registran ni se cachean. En KYC, salud o gobierno, la dirección es el dato personal — y cada proveedor al que se la mandas es un tercero más en tu mapa de datos. Aquí la consulta se procesa y se descarta. (Este tema merece su propio post; viene en esta serie.)

Precios

ConsultaPrecio
Geocodificación (dirección → coordenadas + marco)0.05 u
Marco geográfico / reverse (punto → marco)0.02 u
CP → polígono0.01 u

1 u = $1 MXN, IVA incluido, prepago por consulta — sin plan mensual. Hay POST /v1/geo/batch para lotes.

Pruébalo sin escribir código

  • Playground de geocodificación — en la página del servicio.
  • Desde tu asistente de IA: las herramientas MCP geocodificar_direccion y consultar_marco_geografico están en https://api.tlaloc.sh/mx/mcp — pídele a Claude "¿en qué colonia oficial y AGEB está Reforma 222?". Más en el servidor MCP.

Empieza

  1. Crea tu cuenta y genera tu key tlmx_.
  2. Una llamada: GET /v1/geo/geocode?address=... con Authorization: Bearer tlmx_....
  3. Guarda las claves (cvegeo, colonia, CP), no la dirección — tu base de datos también agradece la privacidad.

Documentación completa en api.tlaloc.sh/mx/docs · Página del servicio geo.