Meeting intelligence · pay per call

The timeline files itself.

Send the recording or the transcript. Get back the summary, the decisions, the commitments with owners, the objections, the risks, the CRM fields and the quotes — and every one of them tells you the moment in the call it came from.

Start with your Ounie accountRead the API docsNo subscription — pay in Ounie credits
0:008:0016:0024:00DECISIONSCOMMITMENTSRISKSMove to annual billing4:12Pilot scoped to two teams11:40Send the security pack18:05DanaConfirm final seat count22:31Legal review not started26:44

What comes out

A call, filed.

One request in — a recording or a transcript — and one structured object back. Every field is drawn from what was said, and the ones the call did not cover come back empty rather than filled in for you.

Summary

Three to six sentences on what the call was about and where it landed. Written to be recognised by someone who was there.

Decisions

What was actually settled, one line each — not what was discussed, and not what someone might do.

Commitments

Somebody said they would do something. Who, what, and what they said about when — in their words, not a date we calculated.

Objections

Push-back raised, and how it was answered if it was. The ones that went unanswered are the useful ones.

Risks

What could derail this, grounded in something that was said. Never generic advice about deals in general.

CRM fields

Stage, budget, timeline, competitors, use case — filled only when the call stated them. Anything not discussed stays null.

Next steps

The concrete actions named on the call, ready to become tasks.

Quotes

Short verbatim lines worth keeping, each one anchored so you can go and hear it.

Timestamps, not slugs

A citation you can listen to.

Everywhere else in Ounie a claim cites a page. That is the wrong shape for a recording — there is no page, there is a moment. So every item here carries atMs, and the reader jumps straight to the sentence it came from.

We transcribed it. Word-level timings come back from the transcriber, so the anchor lands on the sentence, not the minute.

Your transcript was timed. If your file already carried timestamps — most exports do — those are real measurements and we use them rather than re-deriving anything.

Your transcript carried no times. Then there is nothing to anchor to, and the response says so: anchored: false and every atMs is null. We do not spread items evenly across a duration nobody measured. A fabricated timestamp is worse than an absent one, because someone will click it.

{
  "commitments": [
    {
      "owner": "dana_reyes",
      "ownerLabel": "Dana Reyes",
      "what": "Send the security pack",
      "dueHint": "before the board meeting",
      "atMs": 1085000,
      "at": "18:05",
      "anchored": true
    }
  ]
}
Sourcewe transcribed it12:04Sourceyour transcript was timed18:31Sourceyour transcript had no times
Filed debriefYour brainsave_to_brain

The opt-in write-back

Nothing reaches your brain unless you ask, on that call.

A debrief can be saved into one of your Ounie brains as a page, so next quarter's answer knows what this quarter's call said. It is a per-request field, and omitting it is the only default.

There is no account setting that turns this on, and there is no “remember this choice”. An agent handling twenty calls a day writes back on exactly the ones you told it to.

The reason is not caution for its own sake. The people on the other end of a call did not agree to be indexed, and a knowledge base that quietly absorbed every conversation would be a privacy incident wearing a feature's clothes.

When you do ask, the promote is idempotent on the debrief's id — a retried request updates the same page instead of making a second one — and the markdown written is byte-identical to what export hands you, so you can read it before you save it.

{
  "transcript": "...",
  "save_to_brain": { "brain_id": "…" }   // ← omit it and nothing moves
}

For developers & AI agents

Three ways in. All of them file the same call.

An agent that just finished a call has a recording and no session cookie. Every rail below is designed around that.

REST

A dbf_live_ key from your dashboard drives the same endpoints the dashboard drives, drawing your Ounie credits. Your ounie_live_ master key works too, and unlocks the two things that reach ounie.com: brain context and the opt-in write-back.

curl -X POST https://debrief.ounie.com/api/debriefs \
  -H "Authorization: Bearer dbf_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "audio_url": "https://example.com/discovery-call.mp3",
    "template": "sales",
    "participants": ["Dana Reyes", "Sam Okafor"]
  }'

x402

