Skip to content

Events_ListEvents_Account

GET
/v1/accounts/{account}/events
curl --request GET \
--url 'https://dev-api.qualiastudios.dev/v1/accounts/example/events?grouping=GROUPING_UNSPECIFIED&view=VIEW_UNSPECIFIED' \
--header 'X-API-Key: <X-API-Key>'

Lists events, newest first, optionally grouped into sessions.

account
required
string

The account id.

pageSize
integer format: int32

At most this many events, or sessions when grouping; 0 means 100, the maximum is 500. TEAM_ACTIVITY defaults to 50, maximum 100. A page may hold fewer and still have a next one.

pageToken
string

From a previous response’s next_page_token, with the same parent, filter and grouping. Pages follow the record’s sequence, so events recorded after the first page never shift a later one.

filter
string

AIP-160 filter: comparisons joined by AND (or a space); OR and NOT are refused. Fields:

  • subject: a resource name; the event’s subject, or one of its related (subject = "accounts/a/datasets/d").
  • subject.name, subject.type: the subject only.
  • parent: the parent’s name.
  • actor.user, actor.api_key, actor.agent, actor.kind (PERSON, SYSTEM, …).
  • action ("qds.EPISODES_RULED"), service ("qds"), operation.
  • create_time, with = < <= > >= and an RFC 3339 time.
  • sequence, with = < <= > >=.

With view TEAM_ACTIVITY only, each with = and at most once:

  • verb: the summary’s verb (verb = EDIT, verb = PROPOSE_SUBTASKS, verb = ADD_INTEGRATION_KEY). Activity reads qds and platform records.
  • actor: the summary’s actor kind (PERSON, API_KEY, SERVICE, MODEL, SYSTEM, UNKNOWN). Unlike actor.kind, the stored kind, a row a key wrote is API_KEY and a check’s proposals are SYSTEM.
  • workspace: a workspace id, quoted; an organization’s list only.
  • text: case-insensitive substring of the subject’s recorded label, on any subject type (the summary shows it only for datasets); 3 to 256 characters.

Strings are quoted. = is exact.

grouping
string format: enum
Allowed values: GROUPING_UNSPECIFIED SESSIONS

How to group. Unset lists each event.

view
string format: enum
Allowed values: VIEW_UNSPECIFIED TEAM_ACTIVITY

Optional representation. Page tokens bind the view and its policy version.

OK

Media type application/json

Response for Events.ListEvents. (— api-linter: core::0132::response-unknown-fields=disabled aip.dev/not-precedent: a grouped list returns sessions instead. —)

object
events

One page of events, newest first. Empty when grouping.

Array<object>

One thing that happened: a row of the audit trail.

Every service writes its own events table (qds.events, platform.events, fleet.events, training.events, pipeline.events, tasks.events) in the transaction that makes the change, with these fields as columns. events-api copies the rows into one record and serves them; status (see Status) is read from the same rows. events-api writes events.events for what its retention job did (events.v1.Event).

Each service types its actions in its own proto (qds.workflow.v1.Event, platform.v1.Event, fleet.v1.Event, training.v1.Event, pipeline.v1.Event, tasks.v1.Event, events.v1.Event): action is the service name and the type’s value name, and payload is the matching payload message as protojson, rendered by the writer. Nothing downstream decodes a service proto.

Served by events-api (Events), read from the record.

object
id

The event’s id (a UUID). The relay copies a row under this id, so a replayed copy is a no-op. (— api-linter: core::0148::use-uid=disabled aip.dev/not-precedent: the envelope predates the resource; id is a stored column and the stream’s field. —)

string
sequence

Its place in the record: one global sequence, strictly increasing, in the order rows were copied. A service’s own table numbers its rows separately (source_sequence).

string
createTime

When the change was committed.

string format: date-time
organization

The organization (account) id it happened in.

string
workspace

The workspace id it happened in; empty when origin is ORGANIZATION.

string
service

The service that committed it: “qds”, “platform”, “fleet”, “training”, “pipeline”, “tasks” or “events”. The prefix of action.

string
actor

Who did it. api_key is set when a person acted through a key; actor kind SYSTEM, RULE or MODEL for changes nobody made by hand.

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
action

