---
title: "Get Agent Blueprint"
method: GET
path: "/api/v1/agents/{agent_id}/blueprint"
tags: ["agents"]
---

# Get Agent Blueprint

`GET /api/v1/agents/{agent_id}/blueprint`

## Request

- Base URL: `https://api.badgeia.com`
- URL: `https://api.badgeia.com/api/v1/agents/{agent_id}/blueprint`
- Auth: none declared

Aggregate telemetry from up to ten most recent visible runs.

## Path parameters

- `agent_id` string, uuid, required

## Response `200`

Successful Response

- BlueprintRead
  - `schema_version` 1, required
  - `projection` 'public' | 'owner', required
  - `scope` 'run' | 'agent', required
  - `run_id` string, uuid, nullable, required
  - `agent_id` string, uuid, required
  - `run_count` integer, required
  - `source_span_count` integer, required
  - `evidence_label` 'self-reported telemetry — consistent with claims, not proof', required
  - `nodes` BlueprintNode[], required
    - `id` string, required
    - `type` 'agent' | 'llm_call' | 'tool' | 'retrieval', required
    - `label` string, required
    - `model` string, nullable
    - `call_count` integer, required
    - `run_coverage` integer, required
    - `input_tokens` integer, nullable
    - `output_tokens` integer, nullable
    - `latency_p50_ms` number, nullable
    - `latency_p95_ms` number, nullable
    - `cost_usd` string, nullable
    - `cost_source` 'self_reported' | 'estimated' | 'mixed' | 'unpriced', required
    - `cost_is_partial` boolean, required
    - `unpriced_call_count` integer, required
  - `edges` BlueprintEdge[], required
    - `source` string, required
    - `target` string, required
    - `call_count` integer, required
    - `run_coverage` integer, required
  - `sequence` BlueprintSequenceEntry[], required
    - `position` integer, required
    - `node_id` string, required
    - `parent_node_id` string, required
    - `type` 'agent' | 'llm_call' | 'tool' | 'retrieval', required
    - `model` string, nullable
    - `tool` string, nullable
    - `input_tokens` integer, nullable
    - `output_tokens` integer, nullable
    - `latency_ms` number, nullable
    - `cost_usd` string, nullable
    - `cost_source` 'self_reported' | 'estimated' | 'mixed' | 'unpriced', required
  - `truncation` BlueprintTruncation, required
    - `truncated` boolean, required
    - `dropped_nodes` integer, required
    - `dropped_sequence_entries` integer, required
  - `blueprint_version` BlueprintVersionRef: OTEL-002c (#927, ADR-018 D3) — the citable architecture identity. The content hash never appears on any response tier: it is a hash of customer-chosen identity projections, so publishing it would hand anonymous readers a whole-graph confirmation oracle. The UUID is random (zero content bits) and safe at every tier. ``version_number`` is OWNER/EDITOR-TIER ONLY (security review of PR #938, finding 1): the counter is minted across the agent's whole run history including PRIVATE runs, so serving it anonymously publishes the owner's private architecture-iteration count — the exact disclosure cohort the 086 comparison path refuses to cross. Anonymous readers get the UUID (identity and change-detection, which is the product story) with ``version_number: null``.
    - `id` string, uuid, required
    - `version_number` integer, nullable
    - `canonicalization_version` integer, required
  - `declared_match` object, nullable
  - `architecture_binding_partial` boolean

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/badgeia/apis/badge.md) · [All operations](https://skmtc.dev/badgeia/apis/badge/llms.txt) · [OpenAPI document](https://skmtc.dev/badgeia/apis/badge/revisions/7e7f7fee8b77?raw)
