---
title: "Assemble Chain Bom Endpoint"
method: POST
path: "/api/rf-chain/bom"
tags: ["rf-chain", "rf-chain"]
---

# Assemble Chain Bom Endpoint

`POST /api/rf-chain/bom`

## Request

- Base URL: `https://api.pcbgenerator.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.pcbgenerator.com/api/rf-chain/bom`
- Auth: none declared

Assemble the canonical BOM for a chain the caller already has.

The on-demand counterpart to the BOM `/design` attaches inline. It exists so
the frontend never needs a BOM assembler of its own: `_design_payload`'s
attach is best-effort (a converter-catalog failure degrades to no `bom`), and
a project persisted before the attach shipped carries none either — in both
cases Phase-5 and the report generator ask here instead of falling back to a
second, divergent implementation.

Accepts EITHER chain vocabulary: a browser-shaped `RfTransmitterChain` is
re-keyed through `to_backend_chain` (which also recovers the snake_case
catalog record the power tree and price resolver need), an agent-shaped chain
passes through untouched. Same `{lines, summary}` shape `/design` attaches.

## Response `200`

Successful Response

- unknown

---

[API](https://skmtc.dev/pcbgenerator/apis/pcb-stackup-generator-api.md) · [All operations](https://skmtc.dev/pcbgenerator/apis/pcb-stackup-generator-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pcbgenerator/apis/pcb-stackup-generator-api/revisions/b6084b3ace32?raw)
