> ## Documentation Index
> Fetch the complete documentation index at: https://docs.audivo.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Cache behaviour

> Why the second caller pays less, what makes a hit, and what never counts as one.

Public podcast transcripts are shared across accounts. When any account has
had an episode transcribed, every later caller gets the same transcript at a
fraction of the price, and Audivo never runs inference twice for one piece of
audio: simultaneous first requests for the same episode coalesce behind one
job.

## What makes a hit

The cache key is the episode's canonical identity plus its **asset
revision** — what the publisher is actually serving, learned from the
enclosure's declared size and publish date and a probe of the file. So:

* The same episode named three ways (feed and guid, Apple link, `episode_id`)
  is one key.
* A publisher who re-uploads or re-edits an episode changes the revision. The
  old transcript stays served to anyone who still holds it; a new request
  gets a fresh transcript of the new audio.
* Engine, model and pipeline version are in the key too. A transcript is
  never quietly replaced by a different engine's output.

Delivery options — the format you read in — are not part of the key.

## Where you learn it

| surface                                    | what it says                                                                     |
| ------------------------------------------ | -------------------------------------------------------------------------------- |
| `POST /v1/quotes` and `dry_run`            | `is_cached` per entry, priced accordingly, after probing the audio               |
| `GET /v1/resolve`                          | `is_cached` for one pointer, without a job                                       |
| `GET /v1/shows/{show_id}/episodes`         | `is_cached: null`, always — a listing does not probe a hundred files to find out |
| `GET /v1/episodes/{episode_id}/transcript` | the cached transcript, or a quote hint when there is none                        |

## What a hit costs

A cached read is priced by who is reading. The account whose job produced the
transcript reads it again for the floor of one credit; any other account pays
one tenth of the audio minutes, rounded up, never under one credit. A
78-minute episode is 8 credits cached against 78 fresh; a 10-minute one is 1.
The full rule is on [Credits](/credits).

A read you already paid for — a job that completed, or a `cached_read` member
of a confirmed group — is re-delivered free through `GET /v1/reads/{read_id}`
and `GET /v1/transcripts/{job_id}`, in any format, as often as you like.

## What is never cached across accounts

Your job history, your access records, your request log and your ledger are
yours alone. Deleting your account removes them; it does not remove a shared
transcript other accounts still use, and the deletion receipt says so. See
[Your data](/data).
