Referencia APIv1Products

List products

Retrieve a paginated list of products with filtering, sorting, and search.

GET
/v1/products
X-API-Key<token>

Per-store API key created in the dashboard at Settings > Developer > API Keys.

In: header

Query Parameters

page?integer
Default1
Range1 <= value
per_page?integer
Default25
Range1 <= value <= 100
sort?string
Default"created_at"
Value in"name" | "price" | "stock_quantity" | "created_at" | "updated_at"
order?string
Default"desc"
Value in"asc" | "desc"
search?string
status?string
Default"active"
Value in"active" | "inactive" | "all"
category_id?string

Comma-separated category IDs

is_featured?string
price[gte]?number

Minimum value for price

Range0 <= value
price[lte]?number

Maximum value for price

Range0 <= value
stock_status?string

Filter by stock status relative to each product's low_stock_threshold. in_stock = quantity > threshold; low_stock = 0 < quantity <= threshold; out_of_stock = quantity = 0

Value in"in_stock" | "low_stock" | "out_of_stock"

Response Body

application/json

application/json

curl -X GET "https://api.whatalo.com/v1/products"
{
  "data": [
    {
      "id": "472819365047",
      "name": "Premium Wireless Headphones",
      "slug": "premium-wireless-headphones",
      "description": "High-quality wireless headphones",
      "price": 2500,
      "compare_price": 3000,
      "main_image": "https://cdn.example.com/img.jpg",
      "gallery": [],
      "is_active": true,
      "is_featured": false,
      "sku": "SKU-001",
      "track_inventory": false,
      "stock_quantity": 100,
      "low_stock_threshold": 10,
      "continue_selling": true,
      "supplier_cost": 1200,
      "wholesale_price": 2000,
      "wholesale_min_quantity": 10,
      "condition": "new",
      "invoice_available": false,
      "fast_shipping": false,
      "warranty_months": 12,
      "category_id": "104728193650",
      "is_purchasable": true,
      "has_discount": false,
      "discount_percentage": 16.67,
      "variants": [],
      "created_at": "2026-01-15T10:30:00.000Z",
      "updated_at": "2026-01-15T10:30:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 25,
    "total": 100,
    "total_pages": 4
  }
}
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid request body",
    "details": [
      {
        "field": "string",
        "message": "string"
      }
    ]
  }
}