Skip to content

Get an artifact's content in the form agents read and write: for a doc, its Markdown in content, and its top-level blocks (id, type, level and Markdown) to target an edit at; with can (read, suggest, edit): what you may do to it.

GET/workspaces/{workspace}/artifacts/{artifact_id}/content

Slides, designs and dashboards answer that they are not here yet.

A doc’s content is Markdown. blocks are its top-level blocks, whose ids an edit with a blocks target names. Slides, designs and dashboards answer 422 saying they are not here yet.

  • Authentication: Required. Send an access token as Authorization: Bearer.
  • MCP tool: artifact with action read, 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”.
artifact_id string Yes The artifact’s id (fol_…), or its address: /acme/-/artifacts/q4-roadmap-fol_…
curl https://api.g1t.sh/workspaces/acme/artifacts/fol_01kq7c4e6g8j0m2p4r6t8v0x2z/content \
-H "Authorization: Bearer $G1T_TOKEN"

A successful request answers 200 with:

{
"artifact": {
"id": "fol_01kq7c4e6g8j0m2p4r6t8v0x2z",
"kind": "doc",
"title": "Q4 roadmap",
"icon": "🗺️",
"slug": "q4-roadmap-fol_01kq7c4e6g8j0m2p4r6t8v0x2z",
"html_url": "https://g1t.sh/acme/-/artifacts/q4-roadmap-fol_01kq7c4e6g8j0m2p4r6t8v0x2z",
"edited_at": "2026-10-08T16:40:12.000Z"
},
"space": {
"id": "spc_01kq1a3c5e7g9j1l3n5q7s9u1w",
"slug": "general",
"name": "General",
"agent_mode": "suggest"
},
"content": "# Q4 roadmap\n\n## This quarter\n\nWe ship the merge queue and Artifacts.\n",
"blocks": [
{
"id": "b_4f1c",
"type": "heading",
"level": 1,
"markdown": "# Q4 roadmap"
},
{
"id": "b_9a02",
"type": "heading",
"level": 2,
"markdown": "## This quarter"
},
{
"id": "b_77d3",
"type": "paragraph",
"level": null,
"markdown": "We ship the merge queue and Artifacts."
}
],
"can": {
"read": true,
"suggest": true,
"edit": true
}
}

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.