Products list
Returns a paginated list of products. Supports optional partial-match filters on part number, description, and model.
Method
POST
Path
/graphql
Authentication
Bearer Token
Request Body Schema
Content-type: application/json
Variables
| Name | Type | Required | Description |
|---|---|---|---|
filter.partnumber | String | Optional | Partial match on part number |
filter.description | String | Optional | Partial match on description |
filter.model | String | Optional | Partial match on model |
first | Int | Optional | Items per page. Default: 15 |
page | Int | Optional | Page number. Default: 1 |
Example Payload
{
"query": "query ($filter: ProductFilterInput, $first: Int, $page: Int) { products(filter: $filter, first: $first, page: $page) { data { id partnumber description model list_price msrp moq tariff_surcharge allow_tariff other_details created_at updated_at } paginatorInfo { currentPage lastPage total hasMorePages } } }",
"variables": {
"filter": { "partnumber": "ABC" },
"first": 10,
"page": 1
}
}
Response
Returns a paginated list of Product objects with pagination metadata.
Example Response
{
"data": {
"products": {
"data": [
{
"id": "1",
"partnumber": "ABC-001",
"description": "Standard Widget",
"model": "W1",
"list_price": 99.99,
"msrp": 129.99,
"moq": 10,
"tariff_surcharge": 5.0,
"allow_tariff": true,
"other_details": null,
"created_at": "2026-01-15 10:30:00",
"updated_at": "2026-03-24 14:22:00"
}
],
"paginatorInfo": {
"currentPage": 1,
"lastPage": 5,
"total": 72,
"hasMorePages": true
}
}
}
}
Errors
Example Response
{
"errors": [
{
"message": "Unauthenticated."
}
]
}
Method
POSTPath
/graphql