> This page is for API.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.spreadspace.app/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.spreadspace.app/_mcp/server.

# Retrieve a personal financial statement

GET https://api.spreadspace.app/api/borrowers/{borrower_id}/extractions/{doc_id}/pfs

Retrieves a single extracted personal financial statement. Requesting a document of any other type returns a 404.

Requires the `extractions:read` scope. Rate limit: 200 requests per minute per key (the `api` lane).

Reference: https://docs.spreadspace.app/api/api-reference/personal-financial-statements/get-pfs

## Authentication

- `Authorization` header (bearer token, required) — Bearer token. Use `ss_live_…` for live data or `ss_test_…` for the sandbox (test mode). See [Authentication](https://docs.spreadspace.app/api/authentication).

## Request

### Path parameters

- `borrower_id` (string, required) — The borrower's id.
- `doc_id` (string, required) — The document's id.

### Headers

- `SpreadSpace-Version` (string, optional) — Pin the API version, e.g. `2026-10-07`. Omit to get the latest. See [Versioning](https://docs.spreadspace.app/api/versioning).

## Response

### 200

OK

- `PersonalFinancialStatementReportData`
  - `pfs_kind`: `sba_413` (SBA Form 413)
    - `document_type` ("personal_financial_statement", required) — Which family of document this is.
    - `acceptance` (PersonalFinancialStatementReportData_PfsAcceptance, optional) — Whether the statement carries figures and counts as a valid statement.
    - `applicant` (PersonalFinancialStatementReportData_PfsApplicant, optional) — The applicant block at the top of the form.
    - `assets` (PersonalFinancialStatementReportData_PfsAssets, optional) — The asset lines on page 1.
    - `contingent` (PersonalFinancialStatementReportData_PfsContingent, optional) — Contingent liabilities, printed below the income section.
    - `descriptions` (PersonalFinancialStatementReportData_PfsDescriptions, optional) — The free text of sections 1 and 5 through 8.
    - `income` (PersonalFinancialStatementReportData_PfsIncome, optional) — Section 1, source of income.
    - `liabilities` (PersonalFinancialStatementReportData_PfsLiabilities, optional) — The liability lines, the totals and net worth on page 1.
    - `notes_payable` (list of PersonalFinancialStatementReportData_PfsNotePayable, optional) — Section 2, notes payable to banks and others, one entry per row.
    - `period_source` (string, optional) — Which part of the document dates the statement when the form's as-of line is blank: the page image (`page_image`), the file's name (`filename`) or the file's own creation date (`file_metadata`); absent when the form prints an as-of date.
    - `real_estate` (list of PersonalFinancialStatementReportData_PfsRealEstate, optional) — Section 4, real estate owned, one entry per property.
    - `signals` (list of PersonalFinancialStatementReportData_PfsSignal, optional) — Notes on where the printed totals disagree with the printed lines, and on the reporting date.
    - `stocks_and_bonds` (list of PersonalFinancialStatementReportData_PfsStock, optional) — Section 3, stocks and bonds, one entry per row.
  - `pfs_kind`: `freeform` (Other form or spreadsheet)
    - `document_type` ("personal_financial_statement", required) — Which family of document this is.
    - `acceptance` (PersonalFinancialStatementReportData_PfsAcceptance, optional) — Whether the statement carries figures and counts as a valid statement.
    - `applicant` (string, optional, nullable) — Name of the person the statement is for.
    - `applicant_address` (string, optional, nullable) — The applicant's address as printed.
    - `as_of_date` (string, optional, nullable) — The date the statement is current as of, as printed.
    - `as_of_source` (string, optional, nullable) — `signature_date` when the signature date dates the statement, `income_year` when the year the income section covers does; null when the form prints an as-of date.
    - `assets` (list of PersonalFinancialStatementReportData_PfsLineItem, optional) — Each captured asset line.
    - `business_address` (string, optional, nullable) — Business address, when the form separates it from the home address.
    - `business_name` (string, optional, nullable) — The applicant's business, as printed.
    - `business_type` (string, optional, nullable) — Legal form of the business, as printed.
    - `cash_accounts` (list of PersonalFinancialStatementReportData_PfsCashAccount, optional) — Rows of a cash schedule, one per bank account, when the workbook carries one.
    - `contact_email` (string, optional, nullable) — Contact email address, as printed.
    - `contact_phone` (string, optional, nullable) — Contact phone number, as printed.
    - `debt_schedule` (list of PersonalFinancialStatementReportData_PfsDebtItem, optional) — Rows of a notes payable or debt schedule, when the workbook carries one.
    - `disclosures` (list of PersonalFinancialStatementReportData_PfsDisclosure, optional) — Yes or no questionnaire answers: guarantees, contingent liabilities, judgments, bankruptcy, litigation.
    - `employer` (string, optional, nullable) — The applicant's employer, as printed.
    - `entities` (list of PersonalFinancialStatementReportData_PfsEntity, optional) — Rows of an entities schedule, the businesses the person owns or serves, when the workbook carries one.
    - `expense_lines` (list of PersonalFinancialStatementReportData_PfsLineItem, optional) — Each captured expense line.
    - `gross_annual_income` (string, optional, nullable) — Gross annual income, when the form prints it.
    - `gross_rental_income` (string, optional, nullable) — Gross rental income, when the form prints it.
    - `home_address` (string, optional, nullable) — Home address, when the form separates it from the business address.
    - `income_lines` (list of PersonalFinancialStatementReportData_PfsLineItem, optional) — Each captured income line.
    - `liabilities` (list of PersonalFinancialStatementReportData_PfsLineItem, optional) — Each captured liability line.
    - `liability_schedule` (PersonalFinancialStatementReportData_PfsLiabilitySchedule, optional, nullable) — Every captured debt grouped into six lender categories, with subtotals; null when no debt was captured.
    - `net_worth` (string, optional, nullable) — Net worth reported for the statement's as-of date.
    - `net_worth_is_derived` (boolean, optional) — True when the form printed no net worth and the figure is total assets less total liabilities.
    - `panel_count` (integer, optional, nullable) — Number of side-by-side statements on the form; null for a single statement.
    - `panel_index` (integer, optional, nullable) — On a form that lays several people's statements side by side, this statement's position counting from one; null otherwise.
    - `period_source` (string, optional) — Which part of the document dates the statement when no as-of line is printed: the signature date (`signature_date`), the year the income section covers (`income_year`), the page image (`page_image`), the file's name (`filename`) or the file's own creation date (`file_metadata`); absent when the form prints an as-of date.
    - `real_estate` (list of PersonalFinancialStatementReportData_PfsRealEstateHolding, optional) — Rows of a real estate or projects schedule, when the workbook carries one.
    - `real_estate_owned` (string, optional, nullable) — Real estate owned, from the asset side.
    - `schedules` (list of PersonalFinancialStatementReportData_PfsSchedule, optional) — Supporting schedules printed on the statement sheet, one entry per schedule.
    - `signals` (list of PersonalFinancialStatementReportData_PfsSignal, optional) — Notes on where the printed totals disagree with the printed lines, and on the reporting date.
    - `spouse_name` (string, optional, nullable) — Spouse's name, when printed.
    - `title` (string, optional, nullable) — The statement's printed title.
    - `total_assets` (string, optional, nullable) — Total assets as printed.
    - `total_expenses` (string, optional, nullable) — Total expenses as printed.
    - `total_income` (string, optional, nullable) — Total income as printed.
    - `total_liabilities` (string, optional, nullable) — Total liabilities as printed.
    - `total_liabilities_and_net_worth` (string, optional, nullable) — Total liabilities and net worth, when the form prints that line.

## Errors

### 400 Bad Request Error

Bad request: validation failed, the cursor is malformed, or the API version is unknown.

- `error` (ApiErrorBody, required) — Inner body of the canonical API error envelope.

### 401 Unauthorized Error

Unauthorized: the bearer token or API key is missing or invalid.

- `error` (ApiErrorBody, required) — Inner body of the canonical API error envelope.

### 402 Payment Required Error

Payment required: the standard error envelope with `type` `subscription_required` when the workspace has no active or trialing subscription, or `billing_required` where a plan entitlement applies.

- `error` (ApiErrorBody, required) — Inner body of the canonical API error envelope.

### 403 Forbidden Error

Forbidden: authentication succeeded but the caller is not permitted to perform this action, for example an API key missing the required scope, an embed session reaching a loan it was not minted for, or a feature outside the workspace's plan.

- `error` (ApiErrorBody, required) — Inner body of the canonical API error envelope.

### 404 Not Found Error

Not found: the resource does not exist or is not visible to the calling tenant.

- `error` (ApiErrorBody, required) — Inner body of the canonical API error envelope.

### 429 Too Many Requests Error

Too many requests: the rate limit was hit, or an idempotency-key replay is still in progress.

- `error` (ApiErrorBody, required) — Inner body of the canonical API error envelope.

### 500 Internal Server Error

Internal server error: an unexpected failure. Quote the `request_id` in support tickets. A mutation sent with an `Idempotency-Key` replays this fault under that key rather than re-running; confirm the resource state before resending with a new key.

- `error` (ApiErrorBody, required) — Inner body of the canonical API error envelope.

## Types

### PersonalFinancialStatementReportData_PfsAcceptance

Whether the statement counts as a valid statement.

- `accepted` (boolean, required) — True when the statement carries at least one monetary figure in its asset or liability columns.
- `reject_code` (string, optional) — Present when the statement was not accepted: the reason's identifier.
- `reject_detail` (string, optional) — The reason in words.
- `signal_code` (string, optional) — Present when the statement carries a note about its balance check: the note's identifier.
- `signal_detail` (string, optional) — The note in words.
- `signal_severity` (enum, optional) — How much weight the note carries: info or warn.
  - Allowed values: `info`, `warn`

### PersonalFinancialStatementReportData_PfsApplicant

The applicant block of SBA Form 413.

- `name` (string, required, nullable) — Name as printed.
- `business_name` (string, required, nullable) — Business name as printed.
- `business_type` (string, required, nullable) — Legal form of the business as marked: corporation, S corporation, LLC, partnership or sole proprietorship.
- `home_address` (string, required, nullable) — Home address.
- `business_address` (string, required, nullable) — Business address.
- `city_state_zip` (string, required, nullable) — City, state and ZIP code.
- `home_phone` (string, required, nullable) — Home phone number.
- `business_phone` (string, required, nullable) — Business phone number.
- `as_of_date` (string, required, nullable) — The date the information is current as of: `YYYY-MM-DD`, `YYYY-MM` or `YYYY` when the printed date reads as one, else the text as printed.
- `program` (string, required, nullable) — The SBA program the form was completed for, when one is marked.
- `signer_names` (list of string, required) — Printed names on the signature lines.
- `signer_ssn_last4` (list of string, required) — Last four digits of each signer's Social Security number.
- `signed_dates` (list of string, required) — Dates beside the signatures.

### PersonalFinancialStatementReportData_PfsAssets

The asset lines of SBA Form 413, page 1.

- `cash_on_hand_and_banks` (string, required, nullable) — Cash on hand and in banks.
- `savings_accounts` (string, required, nullable) — Savings accounts.
- `ira_retirement` (string, required, nullable) — IRA or other retirement account.
- `accounts_notes_receivable` (string, required, nullable) — Accounts and notes receivable.
- `life_insurance_csv` (string, required, nullable) — Life insurance, cash surrender value only.
- `stocks_and_bonds` (string, required, nullable) — Stocks and bonds.
- `real_estate` (string, required, nullable) — Real estate.
- `automobiles` (string, required, nullable) — Automobiles.
- `other_personal_property` (string, required, nullable) — Other personal property.
- `other_assets` (string, required, nullable) — Other assets.
- `total_assets` (string, required, nullable) — Total assets as printed.

### PersonalFinancialStatementReportData_PfsContingent

The contingent liabilities block of SBA Form 413.

- `as_endorser_or_co_maker` (string, required, nullable) — As endorser or co-maker.
- `legal_claims_judgments` (string, required, nullable) — Legal claims and judgments.
- `provision_federal_income_tax` (string, required, nullable) — Provision for federal income tax.
- `other_special_debt` (string, required, nullable) — Other special debt.

### PersonalFinancialStatementReportData_PfsDescriptions

The free text sections of SBA Form 413.

- `other_income` (string, required, nullable) — Section 1, description of other income.
- `other_property_assets` (string, required, nullable) — Section 5, other personal property and other assets.
- `unpaid_taxes` (string, required, nullable) — Section 6, unpaid taxes.
- `other_liabilities` (string, required, nullable) — Section 7, other liabilities.
- `life_insurance_held` (string, required, nullable) — Section 8, life insurance held.

### PersonalFinancialStatementReportData_PfsIncome

Section 1 of SBA Form 413, source of income.

- `salary` (string, required, nullable) — Salary.
- `net_investment_income` (string, required, nullable) — Net investment income.
- `real_estate_income` (string, required, nullable) — Real estate income.
- `other_income` (string, required, nullable) — Other income.
- `total_income` (string, required, nullable) — The four income lines added together; the form prints no total line.

### PersonalFinancialStatementReportData_PfsLiabilities

The liability lines, totals and net worth of SBA Form 413, page 1.

- `accounts_payable` (string, required, nullable) — Accounts payable.
- `notes_payable_banks_other` (string, required, nullable) — Notes payable to banks and others.
- `installment_auto` (PersonalFinancialStatementReportData_PfsInstallment, required) — Installment account, auto.
- `installment_other` (PersonalFinancialStatementReportData_PfsInstallment, required) — Installment account, other.
- `loans_against_life_insurance` (string, required, nullable) — Loans against life insurance.
- `mortgages_on_real_estate` (string, required, nullable) — Mortgages on real estate.
- `unpaid_taxes` (string, required, nullable) — Unpaid taxes.
- `other_liabilities` (string, required, nullable) — Other liabilities.
- `total_liabilities` (string, required, nullable) — Total liabilities as printed.
- `net_worth` (string, required, nullable) — Net worth as printed.
- `total_liabilities_and_net_worth` (string, required, nullable) — Total liabilities and net worth as printed.

### PersonalFinancialStatementReportData_PfsNotePayable

Section 2 of SBA Form 413, one note payable row.

- `noteholder` (string, required, nullable) — Name and address of the noteholder.
- `original_balance` (string, required, nullable) — Original balance.
- `current_balance` (string, required, nullable) — Current balance.
- `payment_amount` (string, required, nullable) — The payment amount as printed: a dollar figure or a term such as deferred.
- `payment_frequency` (string, required, nullable) — Payment frequency, as printed.
- `collateral_or_endorsement` (string, required, nullable) — How secured or endorsed, and the type of collateral.

### PersonalFinancialStatementReportData_PfsRealEstate

Section 4 of SBA Form 413, one property.

- `label` (string, required, nullable) — A, B or C: the property's column on the form.
- `property_type` (string, required, nullable) — Type of real estate.
- `address` (string, required, nullable) — The property's address.
- `date_purchased` (string, required, nullable) — Date purchased: `YYYY-MM-DD`, `YYYY-MM` or `YYYY` when the printed date reads as one, else the text as printed.
- `original_cost` (string, required, nullable) — Original cost.
- `present_market_value` (string, required, nullable) — Present market value.
- `mortgage_holder` (string, required, nullable) — Name and address of the mortgage holder.
- `mortgage_account_number` (string, required, nullable) — Mortgage account number, as printed.
- `mortgage_balance` (string, required, nullable) — Mortgage balance.
- `monthly_payment` (string, required, nullable) — The monthly figure of the payment per month or year cell.
- `yearly_payment` (string, required, nullable) — The yearly figure of the payment per month or year cell.
- `payment_amount` (string, required, nullable) — The payment per month or year cell as printed.
- `mortgage_status` (string, required, nullable) — Status of the mortgage, as printed.

### PersonalFinancialStatementReportData_PfsSignal

A note about the statement's own arithmetic or its reporting date.

- `severity` (enum, required) — How much weight the note carries: info or warn.
  - Allowed values: `info`, `warn`
- `code` (string, required) — The note's identifier.
- `detail` (string, required) — The note in words.

### PersonalFinancialStatementReportData_PfsStock

Section 3 of SBA Form 413, one security row.

- `shares` (string, required, nullable) — Number of shares, as printed.
- `security_name` (string, required, nullable) — Name of the security.
- `cost` (string, required, nullable) — Cost.
- `market_value` (string, required, nullable) — Market value per share or bond, as printed.
- `quotation_date` (string, required, nullable) — Date of the quotation: `YYYY-MM-DD`, `YYYY-MM` or `YYYY` when the printed date reads as one, else the text as printed.
- `total_value` (string, required, nullable) — Total value.

### PersonalFinancialStatementReportData_PfsLineItem

One captured line of a freeform statement.

- `label` (string, required, nullable) — The line's printed label.
- `value` (string, required, nullable) — The line's printed figure.
- `column` (string, required, nullable) — The column the figure sits in: asset or liability.
- `group` (string, required, nullable) — The section header above the line, when the sheet has one.

### PersonalFinancialStatementReportData_PfsCashAccount

One bank account row of a cash schedule on a workbook statement.

- `holder` (string, required, nullable) — The person or entity the account belongs to.
- `institution` (string, required, nullable) — The bank.
- `balance` (string, required, nullable) — The account balance.
- `ownership_pct` (string, required, nullable) — The filer's ownership share of the account, as printed.
- `owner_value` (string, required, nullable) — The filer's share of the balance, as printed.

### PersonalFinancialStatementReportData_PfsDebtItem

One row of a notes payable or debt schedule on a workbook statement.

- `creditor` (string, required, nullable) — The creditor.
- `monthly_payment` (string, required, nullable) — Monthly payment.
- `secured_by` (string, required, nullable) — What secures the debt.
- `balance` (string, required, nullable) — The balance owed.
- `note` (string, required, nullable) — A note printed on the row.

### PersonalFinancialStatementReportData_PfsDisclosure

One yes or no question from a statement's questionnaire.

- `question` (string, required, nullable) — The question as printed.
- `answer` (string, required, nullable) — The answer as marked, yes or no; null when neither was.
- `details` (string, required, nullable) — The filer's explanation, when one was given.

### PersonalFinancialStatementReportData_PfsEntity

One row of an entities schedule on a workbook statement.

- `name` (string, required, nullable) — The entity's name.
- `ein` (string, required, nullable) — Employer identification number, masked to the last four digits.
- `state` (string, required, nullable) — State of formation.
- `entity_type` (string, required, nullable) — Legal form of the entity.
- `purpose` (string, required, nullable) — The entity's purpose or business.
- `capacity` (string, required, nullable) — The filer's role in the entity.
- `ownership_pct` (string, required, nullable) — The filer's ownership share, as printed.
- `through` (string, required, nullable) — The trust or parent entity the interest is held through, when printed.
- `projects` (string, required, nullable) — Projects the entity holds, as printed.
- `address` (string, required, nullable) — The entity's address.

### PersonalFinancialStatementReportData_PfsLiabilitySchedule

Every captured debt grouped into six lender categories.

- `buckets` (list of PersonalFinancialStatementReportData_PfsLiabilityBucket, required) — The non-empty categories, in a fixed order.
- `total_balance` (string, required, nullable) — Total balance across the categories on the balance sheet: the printed total liabilities when it agrees with the lines, else the lines added together.
- `total_monthly` (string, required, nullable) — Total monthly payments across the categories.
- `total_source_key` (string, required, nullable) — Address of the printed total within the statement, when the statement prints it.
- `total_is_derived` (boolean, required) — True when the total balance is the lines added together rather than a printed total.
- `total_monthly_is_derived` (boolean, required) — True when the monthly total is the lines added together; no statement prints one.
- `contingent_total` (string, required, nullable) — Total of contingent and guaranteed debt, kept apart from the balance sheet total.
- `reconciliation` (list of PersonalFinancialStatementReportData_PfsLiabilityReconcile, required) — Schedules whose rows do not add up to their summary line.

### PersonalFinancialStatementReportData_PfsRealEstateHolding

One row of a real estate or projects schedule on a workbook statement.

- `asset` (string, required, nullable) — The property or project.
- `entity` (string, required, nullable) — The entity that holds it.
- `rents` (string, required, nullable) — Rents, as printed.
- `ownership_pct` (string, required, nullable) — The filer's ownership share, as printed.
- `fmv` (string, required, nullable) — Fair market value.
- `loan` (string, required, nullable) — Loan balance against the property.
- `owner_value` (string, required, nullable) — The filer's share of the value, as printed.
- `owner_loan` (string, required, nullable) — The filer's share of the loan, as printed.
- `monthly_payment` (string, required, nullable) — The loan's monthly payment, when printed.
- `note` (string, required, nullable) — A note printed on the row.

### PersonalFinancialStatementReportData_PfsSchedule

A supporting schedule printed on the statement sheet.

- `number` (string, required, nullable) — The schedule's number or letter.
- `title` (string, required, nullable) — The balance sheet line the schedule supports.
- `columns` (list of string, required) — The schedule's column headers, label column excluded.
- `rows` (list of PersonalFinancialStatementReportData_PfsScheduleRow, required) — The schedule's rows.

### ApiErrorBody

Inner body of the canonical API error envelope.

- `type` (string, required) — Stable error type identifier. Pattern-match on this value, not the human-readable message.
- `message` (string, required) — Human-readable error message. Subject to wording changes; do not parse.
- `request_id` (string, optional, nullable) — Per-request correlation ID (matches `X-Request-ID` response header). Quote in support tickets.
- `details` (map from string to string, optional, nullable) — Structured detail. Some error types populate documented keys in every environment: a version conflict (409) carries `current_version`, the version the resource is actually at, so the client can reload and re-apply. Free-form diagnostic detail beyond those keys appears in development environments only. An `insufficient_credits` 402 carries `balance_usd`, `reserved_usd`, `in_flight_docs`, `incoming_docs` and `per_doc_reservation_usd` as decimal strings.

### PersonalFinancialStatementReportData_PfsInstallment

An installment account line: the balance and the monthly payment.

- `balance` (string, required, nullable) — The balance owed.
- `monthly_payment` (string, required, nullable) — The monthly payment.

### PersonalFinancialStatementReportData_PfsLiabilityBucket

One lender category of the liability schedule, its lines and its subtotals.

- `category` (string, required) — The category's identifier.
- `label` (string, required) — The category's name.
- `on_balance_sheet` (boolean, required) — False for contingent and guaranteed debt, which sits off the balance sheet.
- `items` (list of PersonalFinancialStatementReportData_PfsLiabilityScheduleItem, required) — The debt lines in the category.
- `subtotal_balance` (string, required, nullable) — Balance subtotal: the printed footing when the form prints one, else the lines added together.
- `subtotal_monthly` (string, required, nullable) — Monthly payment subtotal, when the lines carry payments.
- `subtotal_source_key` (string, required, nullable) — Address of the printed footing within the statement, when the statement prints the balance subtotal.
- `subtotal_monthly_source_key` (string, required, nullable) — Address of the printed footing within the statement, when the statement prints the monthly subtotal.
- `subtotal_is_derived` (boolean, required) — True when the balance subtotal is the lines added together rather than a printed footing.
- `subtotal_monthly_is_derived` (boolean, required) — True when the monthly subtotal is the lines added together rather than a printed footing.

### PersonalFinancialStatementReportData_PfsLiabilityReconcile

A detail schedule whose rows do not add up to the summary line they support.

- `schedule` (string, required, nullable) — The schedule number, or the summary line's label.
- `summary` (string, required, nullable) — The summary line's printed figure.
- `detail_sum` (string, required, nullable) — The schedule's rows added together.
- `delta` (string, required, nullable) — The difference between the two.

### PersonalFinancialStatementReportData_PfsScheduleRow

One row of a supporting schedule.

- `label` (string, required, nullable) — The row's label, its leftmost cell.
- `cells` (list of string, required) — The row's cells in column order, as printed; null where a cell is blank.

### PersonalFinancialStatementReportData_PfsLiabilityScheduleItem

One debt line of the liability schedule.

- `label` (string, required, nullable) — The line's printed label.
- `creditor` (string, required, nullable) — The creditor, when printed.
- `balance` (string, required, nullable) — The balance owed.
- `monthly_payment` (string, required, nullable) — The monthly payment, when printed.
- `secured_by` (string, required, nullable) — What secures the debt, when printed.
- `category` (string, required) — The lender category the line falls in.
- `source_key` (string, required, nullable) — Address of the printed balance within the statement, when the statement prints it.
- `monthly_source_key` (string, required, nullable) — Address of the printed payment within the statement, when the statement prints it.

## Examples

**Response**

```json
{
  "pfs_kind": "sba_413",
  "document_type": "personal_financial_statement",
  "acceptance": {
    "accepted": true
  },
  "applicant": {
    "name": "Michael R Chen",
    "business_name": "Greenfield Construction LLC",
    "business_type": "llc",
    "home_address": "47 Lakeshore Terrace",
    "business_address": "880 Foundry Road, Denver, CO 80216",
    "city_state_zip": "Denver, CO 80206",
    "home_phone": "(303) 555-0178",
    "business_phone": "(303) 555-0142",
    "as_of_date": "2025-12-31",
    "program": "loan_7a_504_surety",
    "signer_names": [
      "Michael R Chen"
    ],
    "signer_ssn_last4": [
      "7783"
    ],
    "signed_dates": []
  },
  "assets": {
    "cash_on_hand_and_banks": "86000.00",
    "savings_accounts": "240000.00",
    "ira_retirement": "685000.00",
    "accounts_notes_receivable": "11600.00",
    "life_insurance_csv": "52000.00",
    "stocks_and_bonds": "1882300.00",
    "real_estate": "1150000.00",
    "automobiles": "78000.00",
    "other_personal_property": "95000.00",
    "other_assets": null,
    "total_assets": "4279900.00"
  },
  "contingent": {
    "as_endorser_or_co_maker": "900000.00",
    "legal_claims_judgments": null,
    "provision_federal_income_tax": null,
    "other_special_debt": null
  },
  "descriptions": {
    "other_income": "Sch. C net profit $58,000; Sch. K-1: Greenfield Construction LLC (50%) $510,000, Meridian Health Partners, Inc. (30%) $156,000",
    "other_property_assets": "Accounts and notes receivable $11,600 - 2025 federal income tax refund receivable (Form 1040, line 35a). Automobiles $78,000 - 2023 Ford F-250 and 2021 Lexus RX 350; the Ford is pledged to Alpine Credit Union, installment balance $34,800, $980 per month, current. Other personal property $95,000 - household furnishings, tools and job-site equipment; no liens.",
    "unpaid_taxes": "None. The 2025 federal return reports total tax of $248,400 against total payments of $260,000, producing the $11,600 refund receivable reported in Section 5. No federal, state or local tax liens.",
    "other_liabilities": "None.",
    "life_insurance_held": "Whole life policy, Front Range Mutual Life, $1,500,000 face amount; cash surrender value $52,000. Beneficiary: spouse. Collaterally assigned to Citizens Bank for the Greenfield Construction LLC term loan."
  },
  "income": {
    "salary": "185000.00",
    "net_investment_income": "28200.00",
    "real_estate_income": null,
    "other_income": "724000.00",
    "total_income": "937200.00"
  },
  "liabilities": {
    "accounts_payable": "9400.00",
    "notes_payable_banks_other": "62000.00",
    "installment_auto": {
      "balance": "34800.00",
      "monthly_payment": "980.00"
    },
    "installment_other": {
      "balance": null,
      "monthly_payment": null
    },
    "loans_against_life_insurance": null,
    "mortgages_on_real_estate": "648000.00",
    "unpaid_taxes": null,
    "other_liabilities": null,
    "total_liabilities": "754200.00",
    "net_worth": "3525700.00",
    "total_liabilities_and_net_worth": null
  },
  "notes_payable": [
    {
      "noteholder": "First Summit Bank, Denver, CO",
      "original_balance": "90000.00",
      "current_balance": "62000.00",
      "payment_amount": "1,650",
      "payment_frequency": "Monthly",
      "collateral_or_endorsement": "Unsecured"
    }
  ],
  "real_estate": [
    {
      "label": "A",
      "property_type": "primary_residence",
      "address": "47 Lakeshore Terrace, Denver, CO 80206",
      "date_purchased": "2017-05",
      "original_cost": "720000.00",
      "present_market_value": "1150000.00",
      "mortgage_holder": "Cherry Creek Savings Bank, Denver, CO",
      "mortgage_account_number": "****4419",
      "mortgage_balance": "648000.00",
      "monthly_payment": "3940.00",
      "yearly_payment": null,
      "payment_amount": "3,940 / month",
      "mortgage_status": "Current"
    }
  ],
  "signals": [],
  "stocks_and_bonds": [
    {
      "shares": null,
      "security_name": "Greenfield Construction LLC (50%)",
      "cost": "250000.00",
      "market_value": "887500.00",
      "quotation_date": "2025-12-31",
      "total_value": "887500.00"
    },
    {
      "shares": "300",
      "security_name": "Meridian Health Partners, Inc. (30%)",
      "cost": "150000.00",
      "market_value": "394800.00",
      "quotation_date": "2025-12-31",
      "total_value": "394800.00"
    },
    {
      "shares": null,
      "security_name": "Summit Wealth Advisors brokerage",
      "cost": "462000.00",
      "market_value": "600000.00",
      "quotation_date": "2025-12-31",
      "total_value": "600000.00"
    }
  ]
}
```

**SDK Code**

```python
import requests

url = "https://api.spreadspace.app/api/borrowers/3f9c2b1e8d7a4c5b9e0f1a2b/extractions/7a1d4e9c2b3f4a5d8e6c1b0f/pfs"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.spreadspace.app/api/borrowers/3f9c2b1e8d7a4c5b9e0f1a2b/extractions/7a1d4e9c2b3f4a5d8e6c1b0f/pfs';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.spreadspace.app/api/borrowers/3f9c2b1e8d7a4c5b9e0f1a2b/extractions/7a1d4e9c2b3f4a5d8e6c1b0f/pfs"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.spreadspace.app/api/borrowers/3f9c2b1e8d7a4c5b9e0f1a2b/extractions/7a1d4e9c2b3f4a5d8e6c1b0f/pfs")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.spreadspace.app/api/borrowers/3f9c2b1e8d7a4c5b9e0f1a2b/extractions/7a1d4e9c2b3f4a5d8e6c1b0f/pfs")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.spreadspace.app/api/borrowers/3f9c2b1e8d7a4c5b9e0f1a2b/extractions/7a1d4e9c2b3f4a5d8e6c1b0f/pfs', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.spreadspace.app/api/borrowers/3f9c2b1e8d7a4c5b9e0f1a2b/extractions/7a1d4e9c2b3f4a5d8e6c1b0f/pfs");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.spreadspace.app/api/borrowers/3f9c2b1e8d7a4c5b9e0f1a2b/extractions/7a1d4e9c2b3f4a5d8e6c1b0f/pfs")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```