Referencia de endpoints

Todos los endpoints de la API pública de Kabeen con su scope requerido, sus entradas y sus salidas

Todos los endpoints de la API pública de Kabeen, agrupados por área de recursos, con el scope de permiso que requieren y la forma de sus entradas y salidas.

Todas las rutas son relativas a https://{host}/public/v1 (host por defecto: app.kabeen.io). Todos los cuerpos son JSON. Los ids son cadenas UUID; las fechas son cadenas ISO-8601. En las descripciones de cuerpos de petición siguientes, los campos marcados como obligatorio deben estar presentes; el resto de campos son opcionales. Salvo indicación contraria, los endpoints de listado usan el sobre de paginación por offset estándar (?limit=&offset={ data, pagination }) descrito en Paginación y errores.

Las propias claves de API las gestiona un administrador del espacio de trabajo desde la aplicación Kabeen, no a través de la API pública — consulte Autenticación.

Introspección y espacio de trabajo

MétodoRutaScopeDescripción
GET/mecualquier clave válidaIntrospecciona la clave presentada: { workspace{id,name}, key{id,name,alias?}, permissions[] }.
GET/workspacetenant:readEl espacio de trabajo al que está vinculada la clave: { id, name, createdAt, currencyCode, publicLogoUrl?, wsLogoUrl?, supportUrl?, onboarding*, ki*, compliance* }.
PATCH/workspacetenant:editActualización parcial — name?, currencyCode?, supportUrl?, conmutadores de Kabeen Intelligence (incl. kiDefaultProvider), conmutadores de cumplimiento. El logo queda excluido (solo carga binaria). Devuelve el espacio de trabajo actualizado.

Aplicaciones

Recurso principal

MétodoRutaScopeDescripción
GET/applicationsapplications:readBúsqueda/filtro/orden, paginado en BD. Consulta: search, categoryId, criticality, hostingType, tag, teamId, sort, direction, limit, offset. Elementos: { id, name, description?, logo, state, criticality?, hostingType, category{id,name}? }.
GET/applications/{id}applications:readDetalle enriquecido — vea más abajo.
POST/applicationsapplications:addCrear. Cuerpo: name (obligatorio), description, categoryId (uuid), hostingType, accessUrl, iconUrl, organizationIds (uuid[]). Devuelve { id, name, description?, criticality?, logo }.
PATCH/applications/{id}applications:editActualización parcial — solo se modifican los campos presentes: name, description, accessUrl, iconUrl, state, criticality, hostingType, support{phone,email,url}. Devuelve el detalle actualizado.
PATCH/applications/{id}/stateapplications:editAlias de conveniencia solo para el estado. Cuerpo: state (obligatorio, ACTIVE|ARCHIVED|DISCOVERED|REJECTED).
PATCH/applications/{id}/categoryapplications:editAsigna o vacía la categoría. Cuerpo: { categoryId? } (validado en el espacio de trabajo). Devuelve el detalle actualizado.
PATCH/applications/{id}/vendorapplications:editAsigna o vacía el proveedor. Cuerpo: { vendorId? }. Devuelve el detalle actualizado.
PATCH/applications/{id}/authenticationapplications:editParcial — type?, primaryFactor?, secondaryFactor?, protocol?. Devuelve el detalle actualizado.
PATCH/applications/{id}/usage-settingsapplications:editParcial — usageActivated?, desktopApplicationNames?. Devuelve el detalle actualizado.
DELETE/applications/{id}applications:deleteElimina, en cascada sobre flujos, documentos, valores de campos personalizados y el icono.

Detalle de aplicación (GET /applications/{id}): { id, name, description?, logo, memo?, state, criticality?, hostingType, accessUrl?, usageActivated, desktopApplicationNames[], support{phone?,email?,url?}, authentication{type?,primaryFactor?,secondaryFactor?,protocol?}, category{id,name}?, vendor{id,name}?, tags[{id,name}], owners[{accountId,email,firstName,lastName,role?}], lifecycle{phaseInDate?,deployedDate?,phaseOutDate?,retiredDate?}?, customFields[], updatedAt }.

Cada campo personalizado es { id, name, type, description?, value } donde typetext|select|multi_select|date y value es polimórfico según el tipo: cadena (text), fecha-hora ISO (date), {id,value} (select), [{id,value}] (multi_select), o null cuando no está definido.

