Documentación de la API - InmoFlow
code API REST · v1

Documentación de la API

Conecta cualquier sitio externo (WordPress, una landing, tu app) con InmoFlow. Lee tu catálogo de propiedades y desarrollos, consulta métricas en tiempo real y recibe leads directamente en tu CRM. Pensada para consumirse servidor a servidor.

rocket_launch

Introducción

La API REST de InmoFlow expone tu información de forma segura para que cualquier sistema externo pueda leer tu catálogo, consultar métricas y enviar prospectos a tu CRM. Todas las respuestas son JSON y todo el acceso se controla con una llave secreta por cuenta.

URL base

https://inmoflow.pro/api/v1

Todos los endpoints cuelgan de esta ruta, por ejemplo https://inmoflow.pro/api/v1/properties.


key

Autenticación

Cada petición se autentica con una llave de API que generas desde el panel en Configuración → Llaves de API. La llave se muestra una sola vez al crearla. Envíala en la cabecera de autorización:

Authorization: Bearer TU_LLAVE

También se acepta la cabecera X-Api-Key: TU_LLAVE.

warning

La llave es secreta: úsala solo desde tu servidor. Nunca la expongas en el navegador ni en código del lado del cliente. Puedes revocarla o regenerarla en cualquier momento desde el panel.


shield_person

Permisos

Cada llave tiene permisos que limitan a qué recursos puede acceder. Activa solo los que necesite tu integración:

Permiso Da acceso a
properties Catálogo de propiedades públicas.
developments Desarrollos públicos y sus unidades.
agency Identidad de la inmobiliaria (logo, contacto).
metrics Métricas agregadas (solo conteos, sin datos de contacto).
leads Recibir prospectos desde sitios externos (escritura).
team ⚠️ Leer el equipo (incluye datos personales) y dar de alta miembros, pendientes de activación (privilegiado, apagado por defecto).
sso ⚠️ Generar enlaces de acceso directo al panel (privilegiado, apagado por defecto).


monitoring

Métricas / estadísticas

GET/metricsTodas las métricas agregadas de tu cuenta.

Devuelve únicamente conteos agregados (sin datos de contacto ni PII), agrupados en cuatro bloques más un resumen:

  • properties — total, públicas, por estatus, por tipo, por recámaras, estadísticas de precio (MXN) y altas recientes.
  • developments — total, por estatus, por etapa de venta, por tipo y unidades (total/públicas/disponibles).
  • leads — total, abiertos, ganados/perdidos, pipeline por etapa, por origen, tasa de conversión y altas recientes.
  • agents — total y disponibles.
  • overview — los números principales para un dashboard rápido.

Usa ?section=properties|developments|leads|agents|overview para pedir solo un bloque. Requiere una llave con el permiso Métricas / estadísticas.

Ejemplo — solo el resumen

curl -H "Authorization: Bearer TU_LLAVE" \ "https://inmoflow.pro/api/v1/metrics?section=overview"

person_add

Recibir leads (escritura)

POST/leadsRegistra un prospecto y lo auto-asigna a un asesor.

Campos: name* y email* (obligatorios), phone o whatsapp (al menos uno), message, notes, budget, city, state, source, property_id o development_id (deben pertenecer a tu cuenta). Requiere una llave con el permiso Recibir leads.

Ejemplo — enviar un lead

curl -X POST "https://inmoflow.pro/api/v1/leads" \ -H "Authorization: Bearer TU_LLAVE" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "name": "Ana López", "email": "ana@correo.com", "phone": "+52 55 1234 5678", "message": "Me interesa esta propiedad", "source": "Landing campaña FB" }'

groups

Equipo (sincronización)

GET/teamListado del equipo con perfil completo (paginado).
GET/team/{id|email}Detalle de un miembro.
POST/teamDa de alta o actualiza un miembro (upsert por email).
DELETE/team/{id|email}Quita a un miembro de este espacio.

Sincroniza el equipo de tu inmobiliaria en ambos sentidos. La lectura devuelve el perfil completo (incluye datos personales como correo y teléfono), por lo que requiere el permiso privilegiado Equipo, apagado por defecto.

Al dar de alta, campos obligatorios: name*, email*, phone* y role* (uno de admin, subadmin, agent, editor, cobranza, viewer); opcionales city, state, specialties[], languages[], assignment_order, has_transport. Si el correo ya existe en tu cuenta se actualiza su perfil; si es nuevo se crea pendiente de activación: queda registrado pero sin acceso al panel hasta que un administrador lo active manualmente. Con DELETE /team/{id|email} quitas a un miembro de este espacio (su cuenta y otros espacios no se tocan); el administrador de la cuenta no puede removerse por la API. Si el miembro tiene prospectos abiertos, debes decidir a quién reasignarlos: envía reassign_to (id o correo de otro asesor) o reassign_strategy: true (estrategia del tenant); de lo contrario responde 422. Al removerlo se le envía un correo automático avisándole.

Ejemplo — listar el equipo

curl "https://inmoflow.pro/api/v1/team" \ -H "Authorization: Bearer TU_LLAVE" \ -H "Accept: application/json"

Ejemplo — dar de alta un miembro

curl -X POST "https://inmoflow.pro/api/v1/team" \ -H "Authorization: Bearer TU_LLAVE" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "name": "Carlos Ruiz", "email": "carlos@inmobiliaria.com", "role": "agent", "phone": "+52 55 8765 4321", "specialties": ["Residencial", "Playa"] }'

login

Acceso al panel (SSO)

POST/auth/login-linkDevuelve una URL de un solo uso para entrar al panel.

Genera una URL de un solo uso (expira en 60 s) que loguea a un usuario de tu cuenta en el panel. Cuerpo: email del usuario. Tu backend llama este endpoint y redirige el navegador a la URL devuelta. Requiere el permiso privilegiado Acceso al panel (SSO), apagado por defecto; actívalo solo para sitios de confianza.

curl -X POST "https://inmoflow.pro/api/v1/auth/login-link" \ -H "Authorization: Bearer TU_LLAVE" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"email": "asesor@tucuenta.com"}'

speed

Límites y errores

  • Límite de uso: 120 peticiones por minuto por llave.
  • En lectura solo se devuelven registros marcados como públicos.
  • La API solo responde mientras la suscripción de la cuenta está activa.
  • Puedes revocar el acceso desactivando o eliminando la llave en cualquier momento.

Códigos de respuesta

200 / 201Petición correcta.
401Llave inválida, inactiva o expirada.
403La llave no tiene el permiso requerido, o la suscripción no está activa.
404El recurso no existe para esta cuenta.
422Datos inválidos (errores de validación en el cuerpo).
429Límite de peticiones excedido.

Genera tu llave y empieza a integrar

Las llaves se crean y administran desde el panel, en Configuración → Llaves de API.

Ir al panel arrow_forward