---
title: "The rulebook: every finding code CrawlCheck can raise, with what it means, its level, its fix and its share of counted scans. Public. ?code= returns one rule"
method: GET
path: "/api/rules"
---

# The rulebook: every finding code CrawlCheck can raise, with what it means, its level, its fix and its share of counted scans. Public. ?code= returns one rule

`GET /api/rules`

## Request

- Base URL: `https://crawlcheck.io`
- URL: `https://crawlcheck.io/api/rules`
- Auth: none required

## Query parameters

- `code` string

## Response `200`

crawlcheck-rulebook (RulebookV1)

- RulebookV1: Every finding CrawlCheck can raise (GET /api/rules): what it means, its level, its fix and its share of counted scans.
  - `ok` boolean
  - `kind` 'crawlcheck-rulebook', required
  - `v` unknown, required
  - `generated_at` string, required
  - `score_version` number, nullable
  - `schema` string, nullable
  - `counts` object, required
    - `rules` integer, required
    - `by_kind` object
    - `by_family` object
    - `revised` integer
    - `scored` integer
  - `scans_counted` integer, nullable
  - `severity_scale` object[], required
    - `level` string
  - `method` object
    - `revisions` string, nullable
    - `share` string, nullable
    - `grade` string, nullable
  - `rules` RuleV1[], required: every rule; with ?code= only that rule (counts still describe the whole rulebook)
    - `code` string, required
    - `kind` 'scan' | 'answer_correlation' | 'capability_mismatch' | 'self_audit', required: self_audit: a defect in CrawlCheck's own record, never in the site
    - `family` object, required
      - `id` string, required
      - `label` string, required
    - `title` string, nullable, required
    - `meaning` string, nullable
    - `severity` object, required
      - `level` string, nullable
    - `scored` boolean: raised on a graded scan record; refusals, answer runs, capability mismatches and self-audit findings are not
    - `measured_on` string, nullable
    - `revision` object, required
      - `current` integer, required
      - `revised_at` string, nullable: when the current revision took effect; null while the rule is at revision 1
    - `fix` object
      - `advice` string, nullable
      - `effort` string, nullable
      - `endpoint` string, nullable
    - `share_of_scans` object, required
      - `pct` number, nullable, required
      - `scans` integer, nullable
      - `of_scans` integer, nullable
      - `basis` string, required
    - `links` object
      - `self` string, nullable
      - `api` string, nullable
      - `glossary` string[]
      - `workflow` string, nullable
      - `lineage` string, nullable
      - `explain_template` string, nullable
  - `filter` object, nullable
    - `code` string, nullable

## Other responses

- `404`: no rule with that code; the list of codes

---

[API](https://skmtc.dev/crawlcheck/apis/crawlcheck-api.md) · [All operations](https://skmtc.dev/crawlcheck/apis/crawlcheck-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlcheck/apis/crawlcheck-api/revisions/57acbd6d4489?raw)