Sub-recursos

MétodoRutaScopeDescripción
GET/applications/{id}/usageapplications:readMétrica de uso: { value?, range }.
GET/applications/{id}/flowsapplications:readFlujos de datos, paginados. Elementos: { id, comment?, protocol?, format?, exchangeFrequency?, portType?, port?, encrypted?, source{id,name}, target{id,name}, dataCount, documentCount, middlewareCount }.
POST/applications/{id}/flowsapplications:editCrea un flujo. Cuerpo: { sourceId?, targetId?, dataIds[], comment?, protocol?, format?, exchangeFrequency?, portType?, port?, encrypted?, documentIds[], middlewares[{applicationId, position}] } — el origen o el destino debe ser igual a la aplicación de la ruta (400 en caso contrario).
PATCH/applications/{id}/flows/{flowId}applications:editActualización parcial del flujo — solo se aplican los campos proporcionados.
DELETE/applications/{id}/flows/{flowId}applications:deleteElimina un flujo.
GET/applications/{id}/technologiesapplications:readPaginado. Elementos: { id, name, type?, versionId?, version? } (más información de EOL/LTS/obsolescencia).
PUT/applications/{id}/technologiesapplications:editDefine las tecnologías.
DELETE/applications/{id}/technologies/{technologyId}applications:editDesvincula una tecnología.
GET/applications/{id}/contractsapplications:readPaginado. Elementos: { id, nature, startDate, endDate?, amountPerMonth, enableProjection }.
POST/applications/{id}/contractscontracts:addCrea un contrato en la aplicación.
PATCH/applications/{id}/contracts/{contractId}contracts:editActualiza un contrato.
DELETE/applications/{id}/contracts/{contractId}contracts:deleteElimina un contrato.
GET/applications/{id}/documentsapplications:readDocumentos respaldados por URL (sin carga binaria). Elementos: { id, documentType, title, description?, published, url, createdAt } con documentTypedata_policy|security_policy|technical_documents.
POST/applications/{id}/documentsapplications:editCrea un documento.
PATCH/applications/{id}/documents/{documentId}applications:editActualiza un documento (url es inmutable).
DELETE/applications/{id}/documents/{documentId}applications:deleteElimina un documento.
GET/applications/{id}/ownersapplications:readLista los responsables (array sin sobre).
POST/applications/{id}/ownersapplications:editAñade un responsable. Cuerpo: { accountId }.
DELETE/applications/{id}/owners/{accountId}applications:editRetira un responsable.
GET/applications/{id}/tagsapplications:readLista las etiquetas (array sin sobre).
PUT/applications/{id}/tagsapplications:editDefine las etiquetas (conjunto completo). Cuerpo: { tagIds[] }.
GET/applications/{id}/teamsapplications:readLista los equipos/organizaciones (array sin sobre).
PUT/applications/{id}/teamsapplications:editDefine los equipos (conjunto completo).
GET/applications/{id}/lifecycleapplications:readFechas de hitos.
PUT/applications/{id}/lifecycleapplications:editDefine las fechas de hitos (phaseInDate, deployedDate, phaseOutDate, retiredDate).
GET/applications/{id}/commentsapplications:readLista los comentarios (sin autor, array sin sobre).
POST/applications/{id}/commentsapplications:commentAñade un comentario.
DELETE/applications/{id}/comments/{commentId}applications:commentElimina un comentario.
GET/applications/{id}/datadata:readObjetos de datos vinculados a la aplicación, con roles de acceso: { data, roles[] }.
PUT/applications/{id}/custom-fields/{fieldId}applications:editDefine el valor de un campo personalizado. Cuerpo: { value } — cadena para text/date, id de opción para select, array de ids de opción para multi_select, null lo vacía. Verificado por tipo.
GET/vendorsapplications:readProveedores del espacio de trabajo + compartidos, paginado: { id, name, url?, description? }.

Métricas de experiencia

Seis familias de lectura respaldadas por la telemetría de uso. Los endpoints de gráfico/lista aceptan ?period= (past_1_day | past_1_month | past_1_year, por defecto past_1_month = últimos 30 días; valores desconocidos → 400) y devuelven 404 sobre una aplicación fuera del espacio de trabajo. Las calificaciones van en minúsculas (good | needs_improvement | poor).

