API docs

API Endpoints

The endpoints currently available on the Metiz.IO API. New to the API? Start with the Integration Guide.

All routes are prefixed with /api/v1.0 and return JSON. Every call except /auth/token requires an Authorization: Bearer <token> header.

Join map

How the datasets connect when modelling in a warehouse or Power BI:

FromJoin onTo
/gl_transactionsGL Account Key/gl_accounts
/gl_accountsGL Account Code + Administration Key/gl_account_mappings?flattened=true
/gl_account_mappingsGroup GL Account Code/operands?expand=group_accounts · /budgets?flattened=true
/operandsFormula ID/statement_lines?flattened=true
any datasetAdministration Key/administrations

Two account layers. Local accounts (/gl_accounts) come from your accounting system, per administration. Group accounts (/gl_account_mappings) are your reporting chart — statements and budgets are defined on these, and each group maps to local accounts per administration.

Authentication

POST/auth/token

Authenticate and receive a JWT access token, valid for one hour.

Body

metiz_keystring · requiredYour Metiz.IO key.

Response fields

  • token — JWT, pass as Authorization: Bearer
  • system · sources — connected source systems
POST/auth/refresh

Exchange a valid token for a fresh one before it expires.

Headers

AuthorizationrequiredBearer <token>
GET/status

Returns the data sync status per endpoint and administration for the authenticated tenant.

Headers

AuthorizationrequiredBearer <token>

Data

All data endpoints are GET. Shared headers and query parameters:

Headers (all data endpoints)

AuthorizationrequiredBearer <token>
AdministrationoptionalScope the result to one administration key.

Query parameters (all data endpoints)

pageint · default 11-indexed page number (JSON responses only).
page_sizeint · default 1000 · max 100 000Rows per page (JSON responses only).
updated_sinceISO 8601 UTCOnly rows whose Metiz Updated At is strictly greater. Store the response's latest_updated_at and pass it on the next call.
include_deletedbool · default falseInclude soft-deleted rows (non-null deleted_date). Deletions bump Metiz Updated At, so incremental syncs discover them in the same call.
formatparquetReturn an Apache Parquet binary (application/vnd.apache.parquet) with the full filtered set — no pagination; updated_since / include_deleted still apply. On configuration endpoints combine with ?flattened=true.

Response envelope (JSON)

GET/administrations

Returns the administrations (companies / divisions) in your tenant.

GET/financial_periods

Returns the available financial periods from your accounting system.

GET/gl_accounts

Returns the general ledger chart of accounts (local accounts, per administration).

Record fields

  • GL Account Key — stable account identifier (joins /gl_transactions)
  • GL Account Code · GL Account Desc — code and description
  • Type CodeBAL (balance) or PNL (profit & loss) · Subtype Code
  • Parent GL Account Key · Is Group — chart hierarchy
  • Is Enabled · Is VAT Applicable · Deductable VAT Percentage · Professional Percentage
  • Administration Key · Metiz Updated At
GET/gl_transactions

Returns general ledger transaction lines. Accounts are referenced by GL Account Key — join to /gl_accounts for codes and types.

Query parameters

AccountoptionalFilter on one GL account.
From / ToYYYY-MM-DDEntry-date range. Mutually exclusive with Fiscal-Period.
Fiscal-PeriodYYYY-PPOne financial year + period.
Sync-TimestampYYYY-MM-DDLegacy live-source delta filter — prefer updated_since.
GET/payables

Returns outstanding creditor items.

Query parameters

Sync-TimestampYYYY-MM-DD · optionalLegacy live-source delta filter — prefer updated_since.
GET/receivables

Returns outstanding debtor items.

Query parameters

Sync-TimestampYYYY-MM-DD · optionalLegacy live-source delta filter — prefer updated_since.
GET/journals

Returns journals. Available for Exact Online; returns an empty set for Yuki.

GET/relations

Returns the list of contacts / relations from your accounting system.

Configuration & reporting

These endpoints expose the configuration you maintain in the app — statements, account mappings, budgets. They aren't paginated. Each GET returns the nested editor shape by default; pass ?flattened=true to receive a row-based representation for reporting (e.g. loading into Power BI).

GETPUT/statement_lines

GET returns the financial-statement definitions configured for your tenant. PUT replaces the full set — accepts the nested editor shape only.

Query parameters (GET)

flattenedbool · default falseOne row per leaf statement line; duplicate lines collapsed.

Flattened row fields

  • Statement · Statement Type
  • Category 1..4 (+ Is Expandable, Sort Order) — hierarchy path
  • Formula ID · Formula — joins /operands
  • Statement Line · Statement Line Is Expandable · Statement Line Is Percentage · Statement Line Sort Order
  • Administration Key
GET/operands

GET decomposes every formula line in your statements into its individual operands — one row per term in a formula. This is the join key between a statement line and the source ledger codes it sums: pair /operands with /statement_lines?flattened=true on Formula ID, then with /gl_account_mappings?flattened=true on the operand code to resolve a line down to GL transactions. Always row-based (no flattened param).

Row fields

  • Formula ID — joins /statement_lines?flattened=true
  • Operand — group-account code or literal · Operator+/-
  • Function — e.g. RT, DEBIT, CREDIT
  • Multiplicative Operator · Multiplicative PositionNumerator / Denominator for ratio lines
  • Group ID · Administration Key

Query parameters (GET)

expandgroup_accountsResolve each account category (e.g. 70) into the concrete group accounts it covers — one row per match, prefix-based, lowest-level accounts only so nothing double-counts; functions distribute per account (RT(30)RT(300000) + RT(301000)). Categories with no match are omitted.
GETPUT/gl_account_mappings

GET returns the group GL accounts that map local ledger codes onto your reporting model. PUT replaces the full list — accepts the nested editor shape only (array of { ID, Code, Name, Mappings: { admin_id: [codes] } }).

Previously /account_mappings — the old path still resolves but is deprecated; switch to /gl_account_mappings.

Query parameters (GET)

flattenedbool · default falseOne row per (group account × administration × GL account). Group accounts with no mappings are skipped.

Flattened row fields

  • Group GL Account ID · Group GL Account Code · Group GL Account Name
  • Administration Key
  • GL Account Code — the local account; joins /gl_accounts on the same column name
GETPUT/budgets

GET returns the saved budgets (one per scenario × year), each carrying a nested Values matrix of group accounts × periods. PUT replaces the full list — accepts the nested editor shape only.

Query parameters (GET)

flattenedbool · default falseOne row per (budget × group account × period) for cells with a value. Empty cells skipped.

Flattened row fields

  • Budget ID · Scenario · Year
  • Group GL Account Code — joins /gl_account_mappings
  • Period (YYYY-MM) · Value · Value Type (amount | percentage)

Need help connecting? The Integration Guide walks through authentication and fetching data.

Integration Guide