---
title: "Get Pipeline Plan"
method: GET
path: "/pipeline/{session_id}/plan"
tags: ["pipeline"]
---

# Get Pipeline Plan

`GET /pipeline/{session_id}/plan`

Return the validated immutable texture plan when planning is complete.

## Path parameters

- `session_id` string, required

## Response `200`

Successful Response

- TexturePlan — Immutable plan artifact shared across all Texture Agent surfaces.
  - `schema_version` 'texture-agent-plan.v1'
  - `generated_at` string, date-time
  - `request` TexturePlanRequest, required — Normalized deterministic request consumed by a texture planner.
    - `schema_version` 'texture-agent-plan-request.v1'
    - `source` TexturePlanSource, required — Input asset and optional upstream Material Agent assignment artifact.
      - `source_asset` string, required
      - `upstream_assignment_artifact` string, nullable
      - `source_asset_sha256` string, nullable — Optional lowercase SHA-256 for durable source identity.
    - `discovery_mode` 'effective_bound' | 'explicit' | 'all_authored' — How candidate materials are discovered for a plan.
    - `unit_mode` 'per_material' | 'per_group' | 'per_prim' — How selected scene members are reduced to generation units.
    - `explicit_material_paths` string[]
    - `explicit_prim_paths` string[]
    - `detail_policy` 'default' | 'surface_only' — Semantic-detail policy recorded in a plan.
    - `texture_size` integer
    - `backend` string
    - `backend_default_cap` integer
    - `operator_override_cap` integer, nullable
    - `max_concurrency` integer
    - `unit_timeout_seconds` integer
  - `limits` TexturePlanLimits, required — Default, backend, override, and hard limits recorded in a plan.
    - `global_default_cap` 32
    - `backend_default_cap` integer, required
    - `operator_override_cap` integer, nullable
    - `effective_cap` integer, required
    - `hard_cap` 64
  - `execution` TexturePlanExecution, required — Bounded execution settings frozen into the plan.
    - `backend` string, required
    - `texture_size` integer, required
    - `max_concurrency` integer, required
    - `unit_timeout_seconds` integer, required
  - `counts` TexturePlanCounts, required — Auditable discovery, selection, and backend-job counts.
    - `authored_material_count` integer, required
    - `renderable_prim_count` integer, required
    - `renderable_subset_count` integer, required
    - `effective_bound_material_count` integer, required
    - `selected_material_count` integer, required
    - `selected_unit_count` integer, required
    - `skipped_item_count` integer, required
    - `planned_generation_job_count` integer, required
  - `selected_units` TexturePlanUnit[]
    - `unit_id` string, required
    - `unit_mode` 'per_material' | 'per_group' | 'per_prim', required — How selected scene members are reduced to generation units.
    - `material_prim_paths` string[], required
    - `member_prim_paths` string[]
    - `member_subset_paths` string[]
    - `group_key` string, nullable
    - `display_name` string, required
    - `selection_reason_code` string, required
    - `selection_reason` string, required
    - `detail_policy` 'default' | 'surface_only', required — Semantic-detail policy recorded in a plan.
  - `skipped_items` TexturePlanSkippedItem[]
    - `item_kind` 'material' | 'group' | 'prim' | 'subset', required — Kinds of candidates that may be selected or skipped.
    - `canonical_id` string, required
    - `display_name` string, nullable
    - `reason_code` string, required
    - `reason` string, required
  - `decision` TexturePlanDecision, required — Whether the immutable plan is approved for bounded execution.
    - `state` 'ready' | 'requires_operator_override' | 'requires_narrowing' | 'requires_consolidation' | 'unsupported', required — Planner decision before any LLM or image-generation work starts.
    - `execution_allowed` boolean, required
    - `consolidation_required` boolean
    - `explicit_narrowing_required` boolean
    - `reasons` string[]
    - `recommended_actions` string[]

## Other responses

- `404` — Not Found
- `422` — Validation Error

## Changes

- **2026-07-21** `90f9a177effa` — 1 info
  - endpoint added

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

---

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