---
title: "Fetch an attachment retained inline with a document"
method: GET
path: "/v1/default/banks/{bank_id}/attachments/{attachment_id}"
tags: ["Memory"]
---

# Fetch an attachment retained inline with a document

`GET /v1/default/banks/{bank_id}/attachments/{attachment_id}`

## Request

- Base URL: `https://hindsight.vectorize.io` (the document declares no server; this is the origin it was published from)
- URL: `https://hindsight.vectorize.io/v1/default/banks/{bank_id}/attachments/{attachment_id}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/vectorize/apis/hindsight-http-api/docs/v1/default/banks/:bank_id/attachments/:attachment_id/get.ts> (a function with typed inputs; its response is checked against the schema)

Serve the bytes of an attachment retained as inline content. The id is the one inside a placeholder token, and is returned on `attachments[].url` by recall and by the document/chunk/memory reads — so an agent can show or reason over the original behind an attachment-derived fact.

Bytes are served with the Content-Type the caller declared at retain. Access is authorized against the bank; a missing attachment and an invisible bank both return 404, so the endpoint cannot be used to probe what a bank holds.

## Path parameters

- `bank_id` string, required
- `attachment_id` string, required

## Headers

- `authorization` string, nullable

## Response `200`

Attachment bytes

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-04** `4fda98b75f63`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/vectorize/apis/hindsight-http-api/changes/v1/default/banks/:bank_id/attachments/:attachment_id/get.md)

---

[API](https://skmtc.dev/vectorize/apis/hindsight-http-api.md) - [All operations](https://skmtc.dev/vectorize/apis/hindsight-http-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vectorize/apis/hindsight-http-api/revisions/45e711cd0897?raw)
