---
title: "List render logs for a template"
method: GET
path: "/v2/organizations/{organizationId}/templates/{externalId}/logs"
tags: ["Render logs"]
---

# List render logs for a template

`GET /v2/organizations/{organizationId}/templates/{externalId}/logs`

## Request

- Base URL: `https://api.pdfs.build`
- URL: `https://api.pdfs.build/v2/organizations/{organizationId}/templates/{externalId}/logs`
- Auth: HTTP bearer

## Query parameters

- `limit` integer
- `offset` integer
- `status` 'success' | 'error'
- `source` 'api' | 'ui' | 'mcp'

## Response `200`

Newest first.

- RenderLogList
  - `logs` RenderLog[], required
    - `id` string, required
    - `templateInternalId` string, required
    - `templateExternalId` string, nullable, required: The external id at render time; renames do not rewrite it.
    - `templateName` string, nullable
    - `source` string, required: `api`, `ui`, `mcp`, or another in-app source.
    - `status` 'pending' | 'success' | 'error', required
    - `errorMessage` string, nullable
    - `durationMs` integer, nullable
    - `apiKeyId` string, nullable
    - `userId` string, nullable
    - `templateUpdatedAt` string: UTC, ISO 8601 without a timezone suffix.
    - `createdAt` string, required: UTC, ISO 8601 without a timezone suffix.
    - `apiKeyName` string, nullable, required
    - `apiKeyPrefix` string, nullable, required
  - `total` integer, required: Total matching logs, for pagination.

## Other responses

- `401`: Missing, invalid or expired API key.
- `403`: The organization in the URL does not match the API key's organization.
- `404`: No template with that id is accessible to this key. Another user's draft is indistinguishable from a missing template.

---

[API](https://skmtc.dev/pdfs/apis/pdfs-build-api.md) · [All operations](https://skmtc.dev/pdfs/apis/pdfs-build-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pdfs/apis/pdfs-build-api/revisions/1c7340b9521d?raw)