MétodoRutaScopeDescripción
GET/applications/{id}/performance/graphapplications:readLCP diario: { dailyPerformance[{date, lcpP75?, lcpMin?, lcpMax?, lcpAvg?, lcpRating?}] }.
GET/applications/{id}/performance/listapplications:readLCP por equipo: { teams[{teamId, teamName, teamPath?, teamIcon?, lcpP75?, lcpRating?}] }.
GET/applications/{id}/errors-incidents/graphapplications:readIncidentes diarios: { dailyIncidents[{date, incidentCount, errors[{errorCode, count}]}] }.
GET/applications/{id}/errors-incidents/listapplications:readErrores por equipo, con detalle por ruta: { teams[{…, errorCount, errorDetails[{errorCode, count, paths[{path, count}]}]}] }.
GET/applications/{id}/satisfaction/graphapplications:readSatisfacción diaria: { dailySatisfaction[{date, averageSatisfaction?, votersCount}] }.
GET/applications/{id}/satisfaction/listapplications:readSatisfacción por equipo.
GET/applications/{id}/experience/summaryapplications:readConsolidado fijo de 30 días: { userExperience, errorCount, performanceRating?, hasWebUsers }.
GET/applications/{id}/experience/all-indicators/graphapplications:readGráfico diario combinado UX/errores/LCP sobre ?period=.
GET/applications/{id}/experience/all-indicators/listapplications:readIndicadores combinados por equipo sobre ?period=.
GET/applications/{id}/experience/exportapplications:readFilas de errores + LCP por evento en 30 días; userId/userName solo se incluyen con users:read y el seguimiento de usuarios activado.

Capacidades funcionales

MétodoRutaScopeDescripción
GET/applications/{id}/functional-capacitiesapplications:readCapacidades vinculadas a la aplicación (estado en minúsculas).
PUT/applications/{id}/functional-capacitiesapplications:editDefine las capacidades de la aplicación (los ids de capacidad se validan contra la taxonomía del espacio de trabajo).
DELETE/applications/{id}/functional-capacities/{functionalCapacityId}applications:deleteRetira una capacidad de la aplicación.
POST/applications/{id}/functional-capacities/{functionalCapacityId}/acceptapplications:editAcepta una capacidad descubierta.
POST/applications/{id}/functional-capacities/{functionalCapacityId}/rejectapplications:editRechaza una capacidad descubierta.
GET/functional-capacitiesapplications:readLa taxonomía de capacidades del espacio de trabajo.
POST/functional-capacitiesapplications:addCrea una capacidad.
PATCH/functional-capacities/{id}applications:editRenombra una capacidad hoja. Cuerpo: { name }.
DELETE/functional-capacities/{id}applications:deleteElimina una capacidad hoja.
GET/functional-capacities/diagramcapacity_map_diagram:readÁrbol del mapa de capacidades (grupo → capacidades → aplicaciones).
POST/functional-capacities/groupsapplications:addCrea un grupo de capacidades. Cuerpo: { name, icon } (ambos obligatorios).
PATCH/functional-capacities/groups/{groupId}applications:editActualización parcial: { name?, icon? }.
DELETE/functional-capacities/groups/{groupId}applications:deleteElimina un grupo de capacidades.

Definiciones de campos personalizados

Las definiciones de campos personalizados son el esquema a nivel del espacio de trabajo (distinto del valor de un campo en un recurso, que se define con los endpoints PUT .../custom-fields/{fieldId} de cada recurso). Existe un conjunto CRUD de definiciones por tipo de recurso destino — aplicaciones, servidores, datos, routers:

MétodoRutaScope
GET/applications/custom-fields · /servers/custom-fields · /data/custom-fields · /routers/custom-fieldstenant:read (paginado)
POSTmismas rutastenant:edit
PATCHmismas rutas + /{id}tenant:edit
DELETEmismas rutas + /{id}tenant:edit

Cuerpo de creación: name (obligatorio) · type (obligatorio, text|select|multi_select|date) · description · icon · options ([{value, position}], obligatorio para select/multi_select). Respuesta: { id, name, type, description?, options[{id,value}] }. Un PATCH/DELETE solo afecta a las definiciones del tipo destino de la ruta (404 en caso contrario).

