An AI summary you can't check is worthless for anything with consequences. If the model makes a sentence up —and they do— you have no way to know: you get clean, confident text with no path back to the audio to see whether it was ever said. For a mental note, fine. For a claim, an agreement or minutes of a meeting, it's a time bomb.
That's why Uttera's report isn't just another summary. It's a document where every claim is anchored to three things: the literal quote it comes from, who said it, and at which minute of the recording. And it ships as a signed PDF, so anyone can check it without having to trust us.
The core of the report is the evidence graph: every relevant claim in the recording is a node, and each node carries four things that make it checkable:
claim (an asserted fact), commitment,
question, figure (a number)…[start–end] interval it comes from, so
you can go to the audio and hear it.This is what a flat summary never gives you: it doesn't ask you to believe a conclusion, it shows you where each piece comes from and lets you disagree. A disagreement between two people isn't flattened into one sentence; it stays what it is — a dispute, with both quotes.
You can see a real report —with its chapters, entities and graph— here: sample report (signed PDF).
When it's issued, the PDF carries its signatures inside (content_signature,
container_signature, pdf_sha256, key_fingerprint). The validated graph travels
covered by that signature, so the document stands on its own: take it to our
verification page —or let your own system check it with the
public key— and you'll know if anyone changed a single comma. The trust isn't in our word;
it's in the cryptography.
It's the summarize service in intelligence mode. Add report=pdf and it returns the
signed PDF in report.pdf_base64:
curl -X POST "https://api.uttera.ai/v1/summarize?mode=intelligence&report=pdf" \
-H "Authorization: Bearer $UTTERA_API_KEY" \
-F "file=@meeting.mp3" \
| jq -r '.report.pdf_base64' | base64 -d > report.pdf
It's billed per token, like any summary. A claim the system couldn't anchor is marked unverified and is not billed separately nor sold as verified. With no code, in the Studio you tick the «Verifiable report» box, pick the output language and run it: the graph is drawn on screen and you download the PDF and the JSON.
Worth saying plainly. The graph proves something was said, by whom and when, and the PDF proves the document is authentic. That doesn't prove what was said is true: if someone lies on a call, the report faithfully records the lie, anchored to its quote. What the graph does is put the error in plain sight and make it checkable, instead of hiding it under a tidy summary. And one more thing, no small print: this is not a sworn transcript or a certification; validate it before using it for anything with consequences.
The verifiable report is available from the Developer plan during the launch promotion (its natural home is Professional and up). If you're building something where someone will make a decision from a recording —minutes, support, claims, compliance— this is what separates «here's a summary» from «here's what I can prove».
How to request it, with every parameter, in the verifiable-report documentation.
Anything to add or correct? Write to support@uttera.ai. If you correct us, we edit the post and credit you.