---
title: "Get pipeline results (only when completed)"
method: GET
path: "/pipeline/{session_id}/results"
tags: ["pipeline"]
---

# Get pipeline results (only when completed)

`GET /pipeline/{session_id}/results`

## Path parameters

- `session_id` string, required

## Response `200`

Pipeline results

- union
  - PipelineResults
    - `session_id` string
    - `status` string
    - `stats` object
      - `original_prim_count` integer
      - `prims_processed` integer
      - `images_generated` integer
      - `predictions_made` integer
      - `materials_applied` integer
      - `cluster_prims_ran` boolean
      - `cluster_total_prims` integer
      - `cluster_count` integer
      - `cluster_representative_count` integer
      - `cluster_reduction_percent` number
      - `cluster_multi_member_count` integer
      - `cluster_singleton_count` integer
      - `cluster_max_size` integer, nullable
      - `cluster_capped_count` integer
    - `timings` object, nullable
      - `preparation_seconds` number
      - `rendering_total_seconds` number
      - `rendering_per_prim_seconds` number
      - `prediction_total_seconds` number
      - `prediction_per_prim_seconds` number
      - `apply_seconds` number
      - `total_seconds` number
    - `download_urls` object
      - `output_usd` string
      - `predictions` string
      - `report` string
      - `cluster_map` string
      - `cluster_report` string
      - `cluster_summary` string
      - `cluster_representatives` string
      - `scene_manifest` string
      - `scene_validation_report` string
      - `scene_predictions` string
      - `final_render` string
    - `duration_seconds` integer
    - `completed_at` string, date-time
    - `coverage` MaterialCoverage
      - `schema_version` string, required
      - `policy` 'strict' | 'allow_partial', required
      - `readiness_grade` 'complete' | 'complete_with_fallback' | 'partial' | 'not_evaluated', required
      - `target_count` integer, required
      - `prepared_count` integer, required
      - `predicted_count` integer, required
      - `usable_prediction_count` integer, required
      - `unknown_prediction_count` integer, required
      - `fallback_count` integer, required
      - `bound_count` integer, required
      - `unbound_count` integer, required
      - `prediction_coverage_ratio` number, required
      - `binding_coverage_ratio` number, required
      - `missing_prepared_prim_ids` string[], required
      - `missing_prediction_prim_ids` string[], required
      - `unknown_prim_ids` string[], required
      - `fallback_prim_ids` string[], required
      - `unbound_prim_ids` string[], required
      - `extra_prediction_prim_ids` string[], required
      - `warnings` string[], required
  - PipelineError
    - `session_id` string
    - `status` 'failed'
    - `error_message` string
    - `failed_step` string
    - `completed_steps` string[]
    - `partial_results` object, nullable
      - `stats` object
      - `coverage` MaterialCoverage
        - `schema_version` string, required
        - `policy` 'strict' | 'allow_partial', required
        - `readiness_grade` 'complete' | 'complete_with_fallback' | 'partial' | 'not_evaluated', required
        - `target_count` integer, required
        - `prepared_count` integer, required
        - `predicted_count` integer, required
        - `usable_prediction_count` integer, required
        - `unknown_prediction_count` integer, required
        - `fallback_count` integer, required
        - `bound_count` integer, required
        - `unbound_count` integer, required
        - `prediction_coverage_ratio` number, required
        - `binding_coverage_ratio` number, required
        - `missing_prepared_prim_ids` string[], required
        - `missing_prediction_prim_ids` string[], required
        - `unknown_prim_ids` string[], required
        - `fallback_prim_ids` string[], required
        - `unbound_prim_ids` string[], required
        - `extra_prediction_prim_ids` string[], required
        - `warnings` string[], required
    - `download_urls` object — Artifact URLs preserved before failure.
      - `output_usd` string
      - `predictions` string
      - `report` string
      - `cluster_map` string
      - `cluster_report` string
      - `cluster_summary` string
      - `cluster_representatives` string
      - `scene_manifest` string
      - `scene_validation_report` string
      - `scene_predictions` string
      - `final_render` string
    - `coverage` MaterialCoverage
      - `schema_version` string, required
      - `policy` 'strict' | 'allow_partial', required
      - `readiness_grade` 'complete' | 'complete_with_fallback' | 'partial' | 'not_evaluated', required
      - `target_count` integer, required
      - `prepared_count` integer, required
      - `predicted_count` integer, required
      - `usable_prediction_count` integer, required
      - `unknown_prediction_count` integer, required
      - `fallback_count` integer, required
      - `bound_count` integer, required
      - `unbound_count` integer, required
      - `prediction_coverage_ratio` number, required
      - `binding_coverage_ratio` number, required
      - `missing_prepared_prim_ids` string[], required
      - `missing_prediction_prim_ids` string[], required
      - `unknown_prim_ids` string[], required
      - `fallback_prim_ids` string[], required
      - `unbound_prim_ids` string[], required
      - `extra_prediction_prim_ids` string[], required
      - `warnings` string[], required

## Other responses

- `202` — Still running
- `404` — Session not found

## Changes

- **2026-07-21** `1a8c0d4c92b5` — 2 breaking, 7 warning
  - added `#/components/schemas/PipelineResults, #/components/schemas/PipelineError` to the response body `oneOf` list for the response status `200`
  - the response's body type/format changed from `object`/`` to ``/`` for status `200`
  - removed the optional property `completed_at` from the response with the `200` status
  - removed the optional property `download_urls` from the response with the `200` status
  - …5 more
- **2026-05-27** `5738430233e4` — 13 info
  - added the optional property `download_urls/cluster_map` to the response with the `200` status
  - added the optional property `download_urls/cluster_report` to the response with the `200` status
  - added the optional property `download_urls/cluster_representatives` to the response with the `200` status
  - added the optional property `download_urls/cluster_summary` to the response with the `200` status
  - …9 more
- **2026-04-29** `790a7e8ac4e2` — 13 warning
  - removed the optional property `download_urls/cluster_map` from the response with the `200` status
  - removed the optional property `download_urls/cluster_report` from the response with the `200` status
  - removed the optional property `download_urls/cluster_representatives` from the response with the `200` status
  - removed the optional property `download_urls/cluster_summary` from the response with the `200` status
  - …9 more

[Change history](https://skmtc.dev/nvidia/apis/material-agent-service/changes/pipeline/:session_id/results/get.md)

---

[API](https://skmtc.dev/nvidia/apis/material-agent-service.md) · [All operations](https://skmtc.dev/nvidia/apis/material-agent-service/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nvidia/material-agent-service/revisions/4fde0c1362b3/schema)
