Easy Labs
APIBillingProduct

Get all products

Retrieve a list of products. `status` filters: `active` (active=true, deleted_at IS NULL), `archived` (deleted_at IS NOT NULL — products soft-archived via PATCH /:id/archive), `inactive` (active=false, deleted_at IS NULL — manual deactivation without archiving). `include=prices` expands `prices` from id-only to full price rows.

GET
/v1/api/products/
x-easy-api-key<token>

Merchant API key. Publishable keys (pk_test_* / pk_live_) are safe for browser/frontend use and carry a limited scope set (sessions, payment_instruments, customers, orders writes; products, product_prices, payment_links reads). Secret keys (sk_test_ / sk_live_*) grant full admin access and must only be used server-side.

In: header

Query Parameters

limit?number
Range0 <= value
offset?number
Range0 <= value
ids?string
status?string
Value in"active" | "archived" | "inactive"
include?string
Value in"prices"

Response Body

application/json

application/json

application/json

curl -X GET "https://loading/v1/api/products/"
{
  "success": true,
  "timestamp": "2026-02-06T12:00:00.000Z",
  "data": [
    {
      "id": "prod_abc123",
      "name": "Premium Widget",
      "description": "A high-quality widget",
      "active": true,
      "metadata": {},
      "image_url": "https://example.com/widget.png",
      "created_at": "2026-01-01T00:00:00.000Z"
    }
  ]
}
{
  "success": false,
  "timestamp": "2019-08-24T14:15:22Z",
  "error": {
    "code": "string",
    "message": "string",
    "details": null
  }
}
{
  "success": false,
  "timestamp": "2019-08-24T14:15:22Z",
  "error": {
    "code": "string",
    "message": "string",
    "details": null
  }
}