# Seller schema (/docs/schema/seller) {/* AUTO-GENERATED. Do not hand-edit. Source: packages/social-api/src/docs/generate-schema-pages.ts Regenerate with: pnpm -F @repo/social-api generate:docs Field tables derive from the canonical Zod schemas (packages/social-api/src/schemas/canonical.ts); availability + equivalence derive from the registry fieldMaps. */} Seller schema [#seller-schema] Every SocialCrawl endpoint that returns a seller offer gives you this exact shape, whatever the source platform. Write your parser once and the same code reads seller data from every platform below. That is the unified schema: one contract instead of a dozen raw upstream formats. Field reference [#field-reference] | Field | Type | Nullable | Description | | ---------------- | --------- | -------- | ------------------------------------------------------ | | `id` | `string` | Yes | | | `name` | `string` | Yes | Seller name | | `domain` | `string` | Yes | | | `url` | `string` | Yes | | | `price.base` | `integer` | Yes | | | `price.tax` | `integer` | Yes | | | `price.shipping` | `integer` | Yes | | | `price.total` | `integer` | Yes | | | `price.currency` | `string` | Yes | | | `rating.average` | `integer` | Yes | | | `rating.count` | `integer` | Yes | | | `condition` | `string` | Yes | Item condition (e.g. "New", "Refurbished - Excellent") | | `availability` | `string` | Yes | | | `annotation` | `string` | Yes | | Platform availability [#platform-availability] 3 platforms return the `Seller` shape. **yes** means the platform populates the field (the value may still be null); a blank means the platform never provides it, so it is always null.