List the workspace activity
Who changed what in the workspace, latest first: resources added, edited, re-indexed or deleted, site rules and syncs, assistants and widgets created, edited, paused or deleted, tags renamed or deleted, members' access changed. Each line says who (a member, an API key, or Lookio itself for a scheduled sync), through which door (app, api, cli, mcp, agent for Lookio AI, system), and which fields changed (names only, never content). Filter by actor_id, origin, target_type, target_id, action and from/to, and paginate with cursor. Kept a year. Admins only, through a personal connection (the CLI's lookio auth login, an MCP client) with the admin scope: an API key never has it. Costs nothing.
GET/v1/logs/activity
Requires admin.
Who changed what, latest first: resources added, edited, re-indexed or deleted, site rules and syncs, assistants and widgets created, edited, paused or deleted, tags renamed or deleted, and members’ access changed. You page with cursor, an opaque string: pass next_cursor back unchanged. See Pagination.
Each line has the actor (a member, an API key, or Lookio itself for a scheduled sync), the origin (the door used: app, api, cli, mcp, agent for Lookio AI, or system), the target with its name at the time of the change, and details: the names of the fields that changed, counts or a sync’s figures. It never holds content.
Narrow the list with actor_id, origin (comma-separated), target_type (resource, assistant, widget, tag or member), target_id, action (an exact action such as assistant.updated, or a kind such as assistant for every action on it), q (words in the name of what changed) and from and to. Use target_id to answer “who changed this assistant?” and actor_id to answer “what did this key do?”.
Admins only. The caller must be an admin connected as a person (OAuth: the CLI login or an MCP client) with the admin scope; an API key never has it, and the call fails with permission_denied. Entries are kept a year. See Logs.
Authorizations
Authorizationbearerin headerrequiredQuery parameters
actor_idstringlength: 1–64 charsOnly what this member (user id) or API key (key id) did.
originstringlength: ≥ 1 charsOnly changes made through these doors, comma-separated: app, api, cli, mcp, agent (Lookio AI), system (Lookio itself, such as a scheduled sync).
target_typeenum<string>one of: resource, assistant, widget, tag, memberOnly changes to this kind of thing.
target_idstringlength: 1–64 charsOnly changes to this resource, assistant, widget or member.
actionstringpattern: ^[a-z_]+(\.[a-z_]+)?$An exact action (assistant.updated) or every action on a kind (assistant).
qstringlength: 1–200 charsWords in the name of what changed.
fromstringOnly changes since this ISO 8601 date or timestamp.
tostringOnly changes until this ISO 8601 date or timestamp.
cursorstringlength: 1–200 charsPass next_cursor from the previous page, unchanged.
limitintegerrange: 1–100Number of items to return. Values outside 1-100 are clamped, and the response reports the limit actually applied.
Response
List the workspace activity
dataobject[]requiredhas_morebooleanrequiredTrue when another page follows: pass next_cursor back as cursor.
next_cursorstringnullrequiredPass it back unchanged as cursor. Null on the last page.
limitintegerrequiredThe page size actually applied.
request_idstringrequiredPossible codes: invalid_request, unknown_field, invalid_parameter, invalid_cursor
errorobjectrequiredrequest_idstringrequiredPossible codes: authentication_required, invalid_api_key, api_key_expired, api_key_revoked, invalid_access_key
errorobjectrequiredrequest_idstringrequiredPossible codes: insufficient_scope, feature_not_available, admin_required, permission_denied
errorobjectrequiredrequest_idstringrequiredPossible codes: rate_limited
errorobjectrequiredrequest_idstringrequiredPossible codes: internal_error
errorobjectrequiredrequest_idstringrequired