List Shipments (Datagrid)
GraphQL counterpart of GET /api/admin/shipments. Returns a cursor-paginated list of shipments — the same rows shown on the admin Sales → Shipments datagrid. Every shipment column plus the order/customer context and both the billing and shipping addresses are populated on each row, so the field set is identical to Shipment Detail except for the shipped line items, which are returned only by the detail query ([] on the listing).
Operation
adminShipments(first, after, id, order_id, total_qty, inventory_source_name, shipped_to, order_date_from, order_date_to, created_at_from, created_at_to, sort, order) — a cursor QueryCollection. Every REST query parameter is also exposed as a GraphQL argument; see the REST page for the full argument table.
Permission
sales.shipments.view
billingAddress, shippingAddress and items are returned whole
billingAddress, shippingAddress and items are returned as JSON — query them bare, without a sub-selection (shippingAddress, not shippingAddress { … }). The whole object/array comes back. See Shipment Detail for the keys inside each.
Fields
Every field is populated on each row — the shipment columns, the order/customer context, and both address objects. Only the shipped line items are left empty ([]) on the listing. The full per-field reference is on the Shipment Detail page.
Listing vs. fetching one
The listing already carries the full payload — fetching a single shipment by id (adminShipment(id:)) is only needed when you want the shipped line items, or when you already hold a shipment id and want just that record. Typical flow: list with adminShipments, read _id from the row you want, then fetch the full record.

