---
title: "A task's events and inferred cross-thread associations [read]"
method: GET
path: "/tasks/{id}/graph"
tags: ["Tasks"]
---

# A task's events and inferred cross-thread associations \[read\]

`GET /tasks/{id}/graph`

## Request

- Base URL: `https://api.agentsky.dev/v1`
- URL: `https://api.agentsky.dev/v1/tasks/{id}/graph`
- Auth: HTTP bearer

Includes events sharing exact file hashes, document identities or conversation threads with the task. Inferred links always carry confidence and evidence, and never grant source access. Corrections are personal. Follow next_cursor until null; each page is ordered by occurred_at and event id.

## Path parameters

- `id` string, required

## Query parameters

- `cursor` string
- `limit` integer
- `related` boolean

## Response `200`

One page of the graph

- object
  - `task_id` string
  - `next_cursor` string, nullable
  - `data` object[]
    - `event` 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
    - `link` object
      - `kind` 'explicit' | 'inferred' | 'confirmed'
      - `confidence` number
      - `pinned` boolean
      - `version` integer
      - `evidence` object[]
        - `type` string
        - `id` string
        - `reason` string
        - `confidence` number: Association score, not a calibrated probability
        - `shared_tasks` integer: Distinct visible tasks sharing this identity

## Other responses

- `400`: Invalid query or correction
- `401`: Authentication required
- `403`: A person's identity is required for corrections
- `404`: Task or source event is unavailable to the caller
- `409`: The link changed; refresh and use its current version
- `503`: Associations are not migrated yet
- `default`: Error — { error: { code, message, request_id } }

## Changes

- **2026-11-02** `0d435187cd55`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/agentsky/apis/agentsky-developer-api/changes/tasks/:id/graph/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/fa82707ab831?raw)
