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

# Get Agent Blueprint Timeline

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

## Request

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

OTEL-002d — the Evidence version timeline (ADR-018 D6).

Visibility is derived from RUNS, not versions: an entry appears only if
at least one run THIS CALLER can see is bound to it, and its run_count
counts exactly those runs — a version minted solely by private runs is
invisible to anonymous readers (the same cohort discipline as the D3
owner-only version_number). Tier projection lives in
serialize_timeline_entry, the single choke point.

## Path parameters

- `agent_id` string, uuid, required

## Response `200`

Successful Response

- BlueprintTimelineRead
  - `agent_id` string, uuid, required
  - `projection` 'public' | 'owner', required
  - `evidence_label` 'self-reported telemetry — consistent with claims, not proof', required
  - `entries` BlueprintTimelineEntry[], required
    - `id` string, uuid, required
    - `version_number` integer, nullable
    - `canonicalization_version` integer, required
    - `node_count` integer, required
    - `edge_count` integer, required
    - `first_seen_at` string, nullable
    - `last_seen_at` string, nullable
    - `run_count` integer, required
    - `confirmed_run_count` integer, required
    - `partial_run_count` integer, required
    - `latest_signed_binding_partial` boolean
    - `parent_ids` string[]
    - `diff` object, nullable
    - `is_current` boolean
  - `has_more` boolean
  - `latest_signed_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)
