---
title: "Qualification host evidence export"
method: GET
path: "/v1/diagnostics/qualification/artifacts"
tags: ["System"]
---

# Qualification host evidence export

`GET /v1/diagnostics/qualification/artifacts`

## Request

- Base URL: `http://localhost:9998`
- URL: `http://localhost:9998/v1/diagnostics/qualification/artifacts`
- Auth: HTTP bearer

Read-only, free at every tier. Requires tools:read for authenticated callers and refuses a caller that presents no credential. On an isolated qualification host it serves every host-side artifact a sealed qualification scope binds (policy-bytes, identities, caller, delivery, candidates, execution-ceiling, operations, catalog, schemas, rendered-index, environment and fixture), in the scope module's version 1 shapes and read under one policy generation, plus the encoder and chooser runtime the scope records. The candidate universe, caller and delivery are the named door's discovery for the requesting credential. Refused exactly as the manifest is; nothing else in the request selects or shapes the answer.

## Query parameters

- `door` 'tools-recommend' | 'agent-turn'

## Response `200`

The evidence export (version 1)

- object
  - `version` 1, required
  - `generationId` string, required
  - `runtime` object, required: The scope's comparisonInputs.runtime: `encoder` for the encoder the host ranks with, and `chooser`, `{kind: none}` at the tools-recommend door or the scripted chooser's digests at the agent-turn door.
  - `artifacts` object, required: One member per host-served scope role; an instrument writes each role's canonical-json-v1 bytes.

## Other responses

- `400`: `invalid_request`: an unknown door
- `401`: Authentication required
- `403`: Missing tools:read scope, or a caller with no credential
- `404`: `not_a_qualification_host`: this ToolPiper is not a qualification host
- `410`: `qualification_retired`: the scope was retired and never answers again
- `503`: `qualification_not_ready`: the scope, its discovery or a launch identity has not settled, the generation moved while it was read, the agent-turn door has no declared endpoint, or the host's encoder is an artifact one (until the measured instruments record it)

---

[API](https://skmtc.dev/modelpiper/apis/toolpiper-api.md) · [All operations](https://skmtc.dev/modelpiper/apis/toolpiper-api/llms.txt) · [OpenAPI document](https://skmtc.dev/modelpiper/apis/toolpiper-api/revisions/6722bf56385c?raw)
