API externa de Xeqmate

La API externa de Xeqmate permite que tu sistema lea los datos de la plataforma — cámaras, fragmentos de grabación, lecturas de matrícula y faciales — y dé de alta, edite y desactive usuarios sin entrar en la interfaz. REST, solo HTTPS, con un token por cliente, un límite de peticiones publicado y todas las llamadas auditadas.

REST · JSON Token por cliente Solo HTTPS Todo auditado
Visión general

¿Qué es la API externa de Xeqmate?

Es una API REST que da a cada cliente acceso programático a sus propios datos en la plataforma: cámaras, grabaciones, lecturas de matrícula y faciales y gestión de usuarios. El administrador de la plataforma la habilita en la ficha del cliente y genera un token único por cliente (prefijo xqm_) que va en la cabecera de cada petición. Solo HTTPS, con un límite de 50 peticiones por minuto y auditoría de todas las llamadas.

Cómo funciona

  • URL base: https://app.xeqmate.com/api/v1/integrations, con Authorization: Bearer <token> en cada petición.
  • Un token por cliente: el administrador activa la API en la ficha del cliente y genera el token; puede regenerarlo (el anterior deja de valer al instante) o revocarlo en cualquier momento.
  • Límite de peticiones: 50 por minuto y token. Toda respuesta incluye las cabeceras X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset; al superarlo, la API responde 429 con Retry-After.
  • Paginación: los listados usan page y limit, con 100 elementos por página por defecto y como máximo.
  • Fechas ISO-8601: la entrada admite zona horaria (sin ella se interpreta como UTC); la salida siempre va en UTC, terminada en Z.
  • Auditoría completa: cada llamada — incluidas las rechazadas — se registra en la traza de auditoría de la plataforma a nombre del cliente, con el prefijo del token en el detalle.
Referencia

Endpoints disponibles

Cámaras, grabaciones, lecturas y usuarios — el alcance es exactamente lo que el administrador del cliente ve en la plataforma.

MétodoRutaQué hace
GET/cameraLista las cámaras visibles para el cliente, con filtros por nombre y tipo (vídeo, LPR, facial).
GET/camera/{id}Una cámara por id, con estado, grabación, analíticas y ubicación.
GET/camera/{id}/recordFragmentos de grabación del periodo (hasta 31 días por consulta), con URL de MP4 y miniatura firmadas, válidas 30 días.
GET/camera/{id}/plateLecturas de matrícula del periodo (hasta 7 días por consulta), con datos del vehículo e imágenes.
GET/camera/{id}/faceLecturas faciales del periodo (hasta 7 días por consulta), con atributos e imágenes de cada rostro.
GET/userLista los usuarios del cliente, con filtros por nombre, correo y estado.
GET/user/{id}Un usuario por id.
GET/user/roleRoles que el cliente puede asignar a los usuarios.
POST/userCrea un usuario — la plataforma genera la contraseña temporal y la envía por correo.
PUT/user/{id}Edita un usuario; solo cambian los campos enviados en el cuerpo.
DELETE/user/{id}Desactiva al usuario (baja lógica) y cierra sus sesiones.

Sin inicio ni fim, las consultas de grabaciones y lecturas usan las últimas 24 horas. Las lecturas no devuelven total — pagina hasta que meta.has_more sea false.

En la práctica

Ejemplo de petición

Listar las cámaras de LPR del cliente:

curl -H "Authorization: Bearer xqm_..." \
  "https://app.xeqmate.com/api/v1/integrations/camera?tipo=alpr&limit=2"

Respuesta:

{
  "success": true,
  "data": [
    {
      "id": 163,
      "codigo": "XEQ4MLIQICX591",
      "nome": "A-49 - Salida a Huelva",
      "tipo": "Fixa",
      "status": "Online",
      "ultima_conexao": "2026-08-18T23:33:19Z",
      "gravacao": { "habilitada": true, "retencao_dias": 4 },
      "analiticos": { "placa": true, "facial": false },
      "localizacao": {
        "latitude": -27.108206,
        "longitude": -52.55431,
        "cidade": "Sevilla - SE"
      }
    }
  ],
  "meta": { "page": 1, "limit": 2, "total": 282 }
}

