> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mercurjs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Order Groups

> Retrieve a paginated list of order groups.

Returns order groups — the customer-facing wrappers around per-seller orders created from a multi-seller cart.

<Note>
  Filtering by `seller_id` narrows results to order groups that contain at
  least one order belonging to that seller.
</Note>

## Query parameters

<ParamField query="limit" type="number" default="50">Maximum number of records to return.</ParamField>
<ParamField query="offset" type="number" default="0">Number of records to skip.</ParamField>
<ParamField query="order" type="string">Field to sort by, prefix with `-` for descending order.</ParamField>
<ParamField query="fields" type="string">Comma-separated fields to include in the response.</ParamField>
<ParamField query="q" type="string">Search term matched against order groups.</ParamField>
<ParamField query="id" type="string | string[]">Filter by order group ID(s).</ParamField>
<ParamField query="customer_id" type="string | string[]">Filter by customer ID(s).</ParamField>
<ParamField query="seller_id" type="string | string[]">Filter to groups containing orders from the given seller(s).</ParamField>
<ParamField query="status" type="string | string[]">Filter by order group status.</ParamField>
<ParamField query="sales_channel_id" type="string | string[]">Filter by sales channel ID(s).</ParamField>
<ParamField query="created_at" type="object">Filter by creation date using operators like `$gte` and `$lte`.</ParamField>
<ParamField query="updated_at" type="object">Filter by update date using operators like `$gte` and `$lte`.</ParamField>

## Response

<ResponseField name="order_groups" type="object[]">
  <Expandable title="properties">
    <ResponseField name="id" type="string">The order group's ID.</ResponseField>
    <ResponseField name="customer_id" type="string">ID of the customer who placed the order.</ResponseField>
    <ResponseField name="seller_count" type="number">Number of sellers in the group.</ResponseField>
    <ResponseField name="total" type="number">The group's total amount.</ResponseField>
    <ResponseField name="created_at" type="string">Creation timestamp.</ResponseField>
    <ResponseField name="updated_at" type="string">Last update timestamp.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="count" type="number">Total number of matching order groups.</ResponseField>
<ResponseField name="offset" type="number">Number of records skipped.</ResponseField>
<ResponseField name="limit" type="number">Maximum number of records returned.</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl 'http://localhost:9000/admin/order-groups?customer_id=cus_01HXYZ&limit=20' \
    -H 'Authorization: Bearer <token>'
  ```

  ```ts JS Client theme={null}
  const { order_groups, count } = await client.admin.orderGroups.query({
    customer_id: "cus_01HXYZ",
    limit: 20,
  })
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "order_groups": [
      {
        "id": "og_01HXYZ8Q2M4N6P8R0T2V4W6X8Y",
        "customer_id": "cus_01HXYZ",
        "seller_count": 2,
        "total": 7400,
        "created_at": "2026-06-01T10:00:00.000Z",
        "updated_at": "2026-06-01T10:00:00.000Z"
      }
    ],
    "count": 1,
    "offset": 0,
    "limit": 20
  }
  ```
</ResponseExample>
