---
title: "Run Intelligence Home curation and pending insight generation"
method: POST
path: "/companies/{companyId}/intelligence/curations/run"
tags: ["Insights"]
---

# Run Intelligence Home curation and pending insight generation

`POST /companies/{companyId}/intelligence/curations/run`

## Request

- Base URL: `https://api.medianfi.com/api/v1`
- URL: `https://api.medianfi.com/api/v1/companies/{companyId}/intelligence/curations/run`
- Auth: HTTP bearer

Super-admin only. Rebuilds the monthly curation from deterministic metrics and may ask the curation/true-insight agents for selections and pending candidates. Agent output is rejected when it references unknown keys, unsupported numeric claims, or missing source refs.

## Query parameters

- `entityId` string, uuid

## Response `200`

Curation run result

- object
  - `success` boolean
  - `data` object
    - `home` IntelligenceHome, required
      - `companyId` string, required
      - `entityId` string, uuid, required
      - `homeState` 'active_curated' | 'active_needs_review' | 'fallback_unreviewed' | 'blocked', required
      - `period` object, required
      - `businessContext` object, required
      - `brief` IntelligenceHomeBrief, required
        - `title` string, required
        - `primaryDecision` string, required
        - `whatChanged` string, required
        - `whyItMatters` string, required
        - `nextAction` string, required
        - `confidence` 'ready' | 'stale' | 'low_confidence' | 'blocked', required
        - `confidenceLabel` string, required
        - `sourceRefs` MetricSourceRef[], required
          - `type` 'overview' | 'report' | 'aging' | 'marketing' | 'stripe' | 'document' | 'transaction' | 'manual', required
          - `id` string, required
          - `label` string, required
        - `supportingSignals` string[], required
        - `missingData` string[], required
        - `deeperReport` object, nullable
      - `curation` IntelligenceHomeCuration, required
        - `id` string
        - `companyId` string, required
        - `entityId` string, uuid, required
        - `periodStart` string, date, required
        - `periodEnd` string, date, required
        - `periodLabel` string, required
        - `status` 'draft' | 'active' | 'archived', required
        - `selectedItems` IntelligenceHomeCurationItem[], required
          - `kind` 'metric' | 'report', required
          - `key` string, required
          - `title` string, required
          - `rationale` string, required
          - `priority` integer, required
          - `sourceRefs` MetricSourceRef[], required
            - `type` 'overview' | 'report' | 'aging' | 'marketing' | 'stripe' | 'document' | 'transaction' | 'manual', required
            - `id` string, required
            - `label` string, required
        - `rationale` string, required
        - `sourceRefs` MetricSourceRef[], required
          - `type` 'overview' | 'report' | 'aging' | 'marketing' | 'stripe' | 'document' | 'transaction' | 'manual', required
          - `id` string, required
          - `label` string, required
        - `inputHash` string, required
        - `promptVersion` string, required
        - `model` string, nullable, required
        - `validationIssues` object[], required
          - `code` string, required
          - `severity` 'blocking' | 'warning', required
          - `message` string, required
          - `owner` 'system' | 'integrations' | 'accounting' | 'attribution' | 'ai_review', required
          - `sourceKey` string, nullable
        - `validationErrors` string[], required
        - `validationWarnings` string[], required
        - `supersedesCurationId` string, nullable, required
        - `reviewDecision` 'approved' | 'needs_review' | 'blocked' | 'null', nullable, required
        - `reviewerType` 'ai_assisted_system' | 'null', nullable, required
        - `reviewedAt` string, date-time, nullable, required
        - `reviewModel` string, nullable, required
        - `reviewReasons` string[], required
        - `reviewBlockers` string[], required
        - `generatedAt` string, date-time, required
        - `promotedAt` string, date-time, nullable, required
      - `signals` IntelligenceHomeSignal[], required
        - `key` string, required
        - `metricKey` string, required
        - `label` string, required
        - `value` union, required
          - number
          - object
        - `unit` string, required
        - `period` object, required
        - `comparison` object, required
          - `delta` number, nullable
          - `label` string, nullable
        - `qualityState` 'ready' | 'stale' | 'low_confidence' | 'blocked', required
        - `sourceRefs` MetricSourceRef[], required
          - `type` 'overview' | 'report' | 'aging' | 'marketing' | 'stripe' | 'document' | 'transaction' | 'manual', required
          - `id` string, required
          - `label` string, required
        - `rationale` string, required
        - `unavailableReason` string, nullable
        - `qualityMessages` string[]
      - `reports` IntelligenceHomeReport[], required
        - `key` string, required
        - `title` string, required
        - `description` string, required
        - `path` string, nullable, required
        - `qualityState` 'ready' | 'stale' | 'low_confidence' | 'blocked', required
        - `rationale` string, required
        - `sourceRefs` MetricSourceRef[], required
          - `type` 'overview' | 'report' | 'aging' | 'marketing' | 'stripe' | 'document' | 'transaction' | 'manual', required
          - `id` string, required
          - `label` string, required
      - `metrics` object, required
      - `curatedMetrics` object[], required
        - `item` IntelligenceHomeCurationItem, required
          - `kind` 'metric' | 'report', required
          - `key` string, required
          - `title` string, required
          - `rationale` string, required
          - `priority` integer, required
          - `sourceRefs` MetricSourceRef[], required
            - `type` 'overview' | 'report' | 'aging' | 'marketing' | 'stripe' | 'document' | 'transaction' | 'manual', required
            - `id` string, required
            - `label` string, required
        - `metric` InsightMetric, required
          - `key` string, required
          - `label` string, required
          - `value` union, required
            - number
            - object
          - `unit` 'usd' | 'cents' | 'months' | 'percent' | 'count' | 'days' | 'ratio' | 'object', required
          - `delta` number, nullable, required
          - `series` MetricSeriesPoint[], required
            - `date` string, date, required
            - `value` number, required
            - `originalValue` number
            - `annotations` MetricQualityFlag[]
              - …
          - `sourceRefs` MetricSourceRef[], required
            - `type` 'overview' | 'report' | 'aging' | 'marketing' | 'stripe' | 'document' | 'transaction' | 'manual', required
            - `id` string, required
            - `label` string, required
          - `qualityFlags` MetricQualityFlag[], required
            - `type` 'reconciliation_gap' | 'outlier_dampened' | 'marketing_attribution_gap' | 'platform_reporting_only', required
            - `severity` 'info' | 'warning', required
            - `message` string, required
            - `metadata` object
          - `computedAt` string, date-time, required
          - `staleness` 'fresh' | 'stale' | 'unavailable', required
          - `unavailableReason` string, nullable, required
      - `evidenceStrip` object[], required
        - `key` string, required
        - `label` string, required
        - `value` string, required
        - `qualityState` 'ready' | 'stale' | 'low_confidence' | 'blocked', required
        - `verifiedAsOf` string, date-time, nullable, required
        - `sourceRefs` MetricSourceRef[], required
          - `type` 'overview' | 'report' | 'aging' | 'marketing' | 'stripe' | 'document' | 'transaction' | 'manual', required
          - `id` string, required
          - `label` string, required
      - `verificationTimeline` object[], required
        - `key` string, required
        - `label` string, required
        - `state` 'source_synced' | 'ai_reviewed' | 'accounting_reviewed' | 'reviewing' | 'blocked' | 'pending', required
        - `detail` string, required
        - `updatedAt` string, date-time, nullable, required
        - `sourceRefs` MetricSourceRef[], required
          - `type` 'overview' | 'report' | 'aging' | 'marketing' | 'stripe' | 'document' | 'transaction' | 'manual', required
          - `id` string, required
          - `label` string, required
      - `dataReadiness` object, required
        - `state` 'ready' | 'stale' | 'low_confidence' | 'blocked', required
        - `summary` string, required
        - `verifiedAsOf` string, date-time, nullable, required
        - `blockers` object[], required
        - `warnings` object[], required
      - `openNext` object, nullable, required
        - `key` string, required
        - `title` string, required
        - `description` string, required
        - `path` string, nullable, required
        - `qualityState` 'ready' | 'stale' | 'low_confidence' | 'blocked', required
        - `sourceRefs` MetricSourceRef[], required
          - `type` 'overview' | 'report' | 'aging' | 'marketing' | 'stripe' | 'document' | 'transaction' | 'manual', required
          - `id` string, required
          - `label` string, required
      - `dataHealth` object, required
      - `topInsights` object[], required
      - `pendingInsightCount` integer, required
    - `generatedPendingInsights` integer, required

## Other responses

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

---

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