Reading data (GET API)
Use GET endpoints to pull workspace data into external tools. Every read request requires a PAT with the matching :read scope (e.g. kpis:read) and the token owner must have read permission on the corresponding workspace page.
Recommended workflow
Call a list endpoint with limit (and filters if needed).
Take an id from the response array.
Call the detail endpoint for that id (add ?include=… when you need expanded fields).
Common query parameters
limit, page size (default 50, max 100)
offset, skip rows for pagination (default 0)
search, case-insensitive match on title (and description where noted)
include, comma-separated expansions on detail endpoints (resource-specific)
Quick reference examples
# Latest KPI value (field "current" on the KPI object)
GET .../kpis/{kpiId}
# KPI + most recent history row
GET .../kpis/{kpiId}?include=latestHistory
# BD logs in a date range with total count
GET .../bd-logs?createdFrom=2026-01-01T00:00:00Z&createdTo=2026-01-31T23:59:59Z&limit=20&includeCount=true
# Single BD log
GET .../bd-logs/{logId}
# Wiki page body
GET .../wiki/pages/{pageId}?include=content
# Task detail (assignee + subtask count)
GET .../tasks/{taskId}Example: list BD logs with count
curl "https://api.elevale.app/v1/workspaces/{workspaceId}/bd-logs?limit=10&includeCount=true" \
-H "Authorization: Bearer elv_pat_..."Response includes logs (newest first), total (matching count), limit, and offset when includeCount=true.
Example: list then get KPI
curl "https://api.elevale.app/v1/workspaces/{workspaceId}/kpis?limit=5" \
-H "Authorization: Bearer elv_pat_..."
curl "https://api.elevale.app/v1/workspaces/{workspaceId}/kpis/{kpiId}?include=latestHistory" \
-H "Authorization: Bearer elv_pat_..."Response shapes
Lists return plural keys: tasks, kpis, okrs, pages, logs, conversations, messages
Details return singular keys: task, kpi, okr, page, log
Field names in JSON match database columns (snake_case, e.g. created_at, update_type)
Smoke test all GET routes
ELEVALE_PAT=elv_pat_... WORKSPACE_ID=... node scripts/testOpenApi.cjs --get-allPer-resource GET guides
Tasks API, status, listId, search, assignee, subtaskCount
KPIs API, sessionId, search, latestHistory, history
OKRs API, sessionId filter
Wiki pages API, folderId, search, include=content
BD logs API, date range, filters, get by id
Chat and conversations API, list conversations and messages