Ir al artículo
Aniq-UI

Dashboard 2Referencia de la API

Referencia de la API

Cada ruta que sirve la API de NestJS, quién puede llamarla y cómo funcionan el inicio de sesión, los permisos, los errores, las listas y los límites.

Para el paquete Front + Back

URL base y formato de respuesta

Todas las rutas se sirven bajo el prefijo /api. En local la URL base es http://localhost:8000/api; en un servidor es la dirección de tu API seguida de /api, el mismo valor que el panel lee de NEXT_PUBLIC_API_BASE_URL. Los cuerpos de las peticiones son JSON, salvo la subida. Cada respuesta llega en el mismo sobre:

Envoltorio
{
  "success": true,
  "data": { },
  "message": ""
}

data contiene el resultado. message es una frase corta que rellenan algunas escrituras, en el idioma de la petición, y está vacío en los demás casos. La comprobación de estado no necesita token:

Terminal
curl http://localhost:8000/api/health
Respuesta
{"success":true,"data":{"status":"ok","database":"up"},"message":""}

Hasta que la base de datos responde y contiene sus tablas, responde 503 con "status":"unavailable" y "database":"down". La comprobación de salud de la imagen de Docker lo lee.

Errores

Un fallo mantiene el envoltorio, con success: false y el estado HTTP:

Error
{
  "success": false,
  "data": null,
  "message": "That email and password combination didn't work. Please try again.",
  "errors": { "email": ["Enter a valid email address (example@domain.com)."] }
}
  • message es una frase en el idioma de la petición.
  • errors se rellena cuando falla la validación, con los problemas por campo. Un campo del cuerpo que la ruta no conoce se rechaza.
  • Una ruta protegida sin token, o con uno caducado, responde 401; un token sin el permiso responde 403.

Listas y paginación

Las rutas de lista aceptan page y page_count (o limit). page_count tiene un máximo de 100; un valor ausente o no válido vuelve al valor por defecto de la ruta, 15 para usuarios y 10 para las demás.

data de una lista
{ "data": [ ], "page": 1, "limit": 15, "total": 15, "totalPages": 1 }

Los usuarios salen primero los más recientes por defecto (order=asc lo invierte); los proyectos, primero los actualizados más recientemente; los administradores, primero los más recientes; los ajustes, por categoría; los roles, por nombre.

Idioma

Envía Accept-Language: ar para mensajes en árabe; cualquier otro valor responde en inglés. Los países, permisos, ajustes y nombres de proyecto llevan los dos idiomas como { "en": "…", "ar": "…" } sea cual sea la cabecera, y el cliente elige uno.

Inicio de sesión

  1. Obtén un token

    Envía el correo y la contraseña de un administrador. Una API con seed acepta al Super Admin de la guía de instalación.

    Terminal
    curl -X POST http://localhost:8000/api/auth/login -H "Content-Type: application/json" -d '{"email":"admin@example.com","password":"Admin@123"}'
    Respuesta
    {
      "success": true,
      "data": {
        "access_token": "eyJ…",
        "token_type": "Bearer",
        "expires_in": "7d",
        "admin": { "id": 1, "email": "admin@example.com", "username": "…", "roles": [ ], "permissions": [ ] }
      },
      "message": "Signed in successfully."
    }
  2. Envíalo en cada llamada

    Terminal
    curl http://localhost:8000/api/auth/me -H "Authorization: Bearer eyJ…"

    Resultado esperado: /api/auth/me devuelve al administrador con sesión iniciada con sus roles y permisos.

  • Un token dura JWT_EXPIRATION, 7d por defecto. No hay ruta de renovación: inicia sesión de nuevo.
  • Un correo incorrecto y una contraseña incorrecta reciben el mismo mensaje 401.
  • Después de RATE_LIMIT_LOGIN inicios de sesión fallidos (10 por defecto) desde una dirección en 15 minutos, POST /api/auth/login responde 429 hasta que el fallo más antiguo tenga 15 minutos. El recuento se guarda en memoria, así que un reinicio lo borra.
