Get metering status and preview
const url = 'http://localhost:8080/v1/metering/report';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url http://localhost:8080/v1/metering/reportReturns the metering status (heartbeat enabled, air-gapped, endpoint, install id, last delivery and attempt, missed-heartbeat flag, license state) and the exact month-to-date heartbeat payload that would be sent now; nothing is sent. A heartbeat carries only the install id, version, period, closed-loan count and component health, never loan data. Admin or manager.
Responses
Section titled “Responses”OK
GET /v1/metering/report: the status and the exact payload a heartbeat would send now.
object
Where metering stands for the operator screens: mode, last successful heartbeat, whether one has been missed (> 7 days), and the license.
object
What the installed license currently allows.
object
Intake is read-only once the license has expired; everything already in the system stays reachable.
What leaves the bank: install id, version, the period, two integers (closed loans, document pages), coarse health, and the license key for Bookend’s receiver to validate. Never loan data. The wire names are the documented snake_case ones on every surface (heartbeat, signed report, REST) so the payload viewer shows exactly what is sent.
object
month for heartbeats (month-to-date), quarter for the air-gapped usage report.
object
Coarse component status words (ok / degraded / unknown); no hostnames, no counts beyond the metered one.
object
Examplegenerated
{ "status": { "heartbeatEnabled": true, "airGapped": true, "endpoint": "example", "installId": "example", "lastDeliveredAt": "2026-04-15T12:00:00Z", "lastAttemptAt": "2026-04-15T12:00:00Z", "lastError": "example", "missedHeartbeat": true, "missedHeartbeatAfterDays": 1, "license": { "installed": true, "valid": true, "expired": true, "license": { "institution": "example", "tier": "example", "airGapped": true, "expiresAt": "2026-04-15T12:00:00Z", "installId": "example" }, "error": "example", "checkedAt": "2026-04-15T12:00:00Z", "intakeWritable": true } }, "payload": { "install_id": "example", "version": "example", "period": { "kind": "example", "start": "2026-04-15", "end": "2026-04-15" }, "closed_loan_count": 1, "document_page_count": 1, "health": { "database": "example", "inference": "example", "core": "example", "evidence": "example" }, "license_key": "example", "generated_at": "2026-04-15T12:00:00Z" }}