---
title: "List attachments"
method: GET
path: "/v3/attachments"
tags: ["Attachments"]
---

# List attachments

`GET /v3/attachments`

## Request

- Base URL: `https://harvest.greenhouse.io`
- URL: `https://harvest.greenhouse.io/v3/attachments`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://auth.greenhouse.io/authorize`
    - Client credentials
    - Token URL: `https://auth.greenhouse.io/token` scopes: `harvest:attachments:list`
  - HTTP bearer

Attachments are files associated with an application — resumes, cover letters, take-home tests, offer documents, e-signed agreements, and other supporting documents. Each attachment belongs to one application; filter by `application_ids` or `candidate_ids` to scope results to a specific pipeline. The `url` returned for each attachment is a time-limited download link that expires after seven days, so refetch the attachment whenever you need a fresh URL. The link may be served via a Greenhouse redirect endpoint that issues a fresh short-lived file URL on each request, so HTTP clients should follow redirects when downloading.

## Query parameters

- `cursor` string
- `per_page` integer
- `ids` integer[]
- `created_at` object
  - `gte` string, date-time
  - `lte` string, date-time
  - `gt` string, date-time
  - `lt` string, date-time
- `updated_at` object
  - `gte` string, date-time
  - `lte` string, date-time
  - `gt` string, date-time
  - `lt` string, date-time
- `application_ids` integer[]
- `candidate_ids` integer[]
- `fields` string[]
- `type` 'resume' | 'cover_letter' | 'take_home_test' | 'offer_packet' | 'offer_letter' | 'signed_offer_letter' | 'other' | 'form_attachment' | 'midfunnel_agreement' | 'automated_agreement'

## Response `200`

Successful

- object[]
  - `id` integer
  - `created_at` string, date-time
  - `updated_at` string, date-time
  - `application_id` integer: Id of the application this attachment is associated with.
  - `candidate_id` integer, nullable: Id of the candidate (person) the attachment ultimately belongs to, resolved through the application. `null` if the application's candidate cannot be resolved.
  - `type` 'resume' | 'cover_letter' | 'take_home_test' | 'offer_packet' | 'offer_letter' | 'signed_offer_letter' | 'other' | 'form_attachment' | 'midfunnel_agreement' | 'automated_agreement': Classification of the attachment. `resume`, `cover_letter`, and `take_home_test` are candidate-supplied documents; `offer_packet`, `offer_letter`, and `signed_offer_letter` are offer documents; `midfunnel_agreement` and `automated_agreement` are e-signed documents; `form_attachment` is generated by Greenhouse forms; `other` is a free-form bucket for any document that doesn't fit the above.
  - `filename` string: Original filename of the uploaded document, including extension.
  - `url` string: Time-limited download URL for the underlying file. The link may be served via a Greenhouse redirect endpoint that issues a fresh short-lived file URL on each request — HTTP clients should follow redirects when downloading. Links expire after seven days; refetch the attachment to obtain a fresh URL.

---

[API](https://skmtc.dev/greenhouse/apis/harvest-api.md) - [All operations](https://skmtc.dev/greenhouse/apis/harvest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/greenhouse/apis/harvest-api/revisions/822822e3f771?raw)