MétodoRutaQuién puede llamarlaQué hace
POST/api/auth/loginCualquieraInicia sesión con email y password
GET/api/auth/meCualquier administrador con sesión iniciadaEl administrador con sesión iniciada, con roles y permisos
GET/api/healthCualquieraDisponibilidad: 200 o 503

Permisos

Todas las rutas de abajo necesitan Authorization: Bearer con un token, salvo las marcadas como Cualquiera. La mayoría también necesita un permiso, con nombre module.action; un administrador tiene los permisos de todos sus roles. Los 25 permisos se listan en Pantallas, roles y permisos.

Usuarios

Las personas a las que sirve tu producto, identificadas por username. Eliminar es un borrado lógico.

MétodoRutaQuién puede llamarlaQué hace
GET/api/usersAdministradores con users.viewLista, con search, email, phone, country_id, username, first_name, last_name, from_date, to_date y order
GET/api/users/statisticAdministradores con users.viewTotales: total, deleted, verified y unverified
GET/api/users/deletedAdministradores con users.viewUsuarios eliminados, con los mismos filtros
GET/api/users/deleted/:usernameAdministradores con users.viewUn usuario eliminado
GET/api/users/:usernameAdministradores con users.viewUn usuario
POST/api/usersAdministradores con users.createCrear: first_name, last_name, email, password y, opcionalmente, username, phone, profile_picture, country_id
PATCH/api/users/:usernameAdministradores con users.updateEditar cualquiera de esos campos
PATCH/api/users/:username/change-passwordAdministradores con users.updateDefinir una contraseña nueva
POST/api/users/:username/make-verifiedAdministradores con users.verifyMarca el correo como verificado
POST/api/users/:username/make-unverifiedAdministradores con users.verifyMarcarlo como no verificado
POST/api/users/:username/resend-verification-emailAdministradores con users.updateResponde con éxito; no envía ningún correo, listo para tu propio servicio de correo
DELETE/api/users/:usernameAdministradores con users.deleteBorrado lógico
POST/api/users/deleted/:username/restoreAdministradores con users.restoreRestaurar

Proyectos

Los proyectos llevan name, description, environment, status (in-progress, ready o blocked), version, image e icon_name opcionales, y translations con un nombre y una descripción en en y en ar.

MétodoRutaQuién puede llamarlaQué hace
GET/api/projectsAdministradores con projects.viewLista, con name, status y environment
GET/api/projects/statisticAdministradores con projects.viewTotales por estado
GET/api/projects/recentAdministradores con projects.viewLos últimos proyectos, limit 5 por defecto
GET/api/projects/deletedAdministradores con projects.viewProyectos eliminados, con name
GET/api/projects/:idAdministradores con projects.viewUn proyecto
POST/api/projectsAdministradores con projects.createCrear
PATCH/api/projects/:idAdministradores con projects.editEdita
DELETE/api/projects/:idAdministradores con projects.deleteBorrado lógico
POST/api/projects/deleted/:id/restoreAdministradores con projects.restoreRestaurar

Tareas rápidas

La lista de tareas del resumen. Cada administrador tiene la suya y no necesita ningún permiso: cada ruta lee y escribe solo las tareas de quien llama. Una tarea es text y completed.

MétodoRutaQuién puede llamarlaQué hace
GET/api/tasksCualquier administrador con sesión iniciadaTus tareas, las más recientes primero, con status. Los campos de paginación están junto a data en el sobre, no dentro.
GET/api/tasks/historyCualquier administrador con sesión iniciadaTodas tus tareas, separadas en active y completed
GET/api/tasks/statsCualquier administrador con sesión iniciadaTus totales
GET/api/tasks/:idCualquier administrador con sesión iniciadaUna tarea
POST/api/tasksCualquier administrador con sesión iniciadaCrear
PATCH/api/tasks/:idCualquier administrador con sesión iniciadaEdita
PATCH/api/tasks/:id/toggleCualquier administrador con sesión iniciadaMarcar como hecha o no hecha
DELETE/api/tasks/:idCualquier administrador con sesión iniciadaEliminar

Administradores y tu perfil

Las cuentas que inician sesión en el panel. :id acepta un id o un nombre de usuario.