What happened: <service>.<TYPE>, e.g. “qds.EPISODES_RULED”. TYPE is a value name of the service’s Event.Type.

string
subject

What it happened to, e.g. a dataset.

object
type

What kind of thing, e.g. “dataset”, “episode”, “robot”, “workspace”.

string
name

Its resource name or id, e.g. “accounts/a/datasets/d”.

string
label

What a person called it at the time, e.g. “Pick and place, v2”.

string
parent

What the subject lives in, when that matters for filtering (a dataset’s episode, a run’s op); unset otherwise.

object
type

What kind of thing, e.g. “dataset”, “episode”, “robot”, “workspace”.

string
name

Its resource name or id, e.g. “accounts/a/datasets/d”.

string
label

What a person called it at the time, e.g. “Pick and place, v2”.

string
related

Other things the one change touched, e.g. the episodes a ruling covered, or the second entity of a two-entity action.

Array<object>

A thing an event or a status points at. Labels are captured when the event is written, so a renamed or deleted thing still reads as it was. (— api-linter: core::0123::resource-annotation=disabled aip.dev/not-precedent: a pointer at a resource, not one itself. —)

object
type

What kind of thing, e.g. “dataset”, “episode”, “robot”, “workspace”.

string
name

Its resource name or id, e.g. “accounts/a/datasets/d”.

string
label

What a person called it at the time, e.g. “Pick and place, v2”.

string
summary

One plain line, e.g. “rejected 12 episodes”.

string
payload

The service’s payload message for action, as protojson. Never holds a secret value.

A Struct, not a Value: protojson renders a message as a JSON object, so a scalar or list here would be a writer bug the type now refuses. Not an Any: an Any needs the service’s descriptors to read, and readers here never have them.

object
payloadType

The payload’s full message name, e.g. “qds.workflow.v1.Event.EpisodesRuled”; empty when there is no payload.

string
requestId

The request that made the change, for joining with its logs and trace. (— api-linter: core::0155::request-id-format=disabled aip.dev/not-precedent: a recorded value, not an idempotency key. —)

string
undoable

Whether the owning service can undo it.

boolean
undoes

The id of the event this one undid; empty unless it is an undo.

string
operation

The running work it belongs to, when it does (Status.operation). Every OPERATION_* event sets it.

string
sourceSequence

The source row’s sequence in its service’s events table (service names the table). Status orders an operation’s transitions by it, never by sequence, which is only the order rows reached the record (ADR 0025, “Order: two sequences”).

string
name

Accounts/{account}/workspaces/{workspace}/events/{event} for an event of a workspace; accounts/{account}/events/{event} for one of the organization itself. {event} is id. Every event of an organization can also be read by its organization path.

string
origin

Whether a workspace or the organization itself made the change.

string format: enum
Allowed values: ORIGIN_UNSPECIFIED WORKSPACE ORGANIZATION
activityLink

Explicit request correlation. Absent on historical uncorrelated records.

object
root

Canonical root event UUID, scoped to the event’s account.

string
role

Whether this event is the root or a derived effect.

string format: enum
Allowed values: ROLE_UNSPECIFIED ROOT EFFECT
nextPageToken

Empty on the last page.

string
sessions

One page of sessions, newest first; set only when grouping is SESSIONS.

Array<object>

Repeated work by one actor on one thing, shown as one line (ADR 0025, Decided 4).

Walking a list newest first, an event joins the session before it when it has the same actor (kind, user, API key and agent) and the same subject (type and name), and was created within 30 minutes of the event that joined it last. Anything else in between, as the filter left the list, ends the session. A session holds at most 1000 events; the next one starts a new session. Sessions never span pages.

object
latest

Its newest event, the one to show.

object
id

The event’s id (a UUID). The relay copies a row under this id, so a replayed copy is a no-op. (— api-linter: core::0148::use-uid=disabled aip.dev/not-precedent: the envelope predates the resource; id is a stored column and the stream’s field. —)

string
sequence

Its place in the record: one global sequence, strictly increasing, in the order rows were copied. A service’s own table numbers its rows separately (source_sequence).

string
createTime

When the change was committed.

string format: date-time
organization

The organization (account) id it happened in.

