Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/wtyler2505/ProtoPulse/llms.txt

Use this file to discover all available pages before exploring further.

ProtoPulse’s export system converts your circuit design into the file formats used by PCB fabricators, EDA tools, and procurement systems. All export endpoints follow the same pattern: a POST request with the project ID in the body returns a binary file download with the appropriate Content-Type and Content-Disposition headers set. Some formats also run a DRC gate before generating output — if violations are present the server returns 422 Unprocessable Entity instead of the file. All export endpoints require a valid X-Session-Id header. See REST API Overview for authentication details.

Supported formats

FormatPathOutput file(s)Description
kicad/api/projects/:projectId/export/kicad.kicad_sch + .kicad_pcb + .kicad_pro (ZIP)Full KiCad 6/7 project for use in KiCad EDA
eagle/api/projects/:projectId/export/eagle.sch + .brd (ZIP)Autodesk Eagle project (XML format)
spice/api/projects/:projectId/export/spice.cirSPICE netlist compatible with LTspice, ngspice, and other SPICE simulators
bom-csv/api/projects/:projectId/export/bom.csvBill of materials. Supports generic, jlcpcb, mouser, and digikey column formats
gerber/api/projects/:projectId/export/gerberZIP (RS-274X layers)Fabrication-ready Gerber files: copper layers, solder mask, silkscreen, paste; requires DRC pass
drill/api/projects/:projectId/export/gerberExcellon .drl (included in Gerber ZIP)Drill file included automatically with the Gerber export
pick-place/api/projects/:projectId/export/pick-placecentroid .csvPick-and-place file with component reference designators, centroids, rotation, and side
netlist-kicad/api/projects/:projectId/export/netlist.netKiCad-format netlist. Set netlistFormat: "kicad" in the request body
netlist-csv/api/projects/:projectId/export/netlist.csvNetlist in CSV format. Set netlistFormat: "csv" in the request body
design-report/api/projects/:projectId/export/report-pdfPDFFull design report: component count, net summary, DRC results, simulation results, FMEA, and metadata
fmea/api/projects/:projectId/export/fmea.csv (FMEA PDF is included in design report)Failure Mode and Effects Analysis data exported as CSV
firmware/api/projects/:projectId/export/firmware.zipArduino / PlatformIO firmware scaffold generated from component types and properties in your design
fritzing/api/projects/:projectId/export/fzz.fzzFritzing project file, including breadboard and schematic views
pdf/api/projects/:projectId/export/pdf.pdfSchematic or view exported as a PDF or SVG
The drill file (Excellon .drl) is bundled inside the Gerber ZIP — it is not a separate endpoint. When you call the gerber export, you receive a single ZIP containing all layer files and the drill file.

Request body parameters

All export endpoints accept a JSON body. Parameters vary by format; the table below describes all recognised fields.
bomFormat
string
default:"generic"
BOM CSV format variant. One of generic, jlcpcb, mouser, or digikey. Only applies to the bom-csv export.
includeHeader
boolean
default:"true"
Include a header row in BOM CSV output.
groupByPartNumber
boolean
default:"false"
Collapse duplicate part numbers in BOM CSV and sum quantities.
netlistFormat
string
default:"csv"
Netlist output format. One of spice, kicad, or csv. Only applies to the netlist export.
boardWidth
number
PCB board width in millimetres. Used by the Gerber generator to set the board outline. Defaults to the server constant DEFAULT_BOARD_WIDTH.
boardHeight
number
PCB board height in millimetres. Used by the Gerber generator to set the board outline. Defaults to DEFAULT_BOARD_HEIGHT.
viewData
object
Serialised view state for the PDF schematic export. Passed directly to the PDF generator.
paperSize
string
default:"A4"
Paper size for PDF export: A4, A3, Letter.
scale
number
default:"1.0"
Scale factor for PDF schematic export.
titleBlock
boolean
default:"true"
Include a title block with project name and date in the PDF export.
analysisType
string
SPICE analysis type for the .cir netlist export: op, tran, ac, or dc.

Response

All export endpoints return the generated file as the response body. Headers are set to trigger a browser download:
Content-Type: <format-specific MIME type>
Content-Disposition: attachment; filename="<generated-filename>"
FormatContent-Type
kicad, gerber, firmware, fritzingapplication/zip
bom-csv, pick-place, netlist-csv, fmeatext/csv
spice, netlist-kicadtext/plain
eagleapplication/zip
design-report, pdfapplication/pdf
To save the file with curl, use the -o or -J -O flags:
curl -X POST http://localhost:5000/api/projects/1/export/gerber \
  -H "X-Session-Id: $SESSION" \
  -H "Content-Type: application/json" \
  -d '{"boardWidth": 50, "boardHeight": 40}' \
  -o gerbers.zip

DRC gate

Certain export formats run a Design Rule Check before generating output. If the DRC gate finds violations, the server returns 422 Unprocessable Entity with a JSON body listing the violations instead of the file.
FormatDRC gate
gerberYes — blocks export on any DRC error
kicadNo
eagleNo
spiceNo
design-reportNo (DRC results are included in the report regardless)
All othersNo
{
  "message": "DRC gate failed — resolve errors before exporting",
  "violations": [
    {
      "severity": "error",
      "rule": "min-clearance",
      "message": "Trace clearance violation between net VCC and net GND at (120, 80)"
    }
  ]
}
Gerber files sent to a PCB fabricator must pass DRC. If you need to bypass the gate during development you can pass --ignore-drc in your local curl call, but this flag is not available on production deployments.

Format-specific examples

Generate Gerber + drill files for a 50×40 mm board:
curl -X POST http://localhost:5000/api/projects/1/export/gerber \
  -H "X-Session-Id: $SESSION" \
  -H "Content-Type: application/json" \
  -d '{"boardWidth": 50, "boardHeight": 40}' \
  -o gerbers.zip
The ZIP contains the following files:
FileLayer
front-copper.gbrF.Cu — top copper
back-copper.gbrB.Cu — bottom copper
front-mask.gbrF.Mask — top solder mask
back-mask.gbrB.Mask — bottom solder mask
front-silkscreen.gbrF.SilkS — top silkscreen
back-silkscreen.gbrB.SilkS — bottom silkscreen
front-paste.gbrF.Paste — top solder paste
drill.drlExcellon drill file

Triggering exports via the AI assistant

You can ask the AI assistant to generate any supported export format using natural language. The AI calls the trigger_export, generate_gerber, or generate_kicad tools from the export tool module. Example prompts:
  • “Export this design as Gerber files”
  • “Generate a JLCPCB BOM CSV”
  • “Download the KiCad project”
  • “Create a PDF design report”
The AI validates your request, checks DRC status if required, calls the appropriate export endpoint, and provides a download link in the chat panel.
Before triggering a Gerber export via the AI, ask it to “run ERC and DRC on this design” first. The AI will surface any violations and offer to fix them before attempting the export.

Build docs developers (and LLMs) love