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 [].

FieldTypeDescription
idstringUnique identifier for the BOM (prefixed with bom_)
namestringHuman-readable BOM name
entriesBomEntry[]Array of part entries
entries[].idstring | undefinedEntry ID, if assigned by the repository
entries[].bomIdstring | undefinedParent BOM ID reference
entries[].partTypestringPart type name or identifier
entries[].requiredQuantityPerBuildnumberQuantity of this part needed per build
entries[].contributingJobIdsstring[]Job IDs that supply this part
createdAtstringISO 8601 timestamp of when the BOM was created
updatedAtstringISO 8601 timestamp of the last modification

500 Internal Server Error

Returned if an unhandled error occurs while querying the database.

ConditionMessage
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 summary field. 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 id and bomId fields on entries may or may not be present depending on the repository implementation.
  • Get BOM — Retrieve a single BOM with production summary
  • Create BOM — Create a new BOM
  • Edit BOM — Make a versioned edit to a BOM