Guides

Working with Captures

A capture is a single extracted data record. Each run produces one capture per successfully extracted URL, containing structured ecommerce product data.

Browsing captures

• Dashboard

Navigate to Extract > Captures to view your extracted data.

Captures page showing filter bar and data table

Use the filter dropdown to choose how to view captures:

  • By run name: select a specific run to see its captures.
  • By robot name: select a robot to see captures across all of its runs. An additional Run Name column appears so you can tell which run produced each capture.

The table displays Image, Brand, Title, Price, Available, Variants, URL, and Extracted At for each capture.

Click any row to open a detail panel with two tabs:

  • Product — an interactive product page view showing images, options, pricing, description, and more.
  • Raw Data — the full JSON extraction data with syntax highlighting.
Capture detail panel showing product view with images, options, and pricing

• API

List captures from a specific run:

export EXTRALT_API_KEY="your-api-key"

curl -s "https://api.extralt.com/captures?runId=$RUN_ID" \
  -H "Authorization: Bearer $EXTRALT_API_KEY" | jq

When a run produces many captures, API results are paginated. See Common Patterns for pagination handling.

Extraction data schema

Every capture contains structured product data. The same schema is used across all sites.

{
    "id": "019d3ec3-cf96-7520-bc31-1474206e06ed",
    "url": "https://www.nike.com/t/dna-mens-dri-fit-basketball-shorts-hVGm16/HV1878-350",
    "extracted_at": 1774874512106,
    "product_id": "HV1878-350",
    "handle": "dna-mens-dri-fit-basketball-shorts-hVGm16",
    "group_id": "hVGm16",
    "title": "Nike DNA",
    "subtitle": "Men's Dri-FIT Basketball Shorts",
    "brand": "Nike",
    "breadcrumbs": "Men > Basketball > Shorts",
    "description": "Built for the court, ready for anywhere. These lightweight-yet-durable basketball shorts help keep you cool with our sweat-wicking Dri-FIT technology.",
    "release_date": "2025-10-02T07:00:00.000Z",
    "gender": "MEN",
    "age_group": "Adult",
    "rating_average": null,
    "rating_count": 0,
    "rating_scale": 5,
    "min_price": 41.97,
    "max_price": 41.97,
    "currency": "USD",
    "is_available": true,
    "variant_count": 7,
    "image_url": "https://static.nike.com/a/images/t_default/326dc2d4-a16d-4433-93d7-8d6f8313d4d0/M+NK+DF+DNA+8IN+SHORT+AOP.png",
    "categories": [
        "Men",
        "Basketball",
        "Shorts"
    ],
    "tags": [
        "Basketball",
        "Dri-FIT",
        "Shorts",
        "Men"
    ],
    "images": [
        {
            "url": "https://static.nike.com/a/images/t_default/326dc2d4-a16d-4433-93d7-8d6f8313d4d0/M+NK+DF+DNA+8IN+SHORT+AOP.png",
            "position": 1,
            "variant_ids": [
                "HV1878-350"
            ]
        },
        {
            "url": "https://static.nike.com/a/images/t_default/e2c6c1aa-6d12-46b9-9385-d76bd4fa30e0/M+NK+DF+DNA+8IN+SHORT+AOP.png",
            "position": 3,
            "variant_ids": [
                "HV1878-350"
            ]
        },
        {
            "url": "https://static.nike.com/a/images/t_default/38d8c21c-c8dd-466b-949c-92fdfcd0320b/M+NK+DF+DNA+8IN+SHORT+AOP.png",
            "position": 4,
            "variant_ids": [
                "HV1878-350"
            ]
        },
        {
            "url": "https://static.nike.com/a/images/t_default/79d907aa-1763-4af7-a1bf-99f5fc30acc4/M+NK+DF+DNA+8IN+SHORT+AOP.png",
            "position": 5,
            "variant_ids": [
                "HV1878-350"
            ]
        },
        {
            "url": "https://static.nike.com/a/images/t_default/1cd3d1a3-fea9-4295-bf8a-f3d6d59f2d47/M+NK+DF+DNA+8IN+SHORT+AOP.png",
            "position": 6,
            "variant_ids": [
                "HV1878-350"
            ]
        },
        {
            "url": "https://static.nike.com/a/images/t_default/3cf19355-4f26-4faf-b658-581297b87e9c/M+NK+DF+DNA+8IN+SHORT+AOP.png",
            "position": 7,
            "variant_ids": [
                "HV1878-350"
            ]
        }
    ],
    "videos": null,
    "properties_dict": {
        "Style": "HV1878-350",
        "Shown": "Chlorophyll/Black"
    },
    "properties_list": [
        "Recycled Materials",
        "Designed for Basketball",
        "Unlined",
        "Lightweight, sweat-wicking fabric with mesh and smooth interior",
        "Side pockets and zippered utility pocket large enough for a phone",
        "Elastic waistband with drawcord",
        "Body: 100% polyester. Pocket bags: 100% polyester.",
        "Machine wash",
        "Imported",
        "Shown: Chlorophyll/Black",
        "Style: HV1878-350"
    ],
    "options": {
        "opt1": {
            "name": "Color",
            "values": [
                "Chlorophyll/Black"
            ]
        },
        "opt2": {
            "name": "Size",
            "values": [
                "S",
                "M",
                "L",
                "XL",
                "2XL",
                "3XL",
                "4XL"
            ]
        },
        "opt3": null
    },
    "variants": [
        {
            "id": "90c9f2c2-d984-5cc2-a2a0-89deac668eb3",
            "title": null,
            "identifiers": {
                "gtin": "00198482162061",
                "mpn": "HV1878-350"
            },
            "opt1": "Chlorophyll/Black",
            "opt2": "S",
            "opt3": null,
            "offers": [
                {
                    "price": {
                        "amount": 41.97,
                        "full_amount": 60,
                        "currency": "USD"
                    },
                    "availability": {
                        "in_stock": true,
                        "quantity": "In stock"
                    },
                    "condition": "new",
                    "seller": "Nike",
                    "seller_type": "1p"
                }
            ]
        },
        {
            "id": "032621f4-8f17-5716-932d-a93b0d1dfc4a",
            "title": null,
            "identifiers": {
                "gtin": "00198481839179",
                "mpn": "HV1878-350"
            },
            "opt1": "Chlorophyll/Black",
            "opt2": "M",
            "opt3": null,
            "offers": [
                {
                    "price": {
                        "amount": 41.97,
                        "full_amount": 60,
                        "currency": "USD"
                    },
                    "availability": {
                        "in_stock": true,
                        "quantity": "In stock"
                    },
                    "condition": "new",
                    "seller": "Nike",
                    "seller_type": "1p"
                }
            ]
        },
        {
            "id": "a73069dc-17b2-5dc7-b5cc-e78c9674d8cd",
            "title": null,
            "identifiers": {
                "gtin": "00198481982455",
                "mpn": "HV1878-350"
            },
            "opt1": "Chlorophyll/Black",
            "opt2": "L",
            "opt3": null,
            "offers": [
                {
                    "price": {
                        "amount": 41.97,
                        "full_amount": 60,
                        "currency": "USD"
                    },
                    "availability": {
                        "in_stock": true,
                        "quantity": "In stock"
                    },
                    "condition": "new",
                    "seller": "Nike",
                    "seller_type": "1p"
                }
            ]
        },
        {
            "id": "417e97e7-c31c-5ac0-999c-5b6779ba831d",
            "title": null,
            "identifiers": {
                "gtin": "00198482264932",
                "mpn": "HV1878-350"
            },
            "opt1": "Chlorophyll/Black",
            "opt2": "XL",
            "opt3": null,
            "offers": [
                {
                    "price": {
                        "amount": 41.97,
                        "full_amount": 60,
                        "currency": "USD"
                    },
                    "availability": {
                        "in_stock": true,
                        "quantity": "In stock"
                    },
                    "condition": "new",
                    "seller": "Nike",
                    "seller_type": "1p"
                }
            ]
        },
        {
            "id": "42484108-e343-520f-9ed1-1ca72a301174",
            "title": null,
            "identifiers": {
                "gtin": "00198481731473",
                "mpn": "HV1878-350"
            },
            "opt1": "Chlorophyll/Black",
            "opt2": "2XL",
            "opt3": null,
            "offers": [
                {
                    "price": {
                        "amount": 41.97,
                        "full_amount": 60,
                        "currency": "USD"
                    },
                    "availability": {
                        "in_stock": true,
                        "quantity": "Limited stock available"
                    },
                    "condition": "new",
                    "seller": "Nike",
                    "seller_type": "1p"
                }
            ]
        },
        {
            "id": "179d2b07-b59e-5a7d-912f-cebf81b1d13f",
            "title": null,
            "identifiers": {
                "mpn": "HV1878-350",
                "gtin": "00198482258597"
            },
            "opt1": "Chlorophyll/Black",
            "opt2": "3XL",
            "opt3": null,
            "offers": [
                {
                    "price": {
                        "amount": 41.97,
                        "full_amount": 60,
                        "currency": "USD"
                    },
                    "availability": {
                        "in_stock": false,
                        "quantity": "Out of stock"
                    },
                    "condition": "new",
                    "seller": "Nike",
                    "seller_type": "1p"
                }
            ]
        },
        {
            "id": "fad73aae-e6b1-58ac-83a3-f17125c0b3b2",
            "title": null,
            "identifiers": {
                "gtin": "00198482211318",
                "mpn": "HV1878-350"
            },
            "opt1": "Chlorophyll/Black",
            "opt2": "4XL",
            "opt3": null,
            "offers": [
                {
                    "price": {
                        "amount": 41.97,
                        "full_amount": 60,
                        "currency": "USD"
                    },
                    "availability": {
                        "in_stock": false,
                        "quantity": "Out of stock"
                    },
                    "condition": "new",
                    "seller": "Nike",
                    "seller_type": "1p"
                }
            ]
        }
    ],
    "recommended_products": [
        "https://www.nike.com/t/mens-dri-fit-basketball-t-shirt-WPpZO1IN/HV1772-010",
        "https://www.nike.com/t/victory-sunglasses-PP0tbC/DV2138-010",
        "https://www.nike.com/t/brasilia-95-training-backpack-medium-24l-zz5tL7/DH7709-068",
        "https://www.nike.com/t/ja-2-basketball-shoes-mkEicYoS/HQ8513-001",
        "https://www.nike.com/t/mens-basketball-t-shirt-MRuIhbgt/IO9764-133",
        "https://www.nike.com/t/dri-fit-club-structured-swoosh-cap-kxvJ3j/FB5625-222",
        "https://www.nike.com/t/22oz-big-mouth-water-bottle-2VjPJW/N0000042-968",
        "https://www.nike.com/t/lebron-witness-9-basketball-shoes-h9SkAFPT/II7520-100",
        "https://www.nike.com/t/primary-mens-dri-fit-short-sleeve-versatile-top-XK77j1/DV9831-097",
        "https://www.nike.com/t/utility-speed-backpack-27l-QnNg7P/FN4106-010",
        "https://www.nike.com/t/everyday-playground-8-panel-basketball-gcWDgD/N1003082-816",
        "https://www.nike.com/t/precision-7-easyon-mens-basketball-shoes-779glM/FN0324-101"
    ]
}

