---
title: "Download a shared compliance export"
method: GET
path: "/shares/{token}/file"
tags: ["Public", "Shared records"]
---

# Download a shared compliance export

`GET /shares/{token}/file`

## Request

- Base URL: `https://api.purplegrain.com/api/v1`
- URL: `https://api.purplegrain.com/api/v1/shares/{token}/file`
- Auth: one of:
  - none
  - HTTP bearer

Public (no account): the zip behind `GET /shares/{token}`, as an attachment. Same 404 / 410 /
429 rules, and a successful download also stamps the share as opened. Never cached.

## Path parameters

- `token` string, required

## Response `200`

The zip, as an attachment.

## Other responses

- `403`: An api or MCP bearer token.
- `404`: Not a link.
- `410`: The link has expired or been revoked, or the export file has expired.
- `429`: Too many requests.

## Changes

- **2026-10-20** `29c5c990d66e`: 2 breaking, 1 warning, 2 info
  - removed the media type `application/pdf` for the response with the status `200`
  - removed the media type `text/csv` for the response with the status `200`
  - deleted the `query` request parameter `format`
  - added the media type `application/zip` for the response with the status `200`
  - …1 more

[Operation history](https://skmtc.dev/purplegrain/apis/purple-grain-api/changes/shares/:token/file/get.md)

---

[API](https://skmtc.dev/purplegrain/apis/purple-grain-api.md) · [All operations](https://skmtc.dev/purplegrain/apis/purple-grain-api/llms.txt) · [OpenAPI document](https://skmtc.dev/purplegrain/apis/purple-grain-api/revisions/06540345bbbc?raw)
