---
title: "Read a recognition's exported run as one summary, per floor and attempt"
method: GET
path: "/v1/admin/floorplan-review/recognitions/{recognitionId}/run-summary"
tags: ["Admin Floorplan Review"]
---

# Read a recognition's exported run as one summary, per floor and attempt

`GET /v1/admin/floorplan-review/recognitions/{recognitionId}/run-summary`

## Path parameters

- `recognitionId` string, required

## Response `200`

Recognition run summary retrieved successfully

- RecognitionRunSummaryApiResponseDto
  - `success` boolean, required — Indicates if the request was successful
  - `message` string, required — Human readable message
  - `data` object, required — Response data
    - `prefix` string, required — S3 key prefix the summary was assembled from
    - `floors` object[], required — By floor id, ascending
      - `floorId` string, required
      - `attempts` object[], required — Newest attempt first
        - `attempt` integer, required
        - `outcome` object, nullable, required
          - `status` string, required — ok | failed | threw — `threw` is a run that never returned a verdict
          - `level` integer, nullable, required — Floor level the attempt recognized
          - `failedStage` string, nullable, required
          - `reason` string, nullable, required
          - `errorMessage` string, nullable, required — Message of the throw that ended the run, if any
          - `costUsd` number, nullable, required
          - `warnings` string[], required
          - `scale` object, nullable, required
            - `status` string, nullable, required — derived | injected | …
            - `source` string, nullable, required — printed_dimensions | door_width | injected | …
            - `cmPerPx` number, nullable, required
            - `confidence` number, nullable, required
            - `consensusSamples` integer, nullable, required — Rooms carrying a printed size
            - `consensusWithinTenPercent` integer, nullable, required — Of those, how many agreed within 10% — a low share is what makes a scale suspect
        - `stages` object[], required — In pipeline order
          - `stage` string, required — Stage directory name — wallsLlm, openingsLlm, fusionLlm, faceRoomsLlm
          - `status` string, nullable, required — accepted | rejected | budget_exhausted | …, or null
          - `turns` integer, nullable, required — Model turns the stage took
          - `toolHistogram` object[], required — Tool call counts, highest first
            - `tool` string, required
            - `calls` integer, required
          - `validatorFailures` array[], required — Validator rejection codes, one inner array per rejected submission
            - string[]
          - `costUsd` number, nullable, required
          - `elapsedSeconds` number, nullable, required
        - `conversion` object, nullable, required
          - `openings` object, required
            - `attached` integer, nullable, required
            - `deduplicated` integer, nullable, required
            - `fallback` integer, nullable, required
            - `unattached` integer, nullable, required
          - `droppedFixtures` integer, nullable, required
          - `outdoorServiceDoors` integer, nullable, required
          - `openPlan` object, nullable, required
            - `garageDoorsTyped` integer, nullable, required
            - `windowsToGarageDoor` integer, nullable, required
            - `openingsDropped` integer, nullable, required
            - `openingsRescued` integer, nullable, required
            - `openingsLost` integer, nullable, required
          - `fixtureHints` object, nullable, required
            - `assigned` integer, nullable, required
            - `unassigned` integer, nullable, required
            - `unmappedTypes` string[], required
          - `scale` object, nullable, required
            - `cmPerPx` number, nullable, required
            - `source` string, nullable, required
        - `elapsedSeconds` number, nullable, required — Sum of the stage elapsed times recorded
    - `truncated` boolean, required — True when the run held more attempts than were read — the oldest were cut
    - `artifacts` object, nullable, required — Downloadable files under `prefix`, or null when the run exported none
      - `prefix` string, required — S3 key prefix holding every file this recognition exported
      - `files` object[], required
        - `key` string, required — Full object key, as the run-artifact endpoint expects it
        - `name` string, required — The key relative to `prefix`, for display
        - `bytes` integer, required — Object size, from the bucket listing
      - `truncated` boolean, required — True when the run exported more files than `files` lists
  - `timestamp` string, date-time, required — Timestamp of the response

## Changes

- **2026-09-11** `0b82a9e49ef2` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/maket/apis/virtual-architect-api/changes/v1/admin/floorplan-review/recognitions/:recognitionId/run-summary/get.md)

---

[API](https://skmtc.dev/maket/apis/virtual-architect-api.md) · [All operations](https://skmtc.dev/maket/apis/virtual-architect-api/llms.txt) · [OpenAPI document](https://skmtc.dev/maket/apis/virtual-architect-api/revisions/ad71cae36f29?raw)
