BYROAPI
Documentación de la API
Todo lo que necesitas para conectar tu sitio con BYRO.

Cómo empezar

La API de BYRO te permite mostrar tu inventario en tu sitio web y recibir los interesados directamente en el CRM, sin capturar nada dos veces.

Todo vive en la dirección de tu inmobiliaria:

https://tuinmobiliaria.byro.mx/api/v1

Cada inmobiliaria tiene su propia dirección y sus propias llaves. Las creas desde Configuración → API dentro de BYRO.

Autenticación

Cada petición lleva tu llave en la cabecera X-API-Key:

X-API-Key: byro_a1b2c3d4…

También se acepta Authorization: Bearer, porque es lo que mandan muchas herramientas por omisión.

Una llave por integración

Puedes crear tantas como necesites, cada una con sus propios permisos. Así la llave que le das a quien hace tu sitio web sólo puede leer propiedades y registrar interesados —no ve tus contactos ni tus comisiones—, y si esa persona deja de trabajar contigo revocas la suya sin romper las demás integraciones.

La llave se muestra una sola vez

Al crearla. Después BYRO sólo guarda una huella, no la llave: si nuestra base se filtrara, no habría nada que usar. Si la pierdes, crea otra y revoca la anterior.

Límite de peticiones

120 por minuto. Si lo excedes recibes un 429 y basta con esperar. El límite protege el servicio de todos: un bucle mal escrito en un sitio no debe afectar a los demás.

Listar propiedades

GET/propiedades

El inventario publicado, con filtros y paginación.

Devuelve sólo las propiedades publicadas. Los borradores, las vendidas y las archivadas no aparecen: lo que no está a la venta no debe salir en ningún sitio.

ParámetroTipoPor omisiónPara qué
paginaentero1Qué página traer.
limiteentero20Cuántas por página. Máximo 50.
operaciontextoventa, renta o renta_temporal.
tipotextocasa, departamento, terreno… Consulta /catalogos.
coloniatextoBusca dentro del nombre de la colonia.
recamaras_minenteroRecámaras mínimas.
precio_minnúmeroPrecio mínimo, en la moneda de la operación.
precio_maxnúmeroPrecio máximo.

Respuesta

{
    "datos": [
        {
            "codigo": "BYRO-A1B2C3",
            "titulo": "Casa en Venta en Lomas de Chapultepec",
            "tipo": "casa",
            "operaciones": [
                {
                    "tipo": "venta",
                    "precio": 25000000,
                    "moneda": "MXN"
                }
            ],
            "recamaras": 4,
            "banos": 4.5,
            "estacionamientos": 3,
            "m2_terreno": 450,
            "m2_construccion": 380,
            "colonia": "Lomas de Chapultepec",
            "municipio": "Miguel Hidalgo",
            "estado": "Ciudad de México",
            "foto": "https://tuinmobiliaria.byro.mx/uploads/propiedades/abc123_md.jpg",
            "actualizada": "2026-08-08 14:32:00"
        }
    ],
    "paginacion": {
        "pagina": 1,
        "limite": 20,
        "total": 137,
        "paginas": 7
    }
}

Ver una propiedad

GET/propiedades/{codigo}

El detalle completo, con todas las fotos y amenidades.

Se busca por el código global —el que empieza con BYRO—, no por un identificador interno: ése puede cambiar, el código no.

La ubicación exacta sólo viene si la propiedad la publica. Cuando el asesor decidió reservarla, se devuelve `{"aproximada": true}` en vez de la dirección: esa decisión vale igual en la API que en la ficha pública.

Respuesta

{
    "datos": {
        "codigo": "BYRO-A1B2C3",
        "titulo": "Casa en Venta en Lomas de Chapultepec",
        "descripcion": "Residencia de tres niveles con acabados de primera…",
        "tipo": "casa",
        "operaciones": [
            {
                "tipo": "venta",
                "precio": 25000000,
                "moneda": "MXN"
            }
        ],
        "recamaras": 4,
        "fotos": [
            {
                "chica": "https://tuinmobiliaria.byro.mx/uploads/propiedades/abc_sm.jpg",
                "mediana": "https://tuinmobiliaria.byro.mx/uploads/propiedades/abc_md.jpg",
                "grande": "https://tuinmobiliaria.byro.mx/uploads/propiedades/abc_lg.jpg"
            }
        ],
        "amenidades": [
            {
                "slug": "alberca",
                "nombre": "Alberca"
            }
        ],
        "ubicacion": {
            "calle": "Sierra Madre",
            "numero": "415",
            "latitud": 19.4285,
            "longitud": -99.2105
        }
    }
}

Registrar un interesado

POST/leads

Lo que llama el formulario de contacto de tu sitio.

Si la persona ya existe en el CRM, no se duplica: se le suma el interés en esta propiedad y se avisa al asesor que ya la atiende.

Hace falta el nombre y **al menos** un teléfono o un correo. Sin una forma de contacto, nadie podría responderle.

ParámetroTipoPor omisiónPara qué
nombretextoobligatorioNombre completo. Se separa solo en nombre y apellidos.
telefonotextoObligatorio si no mandas correo.
emailtextoObligatorio si no mandas teléfono.
mensajetextoLo que escribió la persona.
propiedadtextoCódigo de la propiedad que le interesó.

Respuesta

{
    "datos": {
        "registrado": true,
        "mensaje": "Interesado registrado."
    }
}

Catálogos

GET/catalogos

Los valores válidos para filtrar.

Devuelve sólo lo que de verdad se usa en el inventario. Ofrecer un catálogo entero de opciones que ninguna propiedad tiene llenaría los filtros de tu sitio con categorías vacías.

Respuesta

{
    "datos": {
        "operaciones": [
            "venta",
            "renta",
            "renta_temporal"
        ],
        "tipos": [
            "casa",
            "departamento",
            "terreno"
        ],
        "amenidades": [
            {
                "slug": "alberca",
                "nombre": "Alberca"
            }
        ],
        "monedas": [
            "MXN",
            "USD"
        ]
    }
}

Errores

Todos vienen con la misma forma, y con un código legible además del número: te permite distinguir la causa sin depender del texto, que puede cambiar.

{
  "error": {
    "codigo": "sin_permiso",
    "mensaje": "Esta llave no tiene el permiso \"leads.crear\"."
  }
}
HTTPCódigoQué pasó
401sin_llaveNo mandaste la cabecera X-API-Key.
401llave_invalidaLa llave no existe o fue revocada.
403sin_permisoLa llave no tiene el permiso que esa ruta exige.
404no_encontradaNo hay ninguna propiedad publicada con ese código.
422falta_nombreFalta el nombre del interesado.
422falta_contactoFalta teléfono y correo: hace falta al menos uno.
422email_invalidoEl correo no tiene formato válido.
422propiedad_no_encontradaEl código de propiedad que mandaste no existe.
429demasiadas_peticionesExcediste el límite por minuto. Espera y reintenta.
500error_internoAlgo falló de nuestro lado. Si persiste, avísanos.

Ejemplos

Cambia TU_LLAVE por la tuya y funcionan tal cual.

// Listar propiedades en venta
const r = await fetch('https://tuinmobiliaria.byro.mx/api/v1/propiedades?operacion=venta&limite=12', {
  headers: { 'X-API-Key': 'TU_LLAVE' }
});

const { datos, paginacion } = await r.json();

datos.forEach(p => {
  console.log(p.codigo, p.titulo, p.operaciones[0].precio);
});