CircuitHub

Quoting

Get instant pricing for your PCB assembly projects.

Quoting is coming soon. The endpoints below describe the planned API surface — they are not yet available. We'd love your feedback on the design.

A quote provides pricing for manufacturing a PCB assembly at different quantities and lead times, with cost breakdowns for fabrication, parts, and assembly. You can quote either a specific revision or a project (which uses the latest revision). Quotes are valid for one hour — request a new one when you need fresh pricing.

Request a quote

POST /v1/quotes

Request pricing by providing either a project ID or a revision ID. Returns a cached quote if one is still valid, or generates a new one.

# quote a project (uses latest revision)
circuithub quote request --project 12345
# quote a specific revision
circuithub quote request --revision 99001

Output:

Project:   Power Supply Board (12345)
Revision:  3
Quote ID:  50001
Expires:   2025-03-15T11:00:00Z

QTY   DAYS   BOARDS       PARTS        ASSEMBLY     TOTAL        $/UNIT
1     5      $150.00      $42.30       $85.00       $277.30      $277.30
1     10     $120.00      $42.30       $65.00       $227.30      $227.30
10    5      $280.00      $310.50      $320.00      $910.50      $91.05
10    10     $230.00      $310.50      $250.00      $790.50      $79.05
100   10     $1,500.00    $2,800.00    $1,800.00    $6,100.00    $61.00
100   15     $1,200.00    $2,800.00    $1,400.00    $5,400.00    $54.00

Use --json for machine-readable output:

circuithub quote request --project 12345 --json
# quote a project (uses latest revision)
curl -X POST -H "Authorization: Bearer $CIRCUITHUB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"projectId": 12345}' \
  https://api.circuithub.com/v1/quotes

# quote a specific revision
curl -X POST -H "Authorization: Bearer $CIRCUITHUB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"revisionId": 99001}' \
  https://api.circuithub.com/v1/quotes

Response:

{
  "id": 50001,
  "projectId": 12345,
  "revisionId": 99001,
  "revisionNumber": 3,
  "createdAt": "2025-03-15T10:00:00Z",
  "expiresAt": "2025-03-15T11:00:00Z",
  "offers": [
    {
      "quantity": 1,
      "leadTimeDays": 5,
      "estimatedShipDate": "2025-03-21T00:00:00Z",
      "boardPrice": 150.00,
      "partsPrice": 42.30,
      "assemblyPrice": 85.00,
      "totalPrice": 277.30,
      "unitPrice": 277.30,
      "currency": "USD"
    },
    {
      "quantity": 1,
      "leadTimeDays": 10,
      "estimatedShipDate": "2025-03-26T00:00:00Z",
      "boardPrice": 120.00,
      "partsPrice": 42.30,
      "assemblyPrice": 65.00,
      "totalPrice": 227.30,
      "unitPrice": 227.30,
      "currency": "USD"
    },
    {
      "quantity": 10,
      "leadTimeDays": 5,
      "estimatedShipDate": "2025-03-21T00:00:00Z",
      "boardPrice": 280.00,
      "partsPrice": 310.50,
      "assemblyPrice": 320.00,
      "totalPrice": 910.50,
      "unitPrice": 91.05,
      "currency": "USD"
    },
    {
      "quantity": 10,
      "leadTimeDays": 10,
      "estimatedShipDate": "2025-03-28T00:00:00Z",
      "boardPrice": 230.00,
      "partsPrice": 310.50,
      "assemblyPrice": 250.00,
      "totalPrice": 790.50,
      "unitPrice": 79.05,
      "currency": "USD"
    },
    {
      "quantity": 100,
      "leadTimeDays": 10,
      "estimatedShipDate": "2025-03-28T00:00:00Z",
      "boardPrice": 1500.00,
      "partsPrice": 2800.00,
      "assemblyPrice": 1800.00,
      "totalPrice": 6100.00,
      "unitPrice": 61.00,
      "currency": "USD"
    },
    {
      "quantity": 100,
      "leadTimeDays": 15,
      "estimatedShipDate": "2025-04-05T00:00:00Z",
      "boardPrice": 1200.00,
      "partsPrice": 2800.00,
      "assemblyPrice": 1400.00,
      "totalPrice": 5400.00,
      "unitPrice": 54.00,
      "currency": "USD"
    }
  ]
}

