curl --request GET \
--url https://coreapi.io/api/analytics/finance/recurring \
--header 'Authorization: Bearer <token>'import requests
url = "https://coreapi.io/api/analytics/finance/recurring"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://coreapi.io/api/analytics/finance/recurring', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://coreapi.io/api/analytics/finance/recurring",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"tenantName": "<string>",
"currency": "EUR",
"asOf": "2023-11-07T05:31:56Z",
"months": [
"<string>"
],
"mrrWire": {
"months": [
"2026-09"
],
"rows": {},
"totals": {},
"reasons": {},
"meta": {
"asOf": "2023-11-07T05:31:56Z",
"buildId": "<string>",
"scope": "invoice_address",
"currency": "EUR",
"from": "2025-10",
"to": "2026-09",
"findings": {
"error": 0,
"warning": 3,
"info": 12
},
"filtersNotApplied": [
"<string>"
],
"notSnapshotted": [
"one_off",
"accounted_mrr",
"cash_collected"
],
"projectedFrom": "2026-10",
"forecast": {
"incomplete": false,
"failedSubscriptions": 0
},
"build": {
"status": "failed",
"builtAt": "2023-11-07T05:31:56Z",
"buildId": "<string>",
"failed": {
"invariants": [
"CASH_WITHIN_DOCUMENT"
],
"rowCount": 5,
"invoiceRowCount": 5
}
},
"dataBuildId": "<string>"
},
"reasonLabels": {
"contract_start": "Vertragsbeginn",
"price_change": "Preisänderung",
"not_billed": "Nicht abgerechnet"
}
},
"recurring": {
"kpis": [
{
"id": "mrr",
"title": "MRR",
"valueKind": "money",
"value": "12500.00",
"delta": "250.00",
"better": "up",
"sparkline": [
"<string>"
],
"caption": "<string>",
"asOfMonth": "2026-08",
"monthComplete": true,
"current": {
"asOfMonth": "2026-09",
"value": "5279.33",
"delta": "1916.00",
"monthComplete": false
}
}
],
"movementMonths": [
{
"month": "2026-08",
"bop": "12000.00",
"eop": "12500.00",
"steps": [
{
"key": "new",
"value": "-120.00",
"accounts": 3
}
],
"reasons": [
{
"movement": "new",
"reason": "price_change",
"amount": "45.00",
"accounts": 2,
"label": "Preisänderung"
}
],
"snapshotBop": "12100.00",
"corrections": [
{
"key": "voided",
"label": "Annulliert",
"value": "-100.00"
}
]
}
],
"backlog": {
"asOfMonth": "2026-09",
"committed": "54000.00",
"averageRemainingMonths": "4.3",
"accounts": 42,
"buckets": [
{
"key": "lt3",
"amount": "4500.00"
}
],
"forward": [
{
"month": "2026-10",
"mrr": "12400.00"
}
],
"events": [
{
"id": "end:2026-11:0199c0de-0000-7000-8000-000000000001",
"month": "2026-11",
"kind": "end",
"customer": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"accounts": 1,
"product": "<string>",
"amount": "-99.00",
"cancellationReason": "<string>"
}
]
}
},
"selectedMonth": "2026-08",
"mrrCells": {},
"definitions": {
"version": "v2",
"validFrom": "2026-09-28",
"entries": [
{
"id": "nrr",
"title": "NRR 12 Monate",
"definition": "<string>",
"formula": "<string>"
}
],
"changelog": [
{
"version": "v2",
"validFrom": "2026-09-28",
"changes": [
{
"id": "dso_3m",
"change": "<string>"
}
]
}
]
},
"meta": {
"asOf": "2023-11-07T05:31:56Z",
"buildId": "<string>",
"scope": "invoice_address",
"currency": "EUR",
"from": "2025-10",
"to": "2026-09",
"findings": {
"error": 0,
"warning": 3,
"info": 12
},
"filtersNotApplied": [
"<string>"
],
"notSnapshotted": [
"one_off",
"accounted_mrr",
"cash_collected"
],
"projectedFrom": "2026-10",
"forecast": {
"incomplete": false,
"failedSubscriptions": 0
},
"build": {
"status": "failed",
"builtAt": "2023-11-07T05:31:56Z",
"buildId": "<string>",
"failed": {
"invariants": [
"CASH_WITHIN_DOCUMENT"
],
"rowCount": 5,
"invoiceRowCount": 5
}
},
"dataBuildId": "<string>"
}
}{
"status": 409,
"type": "ANALYTICS_MRR_FINANCIALS__SNAPSHOT_MONTH_NOT_ENDED",
"title": "An error occurred",
"detail": "<string>"
}{
"status": 422,
"type": "https://tools.ietf.org/html/rfc2616#section-10",
"violations": [
{
"propertyPath": "to",
"message": "Der Zeitraum darf höchstens 36 Monate umfassen.",
"code": "analytics.mrr_financials.range_too_long"
}
],
"title": "Validation Failed",
"detail": "<string>"
}Recurring revenue page datasets
Key figures (MRR, ARR, net new MRR, quick ratio) with twelve months of history, the MRR bridge and its reasons per month, contractually committed MRR with the known MRR and events of the next twelve months, the MRR table, the snapshot state of every MRR cell and the definitions catalogue. Amounts are exact decimal strings in one currency, never converted.
Required permission: analytics:read.
curl --request GET \
--url https://coreapi.io/api/analytics/finance/recurring \
--header 'Authorization: Bearer <token>'import requests
url = "https://coreapi.io/api/analytics/finance/recurring"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://coreapi.io/api/analytics/finance/recurring', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://coreapi.io/api/analytics/finance/recurring",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"tenantName": "<string>",
"currency": "EUR",
"asOf": "2023-11-07T05:31:56Z",
"months": [
"<string>"
],
"mrrWire": {
"months": [
"2026-09"
],
"rows": {},
"totals": {},
"reasons": {},
"meta": {
"asOf": "2023-11-07T05:31:56Z",
"buildId": "<string>",
"scope": "invoice_address",
"currency": "EUR",
"from": "2025-10",
"to": "2026-09",
"findings": {
"error": 0,
"warning": 3,
"info": 12
},
"filtersNotApplied": [
"<string>"
],
"notSnapshotted": [
"one_off",
"accounted_mrr",
"cash_collected"
],
"projectedFrom": "2026-10",
"forecast": {
"incomplete": false,
"failedSubscriptions": 0
},
"build": {
"status": "failed",
"builtAt": "2023-11-07T05:31:56Z",
"buildId": "<string>",
"failed": {
"invariants": [
"CASH_WITHIN_DOCUMENT"
],
"rowCount": 5,
"invoiceRowCount": 5
}
},
"dataBuildId": "<string>"
},
"reasonLabels": {
"contract_start": "Vertragsbeginn",
"price_change": "Preisänderung",
"not_billed": "Nicht abgerechnet"
}
},
"recurring": {
"kpis": [
{
"id": "mrr",
"title": "MRR",
"valueKind": "money",
"value": "12500.00",
"delta": "250.00",
"better": "up",
"sparkline": [
"<string>"
],
"caption": "<string>",
"asOfMonth": "2026-08",
"monthComplete": true,
"current": {
"asOfMonth": "2026-09",
"value": "5279.33",
"delta": "1916.00",
"monthComplete": false
}
}
],
"movementMonths": [
{
"month": "2026-08",
"bop": "12000.00",
"eop": "12500.00",
"steps": [
{
"key": "new",
"value": "-120.00",
"accounts": 3
}
],
"reasons": [
{
"movement": "new",
"reason": "price_change",
"amount": "45.00",
"accounts": 2,
"label": "Preisänderung"
}
],
"snapshotBop": "12100.00",
"corrections": [
{
"key": "voided",
"label": "Annulliert",
"value": "-100.00"
}
]
}
],
"backlog": {
"asOfMonth": "2026-09",
"committed": "54000.00",
"averageRemainingMonths": "4.3",
"accounts": 42,
"buckets": [
{
"key": "lt3",
"amount": "4500.00"
}
],
"forward": [
{
"month": "2026-10",
"mrr": "12400.00"
}
],
"events": [
{
"id": "end:2026-11:0199c0de-0000-7000-8000-000000000001",
"month": "2026-11",
"kind": "end",
"customer": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"accounts": 1,
"product": "<string>",
"amount": "-99.00",
"cancellationReason": "<string>"
}
]
}
},
"selectedMonth": "2026-08",
"mrrCells": {},
"definitions": {
"version": "v2",
"validFrom": "2026-09-28",
"entries": [
{
"id": "nrr",
"title": "NRR 12 Monate",
"definition": "<string>",
"formula": "<string>"
}
],
"changelog": [
{
"version": "v2",
"validFrom": "2026-09-28",
"changes": [
{
"id": "dso_3m",
"change": "<string>"
}
]
}
]
},
"meta": {
"asOf": "2023-11-07T05:31:56Z",
"buildId": "<string>",
"scope": "invoice_address",
"currency": "EUR",
"from": "2025-10",
"to": "2026-09",
"findings": {
"error": 0,
"warning": 3,
"info": 12
},
"filtersNotApplied": [
"<string>"
],
"notSnapshotted": [
"one_off",
"accounted_mrr",
"cash_collected"
],
"projectedFrom": "2026-10",
"forecast": {
"incomplete": false,
"failedSubscriptions": 0
},
"build": {
"status": "failed",
"builtAt": "2023-11-07T05:31:56Z",
"buildId": "<string>",
"failed": {
"invariants": [
"CASH_WITHIN_DOCUMENT"
],
"rowCount": 5,
"invoiceRowCount": 5
}
},
"dataBuildId": "<string>"
}
}{
"status": 409,
"type": "ANALYTICS_MRR_FINANCIALS__SNAPSHOT_MONTH_NOT_ENDED",
"title": "An error occurred",
"detail": "<string>"
}{
"status": 422,
"type": "https://tools.ietf.org/html/rfc2616#section-10",
"violations": [
{
"propertyPath": "to",
"message": "Der Zeitraum darf höchstens 36 Monate umfassen.",
"code": "analytics.mrr_financials.range_too_long"
}
],
"title": "Validation Failed",
"detail": "<string>"
}Autorisierungen
API token of the organisation. Send it as Authorization: Bearer api_... The token is bound to exactly one organisation.
Abfrageparameter
First month (YYYY-MM, time zone of the organisation). Default: to minus 11 months.
Last month (YYYY-MM). Default: the current month. At most 36 months.
ISO-4217 code. Default: the default currency.
Movement scope. Default: the organisation setting.
subscription, invoice_address, customer, organisation Analytics segment: only its customers.
Month preselected for the bridge (YYYY-MM, within the range). Default: the last month of the range that has ended.
Antwort
The datasets.
Recurring revenue page: key figures, MRR bridge with reasons, committed and known forward MRR, the MRR table and the definitions.
Name of the organisation.
Currency of every amount (ISO-4217).
"EUR"
Calculation time; null before the first calculation.
Months of the range (YYYY-MM), ascending.
The MRR table (same shape as GET /api/analytics/mrr-financials).
Show child attributes
Show child attributes
Key figures, bridge months and backlog.
Show child attributes
Show child attributes
Month preselected for the bridge (the month parameter, default the last complete month of the range).
"2026-08"
Snapshot state per snapshotted table row, aligned with months: the copied MRR rows (mrr_bop, mrr_eop, new, expansion, contraction, lost, resurrecting) and the rows derived from them with the table's formulas (arr_eop; revenue_churn_rate and mom_growth as rates at scale 6; their restatement is always null). Rows not listed keep their current values and are named in meta.notSnapshotted. Empty object when the range has no snapshot or a segment is applied (snapshots are organisation-wide).
Show child attributes
Show child attributes
Definitions catalogue.
Show child attributes
Show child attributes
Calculation time, scope, currency, findings, filters not applied.
Show child attributes
Show child attributes
War diese Seite hilfreich?