---
title: "Read server-calculated onboarding work meters and books state"
method: GET
path: "/onboarding/v3/books-progress"
tags: ["Onboarding"]
---

# Read server-calculated onboarding work meters and books state

`GET /onboarding/v3/books-progress`

## Request

- Base URL: `https://api.medianfi.com/api/v1`
- URL: `https://api.medianfi.com/api/v1/onboarding/v3/books-progress`
- Auth: HTTP bearer

Each meter is calculated from accounting source authority. A failed source query returns an explicit unavailable metric instead of a fabricated zero. Financial metrics remain veiled until the existing company metrics gate is enabled.

## Headers

- `X-Median-App-Surface` 'qa'

## Response `200`

Current work meters and Building Your Books state

- OnboardingV3BooksProgressApiResponse
  - `success` true, required
  - `data` OnboardingV3BooksProgress, required
    - `companyId` string, uuid, required
    - `companyName` string, required
    - `metricsEnabled` boolean, required
    - `progress` OnboardingV3BooksProgressMeters, required
      - `transactions` union, required
        - OnboardingV3AvailableProgressMetric
          - `available` true, required
          - `completed` integer, required
          - `total` integer, required
        - OnboardingV3UnavailableProgressMetric
          - `available` false, required
          - `completed` unknown, required
          - `total` unknown, required
          - `reason` 'query_failed', required
      - `chartOfAccounts` union, required
        - OnboardingV3AvailableProgressMetric
          - `available` true, required
          - `completed` integer, required
          - `total` integer, required
        - OnboardingV3UnavailableProgressMetric
          - `available` false, required
          - `completed` unknown, required
          - `total` unknown, required
          - `reason` 'query_failed', required
      - `documents` union, required
        - OnboardingV3AvailableProgressMetric
          - `available` true, required
          - `completed` integer, required
          - `total` integer, required
        - OnboardingV3UnavailableProgressMetric
          - `available` false, required
          - `completed` unknown, required
          - `total` unknown, required
          - `reason` 'query_failed', required
      - `monthsClosed` union, required
        - OnboardingV3AvailableProgressMetric
          - `available` true, required
          - `completed` integer, required
          - `total` integer, required
        - OnboardingV3UnavailableProgressMetric
          - `available` false, required
          - `completed` unknown, required
          - `total` unknown, required
          - `reason` 'query_failed', required
    - `buildingBooks` union, required
      - OnboardingV3BuildingBooksVeiled
        - `state` 'veiled', required
      - OnboardingV3BuildingBooksUnavailable
        - `state` 'unavailable', required
        - `reason` 'overview_failed', required
      - OnboardingV3BuildingBooksLive
        - `state` 'live', required
        - `currency` string, required
        - `metrics` OnboardingV3BuildingBooksMetrics, required
          - `cashOnHand` number, required
          - `netBurnMonthly` number, required
          - `revenueLast30Days` number, required
          - `runwayMonths` number, required

## Other responses

- `401`: Authentication required
- `403`: Insufficient permissions or not a company member
- `404`: Resource not found
- `422`: Validation error
- `503`: Required sandbox provider configuration or service is unavailable

---

[API](https://skmtc.dev/medianfi/apis/median-api.md) · [All operations](https://skmtc.dev/medianfi/apis/median-api/llms.txt) · [OpenAPI document](https://skmtc.dev/medianfi/apis/median-api/revisions/20090ea32b0d?raw)
