E-commerce

Category Search Results

/extract/json

Schema for e-commerce category browsing or search results pages.

Download the schemae-commerce/category-search-results.json

category-search-results.schema

// names marked ? are optional

platform:string// E-commerce platform (e.g., Amazon, Walmart). Commonly found in: site domain, platform branding, page header.
query_or_category:string// Search query string or category name browsed. Commonly found in: search bar value, page title, breadcrumb current page, URL parameter.
page_number?:number// Current page number in paginated results. Commonly found in: pagination control, URL page parameter, page indicator.
total_results?:number// Total number of results returned. Commonly found in: results count display, total items label, search results header.
results:object[]// List of product results on this page. Commonly found in: product grid, search results list, category product cards.
rank:number// Position in the results list.
product_id?:string// Product identifier (ASIN, SKU, etc.).
title:string// Product title.
brand?:string// Product brand.
price?:number// Current price.
sale_price?:number// Sale or discounted price.
rating?:number// Average rating.
review_count?:number// Number of reviews.
is_sponsored?:boolean// Whether this result is a sponsored/paid placement.
seller?:string// Seller name.
availability?:string// Availability status.
listing_url?:string// URL to the product listing.
filters_applied?:string[]// Active filters applied to the results. Commonly found in: active filter chips, selected filter labels, URL filter parameters.
sort_by?:string// Current sort order applied to results. Commonly found in: sort by dropdown selected, sort parameter in URL, results sort label.
ads_count?:number// Number of sponsored/ad placements in results. Commonly found in: sponsored label count, ad badge count in results.
snapshot_date:string// Date this search results snapshot was captured. Commonly found in: extraction date, scraper timestamp, page capture date.
page_title?:string// Title of the source page. Tabstack auto-fills this from page metadata when left empty.
favicon?:string// Favicon URL of the source page. Tabstack auto-fills this from page metadata when left empty.

Try it live

A sample Category Search Results document, generated from the schema. Edit it, or paste a real response, and see it checked against the schema instantly. It runs in your browser, nothing is sent anywhere.

your-output.json
validation

Valid, matches Category Search Results

Every required field is present and each value matches its type. Extra fields are allowed. A field the page does not carry is not guaranteed to come back as null, so check values rather than only checking for null.

/extract/json

Copy-paste usage

The same call in TypeScript, Python, and curl. Point it at your own URL and go. The schema drives the response, so you get back the fields you asked for instead of a page to parse.

Features

  • Typed TypeScript and Python SDKs
  • One call, no parsing code and no second LLM pass
  • The same field names on every request, even when the page layout changes
category-search-results.ts
// curl -sfLO https://raw.githubusercontent.com/Mozilla-Ocho/tabstack-schemas/main/e-commerce/category-search-results.json
import Tabstack from '@tabstack/sdk'
import schema from './category-search-results.json' with { type: 'json' }

const client = new Tabstack() // reads TABSTACK_API_KEY from the environment

try {
  const data = await client.extract.json({
    url: 'https://example.com/products/item',
    json_schema: schema,
    effort: 'standard', // 'min' | 'standard' | 'max'
  })

  console.log(data)
} catch (err) {
  console.error('Extraction failed:', err)
}

Ship this schema in one call.

Pass a URL, get matching JSON back. Free to start, no extraction layer to maintain.