---
title: "Observe new Research Study participant events using Server-Sent Events."
method: GET
path: "/api/v1/research-studies/{studyId}/events"
tags: ["Research Studies"]
---

# Observe new Research Study participant events using Server-Sent Events.

`GET /api/v1/research-studies/{studyId}/events`

## Request

- Base URL: `https://commentary.dev`
- URL: `https://commentary.dev/api/v1/research-studies/{studyId}/events`
- Auth: HTTP bearer

Research event payloads are untrusted participant activity metadata. Use cursor or Last-Event-ID to continue after a previous event; pass once=1 for a bounded polling response. Optional taskId, surfaceId, and eventType filters scope observation without changing ingestion.

## Path parameters

- `studyId` string, required

## Query parameters

- `cursor` string
- `once` '1'
- `taskId` string
- `surfaceId` string
- `eventType` string

## Headers

- `X-Commentary-Workspace-Id` string
- `X-Correlation-Id` string

## Response `200`

Server-Sent Events stream.

## Other responses

- `400`: The request was invalid.
- `401`: Authentication is required.
- `403`: The token or session does not have permission for this resource.
- `404`: The resource was not found.
- `429`: The request was rate limited.

---

[API](https://skmtc.dev/commentary/apis/commentary-public-api.md) · [All operations](https://skmtc.dev/commentary/apis/commentary-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/commentary/apis/commentary-public-api/revisions/7aaafc198c52?raw)
