> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usedino.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# FAQ

> Frequently asked questions about Dino.

<AccordionGroup>
  <Accordion title="Does Dino support REST APIs?">
    Yes. Configure **`apis[].type: rest`** with **`source: openapi`** and a **`specPath`** in `tenants/<id>.yml`, then run `dino scan --tenant <id>`. REST shares the same pipeline, catalogue, and reporting model as GraphQL. See [Quick Start](/quickstart) and [Configuration](/config/dino-yml).
  </Accordion>

  <Accordion title="Does Dino require an internet connection?">
    Only to reach your API endpoint (and, for REST, to fetch `specPath` when it is a URL). The CLI runs entirely locally. If you enable AI reasoning, it calls the Anthropic API (requires `DINO_AI_KEY`). Without AI features, Dino makes zero external calls beyond your API and any remote OpenAPI URL you configure.
  </Accordion>

  <Accordion title="Is my API data sent anywhere?">
    No. Dino runs on your machine. API responses are processed locally. The only external call is the optional AI reasoning feature, which strips all secrets before sending data to the LLM provider.
  </Accordion>

  <Accordion title="Can I use Dino in CI/CD?">
    Yes. Every command supports `--quiet` and returns meaningful exit codes:

    * `dino scan --fail-on-high` — exit 1 on **HIGH** or **CRITICAL** findings
    * `dino diff --fail-on-breaking` — exit 1 on breaking changes
    * `dino lint --fail-on-undocumented` — exit 1 on doc regressions
    * `dino watch --once --autonomy enforce` — single run, fail on issues

    See [`dino watch`](/cli/watch) for continuous runs in CI pipelines.
  </Accordion>

  <Accordion title="How is Dino different from Spectral or GraphQL Inspector?">
    Dino is an autonomous **API Quality Intelligence Platform**, not a static linter. It runs deterministic quality modules (fuzzing, auth boundary testing, rate limiting, response validation, error safety, deprecation tracking, and **`rest-fuzzer`** for REST) and builds a complete health picture. Spectral checks static rules. GraphQL Inspector diffs schemas. Dino exercises **live behavior**.
  </Accordion>

  <Accordion title="Behaviour: What happens if a module fails?">
    Individual module failures don't crash the pipeline. Failed modules are reported with error details. The run continues with remaining modules. A run where **all** modules fail exits 1 with no report — it does not produce a false CLEAN result.
  </Accordion>

  <Accordion title="Is Dino open source?">
    The CLI and MCP server are MIT licensed. The cloud dashboard and enterprise features (SSO, audit logs, BYOI) are paid.
  </Accordion>

  <Accordion title="How many tests does Dino have?">
    3,000+ across 420 test suites. We test for false output (wrong-but-clean results) as our #1 bug class — it's treated as a P0 incident. See [Deterministic Engine](/how-it-works/deterministic-engine).
  </Accordion>

  <Accordion title="Can I turn off specific modules?">
    Yes. Use `--tools` to select which modules run:

    ```bash theme={null}
    dino scan --tools input-fuzzer,response-validator,rest-fuzzer
    ```

    By default, all shipped modules run. RBAC Matrix auto-skips if auth isn't configured.
  </Accordion>

  <Accordion title="What Node.js version do I need?">
    Node.js 22 or later. Dino uses modern Node APIs (native fetch, structured clone). Check with `node --version`.
  </Accordion>
</AccordionGroup>
