---
title: "Download PDF for a completed job"
method: GET
path: "/v1/jobs/{job_id}/pdf"
tags: ["jobs"]
---

# Download PDF for a completed job

`GET /v1/jobs/{job_id}/pdf`

## Request

- Base URL: `https://api.slideforge.dev`
- URL: `https://api.slideforge.dev/v1/jobs/{job_id}/pdf`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

On-demand PDF download. First request renders the PDF from the PPTX via PrismPPTX (~200ms/slide), caches it, and streams the file. Subsequent requests serve from cache. This URL IS the PDF file — give it directly to users as a download link.

## Path parameters

- `job_id` string, required

## Query parameters

- `sig` string
- `exp` string
- `kv` string
- `n` string

## Response `200`

PDF file (application/pdf)

- unknown

## Other responses

- `404`: Job not found
- `409`: Job not complete
- `422`: Validation Error
- `503`: Storage not configured

---

[API](https://skmtc.dev/slideforge/apis/slideforge-api.md) · [All operations](https://skmtc.dev/slideforge/apis/slideforge-api/llms.txt) · [OpenAPI document](https://skmtc.dev/slideforge/apis/slideforge-api/revisions/ae698e3d3c00?raw)
