curl --request GET \
--url https://coreapi.io/api/analytics/finance/customers \
--header 'Authorization: Bearer <token>'import requests
url = "https://coreapi.io/api/analytics/finance/customers"
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/customers', 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/customers",
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": "<string>",
"asOf": "2023-11-07T05:31:56Z",
"months": [
"<string>"
],
"customers": {
"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
}
}
],
"retention": [
{
"month": "<string>",
"nrr": "<string>",
"grr": "<string>",
"cohortAccounts": 123,
"cohortMrr": "<string>"
}
],
"cohorts": [
{
"cohort": "<string>",
"accounts": 123,
"startMrr": "<string>",
"cells": [
{
"age": 123,
"month": "<string>",
"mrr": "<string>",
"retention": "<string>"
}
]
}
],
"concentration": {
"month": "<string>",
"total": "<string>",
"segments": [
{
"key": "top1",
"label": "<string>",
"amount": "<string>",
"share": "<string>",
"accounts": 123
}
],
"top1Share": "<string>",
"top5Share": "<string>",
"top10Share": "<string>",
"above5Count": 123,
"top": [
{
"rank": 123,
"customer": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"mrr": "<string>",
"share": "<string>",
"change": "<string>"
}
]
},
"logos": [
{
"month": "<string>",
"new": 123,
"resurrecting": 123,
"lost": 123,
"net": 123,
"activeEop": 123
}
],
"churnReasons": {
"total": "<string>",
"accounts": 123,
"entries": [
{
"code": "<string>",
"label": "<string>",
"amount": "<string>",
"accounts": 123,
"share": "<string>"
}
]
},
"segmentMetrics": [
{
"id": "<string>",
"name": "<string>",
"mrr": "<string>",
"nrr": "<string>",
"grr": "<string>",
"churnRate": "<string>",
"arpa": "<string>",
"newAccounts": 123,
"activeAccounts": 123
}
]
},
"granularity": "month",
"segmentComparable": [
"<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>"
}Customer base page datasets
Key figures (active accounts, ARPA, NRR, GRR), net and gross revenue retention per month, the cohort triangle, customer concentration, account movements, lost MRR by cancellation reason and the segment comparison (all accounts, segmentId, compareSegmentId). Accounts are the accounts of the movement scope; a segment selects accounts by their customer.
Required permission: analytics:read.
curl --request GET \
--url https://coreapi.io/api/analytics/finance/customers \
--header 'Authorization: Bearer <token>'import requests
url = "https://coreapi.io/api/analytics/finance/customers"
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/customers', 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/customers",
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": "<string>",
"asOf": "2023-11-07T05:31:56Z",
"months": [
"<string>"
],
"customers": {
"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
}
}
],
"retention": [
{
"month": "<string>",
"nrr": "<string>",
"grr": "<string>",
"cohortAccounts": 123,
"cohortMrr": "<string>"
}
],
"cohorts": [
{
"cohort": "<string>",
"accounts": 123,
"startMrr": "<string>",
"cells": [
{
"age": 123,
"month": "<string>",
"mrr": "<string>",
"retention": "<string>"
}
]
}
],
"concentration": {
"month": "<string>",
"total": "<string>",
"segments": [
{
"key": "top1",
"label": "<string>",
"amount": "<string>",
"share": "<string>",
"accounts": 123
}
],
"top1Share": "<string>",
"top5Share": "<string>",
"top10Share": "<string>",
"above5Count": 123,
"top": [
{
"rank": 123,
"customer": {
"id": "<string>",
"number": "<string>",
"name": "<string>"
},
"mrr": "<string>",
"share": "<string>",
"change": "<string>"
}
]
},
"logos": [
{
"month": "<string>",
"new": 123,
"resurrecting": 123,
"lost": 123,
"net": 123,
"activeEop": 123
}
],
"churnReasons": {
"total": "<string>",
"accounts": 123,
"entries": [
{
"code": "<string>",
"label": "<string>",
"amount": "<string>",
"accounts": 123,
"share": "<string>"
}
]
},
"segmentMetrics": [
{
"id": "<string>",
"name": "<string>",
"mrr": "<string>",
"nrr": "<string>",
"grr": "<string>",
"churnRate": "<string>",
"arpa": "<string>",
"newAccounts": 123,
"activeAccounts": 123
}
]
},
"granularity": "month",
"segmentComparable": [
"<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.
Second analytics segment for the comparison.
Cohorts per month (default) or per quarter.
month, quarter Antwort
The datasets.
Customer base page: key figures, retention, cohorts, concentration, account movements, churn by reason and segment comparison.
Name of the organisation.
Currency of every amount (ISO-4217).
Calculation time; null before the first calculation.
Months of the range (YYYY-MM), ascending.
The datasets.
Show child attributes
Show child attributes
Cohort granularity.
month, quarter Fields of segmentMetrics that compare across segments of different size (rates and ARPA).
Calculation time, scope, currency, findings, filters not applied.
Show child attributes
Show child attributes
War diese Seite hilfreich?