---
title: "Render PDF pages as images"
method: POST
path: "/v1/pdf-operations/render"
tags: ["PDF Operations"]
---

# Render PDF pages as images

`POST /v1/pdf-operations/render`

Creates a task to render specified pages of a PDF file as images.

## Request body

- object
  - `input` string, required — The id of the file or task to operate on.
  - `name` string — The name of the file
  - `dpi` integer — Dots per inch (DPI) for the rendered image. Default is 300.
  - `pages` string — Page range (e.g., 2-7), a comma-separated list (e.g., 2,3,7) of pages.
  - `callback_url` string, uri — The URL to call when the task is completed or failed. If you want to receive events, you probably prefer to use `webhooks` instead.

## Response `201`

Task created successfully. Returns the task details.

- union — The response of an render task
  - object
    - `id` string, required — The unique identifier for the task.
    - `operation` 'render', required — The type of operation being performed by the task.
    - `parameters` object, required
      - `input` string, required — The id of the file or task to operate on.
      - `name` string — The name of the file
      - `dpi` integer, required — Dots per inch (DPI) for the rendered image. Default is 300.
      - `pages` string — Page range (e.g., 2-7), a comma-separated list (e.g., 2,3,7) of pages.
      - `callback_url` string, uri — The URL to call when the task is completed or failed. If you want to receive events, you probably prefer to use `webhooks` instead.
    - `status` 'completed', required — The current status of the task.
    - `result` object, required
      - `generated_files` ImageFromTaskResponse[], required
        - `id` string, required — The id of the file
        - `name` string, required — The name of the file
        - `task_id` string, required — The id of the task that generated this file
        - `created_at` string, required — The creation date of the file in ISO format
        - `type` 'image/png' | 'image/jpeg' | 'image/webp', required — The MIME type of the file
        - `properties` object, required
          - `size` number, required — The size of the image in bytes
          - `width` number, required — The width of the image in pixels
          - `height` number, required — The height of the image in pixels
    - `callback_url` string, nullable, required — The URL to which the task result will be sent upon completion or failure.
    - `created_at` string, required — The creation date of the task in ISO format.
    - `updated_at` string, required — The last update date of the task in ISO format.
  - object
    - `id` string, required — The unique identifier for the task.
    - `operation` 'render', required — The type of operation being performed by the task.
    - `parameters` object, required
      - `input` string, required — The id of the file or task to operate on.
      - `name` string — The name of the file
      - `dpi` integer, required — Dots per inch (DPI) for the rendered image. Default is 300.
      - `pages` string — Page range (e.g., 2-7), a comma-separated list (e.g., 2,3,7) of pages.
      - `callback_url` string, uri — The URL to call when the task is completed or failed. If you want to receive events, you probably prefer to use `webhooks` instead.
    - `status` 'pending', required — The current status of the task.
    - `result` object, required
    - `callback_url` string, nullable, required — The URL to which the task result will be sent upon completion or failure.
    - `created_at` string, required — The creation date of the task in ISO format.
    - `updated_at` string, required — The last update date of the task in ISO format.
  - object
    - `id` string, required — The unique identifier for the task.
    - `operation` 'render', required — The type of operation being performed by the task.
    - `parameters` object, required
      - `input` string, required — The id of the file or task to operate on.
      - `name` string — The name of the file
      - `dpi` integer, required — Dots per inch (DPI) for the rendered image. Default is 300.
      - `pages` string — Page range (e.g., 2-7), a comma-separated list (e.g., 2,3,7) of pages.
      - `callback_url` string, uri — The URL to call when the task is completed or failed. If you want to receive events, you probably prefer to use `webhooks` instead.
    - `status` 'processing', required — The current status of the task.
    - `result` object, required
    - `callback_url` string, nullable, required — The URL to which the task result will be sent upon completion or failure.
    - `created_at` string, required — The creation date of the task in ISO format.
    - `updated_at` string, required — The last update date of the task in ISO format.
  - object
    - `id` string, required — The unique identifier for the task.
    - `operation` 'render', required — The type of operation being performed by the task.
    - `parameters` object, required
      - `input` string, required — The id of the file or task to operate on.
      - `name` string — The name of the file
      - `dpi` integer, required — Dots per inch (DPI) for the rendered image. Default is 300.
      - `pages` string — Page range (e.g., 2-7), a comma-separated list (e.g., 2,3,7) of pages.
      - `callback_url` string, uri — The URL to call when the task is completed or failed. If you want to receive events, you probably prefer to use `webhooks` instead.
    - `status` 'failed', required — The current status of the task.
    - `result` object, required
      - `error` string, required
      - `details` object, required
    - `callback_url` string, nullable, required — The URL to which the task result will be sent upon completion or failure.
    - `created_at` string, required — The creation date of the task in ISO format.
    - `updated_at` string, required — The last update date of the task in ISO format.

## Other responses

- `404` — File not found. The specified file does not exist.
- `422` — Validation Error. The request body is invalid.
- `429` — Rate Limit Exceeded.
- `5XX` — Internal Server Error.

## Changes

- **2025-06-24** `42f9aa9c3b27` — 4 breaking, 10 info
  - the `oneOf[subschema #1: Completed render Task Response]/parameters/name` response property's maxLength was increased from `30` to `50` for the response status `201`
  - the `oneOf[subschema #2: Pending render Task Response]/parameters/name` response property's maxLength was increased from `30` to `50` for the response status `201`
  - the `oneOf[subschema #3: Processing render Task Response]/parameters/name` response property's maxLength was increased from `30` to `50` for the response status `201`
  - the `oneOf[subschema #4: Failed render Task Response]/parameters/name` response property's maxLength was increased from `30` to `50` for the response status `201`
  - …10 more

[Change history](https://skmtc.dev/scan-documents/apis/scan-documents-api/changes/v1/pdf-operations/render/post.md)

---

[API](https://skmtc.dev/scan-documents/apis/scan-documents-api.md) · [All operations](https://skmtc.dev/scan-documents/apis/scan-documents-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/scan-documents/scan-documents-api/revisions/42f9aa9c3b27/schema)
