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.
How the datasets connect when modelling in a warehouse or Power BI:
| From | Join on | To |
|---|---|---|
/gl_transactions | GL Account Key | /gl_accounts |
/gl_accounts | GL Account Code + Administration Key | /gl_account_mappings?flattened=true |
/gl_account_mappings | Group GL Account Code | /operands?expand=group_accounts · /budgets?flattened=true |
/operands | Formula ID | /statement_lines?flattened=true |
| any dataset | Administration 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.
Authenticate and receive a JWT access token, valid for one hour.
Body
metiz_key | string · required | Your Metiz.IO key. |
Response fields
token — JWT, pass as Authorization: Bearersystem · sources — connected source systemsExchange a valid token for a fresh one before it expires.
Headers
Authorization | required | Bearer <token> |
Returns the data sync status per endpoint and administration for the authenticated tenant.
Headers
Authorization | required | Bearer <token> |
All data endpoints are GET. Shared headers and query parameters:
Headers (all data endpoints)
Authorization | required | Bearer <token> |
Administration | optional | Scope the result to one administration key. |
Query parameters (all data endpoints)
page | int · default 1 | 1-indexed page number (JSON responses only). |
page_size | int · default 1000 · max 100 000 | Rows per page (JSON responses only). |
updated_since | ISO 8601 UTC | Only rows whose Metiz Updated At is strictly greater. Store the response's latest_updated_at and pass it on the next call. |
include_deleted | bool · default false | Include soft-deleted rows (non-null deleted_date). Deletions bump Metiz Updated At, so incremental syncs discover them in the same call. |
format | parquet | Return 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)
data — array of records; every record carries Metiz Updated At (ISO 8601 UTC)total · page · page_size — pagination statelatest_updated_at — highest stamp across the full filtered setReturns the administrations (companies / divisions) in your tenant.
Returns the available financial periods from your accounting system.
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 descriptionType Code — BAL (balance) or PNL (profit & loss) · Subtype CodeParent GL Account Key · Is Group — chart hierarchyIs Enabled · Is VAT Applicable · Deductable VAT Percentage · Professional PercentageAdministration Key · Metiz Updated AtReturns general ledger transaction lines. Accounts are referenced by GL Account Key — join to /gl_accounts for codes and types.
Query parameters
Account | optional | Filter on one GL account. |
From / To | YYYY-MM-DD | Entry-date range. Mutually exclusive with Fiscal-Period. |
Fiscal-Period | YYYY-PP | One financial year + period. |
Sync-Timestamp | YYYY-MM-DD | Legacy live-source delta filter — prefer updated_since. |
Returns outstanding creditor items.
Query parameters
Sync-Timestamp | YYYY-MM-DD · optional | Legacy live-source delta filter — prefer updated_since. |
Returns outstanding debtor items.
Query parameters
Sync-Timestamp | YYYY-MM-DD · optional | Legacy live-source delta filter — prefer updated_since. |
Returns journals. Available for Exact Online; returns an empty set for Yuki.
Returns the list of contacts / relations from your accounting system.
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).
GET returns the financial-statement definitions configured for your tenant. PUT replaces the full set — accepts the nested editor shape only.
Query parameters (GET)
flattened | bool · default false | One row per leaf statement line; duplicate lines collapsed. |
Flattened row fields
Statement · Statement TypeCategory 1..4 (+ Is Expandable, Sort Order) — hierarchy pathFormula ID · Formula — joins /operandsStatement Line · Statement Line Is Expandable · Statement Line Is Percentage · Statement Line Sort OrderAdministration KeyGET 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=trueOperand — group-account code or literal · Operator — +/-Function — e.g. RT, DEBIT, CREDITMultiplicative Operator · Multiplicative Position — Numerator / Denominator for ratio linesGroup ID · Administration KeyQuery parameters (GET)
expand | group_accounts | Resolve 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. |
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)
flattened | bool · default false | One 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 NameAdministration KeyGL Account Code — the local account; joins /gl_accounts on the same column nameGET 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)
flattened | bool · default false | One row per (budget × group account × period) for cells with a value. Empty cells skipped. |
Flattened row fields
Budget ID · Scenario · YearGroup GL Account Code — joins /gl_account_mappingsPeriod (YYYY-MM) · Value · Value Type (amount | percentage)Need help connecting? The Integration Guide walks through authentication and fetching data.
Integration Guide