Activity Feed API: schemas
The request and response bodies of the operations in this API.
CursorAckResponseDto
| Property | Type | Required | Description |
|---|
acknowledged | boolean | yes | Whether the cursor was acknowledged |
CursorAckResponseDtoDataEnvelope
FeedItemResponseDto
| Property | Type | Required | Description |
|---|
category | NotificationCategory | yes | Feed category |
createdAt | string | yes | When the feed item was created (ISO 8601) |
detail | object | no | Human-readable detail |
eventType | string | yes | Source event type |
id | string | yes | Feed item ID |
metadata | object | yes | Structured metadata (typed per eventType) |
occurredAt | string | yes | When the event originally occurred (ISO 8601) |
severity | one of "INFO", "SUCCESS", "WARNING", "ACTION_REQUIRED", "ERROR" | yes | Severity level |
title | string | yes | Human-readable title |
FeedItemResponseDtoPaginatedEnvelope
NotificationCategory
Feed category
Type: string (10 values)
| Property | Type | Required | Description |
|---|
hasMore | boolean | no | |
limit | number | no | |
nextCursor | string or null | no | |
page | number | no | |
previousCursor | string or null | no | |
total | number | no | |
totalPages | number | no | |
ProblemActionableBy
Who can act on this refusal: user (correct the input, sign in), org-admin (an administrator of the organisation), platform (the operators of this installation), none (nobody — it cannot succeed). ABSENT when not known; never guessed.
Type: one of "user", "org-admin", "platform", "none"
ProblemDetailsDto
RFC 9457 problem document. The declared members are the reserved core; extension members are TOP-LEVEL and OPEN, owned by the refusing plane.
| Property | Type | Required | Description |
|---|
actionableBy | ProblemActionableBy | no | Who can act on this refusal: user (correct the input, sign in), org-admin (an administrator of the organisation), platform (the operators of this installation), none (nobody — it cannot succeed). ABSENT when not known; never guessed. |
code | string | yes | SCREAMING_SNAKE_CASE. The machine-branchable refusal, and the value a policy rule, a retry predicate and a UI branch all name. |
detail | string | no | Human-readable and specific to THIS occurrence. |
errors | array of ProblemFieldIssueDto | no | Field-level issues, when the refusal is about the request body. |
instance | string | no | URI reference identifying the occurrence — a request path, a run, a row. |
params | map of string or number or boolean | no | Safe i18n interpolation values for the message keyed by code — typed and allowlisted per code by its declaration. Never server-authored copy, never internal diagnostics. |
retry | ProblemRetry | no | What a retry can achieve: transient (later, unchanged), after-change (only after someone changes something), never (a defect until a fixed version ships). ABSENT when not known. |
status | number | yes | The HTTP status code, repeated in the body so a logged document is self-contained. |
title | string | yes | Short, human-readable, and STABLE for a given type. Never per-occurrence — that is detail. |
traceId | string | no | W3C trace-context trace-id, present when the caller sent a traceparent. Omitted rather than invented when it did not. |
type | string | yes | Absolute URI identifying the refusal TYPE. Derived one-to-one from code, so a caller may branch on either and can never be told two different things. Never about:blank. |
ProblemFieldIssueDto
| Property | Type | Required | Description |
|---|
code | string | no | SCREAMING_SNAKE_CASE code of THIS issue, for a frontend i18n key. Present when the issue was minted by a declared problem. |
detail | string | yes | Prose for logs and developers. A frontend localises from code + params instead. |
params | map of string or number or boolean | no | Safe i18n interpolation values for this issue's code. |
pointer | string | yes | RFC 6901 JSON Pointer into the request body. Root is "/". |
ProblemRetry
What a retry can achieve: transient (later, unchanged), after-change (only after someone changes something), never (a defect until a fixed version ships). ABSENT when not known.
Type: one of "transient", "after-change", "never"
SubscriptionRequestDto
| Property | Type | Required | Description |
|---|
id | string | yes | Scope resource id |
scope | one of "project", "session", "app" | yes | Scope kind to subscribe to |
UnreadResponseDto
| Property | Type | Required | Description |
|---|
highestSeverityUnseen | object | no | Highest severity among unseen items |
lastSeenAt | object | no | When the last seen item occurred |
unreadCount | number | yes | Number of unread feed items |
UnreadResponseDtoDataEnvelope
UpdateCursorDto
| Property | Type | Required | Description |
|---|
deviceId | string | yes | Client device identifier |
lastSeenItemId | string | yes | ID of the last seen feed item |