---
title: "Download Tech Pack"
method: GET
path: "/questionnaires/jobs/{job_id}/download"
tags: ["questionnaires"]
---

# Download Tech Pack

`GET /questionnaires/jobs/{job_id}/download`

## Request

- Base URL: `https://api.threadchain.pro` (the document declares no server; this is the origin it was published from)
- URL: `https://api.threadchain.pro/questionnaires/jobs/{job_id}/download`
- Auth: OAuth 2
  - Password
  - Token URL: `auth/token`

Proxy download for a generated tech pack, adding a friendly filename.

This endpoint:
- Verifies the job belongs to the current user (admins bypass ownership)
- Deducts 1 credit and records the download (skipped on re-downloads)
- Fetches the file from Backblaze B2 via the stored result_url
- Returns the file with Content-Disposition set to
  "{ItemName}.xlsx"

``format`` defaults to "pdf" to match every existing caller (none send a
format today, and the file served here has always been the xlsx, not a
PDF — that mismatch predates this gate and is not fixed here). Explicit
"excel"/"zip" requests are tier-gated; "zip" is not implemented server-side.

## Path parameters

- `job_id` string, uuid, required

## Query parameters

- `format` string

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/threadchain/apis/threadchain-backend.md) - [All operations](https://skmtc.dev/threadchain/apis/threadchain-backend/llms.txt) - [OpenAPI document](https://skmtc.dev/threadchain/apis/threadchain-backend/revisions/8ee288a7e6bd?raw)
