---
title: "List the workspace's artifacts [read]"
method: GET
path: "/artifacts"
tags: ["artifacts"]
---

# List the workspace's artifacts \[read\]

`GET /artifacts`

## Request

- Base URL: `https://api.agentsky.dev/v1`
- URL: `https://api.agentsky.dev/v1/artifacts`
- Auth: HTTP bearer

Without origin, the existing task/workspace list and wire shape stay unchanged. Explicit origin=consumer_adopted selects active adopted owner files; origin=execution selects private service-generated meeting notes with can_edit=false. Both use current policy/credential grants and bounded SQL pagination. Sort updated_at/source.id descending; opaque cursor binds actor, ceiling and filters, not limit. Each row cursor supports consuming a prefix. No URL shared-token discovery. Answers 503 not_migrated until the platform artifact tables exist.

## Query parameters

- `task_id` string
- `origin` 'consumer_adopted' | 'execution'
- `limit` integer
- `cursor` string
- `q` string
- `visibility` 'all' | 'only_me' | 'public'
- `scope` string
- `folder` 'artifacts' | 'meetings'
- `kind` 'design_system'

## Response `200`

Unchanged task list, explicitly requested adopted owner list or private execution-note list

- union
  - object
    - `artifacts` Artifact[], required
      - `id` string, required
      - `task_id` string, required: The task it belongs to (sess_…)
      - `name` string, required: Unique within the task; publishing under the same name adds a version
      - `kind` 'design_system' | 'null', nullable, required: design_system when the current revision holds project/design-system.json; null otherwise
      - `version` integer, required: The current revision
      - `entry` string, required: The file opened first
      - `files` object[], required
        - `path` string, required
        - `sha256` string, required
        - `size_bytes` integer, required
      - `share_url` string, nullable, required: The public link, or null while not shared
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
  - object
    - `artifacts` union[], required
      - union
        - AdoptedArtifactSummary
          - `id` string, required
          - `origin` 'consumer_adopted', required
          - `owner_user_id` string, required
          - `name` string, required
          - `version` integer, required
          - `updated_at` string, date-time, required
          - `source` object, required
            - `namespace` 'agent-use', required
            - `id` string, required
            - `binding_epoch` integer, required
          - `policy_version` integer, required
          - `access` 'view' | 'edit' | 'owner', required
          - `can_edit` boolean, required
          - `can_manage` boolean, required
          - `media_type` string, required
          - `size_bytes` integer, required
          - `site` boolean, required
          - `visibility` 'only_me' | 'public', required
          - `has_shared_access` boolean, required
          - `placement` object, nullable, required
          - `cursor` string, required: Bound cursor after this exact row for prefix consumption
        - ExecutionArtifactSummary
          - `id` string, required
          - `origin` 'execution', required
          - `task_id` unknown, required
          - `run_id` string, required
          - `owner_user_id` string, required
          - `name` string, required
          - `version` integer, required
          - `updated_at` string, date-time, required
          - `source` object, required
            - `namespace` 'recall', required
            - `id` string, required
          - `policy_version` integer, required
          - `access` 'view' | 'edit' | 'owner', required
          - `can_edit` unknown, required
          - `can_manage` boolean, required
          - `media_type` 'text/markdown', required
          - `size_bytes` integer, required
          - `site` unknown, required
          - `visibility` 'only_me', required: Private credential/policy grants only; execution origin cannot be publicly shared
          - `has_shared_access` boolean, required
          - `placement` object, nullable, required
          - `cursor` string, required
    - `total` integer, required
    - `next_cursor` string, nullable, required

## Other responses

- `default`: Error — { error: { code, message } }

## Changes

- **2026-11-02** `e5e8f0229a99`: 3 breaking, 9 info
  - added `subschema #1, subschema #2` to the response body `oneOf` list for the response status `200`
  - the response's body type changed from `object` to no type for status `200`
  - removed the required property `artifacts` from the response with the `200` status
  - added the new optional `query` request parameter `cursor`
  - …8 more

[Operation history](https://skmtc.dev/agentsky/apis/agentsky-developer-api/changes/artifacts/get.md)

---

[API](https://skmtc.dev/agentsky/apis/agentsky-developer-api.md) - [All operations](https://skmtc.dev/agentsky/apis/agentsky-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/agentsky/apis/agentsky-developer-api/revisions/8280a065ef6a?raw)