Key fields:

FieldDescription
product_idPrimary product identifier on the site (product handle, ASIN, etc.)
group_idGroups captures that are variants of the same product (e.g., different color pages)
title, brand, descriptionCore product identity
image_urlPrimary product image URL
imagesProduct images with position and optional variant association
min_price, max_price, currencyPrice range across all variants
is_availableWhether any variant is currently in stock
variant_countTotal number of variants
properties_dictStructured attributes as key-value pairs (material, closure, etc.)
properties_listUnstructured features and claims (bullet points from the product page)
rating_average, rating_count, rating_scaleRating metrics
optionsUp to 3 option axes (e.g., Color, Size) with all available values
variantsOne entry per option combination, each with identifiers and offers
variants[].identifiersGTIN, SKU, MPN, and other identifiers for this variant
variants[].offersPrice, availability, condition, and seller for each offer
variants[].offers[].seller_type1p (marketplace selling directly), 3p (third-party seller), or null

All fields are optional. What gets extracted depends on what the site exposes.

Exporting captures

• Dashboard

Once data is loaded, a download button appears in the filter bar. Click it and choose a format:

  • JSONL: one JSON object per line, with fields for id, url, title, extracted_at, robot_name, run_name, and the full product data. Good for scripting, analysis, and importing into other tools.
  • Parquet: columnar format preserving all capture fields. Ideal for data pipelines, DuckDB queries, and pandas DataFrames.

• API

For bulk download, use the run download endpoint. It returns a signed URL to a compressed .jsonl.lz4 file containing all captures from the run.

curl -s "https://api.extralt.com/runs/$RUN_ID/download" \
  -H "Authorization: Bearer $EXTRALT_API_KEY" | jq '.url'

The signed URL is valid for 10 minutes.

Analyzing captures with Python

Every Extralt organization gets full access to its own cloud storage. All data generated by your runs is yours — the storage token we provide gives you direct GCS access, so you can use your data however you want: pandas, DuckDB, Spark, or any tool that reads Parquet.

The notebook below shows how to authenticate, read captures into a DataFrame, and build a quick analysis.

Prerequisites:

  • An Extralt API key (set as EXTRALT_API_KEY environment variable, or saved in a .env file)
  • pip install gcsfs pandas pyarrow python-dotenv requests