---
title: "List bid line items"
method: GET
path: "/bids/{id}/line-items"
tags: ["Bids"]
---

# List bid line items

`GET /bids/{id}/line-items`

## Request

- Base URL: `https://app.buildworkpro.com/api/v1`
- URL: `https://app.buildworkpro.com/api/v1/bids/{id}/line-items`
- Auth: HTTP bearer

Returns every line of the bid, including sections and notes. unitPrice and total are the pre-markup direct cost. customerUnitPrice and customerTotal are the customer-facing prices (null on sections and notes). The sum of customerTotal over priced, non-optional lines equals the bid's pre-discount subtotal. A soft-deleted bid is not found.

## Path parameters

- `id` integer, required

## Response `200`

Line items

- object
  - `data` BidLineItem[], required
    - `id` integer, required
    - `bidId` integer, required
    - `kind` 'item' | 'section' | 'note', required: item = priced line; section = header grouping the rows after it; note = customer-visible text.
    - `isOptional` boolean, required: An optional (alternate) priced line, quoted outside the bid total.
    - `markName` string, nullable, required: Human-friendly mark name, e.g. W-01. Null on section and note rows.
    - `description` string, nullable, required
    - `quantity` string, nullable, required: Quantity. Sections and notes are not priced.
    - `unitPrice` string, nullable, required: Pre-markup direct cost per unit (before margin, overhead, commission, and distributed project costs). Not the customer price — use customerUnitPrice.
    - `total` string, nullable, required: Pre-markup line cost. Summing these does not equal the bid subtotal. Use customerTotal.
    - `customerUnitPrice` string, nullable, required: Customer-facing unit price after markup and this line's share of distributed costs. Null on section and note rows. An optional line is priced on its own and is excluded from the bid subtotal.
    - `customerTotal` string, nullable, required: Customer-facing line total in dollars, reconciled to the cent. Null on section and note rows. The sum over priced, non-optional lines equals the bid's pre-discount subtotal.
    - `sellTaxPercent` string, nullable, required: Per-line sales-tax rate (0–100). Null inherits the bid's tax rate; 0 exempts the line.
    - `buyTaxPercent` string, nullable, required: Per-line purchase-tax rate (0–100) on a flat line's cost. Null inherits the product's rate.
    - `order` integer, nullable, required: Sort position within the bid. A section covers every following row until the next section.
  - `meta` ResponseMeta, required
    - `request_id` string: Server-generated request identifier
    - `pagination` PaginationMeta
      - `cursor` string, nullable, required: Opaque cursor for the next page; null when no more results
      - `has_more` boolean, required: Whether more pages are available after this one
      - `count` integer, required: Items in this page

## Other responses

- `404`: Error

---

[API](https://skmtc.dev/buildworkpro/apis/buildworkpro-api.md) · [All operations](https://skmtc.dev/buildworkpro/apis/buildworkpro-api/llms.txt) · [OpenAPI document](https://skmtc.dev/buildworkpro/apis/buildworkpro-api/revisions/441cf40012f7?raw)
