# List Products — Everstox

> List products in an Everstox shop. Use this to browse or audit the product catalog, check inventory by SKU or name, or filter by warehouse. Results default to 10 per page — use limit and offset together to paginate through large catalogs…

- Key: `everstox-list-products`
- Type: Action (Read-only)
- Version: 0.0.2
- App: Everstox (`everstox`) — https://pipedream.com/apps/everstox.md
- This page (HTML): https://pipedream.com/apps/everstox/actions/list-products
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/everstox/actions/list-products/list-products.mjs

## Description

List products in an Everstox shop. Use this to browse or audit the product catalog, check inventory by SKU or name, or filter by warehouse. Results default to 10 per page — use `limit` and `offset` together to paginate through large catalogs. [See the documentation](https://api.everstox.com/api/v1/ui/#/Product/district_core.api.shops.products.products.Products.index)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `search` | `string` | No | Search for name or SKU |
| `sku` | `string[]` | No | Filter products by SKU. If the number of SKUs exceeds 10, exact_search is enforced |
| `name` | `string` | No | Filter products by name |
| `gtin` | `string` | No | Filter products by GTIN — returns products with at least one unit whose GTIN contains this value |
| `customAttributeKey` | `string` | No | Filter products by custom attribute key — returns products with at least one custom attribute whose key contains this value |
| `customAttributeValue` | `string` | No | Filter products by custom attribute value — returns products with at least one custom attribute whose value contains this value |
| `status` | `string` | No | Filter products by status (default all) |
| `bundleProduct` | `boolean` | No | Filter for bundle products |
| `exactSearch` | `boolean` | No | If true, searches for exact SKU and name matches (default true) |
| `stockRunwayLte` | `integer` | No | Filter for stocks with runway lower than or equal to the number of days provided |
| `stockRunwayLt` | `integer` | No | Filter for stocks with runway lower than the number of days provided |
| `stockRunwayGte` | `integer` | No | Filter for stocks with runway greater than or equal to the number of days provided |
| `warehouseIds` | `string[]` | No | Warehouse IDs Options are loaded from the connected account. |
| `orderBy` | `string` | No | Fields to order the result set by |
| `fields` | `string` | No | Fields to include in the response |
| `fieldSet` | `string` | No | full includes all sub-entities (default); minimal returns essential fields optimized for performance |
| `limit` | `integer` | No | The number of products to return (default 10) |
| `offset` | `integer` | No | The number of products to skip before starting to collect the result set |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "everstox",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "everstox-list-products",
  arguments: {
    search: "Search",
    sku: ["SKUs"],
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "everstox-list-products",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    everstox: { authProvisionId: "apn_xxxxxxx" },
    search: "Search",
    sku: ["SKUs"],
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "everstox-list-products",
    "configured_props": {
      "everstox": { "authProvisionId": "apn_xxxxxxx" },
      "search": "Search",
      "sku": ["SKUs"]
    }
  }'
```

---

- App: https://pipedream.com/apps/everstox.md · All apps: https://pipedream.com/apps
