Skip to content

List the artifacts (docs, slides, designs and dashboards) in a workspace that you can open, most recently edited first: each with its id (fol_…), kind, title, icon, space (null in its owner's Private), parent_id, owner, your role (viewer_role: view, comment, edit or manage), general_access, private, excerpt, edited_at and html_url. tab is all (the default), yours (you own them) or shared (shared with you).

GET/workspaces/{workspace}/artifacts

Narrow with kind, space (its slug or id), project (owner/name), q (words or meaning) and limit (at most 100); next_cursor pages on. With state trashed, the artifacts in the trash you can restore instead. Not workflow runs’ artifacts.

Only artifacts you can open are listed, with viewer_role your own role on each. Page on with cursor set to next_cursor until it is null. With state=trashed, what you can restore from the trash. With q, the best matches first. These are Artifacts mode’s docs, slides, designs and dashboards, not workflow runs’ artifacts (list_artifacts).

  • Authentication: Required. Send an access token as Authorization: Bearer.
  • MCP tool: artifact with action list, and the same inputs
  • Scope: An access token needs artifacts:read.
Name Type Required Description
workspace string Yes The workspace’s slug, e.g. “acme”.
Name Type Required Description
tab string No all (the default), yours (you own them) or shared (shared with you by others). One of all, yours, shared.
kind string No doc, slides, design or dashboard. One of doc, slides, design, dashboard.
space string No A space: its slug (general) or id (spc_…).
project string No Only artifacts about this repository: owner/name.
q string No Only artifacts matching these words or this meaning, best first.
state string No active (the default), or trashed: what you can restore from the trash. One of active, trashed.
cursor string No next_cursor from the page before.
limit integer No How many, at most 100.
curl "https://api.g1t.sh/workspaces/acme/artifacts?kind=doc&space=general" \
-H "Authorization: Bearer $G1T_TOKEN"

A successful request answers 200 with:

{
"items": [
{
"id": "fol_01kq7c4e6g8j0m2p4r6t8v0x2z",
"kind": "doc",
"title": "Q4 roadmap",
"icon": "🗺️",
"slug": "q4-roadmap-fol_01kq7c4e6g8j0m2p4r6t8v0x2z",
"space": {
"id": "spc_01kq1a3c5e7g9j1l3n5q7s9u1w",
"slug": "general",
"name": "General",
"kind": "workspace"
},
"parent_id": null,
"has_children": false,
"owner": {
"type": "user",
"id": "usr_01kkntcg1eeb98j62xjm7eh09q",
"username": "ana",
"display_name": "Ana Lima"
},
"created_by": {
"type": "user",
"id": "usr_01kkntcg1eeb98j62xjm7eh09q",
"username": "ana",
"display_name": "Ana Lima"
},
"created_at": "2026-10-06T09:12:00.000Z",
"updated_at": "2026-10-08T16:40:12.000Z",
"edited_by": {
"type": "user",
"id": "usr_01kmb2d4f6h8k0m2p4r6t8v0x2",
"username": "bo",
"display_name": "Bo Chen"
},
"edited_at": "2026-10-08T16:40:12.000Z",
"trashed_at": null,
"viewer_role": "manage",
"private": false,
"shared_count": 1,
"general_access": "workspace",
"general_role": "view",
"inherit": true,
"agent_mode": "suggest",
"excerpt": "What we ship this quarter, and what we leave for next.",
"source": null,
"stale": false,
"html_url": "https://g1t.sh/acme/-/artifacts/q4-roadmap-fol_01kq7c4e6g8j0m2p4r6t8v0x2z"
}
],
"next_cursor": null
}

A failed request answers with one of these statuses and a body like {"error": {"code": "not_found", "message": "Repository not found."}}. See errors.

Status Code When
401 unauthenticated A token is required, or the one sent is not valid.
403 forbidden The token is valid but not allowed to do this, such as a member-only change or an agent token outside its repository.
404 not_found It does not exist, or you cannot see it.
422 invalid The input is not valid. message says which field and why.