# Get Catalog Stock Status Check real-time stock status for variants GET /api/v3/catalog/variants/stock Returns: - Stock status: in_stock, out_of_stock, discontinued, temporarily_unavailable - Expected restock date (if applicable) Use cases: - Verify stock before order placement - Update product availability in your system - Show stock status to customers Endpoint: GET /api/v3/catalog/variants/stock Version: v3.0.0 ## Query parameters: - `filter.color_codes` (array) Filter by color codes (internal codes or hex) - `filter.colors` (array) Filter by colors (display names) - `filter.legacy_variant_ids` (array) Filter by legacy variant IDs (for backward compatibility) - `filter.product_ids` (array) Filter by product IDs - `filter.search_text` (string) Search variants by text - `filter.size_codes` (array) Filter by size codes (internal codes) - `filter.sizes` (array) Filter by sizes (display names) - `filter.skus` (array) Filter by SKUs - `filter.stock_labels` (array) Filter by stock availability 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 - `filter.variant_ids` (array) Filter by specific variant IDs - `paging.limit` (integer) - `paging.page` (integer) ## Response 200 fields (application/json): - `status` (string) Response status: "success" or "error" - `message` (string) Human-readable message - `paging` (object) Pagination metadata - `paging.total` (integer,string) - `paging.total_page` (integer) - `paging.page` (integer) - `paging.limit` (integer) - `data` (array) List of product variants Each variant includes: size, color, SKU, price, stock status, print specifications - `data.variant_id` (string) Variant ID (unique identifier) - `data.name` (string) Variant name (e.g., "Black / Medium") - `data.size` (string) Size (e.g., "S", "M", "L", "XL") - `data.color` (string) Color name (e.g., "Black", "White", "Navy") - `data.hex_color_code` (string) Color hex code (e.g., "#000000", "#FFFFFF") - `data.price` (object) Base price for this variant - `data.price.currency_code` (string) The three-letter currency code defined in ISO 4217. - `data.price.units` (integer,string) The whole units of the amount. For example if currencyCode is "USD", then 1 unit is one US dollar. - `data.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.recommended_price` (object) Recommended retail price - `data.extra_price` (object) Extra price for special features (if applicable) - `data.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.product` (object) Parent product information - `data.product.product_id` (string) Product ID - `data.product.product_name` (string) Product name (e.g., "Unisex T-Shirt", "Hoodie") - `data.product.product_avatar_url` (string) Product main image URL - `data.product.print_locations` (array) Available print locations for this product - `data.product.print_locations.code` (string) Print location code (e.g., "front", "back", "pocket") - `data.product.print_locations.name` (string) Print location display name - `data.product.print_locations.location_id` (integer) Internal location ID - `data.product.variants` (array) Available variants (size/color combinations) - `data.product.legacy_product_id` (integer) Legacy product ID (for backward compatibility) - `data.legacy_variant_id` (integer) Legacy variant 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