# Check the sample data (/en/api/sample-data)

The training of a website extracts a random sample of its products. The sample is free. Use it to make sure that the data has the fields you need before you approve a paid scrape.

## Get the sample [#get-the-sample]

When the setup job is in the `QUALITY_CHECK` phase or `COMPLETED`, send [`GET /samples/{website_id}`](/en/api/reference/samples/get-sample.md) with the `project_id`. The API returns a temporary download URL.

```bash tab="cURL" tab-group="lang"
curl "https://api.deepscout.ai/v1/samples/example-shop.cz?project_id=$PROJECT_ID" \
  -H "Authorization: Bearer $SCOUT_API_KEY"
```

```python tab="Python"
import json

url = api.get(f"{BASE}/samples/{website_id}", params={"project_id": project_id}).json()["url"]
lines = requests.get(url).text.splitlines()
products = [json.loads(line) for line in lines if line]
print(len(products), products[0]["name"], products[0]["price"])
```

```json title="Response"
{ "url": "https://...amazonaws.com/example-shop.cz.json?X-Amz-Signature=..." }
```

The URL is valid for 1 hour. Do not send the `Authorization` header to this URL. It is a presigned storage URL that needs no key.

If the sample is not ready yet, the API answers `404` with the code `SAMPLE_NOT_FOUND`. Try again after a few minutes.

## The file [#the-file]

- The file is in JSON Lines format: one JSON object for each product, one product on each line. It is not compressed.
- It has 20% of the products of the website, but not more than 1,000.
- After each full scrape of the website, a new random sample replaces the file.

```json title="One line of the sample (formatted)"
{
  "name": "Bio kokosový olej 500 ml",
  "price": 189,
  "price_standard": 229,
  "price_discounted": 189,
  "currency": "CZK",
  "ean": "8594173461123",
  "sku": "SKU-1000",
  "brand": "Country Life",
  "category": "Potraviny __ Oleje",
  "category_extracted": ["Potraviny", "Oleje"],
  "availability": "Skladem",
  "availability_extracted": "IN_STOCK",
  "product_url": "https://www.example-shop.cz/p/bio-kokosovy-olej-500-ml",
  "image_url": "https://www.example-shop.cz/img/1000.jpg",
  "specification": { "Hmotnost": "500 g" }
}
```

## Fields [#fields]

Each line has all these fields. A field that the website does not show is `null`. The example above leaves out the `null` fields.

| Group | Fields |
| --- | --- |
| Product | `name`, `brand`, `brand_extracted`, `description`, `specification`, `variant`, `variants`, `condition`, `condition_extracted` |
| Identifiers | `ean`, `sku`, `product_url`, `image_url`, `images_gallery` |
| Category | `category`, `category_extracted` |
| Price | `price`, `currency`, `price_standard`, `price_discounted`, `price_coupon`, `price_club`, `price_recommended`, and the five detailed prices without VAT, with the suffix `_no_vat` (for example `price_standard_no_vat`) |
| Availability | `availability`, `availability_extracted` |
| History | `history` |

The fields have the same meaning as in the [Products dataset](/en/datasets/products.md). After a scrape, the export files have all the fields of this dataset.

## What to look for [#what-to-look-for]

- **Prices.** Compare some prices with the website. The price fields show which price types the website has, for example a discounted price or a club price.
- **Identifiers.** If you plan to match products, EAN codes make the matching more accurate.
- **Categories and specifications.** Make sure that the fields that your analysis needs are present.

If the data is not correct, do not approve a scrape. Write to [support@deepscout.ai](mailto:support@deepscout.ai) with the website ID.
