Guides

Working with Captures

A capture is a single extracted data record. Each run produces one capture per successfully extracted URL.

Fetching captures

List captures from a specific run:

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

Capture structure

Each capture contains:

FieldDescription
_idUnique capture identifier
urlThe source URL that was extracted
dataExtracted product data (base fields + optional details)
robotIdThe robot that extracted it
runIdThe run that produced it

Example capture

{
  "_id": "cap_abc123",
  "url": "https://example-store.com/products/sneakers",
  "data": {
    "title": "Air Max 90",
    "brand": "Nike",
    "description": "Classic sneaker with visible Air cushioning.",
    "images": [
      "https://example-store.com/images/am90-1.jpg",
      "https://example-store.com/images/am90-2.jpg"
    ],
    "identifiers": {
      "gtin": "1234567890123",
      "mpn": "DN3707-100"
    },
    "variants": [
      {
        "option_values": ["10", "White"],
        "sku": "AM90-WHT-10",
        "price": { "amount": 130, "currency": "USD" },
        "availability": "in_stock"
      },
      {
        "option_values": ["11", "White"],
        "sku": "AM90-WHT-11",
        "price": { "amount": 130, "currency": "USD" },
        "availability": "out_of_stock"
      }
    ],
  }
}

Filtering

You can filter captures by run:

GET /captures?runId=your-run-id

Pagination

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

Bulk download

For large datasets, use the run download endpoint instead of paginating through individual captures. It returns a compressed .jsonl.lz4 file with all captures from the run.

See Running Extractions for download details.

What's next