Workspace

GET /v1/workspace/logs

GET/v1/workspace/logsscope: template:read

Activity log for the key's workspace — every tracked action across templates, renders, members, billing, webhooks and more. Mirrors Orshot's /workspace/logs.

ParamTypeNotes
pagenumberDefaults to 1.
limitnumberDefaults to 25, max 100.
source"dashboard" | "api" | "signed-url" | "webhook" | "mcp" | "staff" | "system"Which surface produced the entry.
status"success" | "failure"
actionstringPrefix match on a dotted action name, e.g. "workspace.member" covers every member event.
fromstring (ISO 8601)e.g. 2026-08-01T00:00:00Z.
tostring (ISO 8601)e.g. 2026-08-31T23:59:59Z.
curl "https://buildonce.app/v1/workspace/logs?action=render&limit=10" \
  -H "Authorization: Bearer fl_live_YOUR_API_KEY"
Response
{
  "items": [
    {
      "id": "aud_9k2mq4x7tb1c",
      "action": "workspace.member.invited",
      "target": { "type": "member", "id": "mem_2a1b3c" },
      "source": "dashboard",
      "status": "success",
      "actor": { "type": "user", "label": "jordan@acme.com" },
      "ip": "203.0.113.42",
      "metadata": { "email": "new-member@acme.com", "role": "member" },
      "createdAt": "2026-09-28T12:00:00.000Z"
    },
    {
      "id": "aud_4hd9s0k2mq7z",
      "action": "render.created",
      "target": { "type": "render", "id": "rnd_8kq2m4x7ab1c" },
      "source": "api",
      "status": "success",
      "actor": { "type": "api_key", "label": "key_8f2a…" },
      "ip": "203.0.113.17",
      "metadata": { "templateId": "tpl_123", "renderId": "rnd_8kq2m4x7ab1c" },
      "createdAt": "2026-09-28T11:58:00.000Z"
    }
    /* … */
  ],
  "total": 540,
  "page": 1,
  "limit": 25
}

actor.label is the acting user's email or the API key's public id — never a raw key. target is null when the action has no single affected object. metadata varies by action.

Was this page helpful?