List BOMs
Retrieves all bills of materials in the system. Returns a flat array of BOM objects, each containing its full set of entries. This endpoint does not include the computed production summary — use Get BOM for individual BOMs with summary data.
Use this endpoint to populate BOM selection lists, display a BOM management dashboard, or export all BOM definitions.
Request
No request body or query parameters.
Response
200 OK
Returns an array of BOM objects. If no BOMs exist, returns an empty array [].
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for the BOM (prefixed with bom_) |
name | string | Human-readable BOM name |
entries | BomEntry[] | Array of part entries |
entries[].id | string | undefined | Entry ID, if assigned by the repository |
entries[].bomId | string | undefined | Parent BOM ID reference |
entries[].partType | string | Part type name or identifier |
entries[].requiredQuantityPerBuild | number | Quantity of this part needed per build |
entries[].contributingJobIds | string[] | Job IDs that supply this part |
createdAt | string | ISO 8601 timestamp of when the BOM was created |
updatedAt | string | ISO 8601 timestamp of the last modification |
500 Internal Server Error
Returned if an unhandled error occurs while querying the database.
| Condition | Message |
|---|---|
| Database read failure | "Internal Server Error" |
Examples
Request
curl http://localhost:3000/api/bom
Response — Multiple BOMs
[
{
"id": "bom_abc123",
"name": "Widget Assembly BOM",
"entries": [
{
"id": "entry_001",
"bomId": "bom_abc123",
"partType": "Steel Plate",
"requiredQuantityPerBuild": 4,
"contributingJobIds": ["job_001", "job_002"]
},
{
"id": "entry_002",
"bomId": "bom_abc123",
"partType": "Bolt M8",
"requiredQuantityPerBuild": 12,
"contributingJobIds": ["job_003"]
}
],
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-15T10:30:00.000Z"
},
{
"id": "bom_def456",
"name": "Enclosure BOM",
"entries": [
{
"id": "entry_003",
"bomId": "bom_def456",
"partType": "Aluminum Sheet",
"requiredQuantityPerBuild": 2,
"contributingJobIds": ["job_004"]
}
],
"createdAt": "2024-01-16T08:00:00.000Z",
"updatedAt": "2024-01-18T11:00:00.000Z"
}
]
Response — No BOMs
[]
Notes
- The list endpoint does not include the computed
summaryfield. To get production progress data for a specific BOM, use the Get BOM endpoint. - This endpoint is not paginated. For deployments with a very large number of BOMs, the response may be large.
- Entries are returned as stored — the
idandbomIdfields on entries may or may not be present depending on the repository implementation.
Related Endpoints
- Get BOM — Retrieve a single BOM with production summary
- Create BOM — Create a new BOM
- Edit BOM — Make a versioned edit to a BOM