Skip to main content
GET https://api.craftkit.dev/v1/signatures/:id/certificate
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

Authorization
string
required
Bearer ck_live_… — a project API key.

Path parameters

id
string
required
The signature request id (UUID).

Response

On success, the certificate PDF bytes with Content-Type: application/pdf, served as an attachment named <id>-certificate.pdf.
(binary)
application/pdf
The completion certificate PDF stream.

Errors

StatuscodeMeaning
401unauthorizedMissing/invalid/revoked key.
404not_foundNo such signature request in this key’s project.
409conflictCertificate is not available yet — poll status until certificateUrl is set.
502upstream_errorThe completion certificate could not be retrieved from the signature service.
cURL
curl https://api.craftkit.dev/v1/signatures/$SIGNATURE_ID/certificate \
  -H "Authorization: Bearer $CRAFTKIT_API_KEY" \
  -o certificate.pdf
409
{
  "error": {
    "code": "conflict",
    "message": "Completion certificate is not available yet (status: sent)."
  }
}