---
title: "Resolve the exact model that a weekly send would produce"
method: GET
path: "/companies/{companyId}/weekly-email/preview"
tags: ["Company Settings"]
---

# Resolve the exact model that a weekly send would produce

`GET /companies/{companyId}/weekly-email/preview`

## Request

- Base URL: `https://api.medianfi.com/api/v1`
- URL: `https://api.medianfi.com/api/v1/companies/{companyId}/weekly-email/preview`
- Auth: HTTP bearer

Demo-parity read for an explicitly allowlisted active or test company.
Returns the fully-resolved email model (from, to, subject, intro, snapshot, sections, monthlyClose) built from real overview/reports metrics. The snapshot tiles carry the Live Home hero's figures for the same legal entity and day: Cash, Revenue month to date, Monthly burn (the last 90 days averaged per month; "Not burning" at or below zero) and Runway in whole months on gross cash ("No net burn" when not burning, "120+ mo" at the display cap). The client preview renders this exact model, so preview and the delivered email match. Any metric without a real source is omitted (never fabricated) and listed in omittedSections.

## Query parameters

- `mode` 'weekly' | 'firstOfMonth'

## Response `200`

Resolved weekly-email model

- WeeklyEmailPreviewResponse
  - `data` WeeklyEmailPreview: Fully-resolved email model; preview renders this exactly as sent.
    - `mode` 'weekly' | 'firstOfMonth', required
    - `from` string, required
    - `to` string[], required
    - `subject` string, required
    - `intro` string, required
    - `snapshot` object[], required
      - `label` string
      - `value` string
      - `amountCents` integer, nullable
      - `sub` string, nullable
    - `sections` object[], required
      - `tone` 'good' | 'watch' | 'attention'
      - `text` string
    - `monthlyClose` object, nullable
      - `month` string
      - `priorMonth` string, nullable
      - `headline` string
      - `netIncomeValue` string
      - `stats` object[]
        - `label` string
        - `value` string
        - `currentCents` integer
        - `priorCents` integer, nullable
        - `goodWhenUp` boolean
    - `omittedSections` string[], required: Sections dropped because no real metric backed them (anti-hallucination).

## Other responses

- `401`: Authentication required
- `403`: Insufficient permissions or not a company member
- `404`: Resource not found

---

[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)