string
workspace

The workspace id it happened in; empty when origin is ORGANIZATION.

string
service

The service that committed it: “qds”, “platform”, “fleet”, “training”, “pipeline”, “tasks” or “events”. The prefix of action.

string
actor

Who did it. api_key is set when a person acted through a key; actor kind SYSTEM, RULE or MODEL for changes nobody made by hand.

object
kind

What kind of actor it is.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON VALIDATION RULE MODEL OPERATOR SYSTEM
user

The person’s user id when kind is PERSON; empty otherwise.

string
displayName

The person’s display name at the time, for rendering without a lookup.

string
agent

The rule code, or the model id (e.g. “gemini-robotics-er”), when not a person.

string
run

The run a model or rule finding came from, when it has one.

string
apiKey

The API key’s id when a person acted through one; empty for a session. Never the key itself.

string
attribution

Signed identity evidence recorded with the change, kept apart from the principal above. Unset on older records and wherever none was signed.

object
authentication

How the principal authenticated.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

The user id of a person verified as starting the work: the person of a session, or the person a trusted service’s signed job record names. Empty when nobody was verified.

string
initiatorDisplayName

The initiator’s display name at the time, never their email.

string
credentialCreator

The user id of the key’s creator at the time. Not who used the key.

string
credentialOwner

Who owned the key at the time.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
credentialOwnerSpace

The owning space’s id (a workspace or the organization) when credential_owner is SPACE.

string
action

What happened: <service>.<TYPE>, e.g. “qds.EPISODES_RULED”. TYPE is a value name of the service’s Event.Type.

string
subject

What it happened to, e.g. a dataset.

object
type

What kind of thing, e.g. “dataset”, “episode”, “robot”, “workspace”.

string
name

Its resource name or id, e.g. “accounts/a/datasets/d”.

string
label

What a person called it at the time, e.g. “Pick and place, v2”.

string
parent

What the subject lives in, when that matters for filtering (a dataset’s episode, a run’s op); unset otherwise.

object
type

What kind of thing, e.g. “dataset”, “episode”, “robot”, “workspace”.

string
name

Its resource name or id, e.g. “accounts/a/datasets/d”.

string
label

What a person called it at the time, e.g. “Pick and place, v2”.

string
related

Other things the one change touched, e.g. the episodes a ruling covered, or the second entity of a two-entity action.

Array<object>

A thing an event or a status points at. Labels are captured when the event is written, so a renamed or deleted thing still reads as it was. (— api-linter: core::0123::resource-annotation=disabled aip.dev/not-precedent: a pointer at a resource, not one itself. —)

object
type

What kind of thing, e.g. “dataset”, “episode”, “robot”, “workspace”.

string
name

Its resource name or id, e.g. “accounts/a/datasets/d”.

string
label

What a person called it at the time, e.g. “Pick and place, v2”.

string
summary

One plain line, e.g. “rejected 12 episodes”.

string
payload

The service’s payload message for action, as protojson. Never holds a secret value.

A Struct, not a Value: protojson renders a message as a JSON object, so a scalar or list here would be a writer bug the type now refuses. Not an Any: an Any needs the service’s descriptors to read, and readers here never have them.

object
payloadType

The payload’s full message name, e.g. “qds.workflow.v1.Event.EpisodesRuled”; empty when there is no payload.

string
requestId

The request that made the change, for joining with its logs and trace. (— api-linter: core::0155::request-id-format=disabled aip.dev/not-precedent: a recorded value, not an idempotency key. —)

string
undoable

Whether the owning service can undo it.

boolean
undoes

The id of the event this one undid; empty unless it is an undo.

string
operation

The running work it belongs to, when it does (Status.operation). Every OPERATION_* event sets it.

string
sourceSequence

The source row’s sequence in its service’s events table (service names the table). Status orders an operation’s transitions by it, never by sequence, which is only the order rows reached the record (ADR 0025, “Order: two sequences”).

string
name

Accounts/{account}/workspaces/{workspace}/events/{event} for an event of a workspace; accounts/{account}/events/{event} for one of the organization itself. {event} is id. Every event of an organization can also be read by its organization path.

string
origin

Whether a workspace or the organization itself made the change.

