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

# Downloads

`tape read` retrieves data by the address a write returned. For named objects, use `tape object get` instead ([objects](/tools/cli/commands/objects)).

## The read command

Output goes to stdout by default; `--out` writes a file, and `--overwrite` replaces one that already exists.

```bash theme={null}
tape read 7trKAddressExampleBase58Value11111111111111 --out ./download.bin
tape read 7msgAddressExampleBase58Value11111111111111   # small message, straight to stdout
```

The default `auto` mode detects whether the address is a direct track or a stream manifest and does the right thing. `--mode track` and `--mode stream` force the interpretation when you need to.

## Reading through a gateway

`--gateway` (or the `TAPE_GATEWAY_URL` environment variable) fetches decoded bytes through a gateway URL instead of contacting storage nodes directly. This is the practical path if you aren't running staked infrastructure, and it's subject to the gateway's [rate limits](/apis/rate-limits).

For Tapenet, use the public gateway below and replace the example track address
with the one your write returned:

```bash theme={null}
tape read 7trKAddressExampleBase58Value11111111111111 \
  --gateway https://gw.tape.network --out ./download.bin
```

Use your own gateway's URL for a local deployment.
