---
title: "Get render sources for a page"
method: GET
path: "/api/v1/page/_render-sources/{uri}"
tags: ["Page"]
---

# Get render sources for a page

`GET /api/v1/page/_render-sources/{uri}`

## Request

- Base URL: `https://docs.anzworldline-solutions.com.au`
- URL: `https://docs.anzworldline-solutions.com.au/api/v1/page/_render-sources/{uri}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/anzworldline-solutions/apis/dotcms-rest-api/docs/api/v1/page/_render-sources/:uri/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns references only (path + identifier, no file content, no container code) mapping a rendered page to its source files. The page is identified by a URI path segment, exactly like `GET /api/v1/page/render/{uri}`.

The URI must be a plain path (e.g. `index`, `about/team`). To address a specific site, use the `host_id` query parameter.

Includes the page reference, theme VTL files, all containers referenced by the template (only content types actually placed under the applied persona/variant are included), and widget contentlets placed on the page.

**Widget source field:**
Each widget entry includes a `source` field:
- `FILE` — the widget's Velocity lives in a file asset; `path` and `identifier` are populated. Retrieve the VTL content via `GET /api/v2/assets`.
- `CODE` — the widget's Velocity is inline (in the content type's `widgetCode` field and/or the contentlet's own fields). No `path`/`identifier` are returned. Retrieve the content type definition via `GET /api/v1/contenttype/id/{contentTypeVar}` and the placed contentlet via `GET /api/v1/content/id/{contentletId}`.

**Other source lookups:**
- Theme folder files: `GET /api/v1/folder/sitename/{site}/uri/{uri}`
- DB container code: `GET /api/v1/containers/working?containerId=<id>&includeContentType=true`
- FILE container VTL content: `GET /api/v2/assets`

## Path parameters

- `uri` string, required

## Query parameters

- `host_id` string
- `language_id` string
- `persona_id` string
- `variantName` string
- `mode` string

## Response `200`

Render sources retrieved successfully

- ResponseEntityPageRenderSourcesView
  - `errors` ErrorEntity[]
    - `errorCode` string
    - `message` string
    - `fieldName` string
  - `entity` PageRenderSourcesView
    - `page` PageSourceRefView: Lightweight page reference. When the request URI was a URL-mapped path, identifier is the detail page identifier and uri is the originally requested URI (host-qualified).
      - `identifier` string: Page identifier
      - `uri` string: Host-qualified page URI (e.g. //demo.dotcms.com/index)
      - `languageId` integer: Language ID under which the page was resolved
    - `theme` ThemeSourceView: Theme folder and every file that composes it
      - `id` string: Theme folder identifier
      - `name` string: Theme folder name
      - `folderPath` string: Host-qualified path to the theme folder, e.g. //demo.dotcms.com/application/themes/travel/
      - `files` FileRefView[]: Every file found anywhere under the theme folder (searched recursively), regardless of type. Each entry carries its extension so consumers can filter.
        - `path` string: Host-qualified path to the file, e.g. //demo.dotcms.com/application/themes/travel/header.vtl
        - `identifier` string: File asset identifier
        - `extension` string: Lowercased file extension without the leading dot, e.g. vtl, css, scss, js
    - `containers` object: Containers referenced by the page template, keyed by container identifier (UUID for DB containers, host-qualified path for FILE containers). Only content types placed on the page appear inside each entry.
    - `widgets` WidgetSourceView[]: Widget contentlets placed on the page
      - `contentTypeVar` string: Velocity variable name of the Widget Content Type
      - `title` string: Title of the placed Widget contentlet
      - `contentletId` string: Stable identifier of the placed Widget contentlet (same across all language and variant versions). Use GET /api/v1/content/id/{contentletId} to retrieve the contentlet.
      - `contentletInode` string: Inode of the exact version of the placed Widget contentlet resolved for this request (language- and variant-specific). Use GET /api/v1/content/inode/{contentletInode} to retrieve the precise placed version.
      - `source` 'FILE' | 'CODE': Source of the widget Velocity code. FILE: VTL lives in a file asset (see path/identifier). CODE: Velocity is inline in the content type's widgetCode field and/or contentlet fields — retrieve via GET /api/v1/contenttype/id/{contentTypeVar} and GET /api/v1/content/id/{contentletId}.
      - `path` string: Host-qualified path to the widget VTL file (FILE source only)
      - `identifier` string: File asset identifier of the widget VTL file (FILE source only)
    - `urlContentMap` UrlContentMapView: Present only when the requested URI resolved via a URL-map pattern. Identifies the specific mapped contentlet that owns the URL. Absent for regular (literal) HTML page requests.
      - `contentTypeVar` string: Velocity variable name of the URL-mapped Content Type (e.g. 'Blog')
      - `title` string: Title of the URL-mapped contentlet
      - `contentletId` string: Stable identifier of the URL-mapped contentlet (same across all language/variant versions). Use GET /api/v1/content/id/{contentletId} to retrieve it.
      - `contentletInode` string: Inode of the exact version of the URL-mapped contentlet resolved for this request (language- and variant-specific). Use GET /api/v1/content/inode/{contentletInode} to retrieve the precise version.
  - `messages` MessageEntity[]
    - `message` string
  - `i18nMessagesMap` object
  - `permissions` string[]
  - `pagination` Pagination
    - `currentPage` integer
    - `perPage` integer
    - `totalEntries` integer

## Other responses

- `400`: Invalid request parameter (e.g. an unknown mode value)
- `403`: User does not have READ permission on the page
- `404`: Page not found, wrong language, or unknown host

## Changes

- **2026-10-30** `4fd8e917d458`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/anzworldline-solutions/apis/dotcms-rest-api/changes/api/v1/page/_render-sources/:uri/get.md)

---

[API](https://skmtc.dev/anzworldline-solutions/apis/dotcms-rest-api.md) - [All operations](https://skmtc.dev/anzworldline-solutions/apis/dotcms-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/anzworldline-solutions/apis/dotcms-rest-api/revisions/4fd8e917d458?raw)
