GET /v1/generations/:id/certificate
Download the generation certificate PDF for a track
Download the generation certificate for one of your tracks — a formal, single-page PDF issued by Riku AI LLC, the operator of Finetuning, confirming that the track was generated by you on Finetuning with the recorded prompt and settings.
The certificate states plainly that Finetuning claims no ownership of, and holds no copyright or license over, the work — all rights belong to its creator. Hand it to a platform, client, or sponsor as proof of where the track came from, or attach it when disputing a mistaken copyright claim.
Every certificate carries a permanent certificate number (e.g. FT-A7K2-M9QX-4BQC) and a public verification link + QR code. Anyone can confirm the certificate at https://finetuning.ai/verify/<number> — no account or API key needed.
Request
GET https://pub.finetuning.ai/v1/generations/:id/certificateThis endpoint was previously GET /v1/generations/:id/license. The old path still works and returns exactly the same PDF, so nothing you've already written needs changing — new integrations should use /certificate. The document is a provenance attestation and grants no licence, so the old name was misleading.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
X-API-Key | string | Yes | Your API key |
Path parameters
| Parameter | Type | Description |
|---|---|---|
id | string | The generation ID (e.g., gen_abc123) |
Example
curl https://pub.finetuning.ai/v1/generations/gen_abc123/certificate \
-H "X-API-Key: ft_live_your_key_here" \
-o certificate.pdfThe X-API-Key header is required, so this URL isn't clickable in a browser — pasting it into the address bar returns 401. It's an endpoint for your code. To eyeball a certificate, open its public verification URL instead.
Response
The response body is the PDF binary (Content-Type: application/pdf), not JSON. The filename arrives in the Content-Disposition header and includes the certificate number:
Content-Type: application/pdf
Content-Disposition: attachment; filename="finetuning-certificate-FT-A7K2-M9QX-4BQC.pdf"The certificate includes:
- The certificate number and issue date
- Who generated the work (your account's display name — no email or other personal data)
- The work's title, ID, type, duration, and generation date
- The full generation prompt and settings, and the AI model used (Ace Step XL for music, Stable Audio for instrumentals)
- The statement that all rights in the work belong to its creator
- The public verification URL and QR code
Behavior worth knowing
- The certificate number never changes. The first request issues the certificate; every later request returns the same number and issue date.
- Renames refresh automatically. If you rename the track, the next download re-renders the PDF with the new title — same certificate number.
- Only completed tracks that you own have certificates. Works for both
musicandinstrumentaltypes. - It only works while the generation exists. Delete the track and this endpoint returns
404; after the 30-day retention window the certificate can no longer be produced at all.
If you delete generations after archiving them, set certificate: true when you create them: we issue the certificate at completion and send you its number, its verification URL and this download URL on your webhook, so your automation can archive the PDF before you delete. See Certificates.
Errors
Errors are returned as JSON in the standard error shape.
| Code | Status | Description |
|---|---|---|
MISSING_API_KEY | 401 | X-API-Key header was not provided |
INVALID_API_KEY | 401 | API key is malformed, revoked, or does not exist |
NOT_READY | 400 | The generation is not completed yet |
PAID_PLAN_REQUIRED | 403 | Certificates require a Plus, Pro, or Lifetime plan |
NOT_FOUND | 404 | No generation with this ID in your account |
INTERNAL_ERROR | 500 | Unexpected server error |