---
title: "Download a gift-link CSV"
method: GET
path: "/distribution/exports/{id}"
tags: ["Gift links"]
---

# Download a gift-link CSV

`GET /distribution/exports/{id}`

## Request

- Base URL: `https://gtmswag.com/api/v1`
- URL: `https://gtmswag.com/api/v1/distribution/exports/{id}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://gtmswag.com/oauth/authorize`, token URL `https://gtmswag.com/oauth/token`, scopes: `gifts:links:read`)

The CSV of an export from `POST /campaigns/{id}/distribution/exports`, rendered now: revoked or refund-locked links are removed. The file holds private links meant only for the workspace; keep it out of logs and public places. Exports expire after 24 hours. Accepts an MCP OAuth token with `gifts:links:read`.

## Path parameters

- `id` string, required

## Response `200`

CSV file (UTF-8, CRLF line endings).

## Other responses

- `401`: Not authenticated: `AUTH_REQUIRED`. no credentials, or an OAuth token on a route that only takes workspace keys; the key is malformed, unknown or revoked.
- `403`: Forbidden: `INSUFFICIENT_SCOPE`. Each example says when.
- `404`: Not found: `NOT_FOUND`. Each example says when.
- `429`: Too many requests: `RATE_LIMIT`. more than 240 requests in the current minute for this workspace (REST and MCP share the limit); wait `retryAfterMs`.
- `default`: Any other refusal or failure, such as 403 CSRF (a cross-origin `Origin` header), 403 HTTPS_REQUIRED or 500 INTERNAL_ERROR, with what to do next.

---

[API](https://skmtc.dev/gtmswag/apis/gtm-swag-api.md) · [All operations](https://skmtc.dev/gtmswag/apis/gtm-swag-api/llms.txt) · [OpenAPI document](https://skmtc.dev/gtmswag/apis/gtm-swag-api/revisions/9ff86fa99afe?raw)
