---
title: "Get Public Battery Pairings"
method: GET
path: "/v1/public/batteries/{component_id}/pairings"
tags: ["v1", "public"]
---

# Get Public Battery Pairings

`GET /v1/public/batteries/{component_id}/pairings`

## Request

- Base URL: `https://thrustlab.com`
- URL: `https://thrustlab.com/v1/public/batteries/{component_id}/pairings`
- Auth: none required

What to put on this pack: the best pairing per stator size, best first.

A battery makes no thrust, so it has no curves of its own. This is the other
half of the same generation, read from the pack's point of view.

## Path parameters

- `component_id` string, required

## Response `200`

Successful Response

- PublicBatteryPairings: What to put on one pack: the best pairing per motor stator size.
  - `battery_id` string, required
  - `generation` CatalogGenerationView, required: Which batch these numbers came from, and what produced them.
    - `activated_at` string, nullable
    - `aero_model` string, nullable
    - `computed_at` string, nullable
    - `id` string, required: Public generation id (cgen_<ksuid>).
    - `nominal_battery_version` string, required
    - `pairing_version` string, required
    - `propeller_model` 'fast': Precomputed curves are Fast-model, the same model an anonymous run uses, so a page curve and a live result agree.
    - `solver_engine` string, required
    - `throttle_points` number[], required
  - `license` string, required
  - `object` 'battery_pairings'
  - `pairings` CatalogPairingView[], required
    - `battery_class` integer, nullable: Cells in series of the nominal pack used.
    - `best_efficiency` number, nullable: Peak system efficiency over the series, per cent.
    - `gates` object, required: Each validity check's verdict and the measurement it compared — a true/false/null per gate (null = the datasheet does not state that limit, so the gate was skipped) beside the peak it measured. Only pairings that passed every gate are published, so these read as the evidence for publishing rather than as a warning.
    - `object` 'catalog_pairing'
    - `pairing_index` integer, required: 0-based, ordered by the heuristic that planned it.
    - `partner_names` object, required: The same three as display names, so a legend needs no second read.
    - `partners` object, required: Public ids of the motor, propeller and battery that ran.
    - `series` CatalogSeriesPoint[], required
      - `current_A` number, nullable: Pack current, amps.
      - `efficiency` number, nullable: System efficiency, PER CENT (0-100) — pack terminals to thrust.
      - `g_per_W` number, nullable: Grams of thrust per electrical watt.
      - `power_W` number, nullable: Electrical power at the pack terminals, watts.
      - `rpm` number, nullable: Rotor speed at this point.
      - `throttle_pct` number, required: Commanded throttle, per cent.
      - `thrust_N` number, nullable: Thrust, newtons.
    - `stator_class` string, nullable: Motor stator size as a token, e.g. "2207".
  - `series_cells` integer, nullable: The pack's voltage class, as cells in series.

## Other responses

- `422`: Validation Error

---

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