Health Scores
Every operation in your API gets a health score from 0 to 100. The score reflects how well-tested, documented, and maintained the operation is, regardless of whether it’s GraphQL or REST.What gets scored
Each quality module contributes to the score:OpenAPI response shape validation (
validateResponseAgainstSpec in @dino/agents) is available for integrations; default dino scan health scoring for REST leans on rest-fuzzer (and shared modules like error-code-validator when REST calls are made), not a separate CLI module today.Score breakdown
Per-operation vs aggregate
Per-operation score: Each GraphQL query/mutation or REST path/method gets its own score based on which modules reported issues. Aggregate score: The API-level score is the weighted average across all operations. Operations with more findings pull the average down.Reading the catalog
When you rundino scanThe output includes scores:
What do scores mean for your team
False positives
Dino’s deterministic engine minimises false positives, but they can happen — especially with unconventional API patterns. If you see an incorrect finding:- Check if the API behaviour is intentional (e.g., an endpoint that should reject all input)
- Use
--toolsto exclude specific modules for that run - File an issue, false positives are our #1 bug priority
Health scores are deterministic. Same API state = same scores. If your score changes, something in your API changed.