Platform documentation

Reading data (GET API)

Summary

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.

Who this is for

Developers and integrators building automations with Elevale API personal access tokens.

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 the public code from the response (taskCode for tasks, kpiId/okrId UUID for KPIs/OKRs, etc.).

  • Call the detail endpoint for that code (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/{taskCode}

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

  • Tasks use camelCase public codes (taskCode, listCode, assigneeEmails). KPIs, OKRs, BD logs, and wiki pages use snake_case fields (e.g. created_at, update_type).

Smoke test all GET routes

ELEVALE_PAT=elv_pat_... WORKSPACE_ID=... node scripts/testOpenApi.cjs --get-all

Per-resource GET guides

  • Tasks API - status, listCode, search, assigneeEmail, 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