---
title: "PDF rotate API"
canonical_url: "https://www.nutrient.io/guides/dws-processor/tools-and-api/pdf-rotate-api/"
md_url: "https://www.nutrient.io/guides/dws-processor/tools-and-api/pdf-rotate-api.md"
last_updated: "2026-07-06T00:00:00.000Z"
description: "Rotate PDF pages by 90, 180, or 270 degrees using Nutrient DWS Processor API. Fix page orientation as part of a document processing workflow."
---

# PDF rotate API

Use the PDF rotate API to rotate pages in a PDF document. The [`/build` endpoint](https://www.nutrient.io/api/reference/public/#tag/Document-Editing/operation/build-document) handles the rotate operation. Add the source PDF as a `parts` item, and add a `rotate` action.

For signup, pricing, and task-level examples, refer to the [PDF rotate API task page](https://www.nutrient.io/api/pdf-rotate-api/).

## Rotate a PDF by 90 degrees

The following example rotates all pages in `document.pdf` clockwise by 90 degrees and writes the output to `result.pdf`:

### Shell

### Shell (Windows)

### Java

### C#

### JavaScript

### Python

### PHP

### HTTP

## Rotate by 180 or 270 degrees

The `rotateBy` value controls the clockwise rotation angle. Supported values are `90`, `180`, and `270`.

Use this instructions object to rotate all pages by 180 degrees:

```json

{
  "parts": [
    {
      "file": "document"
    }
  ],
  "actions": [
    {
      "type": "rotate",
      "rotateBy": 180
    }
  ]
}

```

Use this instructions object to rotate all pages by 270 degrees:

```json

{
  "parts": [
    {
      "file": "document"
    }
  ],
  "actions": [
    {
      "type": "rotate",
      "rotateBy": 270
    }
  ]
}

```

## Rotate a PDF from a URL

For remotely hosted source files, send a JSON request and pass the source URL in `parts[].file.url`. Use this instructions object:

```json

{
  "parts": [
    {
      "file": {
        "url": "https://example.com/document.pdf"
      }
    }
  ],
  "actions": [
    {
      "type": "rotate",
      "rotateBy": 90
    }
  ]
}

```

### Shell

Run this request to rotate a PDF from a URL:

```bash

curl -X POST https://api.nutrient.io/build \
  -H "Authorization: Bearer $NUTRIENT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "parts": [
      {
        "file": {
          "url": "https://example.com/document.pdf"
        }
      }
    ],
    "actions": [
      {
        "type": "rotate",
        "rotateBy": 90
      }
    ]
  }' \
  -o result.pdf

```

## Rotate selected page ranges

The `rotate` action applies to the assembled PDF in the request. To rotate only a range of pages, first extract the pages you want to rotate with `parts[].pages`. Then rotate that output and merge it back into the final document if needed.

The following example extracts pages three through five from `document.pdf` and rotates only those extracted pages in the output PDF:

```json

{
  "parts": [
    {
      "file": "document",
      "pages": {
        "start": 3,
        "end": 5
      }
    }
  ],
  "actions": [
    {
      "type": "rotate",
      "rotateBy": 90
    }
  ]
}

```

To create a final PDF that contains both rotated and unrotated sections, process the rotated section first, and then merge it with the other page ranges. For merge workflows, refer to the [PDF merge API](https://www.nutrient.io/guides/dws-processor/tools-and-api/pdf-merge-api.md) guide.

## Rotate password-protected PDFs

If the source PDF is password-protected, include the password on the part. Use this instructions object:

```json

{
  "parts": [
    {
      "file": "protected_document",
      "password": "document-password"
    }
  ],
  "actions": [
    {
      "type": "rotate",
      "rotateBy": 90
    }
  ]
}

```

Nutrient DWS Processor API uses the password only to open the source document for processing. To set a password on the output PDF, configure `output.user_password`, `output.owner_password`, and `output.user_permissions`.

## Combine rotation with other actions

The `/build` endpoint can assemble a document, rotate it, and then apply additional actions. Actions run in the order specified in the `actions` array.

The following example merges two PDFs, rotates the assembled document, and then adds a watermark:

```json

{
  "parts": [
    {
      "file": "first_half"
    },
    {
      "file": "second_half"
    }
  ],
  "actions": [
    {
      "type": "rotate",
      "rotateBy": 90
    },
    {
      "type": "watermark",
      "text": "REVIEW",
      "width": "50%",
      "height": "20%",
      "opacity": 0.3,
      "rotation": 45
    }
  ]
}

```

For workflows that include signing, rotate pages before signing the final PDF.

## Reference

A PDF rotate request uses the Build API `actions` array with a `rotate` action:

```typescript

type RotateAction = {
  type: "rotate",

  // Clockwise rotation angle. Supported values are 90, 180, and 270.
  rotateBy: 90 | 180 | 270,
};

type FilePart = {
  // Multipart field name, or a remote URL object.
  file: string | { url: string },

  // Optional password for encrypted input PDFs.
  password?: string,

  // Optional page range to extract before rotating.
  pages?: {
    start?: number,
    end?: number,
  },
};

type BuildInstructions = {
  parts: FilePart[],
  actions: RotateAction[],
  output?: {
    type?: "pdf",
  },
};

```

## Related API reference operations

- Refer to the [build document endpoint](https://www.nutrient.io/api/reference/public/#tag/Document-Editing/operation/build-document) API reference for rotating PDFs, selecting page ranges, assembling documents, and applying follow-up actions in a single request.

## Related guides

- Refer to the [PDF merge API](https://www.nutrient.io/guides/dws-processor/tools-and-api/pdf-merge-api.md) guide.

- Refer to the [PDF split API](https://www.nutrient.io/guides/dws-processor/tools-and-api/pdf-split-api.md) guide.

- Refer to the [PDF flatten API](https://www.nutrient.io/guides/dws-processor/tools-and-api/pdf-flatten-api.md) guide.

- Refer to the [PDF watermark API](https://www.nutrient.io/guides/dws-processor/tools-and-api/pdf-watermark-api.md) guide.

- Refer to the [PDF security API](https://www.nutrient.io/guides/dws-processor/tools-and-api/pdf-security-api.md) guide.

- Refer to the [tools and APIs](https://www.nutrient.io/guides/dws-processor/tools-and-api.md) guide.
---

## Related pages

- [Image-to-PDF API](/guides/dws-processor/tools-and-api/image-to-pdf-api.md)
- [Document-to-image API](/guides/dws-processor/tools-and-api/document-to-image-api.md)
- [DOCX templating API](/guides/dws-processor/tools-and-api/docx-templating-api.md)
- [Import XFDF annotations API](/guides/dws-processor/tools-and-api/import-xfdf-annotations-api.md)
- [Analyze Build API](/guides/dws-processor/tools-and-api/analyze-build-api.md)
- [Office-to-PDF API](/guides/dws-processor/tools-and-api/office-to-pdf-api.md)
- [Tools and APIs](/guides/dws-processor/tools-and-api.md)
- [Import Instant JSON API](/guides/dws-processor/tools-and-api/import-instant-json-api.md)
- [Markdown-to-PDF API](/guides/dws-processor/tools-and-api/markdown-to-pdf-api.md)
- [PDF flatten API](/guides/dws-processor/tools-and-api/pdf-flatten-api.md)
- [PDF linearization API](/guides/dws-processor/tools-and-api/pdf-linearization-api.md)
- [PDF merge API](/guides/dws-processor/tools-and-api/pdf-merge-api.md)
- [PDF digital signature API](/guides/dws-processor/tools-and-api/pdf-digital-signature-api.md)
- [PDF optimization API](/guides/dws-processor/tools-and-api/pdf-optimization-api.md)
- [PDF form filling API](/guides/dws-processor/tools-and-api/pdf-form-filling-api.md)
- [PDF security API](/guides/dws-processor/tools-and-api/pdf-security-api.md)
- [PDF page manipulation API](/guides/dws-processor/tools-and-api/pdf-page-manipulation-api.md)
- [PDF-to-image API](/guides/dws-processor/tools-and-api/pdf-to-image-api.md)
- [PDF split API](/guides/dws-processor/tools-and-api/pdf-split-api.md)
- [PDF watermark API](/guides/dws-processor/tools-and-api/pdf-watermark-api.md)
- [PDF OCR API](/guides/dws-processor/tools-and-api/pdf-ocr-api.md)
- [PDF-to-HTML API](/guides/dws-processor/tools-and-api/pdf-to-html-api.md)
- [PDF-to-PDF/A API](/guides/dws-processor/tools-and-api/pdf-to-pdfa-api.md)
- [PDF generator API](/guides/dws-processor/tools-and-api/pdf-generator-api.md)
- [PDF/UA auto-tagging API](/guides/dws-processor/tools-and-api/pdfua-api.md)
- [PDF-to-Markdown API](/guides/dws-processor/tools-and-api/pdf-to-markdown-api.md)
- [PDF-to-Office API](/guides/dws-processor/tools-and-api/pdf-to-office-api.md)
- [Redaction API](/guides/dws-processor/tools-and-api/redaction-api.md)

