# List Catalog List all available products in the catalog GET /api/v3/catalog Returns: - Product listings with base information - Available variants for each product - Pricing and printing options Use cases: - Build product catalog in your system - Display available products to customers - Sync product updates Endpoint: GET /api/v3/catalog Version: v3.0.0 ## Query parameters: - `filter.product_ids` (array) Filter by specific product IDs - `filter.search_text` (string) Search products by name or description - `paging.limit` (integer) - `paging.page` (integer) ## Response 200 fields (application/json): - `status` (string) Response status: "success" or "error" - `message` (string) Human-readable message describing the result - `paging` (object) Pagination metadata Contains: total count, current page, total pages - `paging.total` (integer,string) - `paging.total_page` (integer) - `paging.page` (integer) - `paging.limit` (integer) - `data` (array) List of products matching the filter Each product includes: name, description, images, available variants - `data.product_id` (string) Product ID - `data.product_name` (string) Product name (e.g., "Unisex T-Shirt", "Hoodie") - `data.product_avatar_url` (string) Product main image URL - `data.print_locations` (array) Available print locations for this product - `data.print_locations.code` (string) Print location code (e.g., "front", "back", "pocket") - `data.print_locations.name` (string) Print location display name - `data.print_locations.location_id` (integer) Internal location ID - `data.variants` (array) Available variants (size/color combinations) - `data.variants.variant_id` (string) Variant ID (unique identifier) - `data.variants.name` (string) Variant name (e.g., "Black / Medium") - `data.variants.size` (string) Size (e.g., "S", "M", "L", "XL") - `data.variants.color` (string) Color name (e.g., "Black", "White", "Navy") - `data.variants.hex_color_code` (string) Color hex code (e.g., "#000000", "#FFFFFF") - `data.variants.price` (object) Base price for this variant - `data.variants.price.currency_code` (string) The three-letter currency code defined in ISO 4217. - `data.variants.price.units` (integer,string) The whole units of the amount. For example if currencyCode is "USD", then 1 unit is one US dollar. - `data.variants.price.nanos` (integer) Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If units is positive, nanos must be positive or zero. If units is zero, nanos can be positive, zero, or negative. If units is negative, nanos must be negative or zero. For example $-1.75 is represented as units=-1 and nanos=-750,000,000. - `data.variants.recommended_price` (object) Recommended retail price - `data.variants.extra_price` (object) Extra price for special features (if applicable) - `data.variants.stock_label` (string,number) Stock availability status Enum: "VENDOR_CATALOG_VARIANT_STOCK_LABEL_IN_STOCK", 1, "VENDOR_CATALOG_VARIANT_STOCK_LABEL_OUT_OF_STOCK", 2, "VENDOR_CATALOG_VARIANT_STOCK_LABEL_OUT_OF_STOCK_5D", 3, "VENDOR_CATALOG_VARIANT_STOCK_LABEL_DISCONTINUED", 4 - `data.variants.product` (object) Parent product information - `data.variants.legacy_variant_id` (integer) Legacy variant ID (for backward compatibility) - `data.legacy_product_id` (integer) Legacy product ID (for backward compatibility) ## Response 400 fields (application/json): - `code` (string, required) Machine-readable error code Example: "INVALID_ARGUMENT" - `message` (string, required) Human-readable error message Example: "The request parameters are invalid" - `details` (array) Additional error details - `details.field` (string) Field that caused the error - `details.issue` (string) Description of the issue ## Response 401 fields (application/json): - `code` (string, required) Machine-readable error code Example: "INVALID_ARGUMENT" - `message` (string, required) Human-readable error message Example: "The request parameters are invalid" - `details` (array) Additional error details - `details.field` (string) Field that caused the error - `details.issue` (string) Description of the issue ## Response 403 fields (application/json): - `code` (string, required) Machine-readable error code Example: "INVALID_ARGUMENT" - `message` (string, required) Human-readable error message Example: "The request parameters are invalid" - `details` (array) Additional error details - `details.field` (string) Field that caused the error - `details.issue` (string) Description of the issue ## Response 404 fields (application/json): - `code` (string, required) Machine-readable error code Example: "INVALID_ARGUMENT" - `message` (string, required) Human-readable error message Example: "The request parameters are invalid" - `details` (array) Additional error details - `details.field` (string) Field that caused the error - `details.issue` (string) Description of the issue ## Response 500 fields (application/json): - `code` (string, required) Machine-readable error code Example: "INVALID_ARGUMENT" - `message` (string, required) Human-readable error message Example: "The request parameters are invalid" - `details` (array) Additional error details - `details.field` (string) Field that caused the error - `details.issue` (string) Description of the issue