Catálogo y aplicaciones descubiertas

MétodoRutaScopeDescripción
GET/application-catalogapplications:readBusca en el catálogo de referencia global. Consulta: page (base 1), search, categoryId, lang. Respuesta: { data[{id,name,vendor,description?,logo,categoryId?,type?}], total, page } — paginación por número de página, tamaño de página fijo.
GET/application-catalog/{id}applications:readUna entrada del catálogo (datos de referencia globales; 404 con id desconocido).
GET/discovered-applicationsapplications:readAplicaciones detectadas por el autodescubrimiento, paginado: { id, name, icon, state, description?, urls[], desktopExeNames[], usage?, deltaUsage?, lastUpdate, organizations[] }.

Objetos de datos

MétodoRutaScopeDescripción
GET/datadata:readListado paginado.
GET/data/{id}data:readUn objeto de datos.
POST/datadata:addCrear.
PATCH/data/{id}data:editActualizar (reemplazo completo del cuerpo de upsert).
DELETE/data/{id}data:deleteEliminar.
PUT/data/{id}/applicationsdata:editVincula/desvincula aplicaciones. Cuerpo: { added?: uuid[], removed?: uuid[] }.
GET/data/{id}/applicationsdata:readAplicaciones vinculadas con roles de acceso: { applicationId, applicationName, roles[] }.
PUT/data/{id}/applications/{applicationId}/rolesdata:editDefine los roles de acceso de un vínculo aplicación↔datos. Cuerpo: { roles[] }. Devuelve 204.
GET/data/{id}/responsiblesdata:readResponsables de los datos: { accountId, email, firstName?, lastName? }.
PUT/data/{id}/custom-fields/{fieldId}data:editDefine el valor de un campo personalizado ({ value }).

Cuerpo de upsert (POST y PATCH — reemplazo completo): name (obligatorio) · types (string[]) · privacy · criticality · description · categoryId · categoryName (id + nombre juntos para definir una categoría). Respuesta: { id, name, types[], privacy?, criticality?, description?, updatedAt?, category{id,name}?, customFields[] }.

Servidores

MétodoRutaScopeDescripción
GET/serversinfrastructure:readBúsqueda/filtro/orden, paginado en BD. Consulta: search, type, location, criticality, os, tag, applicationId, sort, direction, limit, offset. Elementos: { id, name, automatic, os, system, type?, location?, criticality?, dataCollectionStatus?, lastCheckTime? }.
GET/servers/{id}infrastructure:readDetalle enriquecido — vea más abajo.
POST/serversinfrastructure:addCrea un servidor manual. Cuerpo: name, os, ipAddress (todos obligatorios) · manufacturer · type · location · description.
PATCH/servers/{id}infrastructure:editActualización parcial — todos los campos opcionales: name/os/manufacturer (solo servidores manuales) · type/location/description (todos los servidores). En un servidor reportado por agente (automatic: true), escribir name, os o manufacturer se rechaza con 422 en lugar de ignorarse silenciosamente.
DELETE/servers/{id}infrastructure:deleteEliminar.
GET/servers/{id}/ownersinfrastructure:readLista los responsables (array sin sobre).
POST/servers/{id}/ownersinfrastructure:editAñade un responsable. Cuerpo: { accountId }.
DELETE/servers/{id}/owners/{accountId}infrastructure:editRetira un responsable.
GET/servers/{id}/tagsinfrastructure:readLista las etiquetas (array sin sobre).
PUT/servers/{id}/tagsinfrastructure:editDefine las etiquetas (conjunto completo). Cuerpo: { tagIds[] }.
GET/servers/{id}/applicationsinfrastructure:readAplicaciones vinculadas.
POST/servers/{id}/applicationsinfrastructure:editVincula una aplicación. Cuerpo: { applicationId } (verificado en el espacio de trabajo).
DELETE/servers/{id}/applications/{applicationId}infrastructure:editDesvincula una aplicación.
GET/servers/{id}/interfacesinfrastructure:readInterfaces de red: { ipAddress, primary, network? }.
PUT/servers/{id}/interfaces/{ipAddress}infrastructure:editAñade/actualiza una interfaz; devuelve las interfaces re-listadas.
DELETE/servers/{id}/interfaces/{ipAddress}infrastructure:deleteRetira una interfaz.
GET/servers/{id}/network-flowsinfrastructure:readGrafo de flujos de red: { center, sources[], targets[] } con connections[] por extremo.
GET/servers/{id}/agentinfrastructure:readLa información del agente del servidor (404 si no hay).
GET/servers/{id}/schemainfrastructure:readEl vecindario topológico del servidor.
GET/servers/{id}/metricsinfrastructure:readHistorial de métricas + promedios. Consulta: period, system.
PUT/servers/{id}/custom-fields/{fieldId}infrastructure:editDefine el valor de un campo personalizado ({ value }).

