Skip to main content

API Overview

Audience: Integration developers and application administrators

Address and authentication​

Use your deployment's configured API base URL. Paths below are relative to it; do not automatically append /api or /api/v1 to the web application address.

Protected user calls require Authorization: Bearer <access_token>, and company-scoped calls also require X-Tenant-ID: <tenant_id>. Users can access only authorized companies and records; supplying a company ID does not grant access. Use Content-Type: application/json when sending JSON.

The authentication guide explains login, refresh cookies, company switching and logout. The Push Measurement API uses a separate x-api-key; a push key does not replace a user JWT.

Common calls​

MethodPathOperation
POST/auth/loginEmail/password login, access token and refresh session
POST/auth/sessionNew access token using the HttpOnly refresh cookie
POST/auth/refreshRenew using a still-valid access token
POST/auth/logoutEnd the valid-token and refresh session
POST/auth/session/logoutEnd the refresh session without an access token
GET/auth/profileAccount and membership context
POST/auth/switch-tenantSwitch to an authorized company
GET/plans/resource-usageCompany resource usage and limits
GET/plans/effective/:groupIdGroup's effective entitlements
GET/plans/my-groupsEffective entitlements for the user's groups
GET/kpisKPI register list
POST/kpisCreate a KPI
GET / PATCH / DELETE/kpis/:idRead / update / delete a KPI
POST/kpis/:id/retire, /kpis/:id/reactivateRetire / reactivate
GET / POST/kpis/:id/measurementsList / add measurements
PATCH / DELETE/kpis/:id/measurements/:measurementIdUpdate / delete a measurement
GET/kpis/:id/usages, /kpis/:id/auditReport usages / KPI history
PUT/kpis/:id/success-criteriaSave success criteria with version checking
GET / POST/kpi-usages/:parentType/:parentIdList / add report KPI usages
PUT/kpi-usages/:parentType/:parentId/weightsUpdate report weights
PATCH / DELETE/kpi-usages/:parentType/:parentId/:usageIdUpdate / remove one usage
GET/reports/performance/units, /reports/performance/persons, /reports/performance/myPerformance reports within your scope
GET/dashboard/admin, /dashboard/unit-leader, /dashboard/member, /dashboard/strategy-compassDashboard data with role and record scope applied
GET/ai-assistant/models, /ai-assistant/agentsAvailable model and agent options
GET / POST/ai-assistant/conversationsList / create your conversations
GET / PATCH / DELETE/ai-assistant/conversations/:idRead / update / delete your conversation
POST/ai-assistant/agui/:agentIdAG-UI request; response is an SSE event stream rather than JSON
POST/ai-assistant/conversations/:id/cancelStop an active conversation run

Each method applies only to the path where it is listed. Replace placeholders such as :id with actual IDs. This list does not enumerate every sub-operation of every resource.

Locate module paths​

Organization uses /org, products /products, planning periods /strategic-cycles, mission/vision /mission-vision, status reports /current-states, analyses /resources-vrio, /pestle, /porter-5, /bcg-matrix, /digital-maturity, /excellence-assessments, /product-scorecard, /findings; SWOT uses /swot, focus areas /strategic-themes, and OKRs /new-okr. These are module prefixes; they do not imply identical GET/POST/PATCH support at every prefix.

In SaaS, the Super Admin reads the catalog with GET /admin/entitlements/catalog, lists groups with GET /admin/entitlements/sets, and reads/saves one set with GET/PUT /admin/entitlements/sets/:groupId. Saving requires the current expectedVersion; a concurrent change returns 409. On-prem installations disable set management and use the signed license and file catalog.

In development/staging, Swagger at /api provides methods, request bodies, query parameters and response schemas; this interface is disabled in production.

Errors and operation safety​

  • 400: Invalid field/format or business rule; inspect the response explanation.
  • 401: Invalid session or token. Restore the session if a valid refresh cookie is available.
  • 403: Access denied by role, company/record scope, menu, module or installation license.
  • 404: Resource missing or inaccessible in this scope.
  • 409: Version/concurrent-change conflict; reload the current data and reassess.
  • 422: Business-rule restriction such as a resource limit.
  • 429: Endpoint rate limit exceeded. Limits depend on the endpoint and configuration.

Do not blindly retry a write whose result is unknown; handle duplicate-record/measurement risks according to that endpoint's contract. Keep tokens and secret keys out of logs when recording response code and message fields.

See also​