InmoCMS · Developer Platform

Public API

Registra demandantes y ofertantes desde WhatsApp, portales inmobiliarios, formularios o cualquier integración externa.

v1.0JSONJWT

Inicio rápido

La API usa JSON sobre HTTPS. Primero intercambia tus credenciales por un JWT y úsalo como Bearer token en las peticiones posteriores.

No compartas el client_secret en frontend, URLs, repositorios o mensajes. La integración debe ejecutarse desde un servidor seguro.

Cada credencial está vinculada a una inmobiliaria. InmoCMS selecciona automáticamente su base de datos; nunca debes enviar identificadores de base de datos.

Autenticación

POST/api/v1/auth/token
curl -X POST "https://www.api-public.inmocms.com/api/v1/auth/token" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "client_id": "inm_xxxxxxxxxxxxxxxxxxxxxxxx",
    "client_secret": "sec_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  }'
{
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
  "token_type": "Bearer",
  "expires_in": 3600
}

Alta de clientes

POST/api/v1/clientes

Crea el cliente y sus datos específicos en una sola transacción.

Cabeceras

CabeceraValor
Authorization *Bearer <JWT>
Content-Type *application/json
Idempotency-KeyClave única de 8–100 caracteres. Muy recomendada para evitar duplicados en reintentos.

Campos comunes

CampoTipoNotas
tipo_cliente *stringdemandante u ofertante
nombre *stringMáximo 100 caracteres
telefono / email *stringAl menos uno de los dos
origen *stringWhatsApp, Idealista, email…
notasstringInformación libre
referencia_pisostringReferencia del anuncio concreto

Ejemplo: demandante

curl -X POST "https://www.api-public.inmocms.com/api/v1/clientes" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: whatsapp-982371" \
  -d '{
    "tipo_cliente": "demandante",
    "nombre": "Ana García",
    "telefono": "+34600111222",
    "email": "ana@example.com",
    "zonas_interes": ["Centro", "Chamberí"],
    "presupuesto_orientativo": 350000,
    "referencia_piso": "REF-2026-104",
    "origen": "WhatsApp"
  }'

Ejemplo: ofertante

curl -X POST "https://www.api-public.inmocms.com/api/v1/clientes" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: portal-445901" \
  -d '{
    "tipo_cliente": "ofertante",
    "nombre": "Carlos Pérez",
    "telefono": "+34600999888",
    "email": "carlos@example.com",
    "origen": "Email",
    "inmueble": {
      "direccion_zona": "Calle Mayor 10, Madrid",
      "tipo_operacion": "venta",
      "tipo_inmueble": "piso",
      "metros_cuadrados": 92,
      "habitaciones": 3,
      "banos": 2,
      "precio_orientativo": 420000,
      "estado_descripcion": "Reformado, exterior"
    }
  }'

Respuesta 201

{
  "message": "Cliente creado correctamente.",
  "data": {
    "lead_id": 81,
    "cliente_id": 1254,
    "inmueble_id": 908,
    "tipo_cliente": "ofertante",
    "created_at": "2026-09-18T10:30:00+02:00"
  }
}

Errores y límites

Se permiten 14 peticiones por minuto y credencial. El intento 15 bloquea la credencial durante 60 segundos. Consulta Retry-After antes de reintentar.

HTTPSignificado
401Credenciales incorrectas o JWT ausente, inválido o caducado.
403La inmobiliaria vinculada ya no está disponible.
409Existe una petición con la misma clave de idempotencia todavía en proceso o fallida.
422Los datos no cumplen la validación. La respuesta incluye errores por campo.
429Límite superado. La respuesta contiene los segundos restantes en retry_after.
503No se pudo conectar temporalmente con la base de datos de la inmobiliaria.