Detalle de servidor: { id, name, automatic, system, os, description?, criticality?, model?, serialNumber?, manufacturer?, type?, location?, dataCollectionStatus?, lastCheckTime?, uptime?, domain?, fqdn?, cpu{model?,count?,coreCount?}, memorySize?, disks[], metrics{cpu?,load?,memory?,storage?,storageTotal?}, owners[], tags[], linkedApplications[], interfaces[], customFields[] }.

Redes

MétodoRutaScopeDescripción
GET/networksinfrastructure:readPaginado. Consulta: search, limit, offset. Elementos: { id, name, role, ipAddress, subnet, description?, vlanId? }.
GET/networks/{id}infrastructure:readDetalle: campos de la red + routers[]{ id, name, type, interfaceAddress? } conectados.
POST/networksinfrastructure:addCrear. Cuerpo: name, role, ipAddress, subnet (todos obligatorios) · description · vlanId. rolelocal|wireless|storage|vpn|data_center|edge|public|management|dmz|iot|intercommunication; subnet en notación CIDR (p. ej. /24).
PATCH/networks/{id}infrastructure:editActualización parcial — todos los campos opcionales.
DELETE/networks/{id}infrastructure:deleteEliminar.
GET/networks/{id}/routersinfrastructure:readRouters conectados (array sin sobre).
PUT/networks/{id}/routersinfrastructure:editDefine los routers conectados (conjunto completo). Cuerpo: { routerIds[] } — los ids ajenos al espacio de trabajo se ignoran silenciosamente.
GET/networks/{id}/overviewinfrastructure:readEstadísticas de pool de IP / firewall / servidores.
GET/networks/{id}/schemainfrastructure:readEl vecindario topológico de la red.
GET/infrastructure/schemanetwork_mapping_diagram:readÁrbol topológico global router ↔ red ↔ servidor.

Routers

MétodoRutaScopeDescripción
GET/routersinfrastructure:readBúsqueda/filtro/orden, paginado en BD. Consulta: search, type, location, criticality, sort, direction, limit, offset. Elementos: { id, name, type, ipAddress?, location?, internetConnection?, criticality? }.
GET/routers/{id}infrastructure:readDetalle: campos del router + criticality?, tags[]{id,name}, networks[]{ id, name, role, interfaceAddress? } conectadas, customFields[].
POST/routersinfrastructure:addCrear. Cuerpo: name, type (ambos obligatorios, typerouter|firewall|switch|access_point) · ipAddress · location · description · internetConnection.
PATCH/routers/{id}infrastructure:editActualización parcial — todos los campos opcionales.
DELETE/routers/{id}infrastructure:deleteEliminar.
GET/routers/{id}/networksinfrastructure:readRedes conectadas (array sin sobre).
PUT/routers/{id}/networksinfrastructure:editDefine las redes conectadas (conjunto completo). Cuerpo: { networkIds[] } — los ids ajenos se ignoran.
GET/routers/{id}/tagsinfrastructure:readEtiquetas (array sin sobre).
PUT/routers/{id}/tagsinfrastructure:editDefine las etiquetas (conjunto completo). Cuerpo: { tagIds[] } — filtradas al catálogo del espacio de trabajo.
PUT/routers/{id}/custom-fields/{fieldId}infrastructure:editDefine el valor de un campo personalizado ({ value }).

Puestos de trabajo, software y agentes

