---
title: "Create Stackup"
method: POST
path: "/api/stackup"
tags: ["stackups"]
---

# Create Stackup

`POST /api/stackup`

## 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/stackup`
- Auth: HTTP bearer

Persist a new stackup (FastAPI validates the body before this runs).

## Request body

- StackupInputInput: Intent: Capture the complete design constraints and structural requirements for a PCB stackup.
  - `name` string, nullable: Stackup name
  - `description` string, nullable: Stackup description
  - `total_layers` integer, required: Total number of layers
  - `layer_order` LayerType[], required: Order of layer types
  - `layer_materials` string[], required: Material IDs for each layer
  - `frequency` number, required: Operating frequency in GHz
  - `power` number, required: Power requirement in Watts
  - `impedance_target` number, nullable: Target impedance in Ohms
  - `board_thickness` number, nullable: Target total thickness in mm
  - `min_trace_width` number, nullable: Minimum trace width in mm
  - `min_trace_spacing` number, nullable: Minimum trace spacing in mm
  - `vias` ViaDefinition[], nullable: Via definitions for the stackup
    - `type` 'through' | 'blind' | 'buried' | 'microvia', required
    - `start_layer` integer, required
    - `end_layer` integer, required
    - `diameter` number, required
    - `pad_diameter` number, nullable
    - `anti_pad_diameter` number, nullable
    - `material` string
    - `plating_thickness` number, nullable

## Response `200`

Successful Response

- StackupInputOutput: Intent: Capture the complete design constraints and structural requirements for a PCB stackup.
  - `name` string, nullable: Stackup name
  - `description` string, nullable: Stackup description
  - `total_layers` integer, required: Total number of layers
  - `layer_order` LayerType[], required: Order of layer types
  - `layer_materials` string[], required: Material IDs for each layer
  - `frequency` number, required: Operating frequency in GHz
  - `power` number, required: Power requirement in Watts
  - `impedance_target` number, nullable: Target impedance in Ohms
  - `board_thickness` number, nullable: Target total thickness in mm
  - `min_trace_width` number, nullable: Minimum trace width in mm
  - `min_trace_spacing` number, nullable: Minimum trace spacing in mm
  - `vias` ViaDefinition[], nullable: Via definitions for the stackup
    - `type` 'through' | 'blind' | 'buried' | 'microvia', required
    - `start_layer` integer, required
    - `end_layer` integer, required
    - `diameter` number, required
    - `pad_diameter` number, nullable
    - `anti_pad_diameter` number, nullable
    - `material` string
    - `plating_thickness` number, nullable

## Other responses

- `422`: Validation Error

---

[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)
