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

# Download a page report as CSV

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

## Request

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

The page audit as a spreadsheet, one row per image address in the page's order: `url`, the `format` and `bytes` a browser received, `natural_width` and `natural_height` (the file's own size), `rendered_width` and `rendered_height` (the size it is shown at), `above_fold`, `largest_paint` (`yes`, `no`, or empty when not known), `alt`, `findings` (separated by spaces), `wasted_bytes`, `outcome`, `skip_reason`, then the `original_bytes` of the file the scan downloaded and the `compressed_format` and `compressed_bytes` of its compressed copy. The fields mean what they mean on the scan's `audit`. A cell that would start with `=`, `+`, `-` or `@` starts with an apostrophe, so a spreadsheet never runs it. A Pro feature, for a scan that has finished with a report.

## Path parameters

- `id` string, uuid, required

## Response `200`

OK.

## 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)
