Skip to main content
Discovers your API surface (GraphQL introspection or OpenAPI parsing), runs the shipped quality modules, builds an API Intelligence catalog, and saves a schema snapshot. This is the primary command.

Usage

In ad-hoc mode, Dino reads endpoint and protocol from .dino.yml — no --tenant required. The operation registry is built from GraphQL introspection.REST is configured in tenants/<id>.yml (apis[].type: rest, source: openapi, specPath). The --protocol flag does not switch the CLI to REST; use a tenant file instead.

Flags

Authentication flags

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: GraphQL introspection or OpenAPI 3.0/3.1 parsing; build the operation list
  2. Execute: Run quality modules against discovered operations
  3. Catalogue: Build an API Intelligence catalogue with health scores
  4. Snapshot: Save a schema snapshot for dino diff / dino changelog
  5. Report: Render the catalogue as JSON or Markdown

Quality modules

For OpenAPI response shape checks (status codes, Content-Type, required fields, extra fields, writeOnly, JSON types), the agents package exposes validateResponseAgainstSpec, useful in custom integrations today; it is not wired as its own dino scan module yet.

Examples

Ad-hoc scan (GraphQL)

Tenant scan with environment

REST API scan

JSON output for CI

CI gate: fail on HIGH or CRITICAL

Scoped run with specific modules

With AI reasoning

Use --verbose to see which defaults Dino applied (format, timeout, snapshot directory, concurrency).

RBAC behavior

When authentication is not configured, the rbac-matrix The module is automatically excluded: even if passed via --tools. This prevents false-positive RBAC findings on unauthenticated APIs.

Degraded mode

If all modules fail during a pipeline run, the run completes in degraded mode. The report is generated but contains no test data. Exit code is 1.

Exit codes