Register, Prices and Workbook
Read the contract register, recompute component prices per price period, fetch the contract workbook as a grid or xlsx file, and read EU ETS emissions cost.
Five read routes expose what the price models compute. GET /v1/price-baseline/register is the overview: one row per contract. GET /v1/price-baseline/models/{id}/prices recomputes every component's price per price period. GET /v1/price-baseline/models/{id}/sheets returns the contract workbook as a grid and GET /v1/price-baseline/models/{id}/workbook.xlsx writes the same workbook as an Excel file with live formulas. GET /v1/price-baseline/models/{id}/emissions adds the EU ETS view. All of them recompute from the stored models and index values at request time, so a value entered a moment ago is already in the answer.
The register has one row per contract, shown by its latest version, with the newest invoice check, the amount the workbook expects to be billed for the period, and how many inputs are still open. It is cached per workspace and year; a request during a rebuild may receive the last built rows. direction tells which side the workspace is on: only sell contracts count toward what customers should be billed. The response is a bare array.
/v1/price-baseline/registerQuery parameters
the last full calendar yearKey row fields
cURL: Read the register for one plan year without input lists
curl "https://api.talonic.com/v1/price-baseline/register?year=2025&inputs=0" \
-H "Authorization: Bearer $TALONIC_API_KEY"/v1/price-baseline/models/{id}/pricesQuery parameters
Response fields
Response: Prices and the index values behind them (excerpt)
{
"prices": [
{
"component": "AP",
"period": { "label": "Q1 2025", "from": "2025-01", "to": "2025-03" },
"price": 7.184,
"unit": "ct/kWh",
"status": "ok",
"detail": null,
"indices": [
{
"variable": "G",
"series": "destatis.erdgas.boerse",
"months": ["2024-12"],
"value": 142.6,
"sources": ["destatis"],
"independent": true
}
],
"assumptions": []
}
],
"indices": [
{
"series": "destatis.erdgas.boerse",
"period": "2024-12",
"value": 142.6,
"unit": "Index",
"source": "destatis",
"source_url": "https://www-genesis.destatis.de/",
"quote": "Dezember 2024: 142,6",
"document_id": null,
"base_year": 2021
}
]
}Prices are converted, never assumed. A value in another unit of the same quantity (EUR/MWh and ct/kWh) is converted; a pair that cannot be converted is unit_mismatch. When a contract quotes an index on another base year than the stored series, the value is rebased on the publisher's own numbers; if the twelve base-year months are not all stored, the price is rebase_mismatch. An index printed only on an invoice ranks last and sets independent: false.
/v1/price-baseline/models/{id}/sheetsQuery parameters
the last full yearResponse fields
The period of the workbook follows fixed rules. Without from, it is the period of the invoice check named by comparison_id, else of the contract's newest invoice check (the newest of year when year is given); with no check it is the calendar year year. With from, it is from to to. Without an invoice, expected.basis is plan: the agreed quantity times each billed component's price, pro rata by month.
/v1/price-baseline/models/{id}/workbook.xlsxQuery parameters
cURL: Download the workbook for an invoice check
curl -OJ "https://api.talonic.com/v1/price-baseline/models/7b1f0a52-3c9d-4e08-a6d4-51c2e8f7b3a9/workbook.xlsx?comparison_id=e04a9b17-6d28-47c5-b3f1-9c5e2a8d7016" \
-H "Authorization: Bearer $TALONIC_API_KEY"/v1/price-baseline/models/{id}/emissionsQuery parameters
the last full yearResponse fields (inside data)
missing says why. An empty emissions view is a statement about the data, not an error.