---
title: "Country coverage of the curated BOM product slots"
method: GET
path: "/api/admin/bom-coverage"
tags: ["admin-affiliate"]
---

# Country coverage of the curated BOM product slots

`GET /api/admin/bom-coverage`

## Request

- Base URL: `https://voltplan.app`
- URL: `https://voltplan.app/api/admin/bom-coverage`
- Auth: HTTP bearer

Reads all `bom_products` records (sorted by `kind,gauge_mm2,amp`) and groups them into slots keyed by `kind` plus gauge, amp, fuse type and color. Per country the active row (`active !== false`) is listed; a slot whose rows are all inactive has `countries: {}`. A later row for the same country overwrites an earlier one; a row without `country` counts as `universal`.

## Response `200`

BOM slots with their covered countries.

- AdminBomCoverage
  - `slots` AdminBomCoverageSlot[], required
    - `key` string, required: `kind|g<mm2>|gmin<mm2>|gmax<mm2>|a<amp>|<fuse_type>|<color>`, only the parts the row sets.
    - `label` string, required: Human-readable slot label, e.g. `cable · 16 mm² · red`.
    - `kind` 'cable' | 'ring_terminal' | 'heat_shrink' | 'wire_stripper' | 'cutter' | 'crimp_tool' | 'heat_gun' | 'fuse' | 'fuse_holder', required
    - `countries` AdminBomCoverageCountries, required: Country (universal, de, us, uk, fr, es, it, au) → the active row covering it; inactive rows are not listed.

## Other responses

- `403`: Admin access required. Returned for a missing, invalid or expired bearer token as well as for a valid token whose user lacks `is_admin=true`; admin endpoints never answer 401.
- `500`: PocketBase error or admin credentials not configured; `error` carries the thrown message.

---

[API](https://skmtc.dev/voltplan/apis/voltplan-api.md) · [All operations](https://skmtc.dev/voltplan/apis/voltplan-api/llms.txt) · [OpenAPI document](https://skmtc.dev/voltplan/apis/voltplan-api/revisions/575b86a7af92?raw)
