---
title: "Calculate PCB via current-carrying capacity using the IPC-2221 standard. A plated via is a hollow copper cylinder whose cross-sectional area is the annular ring of plating: A = pi * (D - t) * t, where D is the drill diameter and t is plating thickness. The IPC-2221 empirical formula I = k * dT^0.44 * A^0.725 (k=0.048) then gives the maximum current for a given temperature rise. Also computes via barrel resistance from copper resistivity (1.724e-6 ohm-cm) and barrel length (board thickness). When a target current is specified, returns how many parallel vias are needed. Essential for power planes, high-current paths, and thermal via arrays. Chain with trace_width to verify both trace and via can handle the same current."
method: POST
path: "/api/pcb_via_current"
tags: ["pcb"]
---

# Calculate PCB via current-carrying capacity using the IPC-2221 standard. A plated via is a hollow copper cylinder whose cross-sectional area is the annular ring of plating: A = pi \* (D - t) \* t, where D is the drill diameter and t is plating thickness. The IPC-2221 empirical formula I = k \* dT^0.44 \* A^0.725 (k=0.048) then gives the maximum current for a given temperature rise. Also computes via barrel resistance from copper resistivity (1.724e-6 ohm-cm) and barrel length (board thickness). When a target current is specified, returns how many parallel vias are needed. Essential for power planes, high-current paths, and thermal via arrays. Chain with trace_width to verify both trace and via can handle the same current.

`POST /api/pcb_via_current`

## Request

- Base URL: `https://calc.engineer`
- URL: `https://calc.engineer/api/pcb_via_current`
- Auth: none declared

## Request body

- object
  - `drill_diameter_mm` number: Via drill hole diameter in millimeters. Common values: 0.2 (microvia), 0.3 (standard), 0.4, 0.6, 0.8, 1.0.
  - `plating_thickness_um` number: Copper plating thickness on the via barrel wall in micrometers. Standard is 25 um (IPC Class 2). Heavy plating is 50 um (IPC Class 3).
  - `board_thickness_mm` number: Total PCB board thickness in millimeters. Standard 2-layer is 1.6 mm. Common values: 0.8, 1.0, 1.6, 2.0, 2.4.
  - `temp_rise_c` number: Allowable temperature rise above ambient in degrees Celsius. IPC-2221 standard uses 10, 20, or 30 C.
  - `target_current_a` number: Optional target current in amperes. When provided, calculates how many parallel vias are needed to carry this current safely.

## Response `200`

Computed result for pcb_via_current

- object
  - `result` object, required
    - `max_current_a` number, required: Maximum current capacity of a single via at the specified temperature rise, in amperes.
    - `cross_section_mil2` number, required: Copper cross-sectional area of the via barrel annulus in square mils.
    - `cross_section_mm2` number, required: Copper cross-sectional area of the via barrel annulus in square millimeters.
    - `resistance_mohm` number, required: DC resistance of the via barrel in milliohms, calculated from copper resistivity and barrel length.
    - `voltage_drop_mv` number, required: Voltage drop across the via at maximum rated current in millivolts.
    - `power_dissipation_mw` number, required: Power dissipated in the via at maximum rated current in milliwatts.
    - `vias_needed` number, nullable, required: Number of parallel vias needed for the target current. Null if no target_current_a was provided.
  - `tool` string, required
  - `version` string, required
  - `computed_at` string, date-time, required
  - `chain` object, required
    - `feeds` unknown[]
      - unknown
    - `accepts_from` unknown[]
      - unknown

## Other responses

- `400`: Validation error or invalid JSON
- `404`: Tool not found

---

[API](https://skmtc.dev/calc/apis/calc-engineer-api.md) · [All operations](https://skmtc.dev/calc/apis/calc-engineer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/calc/apis/calc-engineer-api/revisions/8830480ec488?raw)
