Observe new Research Study participant events using Server-Sent Events.
GET /api/v1/research-studies/{studyId}/events
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.
Access
Section titled “Access”Use a credential with commentary.research.read.
Provider access, workspace membership, and agent grants are enforced separately. A token does not expand access to a repository or resource. Set up developer access.
Parameters
Section titled “Parameters”| Name | Location | Type | Required | Description |
|---|---|---|---|---|
studyId |
path | string | Yes | Research Study id. |
cursor |
query | string | No | Research event id cursor. |
once |
query | "1" |
No | |
taskId |
query | string | No | |
surfaceId |
query | string | No | |
eventType |
query | string | No | |
X-Commentary-Workspace-Id |
header | string | No | Must match the credential workspace. This header cannot widen grant authority. |
X-Correlation-Id |
header | string | No |
Call the endpoint
Section titled “Call the endpoint”Replace path placeholders and your credential. For body operations, create request.json using the required fields above; this command does not invent resource identifiers or consent.
curl --request GET \ 'https://commentary.dev/api/v1/research-studies/<studyId>/events' \ --header 'Authorization: Bearer <your-token>'Responses
Section titled “Responses”| Status | Meaning | Payload |
|---|---|---|
200 |
Server-Sent Events stream. | See response headers or body contract |
400 |
The request was invalid. | ExternalError |
401 |
Authentication is required. | ExternalError |
403 |
The token or session does not have permission for this resource. | ExternalError |
404 |
The resource was not found. | ExternalError |
429 |
The request was rate limited. | ExternalError |
Recover from errors
Section titled “Recover from errors”Use the returned status and error body. Correct invalid fields before retrying; reconnect or narrow the target for authentication and permission errors. For conditional writes, reload the latest version before preparing a new request. Respect rate-limit headers and retry only when the operation’s idempotency contract permits it.
Contract and related guidance
Section titled “Contract and related guidance”Operation ID: listenResearchStudyEvents. Download the OpenAPI contract for complete constraints and code generation. Browse endpoints.