Request body

Provide exactly one of projectId or revisionId.

FieldTypeDescription
projectIdintegerProject to quote — uses the latest revision
revisionIdintegerSpecific revision to quote

Response fields

FieldTypeDescription
idintegerQuote ID
projectIdintegerProject this quote is for
revisionIdintegerRevision used for pricing
revisionNumberintegerHuman-readable revision number
createdAtstringISO 8601 creation timestamp
expiresAtstringISO 8601 expiry timestamp — quotes are valid for one hour
offersarrayPricing options at different quantities and lead times

Offer fields

FieldTypeDescription
quantityintegerNumber of assembled boards
leadTimeDaysintegerBusiness days from order to shipment
estimatedShipDatestringISO 8601 estimated ship date
boardPricenumberBare PCB fabrication cost (USD)
partsPricenumberElectronic components cost (USD)
assemblyPricenumberAssembly labor cost (USD)
totalPricenumberTotal cost — boards + parts + assembly (USD)
unitPricenumberPer-board cost — totalPrice / quantity (USD)
currencystringAlways "USD"

Get quote breakdown

GET /v1/quotes/:quoteId/breakdown

See a detailed cost breakdown for a specific quantity and lead time combination. This includes per-part costs, and may include additional line items such as services or surcharges.

circuithub quote breakdown 50001 --quantity 10 --lead-time 10

Output:

Quote 50001 — 10 units, 10-day lead time

TYPE   DESCRIPTION                          QTY   UNIT PRICE   TOTAL      SUPPLIER
part   100nF 0402 — GCM155R71C104KA55D      44    $0.02        $0.88      Digi-Key
part   10uF 0805 — GRM21BR61E106KA73       22    $0.05        $1.10      Mouser
part   LM358 — LM358DR                     11    $0.42        $4.62      Digi-Key
part   STM32F103 — STM32F103C8T6           11    $2.85        $31.35     Digi-Key
...

Total: $790.50

Use --json for machine-readable output:

circuithub quote breakdown 50001 --quantity 10 --lead-time 10 --json
curl -H "Authorization: Bearer $CIRCUITHUB_API_KEY" \
  "https://api.circuithub.com/v1/quotes/50001/breakdown?quantity=10&leadTimeDays=10"

Response:

{
  "quoteId": 50001,
  "quantity": 10,
  "leadTimeDays": 10,
  "total": 790.50,
  "currency": "USD",
  "lines": [
    {
      "type": "part",
      "description": "100nF 0402",
      "bomLineId": 1001,
      "resolvedPartMpn": "GCM155R71C104KA55D",
      "manufacturer": "Murata",
      "supplier": "Digi-Key",
      "orderQuantity": 44,
      "unitPrice": 0.02,
      "lineTotal": 0.88
    },
    {
      "type": "part",
      "description": "10uF 0805",
      "bomLineId": 1002,
      "resolvedPartMpn": "GRM21BR61E106KA73",
      "manufacturer": "Murata",
      "supplier": "Mouser",
      "orderQuantity": 22,
      "unitPrice": 0.05,
      "lineTotal": 1.10
    },
    {
      "type": "part",
      "description": "LM358",
      "bomLineId": 1003,
      "resolvedPartMpn": "LM358DR",
      "manufacturer": "Texas Instruments",
      "supplier": "Digi-Key",
      "orderQuantity": 11,
      "unitPrice": 0.42,
      "lineTotal": 4.62
    }
  ]
}

Query parameters

ParameterTypeDescription
quantityintegerRequired. Board quantity matching an offer
leadTimeDaysintegerRequired. Lead time in business days matching an offer

Line item fields

FieldTypeDescription
typestringLine type — "part" for BOM components, other types may be added in future
descriptionstringHuman-readable description of the line item
bomLineIdinteger | nullBOM line ID (present when type is "part", matches IDs from the BOM endpoint)
resolvedPartMpnstring | nullManufacturer part number (present when type is "part")
manufacturerstring | nullPart manufacturer (present when type is "part")
supplierstring | nullDistributor (e.g. "Digi-Key", "Mouser")
orderQuantityintegerUnits ordered — includes attrition and rounding to price breaks
unitPricenumberCost per unit (USD)
lineTotalnumberTotal cost for this line (USD)

On this page