No account, no key, no wallet on file. The 402 quotes the exact price for the request you sent — a recording costs more than a transcript because we run a transcriber on it. We verify the signature, do the work, and settle only when there is a real debrief to hand back.

# No account. Pay per call in USDC on Base.
curl -X POST https://debrief.ounie.com/api/x402/debrief \
  -H "Content-Type: application/json" \
  -d '{"transcript": "...", "template": "research"}'
# → 402 with the exact price for THIS request, then
#   repeat with an X-Payment header.

MCP

Point Claude, Cursor, or the Ounie AI Team at Debrief and it gains file_call, quote_debrief, get_debrief, export_debrief and save_debrief_to_brain. Reserve-before-run means a key can be refused, never overdrawn.

Endpoint  https://debrief.ounie.com/api/mcp
Auth      Authorization: Bearer dbf_live_…
          (or append ?api_key=dbf_live_… when your
           host cannot set headers)

Full reference, error codes and the two-gate refusal contract live in the docs.

Credit math

You are billed for work we actually did.

One flat fee to file a call. Transcription is a separate line, and it appears only when we run a transcriber for you.

You bring the transcript

10credits

  • Filing the call10
  • Transcriptionnot run, not charged

Nothing is inflated here to make the two paths look similar. If you already have the words, there is no transcriber to pay and no line on your bill.

You bring a 30-minute recording

100credits

  • Filing the call10
  • Transcription · 0.05/second90

We reserve against the recording's own length, then settle on what was actually transcribed. If it comes in shorter than the file claimed, the difference goes back.

Nothing worth filing is free

A source with no decisions, commitments or next steps in it is refunded in full. You are not charged for a non-answer.

Reading is free forever

Re-reading a filed debrief, exporting it as markdown, pulling the transcript back out, saving it to a brain — none of it bills again.

One credit is one cent

Credits are the shared Ounie wallet, used across every Ounie app. 10 credits is 0.10 dollars.

Questions

The honest answers.

What exactly is a timestamp anchored to?

A position in the source recording, in milliseconds, returned as atMs on every decision, commitment, objection, risk and quote. When we transcribed the audio ourselves the position comes from word-level timings. When you supplied a transcript that carried timestamps, it comes from those. When the transcript carried none, atMs is null and the response says anchored: false — we would rather show you a dash than a number you would click and land nowhere.

Do you ever guess who said something?

No. Participant names have exactly two legitimate sources: you passed them in, or the transcript was labelled and we parsed the labels out. Anything else is a positional placeholder — speaker_1 — and participantsInferred comes back false. If the model tries to attribute a commitment to a name that is not on that roster, the attribution is dropped and the owner is null. It is never resolved to the closest match.

Can you identify speakers from the audio?

No, and the product does not pretend to. The transcription endpoint returns no speaker labels — verified live — and inferring them from the text would be a guess wearing the costume of a measurement. If you need names on commitments, send a labelled transcript or pass participants.

Does anything get written into my knowledge base?

Only if a specific request asks for it. save_to_brain is per call, it has no account-level setting, and omitting it is the only default. A brain that silently ingested every call an agent handled would be a privacy incident — the people on the other end of the call did not agree to be indexed.

Do you keep the recording?

No. Audio is streamed, transcribed and dropped inside the one request. We store the debrief and the transcript, because every anchor points into the transcript and an anchor you cannot open is not a citation. Deleting a debrief deletes both.

What happens if the call was not worth filing?

You are not charged. A source with no decisions, commitments, risks or next steps in it comes back as thin material and refunds in full on the credit rail. On x402 it returns a 402 before the payment is settled, so nothing moves on chain.

I already have a transcript. Am I paying for transcription anyway?

No. Not a reduced rate and not a minimum — the transcription line does not appear at all. You are quoted the flat fee, reserved the flat fee, and charged the flat fee, and the stored record shows zero transcribed seconds.

Does it need one of my Ounie brains?

No. Brains are optional context that helps frame the filing — who this account is, what they bought last year. Retrieval is free and never adds facts the call did not contain. Skip it and the debrief is built entirely from the call.

File the last call you had.

Paste a transcript or point at a recording. Ten credits, and you will know in about a minute whether this is worth wiring into your stack.