string format: enum
Allowed values: ORIGIN_UNSPECIFIED WORKSPACE ORGANIZATION
activityLink

Explicit request correlation. Absent on historical uncorrelated records.

object
root

Canonical root event UUID, scoped to the event’s account.

string
role

Whether this event is the root or a derived effect.

string format: enum
Allowed values: ROLE_UNSPECIFIED ROOT EFFECT
eventCount

How many events it holds, latest included.

integer format: int32
startTime

The earliest create_time among its events. Record order does not follow create_time, so this need not be the oldest event’s.

string format: date-time
endTime

The latest create_time among its events.

string format: date-time
events

The names of its events, newest first: the first 100. For all of them, list with subject.name, the actor and sequence between first_sequence and latest.sequence.

Array<string>
firstSequence

The record sequence of its oldest event.

string
activity

Bounded intentional actions, newest first. Only set for TEAM_ACTIVITY.

Array<object>

Bounded summary of one recorded intentional action. No synthetic grouping. Historical merged reviews remain separate events. Only the recorded subject label is included as text; no payload, reason, related targets, config or revision content is sent.

object
event

Canonical raw event reference, also the detail lookup key. Consumers deduplicate by this field; request_id is not an action identity.

string
uid

The canonical event UUID, preserved unchanged.

string
sequence

Global record sequence, used by both list ordering and SSE resume.

string
createTime

Recorded action time.

string format: date-time
verb

What the action did, independent of subsequent execution outcomes.

string format: enum
Allowed values: VERB_UNSPECIFIED KEEP REJECT RESET RESTORE EDIT ACCEPT_SUGGESTIONS REJECT_SUGGESTIONS SPLIT UNSPLIT REQUEST_REINGEST EDIT_DATASET ISSUE_RAISED ISSUE_EDITED ISSUE_CONVERTED ISSUE_WITHDRAWN DISMISS_ISSUES REOPEN_ISSUES REPLY_ADDED REPLY_EDITED REPLY_DELETED UNDO REQUEST_CHECKS PROPOSE_SUBTASKS ADD_INTEGRATION_KEY REMOVE_INTEGRATION_KEY COPY_DATASET MOVE_DATASET COPY_DATASET_STARTED COPY_DATASET_FAILED UPLOAD_DATASET
changedCount

Actual changed episodes, or distinct accepted episodes for a checks request, or distinct episodes with published proposals at run termination. Absent means unknown; child operations are never this count.

string
changedFields

At most fifteen allowlisted field names, without values.

Array<string>
actor

Recorded identity evidence only. No historical owner lookup.

object
kind

Evidence category.

string format: enum
Allowed values: KIND_UNSPECIFIED PERSON API_KEY UNKNOWN SERVICE SYSTEM MODEL
user

Recorded UUID only, absent whenever a credential was recorded.

string
credential

Credential UUID only, never its value, label, creator or owner.

string
authentication

Signed authentication method. Unspecified means not recorded; a key or a session never implies the client (UI, SDK) that used it.

string format: enum
Allowed values: AUTHENTICATION_UNSPECIFIED SESSION API_KEY SERVICE
initiator

Verified initiating person’s UUID, when recorded. Never a key’s creator.

string
credentialOwner

Who owned the recorded key at the time, when recorded.

string format: enum
Allowed values: CREDENTIAL_OWNER_UNSPECIFIED PERSON SPACE
service

The executing service, service:<name>, for a SERVICE principal.

string
dataset

Canonical dataset reference when valid.

string
datasetLabel

Dataset label recorded on the raw event’s subject, at most 256 characters. Empty when no label was recorded or dataset is absent. Not its name today.

string
subjectType

The raw event’s subject type (dataset, episode, secret, …), at most 64 characters.

string
subjectLabel

The label recorded on the raw event’s subject, of any type, at most 256 characters; empty when none was recorded. Not its name today.

string
transfer

COPY_DATASET, MOVE_DATASET, COPY_DATASET_STARTED and COPY_DATASET_FAILED: where the dataset came from and went, as recorded. Absent for every other verb.

object
source

Where the dataset came from.

object
dataset

The dataset at this end, in the row’s organization; empty for another organization’s end.