MétodoRutaScopeDescripción
GET/workstationsinfrastructure:readPaginado; filtro ?teamId= repetible. Los elementos incluyen hostname, salud, información del usuario, indicador de portátil, hardware, SO, uso de CPU/RAM/almacenamiento, uptime, estado de recolección e indicadores de cumplimiento.
GET/workstations/{id}infrastructure:readUn puesto de trabajo.
GET/workstations/{id}/installed-programsinfrastructure:readProgramas instalados. Consulta: search, limit, offset.
GET/workstations/{id}/usersinfrastructure:readUsuarios vistos en el puesto de trabajo.
GET/softwareinfrastructure:readInventario de software del espacio de trabajo, agrupado por programa. Consulta: search, limit, offset.
GET/software/{name}/resourcesinfrastructure:readInstalaciones de un programa en puestos de trabajo/servidores. Consulta: version, type.
GET/agents/deployment-statusagents:read{ deploymentStatistics[], availableVersions[], deployedVersions[], activeAgents[] }.

Taxonomía — categorías y etiquetas

MétodoRutaScopeDescripción
GET/categoriescategories:readPaginado. Elementos: { id, name, appCount? }.
POST/categoriescategories:addCrear. Cuerpo: { name } (obligatorio).
PATCH/categories/{id}categories:editRenombrar. Cuerpo: { name }.
DELETE/categories/{id}categories:deleteEliminar.
GET/tagstags:readPaginado. Elementos: { id, name, countOfUse }.
POST/tagstags:addCrear. Cuerpo: { name } (obligatorio).
DELETE/tags/{id}tags:deleteEliminar.

Organización y equipos

MétodoRutaScopeDescripción
GET/organizationorganisation:readEl árbol completo de la organización: { organization, children[] }.
GET/teamsorganisation:readPaginado. Elementos: { id, name, type, description?, icon?, parentOrganizationId?, createdAt, updatedAt }.
GET/teams/{id}organisation:readUn equipo.
POST/teamsorganisation:addCrear. Cuerpo: name, parentOrganizationId (ambos obligatorios) · icon.
PATCH/teams/{id}organisation:editActualizar: name?, description?, icon? (solo equipos de tipo unidad de negocio).
DELETE/teams/{id}organisation:deleteEliminar.
GET/teams/{id}/ownersorganisation:readResponsables del equipo: { accountId, email, firstName?, lastName? }.

Personas — usuarios rastreados y miembros

MétodoRutaScopeDescripción
GET/usersusers:readUsuarios finales rastreados, paginado: { userId, userRealName?, userAccount?, hostname, lastSeen, team?, teamPath?, userExperience }.
GET/users/{id}users:readDetalle: { userId, userRealName?, userAccount?, hostname, lastSeen, workstationId, health, osName, osVersion }.
GET/users/{id}/experience/summaryusers:readConsolidado de experiencia de un usuario rastreado.
GET/users/{id}/experience/all-indicators/graph · /listusers:readIndicadores combinados sobre ?period=.
GET/users/{id}/experience/errors-incidents/graph · /listusers:readErrores/incidentes sobre ?period=.
GET/users/{id}/experience/performances/graph · /listusers:readRendimiento sobre ?period=.
GET/users/{id}/experience/exportusers:readExportación por evento; las columnas applicationId/applicationName requieren además applications:read.
GET/membersmembers:readMiembros del espacio de trabajo, paginado: { accountId, email, firstName, lastName, role?, pending, createdAt }.
GET/members/{id}members:readUn miembro.
PATCH/members/{id}members:editDefine el rol del miembro. Cuerpo: { role: uuid } (validado en el espacio de trabajo).
DELETE/members/{id}members:deleteRetira al miembro del espacio de trabajo.

Los usuarios rastreados se derivan de la telemetría de uso: son de solo lectura (sin crear/actualizar/eliminar). La invitación de miembros no está disponible a través de la API pública.

Anuncios

MétodoRutaScopeDescripción
GET/announcementsannounces:readPaginado.
POST/announcementsannounces:addCrear.
PATCH/announcements/{id}announces:editActualizar.
DELETE/announcements/{id}announces:deleteEliminar.

Cuerpo de creación/actualización: title, content, type, startDate (ISO) — todos obligatorios · teams (uuid[]) · app (uuid) · endDate (ISO). Respuesta: { id, title, content, type, teams[]?, app?, startDate, endDate?, createdAt, updatedAt, seenCount, likeCount, dislikeCount, likeRatio? }.

Contratos

