Skip to main content
Run the complete Dino pipeline against your API. Discovers your schema, executes all 6 testing agents, builds an API Intelligence catalog, and saves a schema snapshot. This is the primary command. Most workflows start here.

Usage

dino scan --tenant <id> [flags]

Flags

FlagTypeDefaultDescription
--tenantstringRequired. Tenant ID (or set in .dino.yml)
--envstringTenant defaultTarget environment (must match environments in tenant config)
--format"markdown" | "json""markdown"Output format for the Intelligence Report
--quietbooleanfalseSuppress stdout output
--verbosebooleanfalsePrint resolved config defaults and debug info
--toolsstring[]All toolsComma-separated list of tools to run (e.g. --tools health-check,auth-probe)
--modulesstring[]All modulesComma-separated list of modules to scope the scan
--reasoningbooleanfalseEnable AI-powered reasoning (requires DINO_AI_KEY)
--timeoutnumber300000Pipeline timeout in milliseconds
--snapshot-dirstring.dino/snapshotsDirectory to save schema snapshots
--endpointstringFrom tenant configOverride the API endpoint URL
--protocol"graphql""graphql"API protocol
The --tenant flag can be omitted if tenant is set in your .dino.yml config file.

Authentication Flags

FlagTypeDefaultDescription
--authobject{ enabled: false }Enable authenticated scanning
--ai-keystringDINO_AI_KEY env varAPI key for AI reasoning (Pro tier)
When --reasoning is passed without an API key (via --ai-key or DINO_AI_KEY env var), the command exits with code 1.

Pipeline Steps

  1. Discover — Introspects your API schema and builds an operation list
  2. Execute — Runs all 6 testing agents against discovered operations
  3. Catalog — Builds an API Intelligence catalog from results
  4. Snapshot — Saves a schema snapshot for future dino diff / dino changelog comparisons
  5. Report — Renders the catalog as Markdown or JSON

Examples

Basic scan

dino scan --tenant acme --env production
# API Intelligence Report — acme / production

## Operations (24 discovered)

| Operation | Type  | Health | Findings |
|-----------|-------|--------|----------|
| getUser   | query | 92     | 1        |
| ...       | ...   | ...    | ...      |

JSON output for CI

dino scan --tenant acme --env staging --format json --quiet > report.json

Scoped scan with specific tools

dino scan --tenant acme --tools health-check,auth-probe --modules users,billing
Runs only the health-check and auth-probe tools, scoped to the users and billing modules.

With AI reasoning

export DINO_AI_KEY="sk-ant-..."
dino scan --tenant acme --env qa --reasoning
Use --verbose to see which defaults Dino applied (format, timeout, snapshot directory, concurrency).

RBAC Behavior

When authentication is not configured, the rbac-matrix tool is automatically excluded from the scan — even if explicitly passed via --tools. This prevents false-positive RBAC findings on unauthenticated APIs. A warning is printed when this occurs:
--tools includes rbac-matrix but no auth is configured. RBAC tool skipped.

Degraded Mode

If all tools fail during a pipeline run, the scan completes in degraded mode. The report is still generated but contains no test data. The exit code is 1.
WARNING: Pipeline ran in degraded mode -- all tools failed. Report contains no test data.

Exit Codes

CodeMeaning
0Pipeline completed successfully
1Pipeline failed, degraded mode, or missing required config