# Download a purchased file

Online purchasing is currently unavailable. Browse public products with `catabricks catalog list` or [contact Catabricks](/contact?lang=en). Stop purchase retries on `SALES_DISABLED` or `PAYMENT_NOT_CONFIGURED`. An inquiry does not grant file access; existing downloads remain subject to the order permissions and deadline.

[Install the CLI](/docs/cli?lang=en) first. These examples use CLI 0.2.5.

## 1. Sign in

```sh
catabricks login
```

Sign in with Google in the browser, check the device code shown in your terminal, and approve the request.

## 2. Find your order ID

```sh
catabricks orders list
```

Copy `data.items[].id` for the purchased file you want. This is the `ORDER_ID` used in the next command.

This illustrative JSON excerpt shows selected fields only. The ID and product title are examples, not a real order; use your own command output. Default output is indented JSON; add `--json` for a single line.

```json
{
  "ok": true,
  "data": {
    "items": [
      {
        "id": "93db21a6-0f62-40d9-a4e8-56d7a954c4b2",
        "productTitle": "Example dataset"
      }
    ]
  }
}
```

## 3. Download

Replace `ORDER_ID` with the order ID you copied. `--output` sets the path to save the file.

```sh
catabricks download ORDER_ID --output ./dataset.zip
```

After downloading, the CLI verifies the file size and SHA-256. `"ok": true` and the saved path confirm success. The order must be paid and its file ready for delivery.

To continue an interrupted download, use the same order and path with `--resume`. Keep both the `.part` and `.part.json` files.

```sh
catabricks download ORDER_ID --output ./dataset.zip --resume
```

To check the file again later, run `catabricks verify ./dataset.zip --order ORDER_ID`. You can download repeatedly within the download window.

## To make a new purchase

If you do not have a purchased order yet, start with the public catalog. Browsing products does not require sign-in.

```sh
catabricks catalog list
```

This is another illustrative excerpt. `Product.id` identifies the product to inspect; `offerId` identifies the offer to buy. They are different IDs.

```json
{
  "ok": true,
  "data": {
    "items": [
      {
        "id": "78c3be2a-3f14-4bf2-a219-e985443d3c79",
        "title": "Example dataset",
        "offerId": "d6a92d43-f931-44af-b3b2-8c26f2aa24b8"
      }
    ]
  }
}
```

Replace `PRODUCT_ID` with the product’s `id` to check contents, format, license, full `priceKrw`, and `downloadHours`. To purchase, replace `OFFER_ID` with that product’s `offerId`.

```sh
catabricks catalog show PRODUCT_ID
catabricks buy OFFER_ID --buyer personal
```

`buy` prepares an order and opens checkout. Using the same Google account, check the amount, terms, and buyer, then complete payment in the browser. Do not enter card details in the CLI. Current catalog results determine actual products and prices.

The `data.orderId` returned by `buy` is the new `Order.id`. In `orders list`, the same value appears as `data.items[].id`. After payment, use it in the download steps above. For organization purchases, see the [command reference](/docs/cli/reference?lang=en).

## End your session

When finished, run `catabricks logout` to end the current CLI session. To end all CLI sessions, use `catabricks logout --all` instead. Downloaded files are retained.
