---
title: "axiom inspect flow"
description: "Print a compiled flow's OpenAPI spec (its input schema)"
category: reference
surfaces: [cli]
related: [reference/cli/axiom-inspect]
last_reviewed: 2026-06-06
---

<!-- GENERATED by docs/scripts/gen-cli-reference — DO NOT EDIT.
     Source of truth: the cobra command definitions in cmd/axiom/cmd/.
     Regenerate from the repo root with: go run ./docs/scripts/gen-cli-reference -->

# axiom inspect flow

Print a compiled flow's OpenAPI spec (its input schema)

Fetch a compiled flow's OpenAPI spec (GET /graphs/{id}/openapi.json) — the
same spec the MCP's axiom_inspect returns for a flow.

Name the flow — "<handle>/<flow-name>", optionally "@<version>" — or give the
artifact id "axiom flow compile" prints (also accepted by "axiom flow run").
PREFER THE NAME: it always resolves to the flow's CURRENT published graph, while
an artifact id names one published version and goes stale on the next publish.

```text
axiom inspect flow nadia/cron-explainer | jq .
axiom inspect flow nadia/cron-explainer@1.2.0 --schema
axiom inspect flow 01HQY5K7XWZ6N8R2BTEF4... | jq .
```

--schema prints ONLY the flow's two facade messages (fields + descriptions) as
{"input": …, "output": …}, instead of the whole OpenAPI document. Use it to read
or verify a flow's typed contract without walking the spec's nesting:

```text
axiom inspect flow <artifact-id> --schema
axiom inspect flow <artifact-id> --schema | jq '.input.properties | to_entries[] | select(.value.description == null)'
```

## Usage

```sh
axiom inspect flow <flow-name|artifact-id> [flags]
```

## Flags

| Flag | Shorthand | Type | Default | Description |
|---|---|---|---|---|
| `--help` | `-h` | bool |  | help for flow |
| `--schema` |  | bool |  | Print only the input/output facade messages, not the whole OpenAPI document |

## See also

- [axiom inspect](./axiom-inspect.md) — Print the compiled JSON Schema for a node or flow (the shape an invoke must satisfy)
