---
title: "Inspect a model candidate from any source"
method: GET
path: "/v1/models/info"
tags: ["Models"]
---

# Inspect a model candidate from any source

`GET /v1/models/info`

## Request

- Base URL: `http://localhost:9998`
- URL: `http://localhost:9998/v1/models/info`
- Auth: HTTP bearer

Source-neutral inspect: resolves a `source` + `id` through the matching
acquisition adapter (HuggingFace / Civitai / URL / local / curated) and
returns the neutral `WireModelArtifact` shape — the same artifact a
`model_search` candidate carries, with its full downloadable file list.
When the live host-memory probe is ready each file is host-fit annotated
(`fit`, `estimatedRuntimeBytes`); otherwise the un-annotated artifact is
returned rather than fabricating a fit.

## Query parameters

- `id` string, required
- `source` 'huggingface' | 'civitai' | 'url' | 'local' | 'curated': Acquisition source a model id belongs to.

## Response `200`

Neutral model artifact (host-fit annotated when the memory probe is ready)

- WireModelArtifact: Neutral, source-agnostic model artifact with its full downloadable file list.
  - `id` string, required
  - `name` string, required
  - `kind` 'model' | 'lora' | 'vae' | 'embedding', required: Component kind — a base `model` loads into memory; a `lora` / `vae` / `embedding` is referenced, never loaded standalone.
  - `source` 'huggingface' | 'civitai' | 'url' | 'local' | 'curated', required: Acquisition source a model id belongs to.
  - `clearanceTier` 'curated' | 'community' | 'local', required: Licensing tier the bytes travel with.
  - `baseModel` string, nullable: Base model the component targets (e.g. SD1.5 / SDXL / Flux, or an HF base).
  - `description` string, nullable: Long-form model-card description.
  - `licenseSummary` string, nullable
  - `commercialUse` boolean, nullable
  - `pipelineTag` string, nullable
  - `downloadCount` integer, nullable
  - `likeCount` integer, nullable
  - `trainedWords` string[], nullable
  - `files` WireModelFile[], required
    - `path` string, required: Source-native file path — HF rfilename within the repo, or Civitai file name.
    - `sizeBytes` integer, required: Download size in bytes (LFS size on HF).
    - `kind` 'model' | 'lora' | 'vae' | 'embedding', required: Component kind — a base `model` loads into memory; a `lora` / `vae` / `embedding` is referenced, never loaded standalone.
    - `quant` string, nullable: Quantization / precision label (e.g. `Q4_K_M`, `fp16`, `pruned`); absent for non-quantized artifacts.
    - `paramsB` number, double, nullable: Parameter count in billions parsed from the variant (e.g. 7 for a 7B model); absent when unknown.
    - `versionId` string, nullable: Civitai version anchor; absent for HuggingFace flat repos.
    - `recommended` boolean, nullable: Whether the adapter would default-select this file for the candidate's kind.
    - `fit` 'comfortable' | 'tight' | 'tooLarge': Host-relative fit on this machine, computed by ToolPiper from live RAM / disk.
    - `estimatedRuntimeBytes` integer, nullable: Estimated runtime memory footprint at the default context; absent until host-fit annotation runs.

## Other responses

- `400`: Invalid request
- `502`: Upstream source error

---

[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)
