---
title: "List activity feed entries"
method: GET
path: "/api/v1/activity_feed"
---

# List activity feed entries

`GET /api/v1/activity_feed`

Returns a cursor-paginated list of activity feed entries visible to the
authenticated user. Entries are ordered from newest to oldest by default.
Use `before_cursor` to page backward and `after_cursor` to page forward.

Results are scoped to the caller's app. All filter params are optional and
can be combined. Passing multiple values in an array filter returns entries
matching any of the supplied values (OR semantics).

Invalid `kind` or `level` values return a 400 error listing the accepted
values rather than being silently ignored.

## Query parameters

- `limit` integer
- `kind` string[]
- `level` string[]
- `after_cursor` string
- `before_cursor` string
- `agent` string[]
- `org` string[]
- `team` string[]
- `thread` string[]
- `correlation_id` string

## Response `200`

Successful response

- object — Cursor-paginated list of activity feed entries.
  - `after_cursor` string — Opaque cursor to pass as `after_cursor` to retrieve the next newer page. Absent when no newer entries exist.
  - `before_cursor` string — Opaque cursor to pass as `before_cursor` to retrieve the next older page. Absent when no older entries exist.
  - `data` object[], required — Array of activity feed entry objects for the current page, ordered newest first.
    - `agent` union — The agent that produced this event. Returns an agent ID (`agi_...`) by default, or an expanded agent object when the association is loaded. `null` if no agent is associated.
      - object — An AI agent that can be configured with tools, routines, and skills, and invoked to handle conversations or tasks.
        - `acl` object — Access control list for the agent. Contains a `grants` array where each entry specifies `principal_type`, `principal`, and `actions`. `null` when no ACL restrictions are applied and the agent is accessible to all members of its scope.
          - `add` object[] — Patch mode: grants to add or merge into the existing list. Cannot be combined with `grants`.
            - `actions` string[], required — Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry.
            - `principal` string — The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`.
            - `principal_type` string, required — The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`.
          - `grants` object[] — Replace mode: the complete new list of grants that replaces all existing entries. Send an empty array (`[]`) to clear all grants. Cannot be combined with `add` or `remove`.
            - `actions` string[], required — Array of action strings the principal is permitted to perform, e.g. `["read", "write"]`. Must contain at least one entry.
            - `principal` string — The identifier of the principal. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`; omit entirely when `principal_type` is `"everyone"`.
            - `principal_type` string, required — The kind of principal receiving the grant. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`.
          - `remove` object[] — Patch mode: principals whose grants should be removed from the existing list. Cannot be combined with `grants`.
            - `principal` string — The identifier of the principal to remove. A string ID for `"user"`, `"team"`, `"org"`, and `"agent"` types; one of `"admin"`, `"member"`, or `"viewer"` for `"org_role"`. Omit when `principal_type` is `"everyone"`.
            - `principal_type` string, required — The kind of principal to remove. One of `"user"`, `"team"`, `"org"`, `"org_role"`, `"agent"`, or `"everyone"`.
        - `app` string — ID of the application that owns this agent (`dap_...`).
        - `created_at` string, date-time — When the agent was created (ISO 8601).
        - `default_model` string — Default LLM model identifier used by this agent when no model is specified at runtime (e.g. `"claude-3-7-sonnet-latest"`).
        - `email` string — Email address provisioned for this agent. `null` if email delivery is not configured.
        - `id` string, required — Agent ID (`agi_...`).
        - `identity` string — System-level identity prompt that shapes the agent's persona and behavior.
        - `last_applied_template_config` string — ID of the AgentTemplate config (`cfg_...`) this agent was last provisioned or updated from. `null` for manually created agents.
        - `lookup_key` string — Stable, user-defined identifier for this agent within the application. Unique per app.
        - `metadata` object — Arbitrary key-value metadata attached to the agent. Not interpreted by the platform.
        - `name` string — Human-readable display name for the agent. `null` if not set.
        - `org` string — ID of the organization this agent belongs to (`org_...`). `null` if the agent is not org-scoped.
        - `org_name` string — Display name of the organization this agent belongs to. `null` when the agent is not org-scoped or when the org association was not preloaded.
        - `originator` string — Free-form label identifying the source or author that created this agent (e.g. a username or pipeline name).
        - `phone_number` string — Phone number provisioned for this agent. `null` if SMS is not configured.
        - `sandbox` string — ID of the sandbox environment this agent is scoped to (`dsb_...`). `null` in production deployments.
        - `source_solution` object — Source Solution and AgentTemplate summary for agents provisioned from a Solution. Includes `upgrade_available`, `latest_version`, and `latest_solution` so you can render an upgrade badge without a separate dry-run call. `null` for hand-built agents and agents whose tracked template or parent Solution has been deleted. Populated only on single-agent GET responses, never on list endpoints.
          - `solution` object, required — Summary of the parent Solution, including `upgrade_available`, `latest_version`, and `latest_solution` when a newer system-scoped version is available for the agent's org-scoped Solution.
            - `category_keys` string[] — Category tag keys declared in the Solution body, used to group Solutions in the catalog. An empty array when the body declares none.
            - `created_at` string, date-time — When the Solution config was first imported (ISO 8601).
            - `description` string — Short tagline or summary declared in the Solution body, used as the card subhead in catalog UIs. `null` when the Solution body does not set one.
            - `id` string, required — Solution config ID (`cfg_...`).
            - `kind` string, required — Resource type. Always `"Solution"`.
            - `latest_solution` string — When `upgrade_available` is `true`, the system-scope Solution config ID (`cfg_...`) that should be used as the upgrade source. `null` otherwise.
            - `latest_version` string — When `upgrade_available` is `true`, the higher system-scope `solution_version` available to upgrade to. `null` otherwise.
            - `lookup_key` string — The lookup key stored on the Solution config, if one was assigned during import. `null` when no lookup key was set.
            - `metadata` object — Arbitrary key-value metadata declared in the Solution body (e.g. category or display hints). Present as an empty object when the body declares none.
            - `name` string — Human-facing display name declared in the Solution body. `null` when the Solution body does not set one.
            - `org` string — Organization ID (`org_...`) that owns this Solution config, when the Solution is scoped to a specific org. `null` for system-scope (app-level) Solutions.
            - `org_logo` object — Canonical image-source object for the resolved `org`'s logo, used as the principal category section glyph. Carries the signed `url` plus a `refresh_url`. `null` when `org_slug` is `null` or the org has no logo.
              - …
            - `org_name` string — Display name of the resolved `org`. Pairs with `org_slug` as the principal catalog category's label. `null` when `org_slug` is `null`.
            - `org_slug` string — Resolved slug of the Solution body's `org` (the publishing organization), when set and it resolves to a real org visible to the viewer. When present this is the Solution's principal catalog category key — clients group the Solution under this org ahead of `category_keys`. `null` when the body has no `org` or it doesn't resolve.
            - `owners` string[], required — Owner scopes this Solution appears under. Members: `"system"` (app-level system scope) and/or `"org"` (viewer's org scope).
            - `readme_url` string — Relative path to the public README endpoint with a signed token already embedded. `null` when the Solution has no README. Token expires in 1 hour — refresh via `GET /api/v1/solutions/:solution`.
            - `solution_id` string — Stable UUID declared in the Solution body, used to identify the same logical Solution across multiple installed copies and owner scopes. `null` when the body omits it.
            - `solution_version` string — Semver string declared in the Solution body (e.g. `"1.2.0"`). `null` when the body does not declare a version.
            - `tag_keys` string[] — Freeform tag keys declared in the Solution body. An empty array when the body declares none.
            - `template_kind` string — Wrapped template kind — `"AgentTemplate"`, `"AutomationTemplate"`, `"AgentRoutineTemplate"`, `"AgentToolTemplate"`, `"AgentComputerTemplate"`, or `"SolutionTemplateRef"` for ref-mode bundles.
            - `templates` object[], required — Template configs bundled by this Solution, in declaration order — the first entry is the deployable template the Solution wraps; the rest are sibling templates the wrapped template references.
              - …
            - `updated_at` string, date-time — When the Solution config was last modified (ISO 8601).
            - `upgrade_available` boolean, required — `true` when this Solution is installed at the viewer's org scope and the app-level system scope carries a higher `solution_version`. Always `false` for system-only rows.
            - `virtual_path` string — The stable virtual path assigned to this Solution config, used as the deduplication key when the same Solution appears under multiple owner scopes. `null` when unset.
          - `template` object, required — Summary of the AgentTemplate config (`cfg_...`) the agent was last provisioned or updated from.
            - `created_at` string, date-time — When this template config was created (ISO 8601).
            - `description` string — Description of the template from the config body. `null` if the current version has no `description` field.
            - `display_name` string — Human-readable display name from the config body. `null` if the current version has no `display_name` field.
            - `id` string, required — Template config ID (`cfg_...`).
            - `kind` string, required — Config kind identifier for this template (e.g. `"agent_tool_template"`).
            - `lookup_key` string — Stable lookup key assigned to this template config. `null` if no lookup key is set.
            - `name` string — Template name as stored in the config body. `null` if the current version has no `name` field.
            - `updated_at` string, date-time — When this template config was last modified (ISO 8601).
            - `virtual_path` string — Virtual filesystem path for this template config. `null` if not set.
        - `team` string — ID of the team that owns this agent (`tem_...`). `null` if the agent is not team-scoped.
        - `updated_at` string, date-time — When the agent was last modified (ISO 8601).
        - `user` string — ID of the user that owns this agent (`usr_...`). `null` if the agent is not user-scoped.
      - string
    - `app` string — ID of the application that produced this entry (`dap_...`). `null` if not scoped to an app.
    - `attachments` object[] — Array of attachment objects associated with this entry. Each attachment has a `type` field (e.g. `"file"`, `"task"`, `"artifact"`) and type-specific additional fields. Empty array when there are no attachments.
    - `automation_run` string — ID of the automation run that produced this entry (`atr_...`). `null` if not produced by an automation run.
    - `content` string — A longer explanation of the event rendered as Markdown. `null` if no additional content is available.
    - `correlation_id` string — An opaque string used to group related entries together. Entries sharing the same `correlation_id` belong to a single logical operation. `null` if not correlated.
    - `created_at` string, date-time — When this activity feed entry was created (ISO 8601).
    - `id` string, required — Activity feed entry ID (`afe_...`).
    - `kind` string — The type of event this entry represents, e.g. `"agent_step"` or `"tool_call"`. Determines how `title`, `content`, and `attachments` should be interpreted.
    - `level` string — Severity level of the event. One of `"info"`, `"warning"`, or `"error"`. `null` if no severity is set.
    - `metadata` object — Arbitrary key-value metadata stored on this entry. Returns an empty object when no metadata is set.
    - `org` string — ID of the organization this entry belongs to (`org_...`). `null` if not org-scoped.
    - `routine_run` string — ID of the agent routine run that produced this entry (`arr_...`). `null` if not produced by a routine run.
    - `sandbox` string — Identifier of the sandbox environment this entry was generated in. `null` in production contexts.
    - `session_record` string — ID of the agent session record this entry belongs to (`ase_...`). `null` if not part of an agent session.
    - `team` string — ID of the team this entry is associated with (`tem_...`). `null` if not team-scoped.
    - `thread` string — ID of the thread this entry is associated with (`thr_...`). `null` if not linked to a thread.
    - `title` string — A one-line human-readable summary of the event. `null` if the entry has no title.
    - `updated_at` string, date-time — When this activity feed entry was last modified (ISO 8601).
    - `user` union — The user who triggered this event. Returns a user ID (`usr_...`) by default, or an expanded user object when the association is loaded. `null` if no user is associated.
      - object — A platform user account. Represents a human or system actor that can own threads, belong to an organization, and interact with the API.
        - `alias` string — Short handle or alias for the user. `null` if not set.
        - `app` string — ID of the app this user (and their access token) is scoped to (`dap_...`). `null` if the user is not scoped to an app.
        - `app_name` string — Display name of the user's app. `null` when the app association was not preloaded by the caller.
        - `email` string — Email address of the user.
        - `id` string, required — User ID (`usr_...`).
        - `is_system_user` boolean — `true` if this account is an internal system user rather than a human. System users are created automatically by the platform.
        - `metadata` object — Arbitrary key-value metadata attached to the user. Defaults to an empty object.
        - `name` string — Full display name of the user. `null` if the user has not set a name.
        - `org` string — ID of the organization this user belongs to (`org_...`). `null` if the user is not a member of any organization.
        - `org_name` string — Display name of the user's organization. `null` when the user is not in an org, or when the org association was not preloaded by the caller.
        - `org_role` string — Role of the user within their organization. One of `"admin"`, `"member"`, or `"viewer"`. `null` when the user is not a member of any organization.
        - `sandbox` string — ID of the sandbox environment this user is scoped to (`sbx_...`). `null` for production users.
        - `sandbox_name` string — Display name of the user's sandbox environment. `null` for production users, or when the sandbox association was not preloaded by the caller.
      - string
  - `has_more` boolean, required — `true` when additional entries exist beyond this page in the requested direction.

## Other responses

- `400` — Invalid cursor
- `401` — Unauthorized
- `403` — App-scoped token required. Use a token scoped to the target app.

---

[API](https://skmtc.net/archastro/apis/archastro-platform-api.md) · [All operations](https://skmtc.net/archastro/apis/archastro-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/archastro/archastro-platform-api/revisions/a8772b442f86/schema)
