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

# consolidation

> Fetch a single consolidation by its id.

**Required scopes:** [`consolidations_read`](/docs/api-reference/v3/reference/scopes#scope-consolidations_read)

## Arguments

<ResponseField name="id" type="ID!" required>
  The id of the consolidation to fetch.
</ResponseField>

## Returns

<ResponseField name="consolidation" type={<a href="/docs/api-reference/v3/reference/consolidations/consolidation">Consolidation</a>}>
  A batch of a merchant's returned inventory, packed into cartons at a returns center and sent to the merchant's destination.

  <Expandable title="fields" lazyRender>
    <ResponseField name="cartons" type={<a href="/docs/api-reference/v3/reference/consolidations/consolidation-carton">[ConsolidationCarton!]!</a>} required>
      The merchant's cartons, in carton-number order.

      <Expandable title="fields" lazyRender>
        <ResponseField name="cartonNumber" type="Int!" required>
          The carton's number within the consolidation, as printed on its label. Unique per consolidation, and the reference to quote when receiving.
        </ResponseField>

        <ResponseField name="dimensions" type={<a href="/docs/api-reference/v3/reference/catalog/dimensions">Dimensions</a>}>
          The carton's measured dimensions.

          <Expandable title="fields" lazyRender>
            <ResponseField name="height" type="Float">
              The height, in `unit`.
            </ResponseField>

            <ResponseField name="length" type="Float">
              The length, in `unit`.
            </ResponseField>

            <ResponseField name="unit" type={<a href="/docs/api-reference/v3/reference/catalog/dimension-unit">DimensionUnit!</a>} required>
              The unit all three measurements are expressed in.
            </ResponseField>

            <ResponseField name="width" type="Float">
              The width, in `unit`.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="weight" type={<a href="/docs/api-reference/v3/reference/catalog/weight">Weight</a>}>
          The carton's measured weight.

          <Expandable title="fields" lazyRender>
            <ResponseField name="unit" type={<a href="/docs/api-reference/v3/reference/catalog/weight-unit">WeightUnit!</a>} required>
              The unit the value is expressed in.
            </ResponseField>

            <ResponseField name="value" type="Float!" required>
              The numeric magnitude of the weight.
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="deliveredAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime</a>}>
      When the consolidation reached its destination. Reserved: not yet reported.
    </ResponseField>

    <ResponseField name="destination" type={<a href="/docs/api-reference/v3/reference/consolidations/consolidation-endpoint">ConsolidationEndpoint!</a>} required>
      The facility the consolidation is headed to.

      <Expandable title="fields" lazyRender>
        <ResponseField name="address" type={<a href="/docs/api-reference/v3/reference/common/mailing-address">MailingAddress!</a>} required>
          The facility's postal address.

          <Expandable title="fields" lazyRender>
            <ResponseField name="address1" type="String">
              The first line of the address (street and number).
            </ResponseField>

            <ResponseField name="address2" type="String">
              The second line of the address (apartment, suite, unit, etc.).
            </ResponseField>

            <ResponseField name="city" type="String">
              The city, town, or village.
            </ResponseField>

            <ResponseField name="country" type="String">
              The country.
            </ResponseField>

            <ResponseField name="postalCode" type="String">
              The postal or ZIP code.
            </ResponseField>

            <ResponseField name="province" type="String">
              The province, state, or region.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="name" type="String">
          The facility's name, when it has one.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="id" type="ID!" required>
      The id of this consolidation.
    </ResponseField>

    <ResponseField name="itemCount" type="Int!" required>
      How many tracked units the consolidation holds for the merchant. Counts units, not physical pieces — a `RETURN` unit expands through its return's declared lines.
    </ResponseField>

    <ResponseField name="items" type={<a href="/docs/api-reference/v3/pagination">ConsolidationItemConnection!</a>} required>
      The merchant's units in the consolidation. Each carries the number of the carton it is packed in.

      **Requires:** [`consolidations_read`](/docs/api-reference/v3/reference/scopes#scope-consolidations_read)

      <Expandable title="fields" lazyRender>
        **Arguments**

        <ResponseField name="after" type="String">
          Forward pagination cursor — returns items after it. Pass an `edges[].cursor` or `pageInfo.endCursor` from a previous page.
        </ResponseField>

        <ResponseField name="before" type="String">
          Backward pagination cursor — returns items before it. Pass an `edges[].cursor` or `pageInfo.startCursor` from a previous page.
        </ResponseField>

        <ResponseField name="first" type="Int">
          Forward pagination: returns the first N items (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.
        </ResponseField>

        <ResponseField name="last" type="Int">
          Backward pagination: returns the last N items (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.
        </ResponseField>

        **Fields**

        <ResponseField name="edges" type={<a href="/docs/api-reference/v3/pagination">[ConsolidationItemEdge!]!</a>} required>
          The list of edges (each a node plus its pagination `cursor`).

          <Expandable title="fields" lazyRender>
            <ResponseField name="cursor" type="String!" required>
              Opaque cursor for this item; pass to `after`/`before` to page from here.
            </ResponseField>

            <ResponseField name="node" type={<a href="/docs/api-reference/v3/reference/consolidations/consolidation-item">ConsolidationItem!</a>} required>
              The item at this edge.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="nodes" type={<a href="/docs/api-reference/v3/reference/consolidations/consolidation-item">[ConsolidationItem!]!</a>} required>
          The nodes in this page, without the edge/cursor wrapper — a convenience over `edges`.

          <Expandable title="fields" lazyRender>
            <ResponseField name="cartonNumber" type="Int!" required>
              The number of the carton this unit is packed in.
            </ResponseField>

            <ResponseField name="description" type="String!" required>
              A human-readable label for the unit. Display only — match on `sku` and `return` instead.
            </ResponseField>

            <ResponseField name="grade" type="String">
              The condition grade the warehouse assigned. Merchant-defined; null when ungraded.
            </ResponseField>

            <ResponseField name="kind" type={<a href="/docs/api-reference/v3/reference/consolidations/consolidation-item-kind">ConsolidationItemKind!</a>} required>
              What this unit represents.
            </ResponseField>

            <ResponseField name="quantity" type="Int!" required>
              How many tracked units this line covers. A `RETURN` line is one unit holding the whole return's pieces.
            </ResponseField>

            <ResponseField name="sku" type="String">
              The catalog SKU this unit resolved to. Null when no product was identified, and always null for a `RETURN` unit.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="pageInfo" type={<a href="/docs/api-reference/v3/pagination">PageInfo!</a>} required>
          Pagination metadata for the current page.

          <Expandable title="fields" lazyRender>
            <ResponseField name="endCursor" type="String">
              Cursor of the last edge in this page; pass to `after` to page forward.
            </ResponseField>

            <ResponseField name="hasNextPage" type="Boolean!" required>
              Whether more items exist after this page (drives forward pagination with `first`/`after`).
            </ResponseField>

            <ResponseField name="hasPreviousPage" type="Boolean!" required>
              Whether more items exist before this page (drives backward pagination with `last`/`before`).
            </ResponseField>

            <ResponseField name="startCursor" type="String">
              Cursor of the first edge in this page; pass to `before` to page backward.
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="name" type="String!" required>
      The label printed on the cartons, e.g. `CON-42`. Display only — never parse it.
    </ResponseField>

    <ResponseField name="origin" type={<a href="/docs/api-reference/v3/reference/consolidations/consolidation-endpoint">ConsolidationEndpoint!</a>} required>
      The facility the consolidation left from.

      <Expandable title="fields" lazyRender>
        <ResponseField name="address" type={<a href="/docs/api-reference/v3/reference/common/mailing-address">MailingAddress!</a>} required>
          The facility's postal address.

          <Expandable title="fields" lazyRender>
            <ResponseField name="address1" type="String">
              The first line of the address (street and number).
            </ResponseField>

            <ResponseField name="address2" type="String">
              The second line of the address (apartment, suite, unit, etc.).
            </ResponseField>

            <ResponseField name="city" type="String">
              The city, town, or village.
            </ResponseField>

            <ResponseField name="country" type="String">
              The country.
            </ResponseField>

            <ResponseField name="postalCode" type="String">
              The postal or ZIP code.
            </ResponseField>

            <ResponseField name="province" type="String">
              The province, state, or region.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="name" type="String">
          The facility's name, when it has one.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="packedAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime!</a>} required>
      When the consolidation was packed and its contents became final.
    </ResponseField>

    <ResponseField name="shippedAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime</a>}>
      When the consolidation left the returns center.
    </ResponseField>

    <ResponseField name="status" type={<a href="/docs/api-reference/v3/reference/consolidations/consolidation-status">ConsolidationStatus!</a>} required>
      Where the consolidation is in its journey.
    </ResponseField>

    <ResponseField name="tracking" type={<a href="/docs/api-reference/v3/reference/consolidations/consolidation-tracking">ConsolidationTracking</a>}>
      Carrier tracking once the consolidation is moving; null when unavailable. Reserved: not yet populated.

      <Expandable title="fields" lazyRender>
        <ResponseField name="carrier" type="String!" required>
          The carrier moving the consolidation.
        </ResponseField>

        <ResponseField name="estimatedDeliveryAt" type={<a href="/docs/api-reference/v3/reference/common/date-time">DateTime</a>}>
          When the carrier expects to deliver the consolidation.
        </ResponseField>

        <ResponseField name="trackingNumber" type="String!" required>
          The carrier's tracking number for the consolidation.
        </ResponseField>

        <ResponseField name="trackingUrl" type="String">
          A page where the consolidation can be tracked.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

## Example

```graphql theme={null}
query {
  consolidation(id: "...") {
    deliveredAt
    id
    itemCount
    items {
      nodes {
        cartonNumber
        description
        grade
        kind
        quantity
        sku
      }
      pageInfo { hasNextPage endCursor }
    }
    name
    packedAt
    shippedAt
    status
    # ...
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.