---
title: "Download a page report as PDF"
method: GET
path: "/scans/{id}/report.pdf"
tags: ["Page scans"]
---

# Download a page report as PDF

`GET /scans/{id}/report.pdf`

## Request

- Base URL: `https://www.iminify.com/api/v1`
- URL: `https://www.iminify.com/api/v1/scans/{id}/report.pdf`
- Auth: HTTP bearer

The page report printed for a client or a colleague: the page, how many images need fixing, each finding with how to fix it, the page's largest paint, the bytes that resizing would save and the formats received, then every image to fix with its findings and its compressed size. The CSV lists every image. Printing takes a second or two, and one PDF prints at a time on your account: a second request while one prints is answered with `rate_limited`. A Pro feature, for a scan that has finished with a report.

## Path parameters

- `id` string, uuid, required

## Response `200`

The PDF.

## Other responses

- `401`: `unauthenticated`: No key was sent, or the key does not exist (it was mistyped or deleted). Send it as `Authorization: Bearer <key>`.
- `403`: `email_not_verified`: The key belongs to an account whose email address is not verified yet. Follow the link in the verification email, then call again with the same key. `account_banned`: The account behind the key has been banned. Its keys stop working with the ban. `pro_required`: The call needs Pro: sharing a page report and downloading it as CSV or PDF are Pro features. The report itself comes with every scan.
- `404`: `not_found`: No image or scan with that id on your account, or no such address. An id from another account answers the same way as one that never existed.
- `409`: `report_not_available`: The scan has no page report to share or download: it has not finished, it failed, or it was made before scans measured pages. Wait for it to finish, or scan the page again.
- `429`: `rate_limited`: One of your per-minute limits is spent: requests, compressions or page scans. The compressions and scans are counted together with the website's, so work queued there counts too. Nothing was done; wait for the number of seconds in the `Retry-After` header and send it again.

---

[API](https://skmtc.dev/iminify/apis/iminify-api.md) · [All operations](https://skmtc.dev/iminify/apis/iminify-api/llms.txt) · [OpenAPI document](https://skmtc.dev/iminify/apis/iminify-api/revisions/12dc614c2c21?raw)