MétodoRutaScopeDescripción
GET/contractscontracts:readTodos los contratos del espacio de trabajo, paginado: { id, applicationId, applicationName, nature, startDate, endDate?, paymentFrom, paymentTo?, amountPerMonth, enableProjection, organizationIds[], documentIds[], createdAt, updatedAt }.
GET/contracts/expiringfinance_dashboard:readContratos próximos a expirar. Consulta: limit, teamId. Elementos: { applicationId, applicationName, applicationLogo, type, expiryDate, daysUntilExpiry }.
GET/contracts/costfinance_dashboard:readCoste total de los contratos del espacio de trabajo. Consulta: range. Respuesta: { value?, queryType }.

Las escrituras de contratos están ligadas a la aplicación — vea POST/PATCH/DELETE bajo /applications/{id}/contracts más arriba.

Registro de auditoría

MétodoRutaScopeDescripción
GET/audit-logaudit_log:readEventos de auditoría del espacio de trabajo, del más reciente al más antiguo, paginado por cursor: { data[], total, nextCursor?, hasMore }. Consulta: from/to (instantes ISO), actorId, category, actions (repetible), resourceType, resourceId, query (texto libre), limit (máx. 200), cursor.
GET/audit-log/{id}audit_log:readUn evento de auditoría (404 si es desconocido).
GET/audit-log/actorsaudit_log:readFaceta de actores distintos: { id, displayName }.

Un evento de auditoría tiene la forma { id, timestamp, intent, action, category, actor{type,id,displayName}, resourceType, resourceId, resourceName, correlationId, message? }. Las llamadas a la API pública aparecen con la clave de API como actor de tipo service.

Cuadros de mando, insights y diagramas

Cada cuadro de mando devuelve un objeto de estadísticas agregadas dedicado; la mayoría acepta un parámetro de consulta range o period.

MétodoRutaScopeDescripción
GET/dashboards/financefinance_dashboard:readVisión general financiera.
GET/dashboards/usageusage_dashboard:readVisión general de uso.
GET/dashboards/operationsoperations_dashboard:readVisión general de operaciones.
GET/dashboards/architecturearchitecture_dashboard:readVisión general de arquitectura.
GET/dashboards/technologytechnology_dashboard:readVisión general de tecnología / obsolescencia.
GET/dashboards/workstationsworkstations_dashboard:readVisión general del parque de puestos de trabajo.
GET/dashboards/healthoperations_dashboard:readGráfico diario de salud. Consulta: period.
GET/dashboards/performanceoperations_dashboard:readDistribución del rendimiento LCP. Consulta: period.
GET/dashboards/overlaparchitecture_dashboard:readEstadística de solapamiento de aplicaciones. Consulta: costRange.
GET/dashboards/documentationarchitecture_dashboard:readEstadística de completitud de la documentación.
GET/insights/application-healthapplications:readInsights de salud por aplicación, paginado.
GET/insights/most-impacted-appsoperations_dashboard:readAplicaciones clasificadas por impacto de errores. Consulta: period, limit.
GET/insights/worst-performance-appsoperations_dashboard:readAplicaciones clasificadas por peor LCP. Consulta: period, limit.
GET/diagrams/flowsflow_mapping_diagram:readDiagrama de flujos de aplicaciones. Consulta: teamId repetible.
GET/diagrams/matricesapplication_matrix_diagram:readDiagrama de matriz de aplicaciones. Consulta: teamId repetible.
GET/diagrams/quadrantsapplication_quadrant_diagram:readDiagrama de cuadrantes de aplicaciones. Consulta: teamId repetible.
GET/diagrams/life-cyclesapplication_lifecycle_diagram:readDiagrama de ciclo de vida de aplicaciones. Consulta: teamId repetible.

Los endpoints de diagramas devuelven las mismas formas de nodos que usan los diagramas de arquitectura del producto.

No disponible en esta versión

  • Webhooks / push de eventos — la API funciona solo por sondeo. Consulte Paginación y errores para los patrones de sondeo recomendados.
  • Limitación de tasa — el estado 429 está reservado por el contrato de errores, pero todavía no se aplica limitación de tasa por clave.
  • Invitación de miembros y escrituras sobre usuarios rastreados.
  • Cargas binarias — los documentos de aplicación están respaldados por URL; los logos del espacio de trabajo y de las aplicaciones no pueden subirse a través de la API.