MétodoRutaQuién puede llamarlaQué hace
GET/api/adminsAdministradores con admins.viewLista, con email, name y phone
GET/api/admins/statisticsAdministradores con admins.viewTotales
GET/api/admins/:idAdministradores con admins.viewUn administrador, con roles
POST/api/adminsAdministradores con admins.createCrear: first_name, last_name, email, password, password_confirmation y, opcionalmente, phone, profile_picture, country_id
PATCH/api/admins/:idAdministradores con admins.editEdita
PATCH/api/admins/:id/rolesAdministradores con admins.assign_rolesReemplazar los roles: role_ids
DELETE/api/admins/:idAdministradores con admins.deleteEliminar
PATCH/api/admins/profileAdministradores con admins.editEditar tu propio perfil
PATCH/api/admins/profile/passwordCualquier administrador con sesión iniciadaCambiar tu propia contraseña: current_password, password, password_confirmation

Roles

MétodoRutaQuién puede llamarlaQué hace
GET/api/rolesAdministradores con roles.viewLista, con name, guard_name, created_from y created_to; paginada solo cuando se envían page y page_count
GET/api/roles/statisticsAdministradores con roles.viewTotales
GET/api/roles/selectAdministradores con roles.viewTodos los roles, para un campo de selección
GET/api/roles/permissionsAdministradores con roles.viewTodos los permisos, por módulo
GET/api/roles/:idAdministradores con roles.viewUn rol, con sus permisos
POST/api/rolesAdministradores con roles.createCrear: name
PUT/api/roles/:idAdministradores con roles.editRenombrar: name
POST/api/roles/:id/permissionsAdministradores con roles.assign_permissionsReemplazar lo que concede el rol: permissions, una lista de nombres de permisos. Los titulares con sesión iniciada reciben el aviso al instante.
DELETE/api/roles/:idAdministradores con roles.deleteEliminar

Ajustes de la aplicación

Pares de clave y valor con un nombre para mostrar, una descripción, un tipo y una categoría, como site_name, support_email y maintenance_mode.

MétodoRutaQuién puede llamarlaQué hace
GET/api/settingsAdministradores con settings.viewLista, con search y category
GET/api/settings/:keyAdministradores con settings.viewUn ajuste
PATCH/api/settings/:keyAdministradores con settings.editCambiar su value
DELETE/api/settings/:keyAdministradores con settings.editEliminarlo

Países y subidas

MétodoRutaQuién puede llamarlaQué hace
GET/api/helpers/countriesCualquieraLos 50 países como { value, label, code, phone_code }, etiquetados en el idioma de la petición
POST/api/helpers/uploadCualquier administrador con sesión iniciadaSube una imagen como file multipart, con path opcional (la carpeta, uploads por defecto) y for (profile, cover, logo o default)

La subida acepta una imagen de 10 MB como máximo, la guarda en tu bucket R2 como JPEG de 1920 píxeles de ancho como máximo, con una copia redimensionada según su valor de for, y devuelve sus direcciones: original y, por ejemplo, 250x250. Sin las variables de R2 responde 503 con "Image uploads are not set up on this server yet."

El asistente de IA y sus conversaciones

Incluido con tu compra. Inicia sesión para leerlo o ábrelo en tu descarga.

La ruta de streaming del asistente, su lista de modelos y sugerencias, y las conversaciones guardadas.

Servidor MCP

Incluido con tu compra. Inicia sesión para leerlo o ábrelo en tu descarga.

El endpoint MCP para agentes de programación y cómo se autoriza.

Actualizaciones de permisos en vivo

Incluido con tu compra. Inicia sesión para leerlo o ábrelo en tu descarga.

El namespace de Socket.IO que escucha el panel, su evento y cómo se autoriza una conexión.

Rutas del modo demostración

Incluido con tu compra. Inicia sesión para leerlo o ábrelo en tu descarga.

Las rutas que añade una compilación de demo pública.

¿Te atascaste en un paso?

Busca una solución antes de empezar de nuevo.

Solución de problemas

Preferencias de Cookies

Utilizamos cookies para mejorar tu experiencia de navegación, analizar el tráfico del sitio y personalizar el contenido. Al hacer clic en "Aceptar Todo", consientes nuestro uso de cookies para análisis y publicidad personalizada.