string
datasetLabel

The dataset’s name when it was recorded, at most 256 characters; empty with dataset.

string
workspace

The workspace, in the row’s organization; empty for another organization’s end.

string
workspaceLabel

The workspace’s name when it was recorded, at most 256 characters.

string
organizationLabel

The organization’s name when it was recorded, at most 256 characters; set only for another organization’s end.

string
target

Where it went: the copy, or the moved dataset.

object
dataset

The dataset at this end, in the row’s organization; empty for another organization’s end.

string
datasetLabel

The dataset’s name when it was recorded, at most 256 characters; empty with dataset.

string
workspace

The workspace, in the row’s organization; empty for another organization’s end.

string
workspaceLabel

The workspace’s name when it was recorded, at most 256 characters.

string
organizationLabel

The organization’s name when it was recorded, at most 256 characters; set only for another organization’s end.

string
version

The version tag copied; empty for the current version and for a move.

string
episodeCount

Episodes the copy holds, or the moved dataset.

string
bytesShared

Bytes of content the copy references: what a byte copy would write.

string
bytesWritten

Bytes the transfer wrote to blob storage (0 inside one organization).

string
robotsCleared

Robots cleared by this transfer. Another organization’s name is omitted.

Array<object>

A robot named by a transfer, including its name before a later deletion. (— api-linter: core::0123::resource-annotation=disabled aip.dev/not-precedent: a pointer at a robot, not a resource itself. —)

object
name

Accounts/{account}/robots/{robot}.

string
displayName

The robot’s display name at transfer time.

string
robotsRestored

Robots restored by a move back.

Array<object>

A robot named by a transfer, including its name before a later deletion. (— api-linter: core::0123::resource-annotation=disabled aip.dev/not-precedent: a pointer at a robot, not a resource itself. —)

object
name

Accounts/{account}/robots/{robot}.

string
displayName

The robot’s display name at transfer time.

string
robotsNotRestored

Previous robots that could not be restored.

Array<object>

A robot named by a transfer, including its name before a later deletion. (— api-linter: core::0123::resource-annotation=disabled aip.dev/not-precedent: a pointer at a robot, not a resource itself. —)

object
name

Accounts/{account}/robots/{robot}.

string
displayName

The robot’s display name at transfer time.

string
referenceRanges

Reference ranges left behind and found by a move.

object
sourceRanges

Ranges in the source workspace, which no longer apply.

string
targetRanges

Ranges in the target workspace, which apply from now on.

string
activityCursor

TEAM_ACTIVITY snapshot cursor. Open its separate SSE subscription after the first page’s cursor, then merge by ActivitySummary.event. Use only the first page’s cursor; later pages do not replace the live cursor.

string
activityViewVersion

The classifier/projection version bound into Activity page tokens.

string
Example
{
"events": [
{
"actor": {
"kind": "KIND_UNSPECIFIED",
"attribution": {
"authentication": "AUTHENTICATION_UNSPECIFIED",
"credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED"
}
},
"origin": "ORIGIN_UNSPECIFIED",
"activityLink": {
"role": "ROLE_UNSPECIFIED"
}
}
],
"sessions": [
{
"latest": {
"actor": {
"kind": "KIND_UNSPECIFIED",
"attribution": {
"authentication": "AUTHENTICATION_UNSPECIFIED",
"credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED"
}
},
"origin": "ORIGIN_UNSPECIFIED",
"activityLink": {
"role": "ROLE_UNSPECIFIED"
}
}
}
],
"activity": [
{
"verb": "VERB_UNSPECIFIED",
"actor": {
"kind": "KIND_UNSPECIFIED",
"authentication": "AUTHENTICATION_UNSPECIFIED",
"credentialOwner": "CREDENTIAL_OWNER_UNSPECIFIED"
}
}
]
}

Default error response

Media type application/json

The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide.

object
code

The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].

integer format: int32
message

A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.

string
details

A list of messages that carry the error details. There is a common set of message types for APIs to use.

Array<object>

Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.

object
@type

The type of the serialized message.

string
key
additional properties
any
Example generated
{
"code": 1,
"message": "example",
"details": [
{
"@type": "example"
}
]
}