Three ways to show your work without adding anyone to your org: a review link for a client sign-off, a public receipt that proves how an output was made, and the quality receipt Wavemaker attaches when it ships a degraded result.
Client review links
Mint a tokenized link against a finished production’s deliverable:
POST /run-groups/{runGroupId}/review-links → { reviewId, reviewUrl }
The reviewer opens reviewUrl (a public /review/{token} page — no account needed), watches the deliverable, and either approves or requests changes — with an optional note and name — exactly once. A second decision on the same link returns already_decided.
- The decision lands back on the production’s outputs card in chat, so you see the verdict where you made the video.
GET /run-groups/{id}/review-linkslists links with their decision state.DELETE /run-groups/{id}/review-links/{linkId}revokes a link — the public page 404s immediately.- Minting requires a settled deliverable (
409 no_deliverableotherwise).
The token is the credential: anyone with the URL can review, so treat links like the private URLs they are and revoke what you no longer need.
Public production receipts
Every settled run has a receipt — the durable record of what actually ran. To share it publicly:
POST /runs/{runId}/receipt/share → { token, shareUrl } (idempotent; 409 before settle)
DELETE /runs/{runId}/receipt/share → revoke (public page 404s)
The public /receipt/{token} page needs no account and shows:
- QC verdicts — each automated check (kind, verdict, score, attempt).
- Models — which generation models actually produced the output.
- Credits — reserved → settled, with any refund or upcharge, so the spend is itemized honestly.
Use it to prove provenance to a client or to document a result. Your own copy is always at GET /runs/{id}/receipt.
Quality receipts on degraded ships
Wavemaker never terminal-fails a production purely on quality: after bounded rewrites it ships the best take. When that happens, the succeeded group carries a qualityReceipt naming the weak axes — each with its source gate and, where applicable, the scene it belongs to. Nothing is hidden: a clean deliverable has no quality receipt at all.
Because weak axes are scene-attributed, repair is one tap: Regenerate scene on the outputs card (or POST /run-groups/{id}/regen-scene with the sceneIndex) re-rolls just that lane — from the seed by default, or from=clip to keep the approved still and redo only the animation.