Psicometrías Platform — REST API Reference
https://psicometricas.alobri.com/api
X-RateLimit-Limit y X-RateLimit-Remaining se incluyen en cada respuesta. Al exceder el límite se retorna 429 con Retry-After.
Retorna el catálogo completo de pruebas psicométricas disponibles para el cliente.
Ninguno
| Parámetro | Tipo | Descripción |
|---|---|---|
| id | integer requerido | ID interno del test |
Crea un nuevo candidato y lo vincula al cliente API mediante un external_candidate_id.
| Campo | Tipo | Descripción |
|---|---|---|
| external_candidate_id | string requerido | ID externo único del candidato (max 255) |
| firstname | string requerido | Nombre |
| lastname | string requerido | Apellido |
| string requerido | Correo electrónico válido | |
| phone | string opcional | Teléfono (max 50) |
| date_of_birth | date opcional | Fecha de nacimiento |
| gender | string opcional | Género |
| postal_code | string opcional | Código postal (max 10) |
| country | string opcional | País (max 100) |
Retorna todos los candidatos vinculados al cliente autenticado.
Ninguno
| Parámetro | Tipo | Descripción |
|---|---|---|
| external_id | string requerido | ID externo asignado al crear el candidato |
Asigna uno o más tests a un candidato. Consume cuota (tokens o suscripción). Retorna un código de acceso para que el candidato inicie sesión.
| Campo | Tipo | Descripción |
|---|---|---|
| external_candidate_id | string requerido | ID externo del candidato existente o nuevo |
| test_ids | array[int] requerido | IDs de tests a asignar (mínimo 1) |
| candidate | object condicional | Datos del candidato si no existe aún |
| candidate.firstname | string | Nombre (requerido si se envía candidate) |
| candidate.lastname | string | Apellido (requerido si se envía candidate) |
| candidate.email | string | Email (requerido si se envía candidate) |
| Código | Caso |
|---|---|
402 | Saldo de tokens insuficiente o límite de suscripción alcanzado |
422 | Tests no disponibles vía API o candidato no encontrado sin bloque candidate |
| Parámetro | Tipo | Descripción |
|---|---|---|
| per_page | integer opcional | Items por página (default: 25) |
| Parámetro | Tipo | Descripción |
|---|---|---|
| id | integer requerido | ID interno de la evaluación (UserAssignedTest) |
Retorna los resultados calculados (scores) de una evaluación completada. Registra un evento result_queried.
Genera y descarga un reporte PDF con los resultados. Retorna Content-Type: application/pdf.
Encola el envío asíncrono del PDF al webhook configurado del cliente. Requiere tener un webhook_url configurado.
Ninguno
Retorna el estado de facturación actual. La estructura varía según el tipo de cliente.
Log paginado de todos los eventos de uso de la API.
| Parámetro | Tipo | Descripción |
|---|---|---|
| per_page | integer opcional | Items por página (default: 25) |
evaluation_assigned
result_queried
pdf_downloaded
pdf_webhook_sent
Cada request POST a tu webhook_url incluye los headers:
X-Webhook-Event — tipo de evento (ej. evaluation.completed)X-Webhook-Delivery — ID único de este intentoX-Webhook-Timestamp — epoch segundos del envíoX-Webhook-Signature — t=<timestamp>,v1=<hex>El cliente debe:
t y v1 del header.|now - t| > 300s (anti-replay).HMAC_SHA256(webhook_secret, "<t>." + raw_body).v1 en tiempo constante (hash_equals).
Si haces tu primer PUT /api/v1/webhook sin pasar webhook_secret, generamos uno por ti y te lo devolvemos en el campo webhook_secret del response (sólo esa única vez).
Para rotar, manda un nuevo valor en otro PUT.
| Campo | Tipo | Descripción |
|---|---|---|
| webhook_url | string requerido | URL válida del webhook (max 2048) |
| webhook_secret | string opcional | Nuevo secreto HMAC-SHA256 (max 255). Si se omite, se conserva el actual. |
Envía un evento de prueba al webhook configurado y retorna el resultado de la entrega.
POST al webhook_urlX-Webhook-Event, X-Webhook-DeliveryX-Webhook-Signature: hmac-sha256(payload, secret)X-Internal-Secret verificado contra la tabla ApiInternalConsumer.
Uso exclusivo para comunicación máquina a máquina.
| Parámetro | Tipo | Descripción |
|---|---|---|
| employer_id | integer opcional | Filtrar por employer_id en el campo notes |
Crea un nuevo cliente API y emite su primer token Sanctum. Si un cliente con el mismo slug fue eliminado, lo restaura y emite un token nuevo.
| Campo | Tipo | Descripción |
|---|---|---|
| name | string requerido | Nombre del cliente (se genera slug automáticamente) |
| string requerido | Email de contacto | |
| company_id | integer opcional | ID de compañía interna |
| client_type | string opcional | token | government | subscription (default: government) |
| employer_id | integer opcional | Almacenado en notes |
| token_balance | integer opcional | Balance inicial (solo tipo token, default: 0) |
| subscription_days | integer opcional | Duración en días (solo tipo subscription, default: 30) |
| subscription_eval_limit | integer opcional | Límite de evaluaciones (solo tipo subscription, default: 100) |
| Parámetro | Tipo | Descripción |
|---|---|---|
| slug | string requerido | Slug del cliente (generado del nombre) |
Alterna el estado activo/inactivo del cliente. Si se reactiva sin tokens existentes, genera uno nuevo.
| Campo | Tipo | Descripción |
|---|---|---|
| enable | boolean opcional | Forzar estado. Si se omite, alterna el actual. |
| Tipo | Modelo de Facturación | Cuota | Unidad de Costo |
|---|---|---|---|
government | Sin facturación | Ilimitada | N/A |
token | Balance de tokens | Pre-verificado por request | token_cost por test (tabla ApiTestTokenCost) |
subscription | Límite de evals + fecha de expiración | Pre-verificado por request | 1 eval por test asignado |