Los errores usan siempre el mismo formato, en cualquier estado 4xx/5xx:

{ "success": false, "message": "Token de API no válido.", "error": 401 }
Referencia

Códigos de respuesta

CódigoCuándo ocurre
400Un campo del cuerpo o de la URL incumple el contrato — el mensaje llega como mapa campo → motivo.
401Falta la cabecera de autenticación, o el token no es válido, está revocado o fue regenerado.
402Cliente bloqueado por impago.
403Cliente inactivo o API externa desactivada en la configuración del cliente.
404Cámara o usuario fuera del alcance del cliente; cámara sin grabación, sin LPR o sin facial.
409Correo o documento ya registrado; usuario ya inactivo.
422Periodo fuera de límite (7 días en lecturas, 31 en grabaciones), inicio posterior al fin o valor de filtro desconocido.
429Más de 50 peticiones en un minuto — espera los segundos indicados en Retry-After.
502El servidor de medios de la cámara no respondió; inténtalo de nuevo en unos instantes.
El camino inverso

API para consultar, webhook para recibir

La API es tu sistema llamando a Xeqmate. Para el camino inverso — la plataforma llamando a tu sistema cuando salta una alerta de matrícula o facial — la herramienta es el webhook: un POST con JSON de formato fijo, token Bearer y firma HMAC. Juntos cubren una integración completa, del evento en tiempo real a la consulta histórica. Mira cómo funciona en la página de integraciones.

Cómo se habilita el acceso

La API no está abierta al público: el administrador de la plataforma habilita la API externa en la ficha de cada cliente y genera allí el token. Cada vez que el token se muestra, se regenera o se revoca, también queda auditado. Este modelo por cliente es el mismo que usan los integradores que revenden la plataforma: cada cliente final puede tener su propio acceso, aislado del resto, consultando por ejemplo las grabaciones en la nube de sus propias cámaras. La visión general de la plataforma está en VMS SaaS.

Preguntas frecuentes

Preguntas sobre la API

No. El acceso se habilita por cliente: el administrador de la plataforma activa la API externa en la ficha del cliente y genera un token único (prefijo xqm_). Las llamadas solo funcionan con el interruptor activado y el token en la cabecera — desactivarlo bloquea el token al instante.

50 peticiones por minuto y token. Toda respuesta informa de las cabeceras X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset; al superar el límite, la API responde 429 con el tiempo de espera en Retry-After.

Sí. El endpoint GET /camera/{id}/record devuelve los fragmentos de grabación del periodo consultado (hasta 31 días por consulta) con URL de MP4 y de miniatura ya firmadas, válidas 30 días — tu sistema descarga el vídeo directamente, sin sesión en la plataforma.

Sí: crear (POST /user, con contraseña temporal enviada por correo y cambio obligatorio en el primer acceso), editar (PUT /user/{id}) y desactivar (DELETE /user/{id}, que cierra las sesiones abiertas). Los roles disponibles vienen de GET /user/role.

Sí, todas — incluidas las lecturas y las llamadas rechazadas (401, 403, 429). Cada una aparece en la auditoría de la plataforma a nombre del cliente, con el prefijo del token en el detalle. Generar, regenerar, revocar e incluso mostrar el token también son eventos auditados.

La API es de consulta: tu sistema pregunta, la plataforma responde. Para recibir alertas de matrícula y faciales en tiempo real, la herramienta es el webhook — la plataforma envía un POST firmado a la URL de tu sistema en cada alerta. Mira la página de integraciones.

Demostración

Ve la API con los datos de tu operación

30 minutos con nuestro equipo: conectamos una cámara tuya en directo y te enseñamos las consultas de cámaras, grabaciones y lecturas funcionando en tu escenario.

Respondemos en 1 día laborable · sin tarjeta, sin instalación, sin compromiso