---
title: "The work graph log: everything that happened in a task, a session or your own work, in time order [read]"
method: GET
path: "/events"
tags: ["Events"]
---

# The work graph log: everything that happened in a task, a session or your own work, in time order \[read\]

`GET /events`

## Request

- Base URL: `https://api.agentsky.dev/v1`
- URL: `https://api.agentsky.dev/v1/events`
- Auth: HTTP bearer

With `task` or `session`, the workspace log's events for it plus your own; with neither, your private log only. The log never shows anything you cannot already open. `object=<type>:<id>` returns every event that touched that object — `sha256:<hex>` traces a file's exact bytes back to the session that produced them, across every thread of the work. Follow next_cursor until null.

## Query parameters

- `task` string
- `session` string
- `object` string
- `kind` string
- `from` string, date-time
- `to` string, date-time
- `cursor` string
- `limit` integer

## Response `200`

A page of events

- object
  - `data` object[]
    - `id` string: evt_…, time-ordered
    - `log` 'person' | 'workspace': The caller's private log, or the workspace's shared log
    - `kind` string: Dotted event type, e.g. session.message, taskfile.version_created, artifact.revised, result.obtained
    - `occurred_at` string, date-time
    - `recorded_at` string, date-time
    - `clock_source` 'server' | 'device' | 'platform'
    - `skew_ms` integer, nullable
    - `actor` object: {kind: person|agent|teammate|guest|external|system, user_id?, session_id?, platform_user?}
    - `surface` string: web, mac, api, pod, channel:<platform>, connector:<app>…
    - `source` object
      - `system` string
      - `kind` string
      - `version` string, nullable
    - `objects` object[]: Every object the event touched: sha256 of file contents, documents, sessions, messages
      - `type` string
      - `id` string
      - `role` string
    - `payload` object, nullable
    - `payload_sha256` string, nullable: Set when the payload was large and is read through /events/{id}/body?part=payload
    - `payload_removed_at` string, date-time, nullable
    - `provenance` object, nullable
    - `correlation` object: Explicit links: task_id, session_id, thread, calendar event, PR…
    - `task_id` string, nullable
    - `session_id` string, nullable
  - `next_cursor` string, nullable

## Other responses

- `400`: Invalid filter, time or cursor
- `401`: Authentication required
- `404`: Unknown, not visible to the caller, or the work graph is off for this workspace
- `503`: The work graph is not migrated yet
- `default`: Error — { error: { code, message, request_id } }

## Changes

- **2026-11-02** `e5e8f0229a99`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/agentsky/apis/agentsky-developer-api/changes/events/get.md)

---

[API](https://skmtc.dev/agentsky/apis/agentsky-developer-api.md) - [All operations](https://skmtc.dev/agentsky/apis/agentsky-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/agentsky/apis/agentsky-developer-api/revisions/0d435187cd55?raw)
