---
title: "Download File"
method: GET
path: "/api/v1alpha1/assistant/trademe/files/{file_id}/content"
tags: ["v1alpha1"]
---

# Download File

`GET /api/v1alpha1/assistant/trademe/files/{file_id}/content`

Signed GET URL for one active file's bytes — OpenAI's "Retrieve file
content" / Anthropic's "Download a File". This is the endpoint clients
use to render the file: the returned ``get_url`` goes straight into an
``<img src>`` (or equivalent); bytes flow from GCS to the client
directly, never through Anvil.

Member+kind-gated: wrong member, wrong kind, unknown file_id, a file
still ``pending`` (no active object exists yet to sign), and an
expired/reclaimed bucket object are all indistinguishable 404s — no
existence oracle. Every successful call is a "use" — re-bumps
custom_time/last_used_at, unlike ``GET /files/{file_id}``'s metadata read.

## Path parameters

- `file_id` string, required

## Headers

- `authorization` string, nullable

## Response `200`

Successful Response

- DownloadFileResponse
  - `getUrl` string, required
  - `expiresAt` string, date-time, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/trademeai/apis/trade-me-ai-platform.md) · [All operations](https://skmtc.net/trademeai/apis/trade-me-ai-platform/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/trademeai/trade-me-ai-platform/revisions/02634860dec7/schema)
