---
title: "Get a global section's draft"
method: GET
path: "/projects/{projectId}/global-sections/{sectionId}"
tags: ["Global sections"]
---

# Get a global section's draft

`GET /projects/{projectId}/global-sections/{sectionId}`

## Request

- Base URL: `https://studio.weaverse.io/api/v1/content`
- URL: `https://studio.weaverse.io/api/v1/content/projects/{projectId}/global-sections/{sectionId}`
- Auth: HTTP bearer

Returns the section's current saved draft (the shared draft head), or `head: null` when no draft exists. The draft is never live: storefronts keep rendering the published subtree until the draft is published.

`head.versionId` is the value to pass as `expectedHeadVersionId` on the next `save-draft`, and as `versionId` to `discard-draft` or `publish-draft`. `head.snapshot.items` holds the saved item graph.

An unknown or foreign section returns `404`, the same as a missing one.

Required scope: `content:read`

## Response `200`

Draft head or null

- object

## Other responses

- `401`: Missing or invalid credentials
- `403`: Foreign project or missing scope (INSUFFICIENT_SCOPE)
- `404`: Not found (never discloses other tenants)

---

[API](https://skmtc.dev/weaverse/apis/weaverse-content-api.md) - [All operations](https://skmtc.dev/weaverse/apis/weaverse-content-api/llms.txt) - [OpenAPI document](https://skmtc.dev/weaverse/apis/weaverse-content-api/revisions/d189794169bb?raw)
