> ## Documentation Index
> Fetch the complete documentation index at: https://docs.craftkit.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Download the completion certificate

> GET /v1/signatures/:id/certificate — stream the signing completion certificate (authenticated only).

<Info>**GET** `https://api.craftkit.dev/v1/signatures/:id/certificate`</Info>

Streams the completion certificate (the signing audit-trail PDF). Like the signed document, the
certificate is a sensitive legal artifact, so it is served **only** through the authenticated API —
Craftkit fetches it server-side and streams the bytes back, so no provider-hosted link is ever
exposed. Returns `409` until the certificate is available (until `certificateUrl` is non-null on the
request).

## Authorization

<ParamField header="Authorization" type="string" required>
  `Bearer ck_live_…` — a project API key.
</ParamField>

## Path parameters

<ParamField path="id" type="string" required>The signature request id (UUID).</ParamField>

## Response

On success, the certificate PDF bytes with `Content-Type: application/pdf`, served as an attachment
named `<id>-certificate.pdf`.

<ResponseField name="(binary)" type="application/pdf">The completion certificate PDF stream.</ResponseField>

## Errors

| Status | code             | Meaning                                                                       |
| ------ | ---------------- | ----------------------------------------------------------------------------- |
| 401    | `unauthorized`   | Missing/invalid/revoked key.                                                  |
| 404    | `not_found`      | No such signature request in this key's project.                              |
| 409    | `conflict`       | Certificate is not available yet — poll status until `certificateUrl` is set. |
| 502    | `upstream_error` | The completion certificate could not be retrieved from the signature service. |

```bash cURL theme={null}
curl https://api.craftkit.dev/v1/signatures/$SIGNATURE_ID/certificate \
  -H "Authorization: Bearer $CRAFTKIT_API_KEY" \
  -o certificate.pdf
```

```json 409 theme={null}
{
  "error": {
    "code": "conflict",
    "message": "Completion certificate is not available yet (status: sent)."
  }
}
```
