lenz-io · Schema

ReviewIssuesOutLegacy

A review as `2026-05-13` sends it: a cancelled review is `failed` with a `cancelled` failure.

AIFact-CheckingEnterpriseAPIAudit

Properties

Name Type Description
review_id string
status string
outcome object Null until terminal. clean covers the selected claims at the policy's chosen depth. issues_found with an empty issues[] means the rows are in citation_issues[]. A deep check that reads "No Public Reco
created_at string
completed_at object
language string The language the review is written in, as an ISO 639-1 code. `auto` only while a review sent with `language: "auto"` on a draft that is one URL has not read its page yet; then the detected code, or `e
policy object
summary object
credits object
poll_after_seconds object
issues array
failures array
citation_issues array Citations whose source does not say what the draft says, the most serious first; partly_supported rows are not issues and are only in citations[]. [] when the check was not asked.
citation_failures array
more_claims object Claims found past max_assessments, in the draft's order: found but not checked; send them in a later request to check them. Null until the draft is read.
more_claim_locations object Where the draft makes each of `more_claims`, in the same order: `{claim, positions}`, the shape `/extract` returns with `locate: true` (see a claim row's `positions`). Null until the draft is read.
more_citations object Citations found past the ones selected (up to 100): found but not checked; send them in a later request to check them. Null until the draft is read.
failure object
view string
View JSON Schema on GitHub

JSON Schema

lenz-io-review-issues-out-legacy-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/lenz-io/json-schema/lenz-io-review-issues-out-legacy-schema.json",
  "title": "ReviewIssuesOutLegacy",
  "description": "A review as `2026-05-13` sends it: a cancelled review is `failed` with a `cancelled` failure.",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/lenz-io-openapi.json#/components/schemas/ReviewIssuesOutLegacy",
  "properties": {
    "review_id": {
      "title": "Review Id",
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "assessing",
        "verifying",
        "completed",
        "failed"
      ]
    },
    "outcome": {
      "anyOf": [
        {
          "enum": [
            "clean",
            "issues_found",
            "incomplete",
            "unchecked"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Null until terminal. clean covers the selected claims at the policy's chosen depth. issues_found with an empty issues[] means the rows are in citation_issues[]. A deep check that reads \"No Public Record\" is an issue (not on the public record).",
      "title": "Outcome"
    },
    "created_at": {
      "title": "Created At",
      "type": "string"
    },
    "completed_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Completed At"
    },
    "language": {
      "description": "The language the review is written in, as an ISO 639-1 code. `auto` only while a review sent with `language: \"auto\"` on a draft that is one URL has not read its page yet; then the detected code, or `en` when the page could not be read.",
      "title": "Language",
      "type": "string"
    },
    "policy": {
      "$ref": "#/$defs/ReviewPolicyOut"
    },
    "summary": {
      "$ref": "#/$defs/ReviewSummaryOutLegacy"
    },
    "credits": {
      "$ref": "#/$defs/ReviewCreditsOut"
    },
    "poll_after_seconds": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Poll After Seconds"
    },
    "issues": {
      "items": {
        "$ref": "#/$defs/ReviewIssueOutLegacy"
      },
      "title": "Issues",
      "type": "array"
    },
    "failures": {
      "items": {
        "$ref": "#/$defs/ReviewFailedRowOutLegacy"
      },
      "title": "Failures",
      "type": "array"
    },
    "citation_issues": {
      "default": [],
      "description": "Citations whose source does not say what the draft says, the most serious first; partly_supported rows are not issues and are only in citations[]. [] when the check was not asked.",
      "items": {
        "$ref": "#/$defs/ReviewCitationIssueOutLegacy"
      },
      "title": "Citation Issues",
      "type": "array"
    },
    "citation_failures": {
      "default": [],
      "items": {
        "$ref": "#/$defs/ReviewCitationFailedRowOutLegacy"
      },
      "title": "Citation Failures",
      "type": "array"
    },
    "more_claims": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "description": "Claims found past max_assessments, in the draft's order: found but not checked; send them in a later request to check them. Null until the draft is read.",
      "title": "More Claims"
    },
    "more_claim_locations": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/ClaimLocationOut"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "description": "Where the draft makes each of `more_claims`, in the same order: `{claim, positions}`, the shape `/extract` returns with `locate: true` (see a claim row's `positions`). Null until the draft is read.",
      "title": "More Claim Locations"
    },
    "more_citations": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/ReviewMoreCitationOut"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "description": "Citations found past the ones selected (up to 100): found but not checked; send them in a later request to check them. Null until the draft is read.",
      "title": "More Citations"
    },
    "failure": {
      "anyOf": [
        {
          "$ref": "#/$defs/FailureOutLegacy"
        },
        {
          "type": "null"
        }
      ]
    },
    "view": {
      "const": "issues",
      "title": "View",
      "type": "string"
    }
  },
  "required": [
    "review_id",
    "status",
    "outcome",
    "created_at",
    "completed_at",
    "language",
    "policy",
    "summary",
    "credits",
    "poll_after_seconds",
    "issues",
    "failures",
    "failure",
    "view"
  ],
  "type": "object",
  "$defs": {
    "ClaimLocationOut": {
      "properties": {
        "claim": {
          "description": "The claim, exactly as it appears in the claim list it belongs to.",
          "title": "Claim",
          "type": "string"
        },
        "positions": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/PositionOut"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "Every place the text makes the claim, in text order, at most 10. `null` only when this claim could not be placed (on /extract every returned claim was placed).",
          "title": "Positions"
        }
      },
      "required": [
        "claim",
        "positions"
      ],
      "title": "ClaimLocationOut",
      "type": "object"
    },
    "FailureOutLegacy": {
      "title": "FailureOutLegacy",
      "type": "object",
      "properties": {
        "failure_reason": {
          "type": "string",
          "description": "Where it stopped. `not_a_claim` where the current version says `no_checkable_claim`."
        },
        "failure_class": {
          "type": "string",
          "enum": [
            "upstream_unavailable",
            "insufficient_evidence",
            "invalid_input",
            "cancelled",
            "internal"
          ]
        },
        "retryable": {
          "type": "boolean"
        },
        "docs_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "hint": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "failure_reason",
        "failure_class",
        "retryable",
        "docs_url"
      ],
      "description": "A failure block as `2026-05-13` sends it inside a review, a citation check and a child verification: `failure_reason` where the current version has `code`, and no `detail`. `no_claim` (`not_a_claim` on a child verification) where the current version says `no_checkable_claim`."
    },
    "PositionOut": {
      "properties": {
        "start": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "Where the passage starts in `text` as you sent it, in Unicode code points (not UTF-16 units or bytes). Half-open with `end`. `null` when `text` was a URL: the page is not returned, so there is nothing to index, and `text` carries the passage instead.",
          "title": "Start"
        },
        "end": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "Where the passage ends, exclusive; `null` as for `start`.",
          "title": "End"
        },
        "text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "The passage itself, as it appears in the text. `null` on a citation position, whose row already carries the statement.",
          "title": "Text"
        }
      },
      "required": [
        "start",
        "end",
        "text"
      ],
      "title": "PositionOut",
      "type": "object"
    },
    "ReviewAssessmentCountsOut": {
      "properties": {
        "completed": {
          "title": "Completed",
          "type": "integer"
        },
        "failed": {
          "title": "Failed",
          "type": "integer"
        }
      },
      "required": [
        "completed",
        "failed"
      ],
      "title": "ReviewAssessmentCountsOut",
      "type": "object"
    },
    "ReviewCitationCountsOut": {
      "description": "Three disjoint counts; once every check has ended they add up to citations_selected.",
      "properties": {
        "checked": {
          "description": "A finding other than unchecked.",
          "title": "Checked",
          "type": "integer"
        },
        "unchecked": {
          "description": "Could not be checked, for a reason of the page or the draft.",
          "title": "Unchecked",
          "type": "integer"
        },
        "failed": {
          "description": "No finding, for a reason of ours.",
          "title": "Failed",
          "type": "integer"
        }
      },
      "required": [
        "checked",
        "unchecked",
        "failed"
      ],
      "title": "ReviewCitationCountsOut",
      "type": "object"
    },
    "ReviewCitationFailedRowOutLegacy": {
      "properties": {
        "citation_index": {
          "title": "Citation Index",
          "type": "integer"
        },
        "reference": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Reference"
        },
        "cited_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Cited Url"
        },
        "doi": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Doi"
        },
        "failure": {
          "anyOf": [
            {
              "$ref": "#/$defs/FailureOutLegacy"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "citation_index",
        "reference",
        "cited_url",
        "doi",
        "failure"
      ],
      "title": "ReviewCitationFailedRowOutLegacy",
      "type": "object",
      "description": "`ReviewCitationFailedRowOut` as `2026-05-13` sends it: the same fields, with the older shape of what it contains."
    },
    "ReviewCitationIssueOutLegacy": {
      "properties": {
        "citation_index": {
          "title": "Citation Index",
          "type": "integer"
        },
        "reference": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Reference"
        },
        "cited_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Cited Url"
        },
        "doi": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Doi"
        },
        "statement": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Statement"
        },
        "quotes": {
          "default": [],
          "items": {
            "type": "string"
          },
          "title": "Quotes",
          "type": "array"
        },
        "position": {
          "anyOf": [
            {
              "$ref": "#/$defs/PositionOut"
            },
            {
              "type": "null"
            }
          ]
        },
        "finding": {
          "enum": [
            "doi_not_found",
            "page_not_found",
            "contradicted",
            "quote_not_in_source",
            "not_in_source",
            "partly_supported",
            "metadata_mismatch",
            "supported",
            "unchecked"
          ],
          "title": "Finding",
          "type": "string"
        },
        "source": {
          "anyOf": [
            {
              "enum": [
                "doi",
                "page",
                "support",
                "quote",
                "metadata"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source"
        },
        "snippet": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Set only when source is support.",
          "title": "Snippet"
        },
        "rationale": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Set only when source is support.",
          "title": "Rationale"
        },
        "metadata_differences": {
          "default": [],
          "items": {
            "$ref": "#/$defs/ReviewMetadataDifferenceOut"
          },
          "title": "Metadata Differences",
          "type": "array"
        },
        "missing_quote": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Set only when finding is quote_not_in_source.",
          "title": "Missing Quote"
        },
        "page_title": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Page Title"
        },
        "failure": {
          "anyOf": [
            {
              "$ref": "#/$defs/FailureOutLegacy"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "citation_index",
        "reference",
        "cited_url",
        "doi",
        "statement",
        "position",
        "finding",
        "source",
        "snippet",
        "rationale",
        "page_title",
        "failure"
      ],
      "title": "ReviewCitationIssueOutLegacy",
      "type": "object",
      "description": "`ReviewCitationIssueOut` as `2026-05-13` sends it: the same fields, with the older shape of what it contains."
    },
    "ReviewCreditsOut": {
      "properties": {
        "charged": {
          "description": "Net credits this review cost the account, read from the ledger. Authoritative once no deep check is running.",
          "title": "Charged",
          "type": "integer"
        }
      },
      "required": [
        "charged"
      ],
      "title": "ReviewCreditsOut",
      "type": "object"
    },
    "ReviewEscalationOut": {
      "properties": {
        "matched_rules": {
          "items": {
            "enum": [
              "verdict",
              "confidence"
            ],
            "type": "string"
          },
          "title": "Matched Rules",
          "type": "array"
        },
        "disposition": {
          "enum": [
            "not_selected",
            "planned",
            "cap",
            "credits",
            "account_cap"
          ],
          "title": "Disposition",
          "type": "string"
        }
      },
      "required": [
        "matched_rules",
        "disposition"
      ],
      "title": "ReviewEscalationOut",
      "type": "object"
    },
    "ReviewFailedRowOutLegacy": {
      "properties": {
        "claim_index": {
          "title": "Claim Index",
          "type": "integer"
        },
        "claim": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Claim"
        },
        "stage": {
          "enum": [
            "assessment",
            "verification"
          ],
          "title": "Stage",
          "type": "string"
        },
        "failure": {
          "anyOf": [
            {
              "$ref": "#/$defs/FailureOutLegacy"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "claim_index",
        "claim",
        "stage",
        "failure"
      ],
      "title": "ReviewFailedRowOutLegacy",
      "type": "object",
      "description": "`ReviewFailedRowOut` as `2026-05-13` sends it: the same fields, with the older shape of what it contains."
    },
    "ReviewIssueOutLegacy": {
      "properties": {
        "claim_index": {
          "title": "Claim Index",
          "type": "integer"
        },
        "claim": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Claim"
        },
        "verified_claim": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Verified Claim"
        },
        "verdict": {
          "type": "string",
          "enum": [
            "True",
            "Mostly True",
            "Mixed",
            "Mostly False",
            "False"
          ]
        },
        "confidence": {
          "anyOf": [
            {
              "enum": [
                "low",
                "medium",
                "high"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Confidence"
        },
        "source": {
          "enum": [
            "assessment",
            "verification"
          ],
          "title": "Source",
          "type": "string"
        },
        "verification_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Verification Id"
        },
        "verification_status": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "processing",
                "completed",
                "failed"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "verification_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Verification Url"
        },
        "url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Url"
        },
        "escalation": {
          "anyOf": [
            {
              "$ref": "#/$defs/ReviewEscalationOut"
            },
            {
              "type": "null"
            }
          ]
        },
        "key_finding": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Key Finding"
        },
        "rationale": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Rationale"
        },
        "suggested_rewrite": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "The rewrite the row's edits come from: its completed deep check's, else (with `escalate.suggest_edits`) its quick check's; `source` says which. A suggestion, not itself verified.",
          "title": "Suggested Rewrite"
        },
        "failure": {
          "anyOf": [
            {
              "$ref": "#/$defs/FailureOutLegacy"
            },
            {
              "type": "null"
            }
          ]
        },
        "suggested_edits": {
          "anyOf": [
            {
              "$ref": "#/$defs/ReviewSuggestedEditsOut"
            },
            {
              "type": "null"
            }
          ],
          "description": "A copy of its claim row's `suggested_edits`. Asked with `escalate.suggest_edits`. They follow the row's suggested rewrite: its completed deep check's, else its quick check's (see the issue's `source`). `null` when not asked, when the claim has no suggested rewrite, when the draft's passage is not in a supported language or could not be placed, or once a zero-retention draft is gone. Guide: https://lenz.io/docs/citations#suggested-edits"
        }
      },
      "required": [
        "claim_index",
        "claim",
        "verified_claim",
        "verdict",
        "confidence",
        "source",
        "verification_id",
        "verification_status",
        "verification_url",
        "url",
        "escalation",
        "key_finding",
        "rationale",
        "suggested_rewrite",
        "failure"
      ],
      "title": "ReviewIssueOutLegacy",
      "type": "object",
      "description": "An issue as `2026-05-13` sends it: a cancelled deep check reads `failed`; never \"No Public Record\" (that deep check reads failed, so the issue, if any, is the quick check's)."
    },
    "ReviewMetadataDifferenceOut": {
      "properties": {
        "field": {
          "enum": [
            "title",
            "authors",
            "year",
            "journal"
          ],
          "title": "Field",
          "type": "string"
        },
        "cited": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Cited"
        },
        "registered": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Registered"
        }
      },
      "required": [
        "field"
      ],
      "title": "ReviewMetadataDifferenceOut",
      "type": "object"
    },
    "ReviewMoreCitationOut": {
      "description": "A citation found in the draft and not checked by this request.",
      "properties": {
        "index": {
          "title": "Index",
          "type": "integer"
        },
        "reference": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Reference"
        },
        "cited_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Cited Url"
        },
        "doi": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Doi"
        },
        "sentence": {
          "description": "The draft sentence around the citation, at most 1,000 characters.",
          "title": "Sentence",
          "type": "string"
        },
        "position": {
          "anyOf": [
            {
              "$ref": "#/$defs/PositionOut"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "index",
        "sentence"
      ],
      "title": "ReviewMoreCitationOut",
      "type": "object"
    },
    "ReviewPolicyOut": {
      "properties": {
        "verdicts": {
          "items": {
            "enum": [
              "True",
              "Mostly True",
              "Mixed",
              "Mostly False",
              "False",
              "No Public Record"
            ],
            "type": "string"
          },
          "title": "Verdicts",
          "type": "array"
        },
        "confidence": {
          "items": {
            "enum": [
              "low",
              "medium",
              "high"
            ],
            "type": "string"
          },
          "title": "Confidence",
          "type": "array"
        },
        "max_verifications": {
          "title": "Max Verifications",
          "type": "integer"
        },
        "max_assessments": {
          "title": "Max Assessments",
          "type": "integer"
        },
        "depth": {
          "enum": [
            "standard",
            "low"
          ],
          "title": "Depth",
          "type": "string"
        },
        "max_citations": {
          "default": 0,
          "title": "Max Citations",
          "type": "integer"
        },
        "suggest_edits": {
          "default": false,
          "title": "Suggest Edits",
          "type": "boolean"
        }
      },
      "required": [
        "verdicts",
        "confidence",
        "max_verifications",
        "max_assessments",
        "depth"
      ],
      "title": "ReviewPolicyOut",
      "type": "object"
    },
    "ReviewSuggestedEditsOut": {
      "description": "The smallest edits to the draft that make it say what the claim's deep\ncheck rewrite says, in the draft's language. Review content, never part of\nthe verification: a verification is shared, your draft is not.",
      "properties": {
        "status": {
          "description": "`pending` while they are computed (poll the review); `completed` once SETTLED, which includes settling on no edit (`edits: []`).",
          "enum": [
            "pending",
            "completed"
          ],
          "title": "Status",
          "type": "string"
        },
        "edits": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/SuggestedEditOut"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "`null` while pending; `[]` when settled with no edit (the passage could not be edited safely, no edit passed the checks, or computing it failed on our side). Not itself verified: review it before you use it.",
          "title": "Edits"
        }
      },
      "required": [
        "status",
        "edits"
      ],
      "title": "ReviewSuggestedEditsOut",
      "type": "object"
    },
    "ReviewSummaryOutLegacy": {
      "properties": {
        "claims_selected": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "Claims this review works on; null until the draft is read.",
          "title": "Claims Selected"
        },
        "claim_limit": {
          "description": "The resolved max_assessments.",
          "title": "Claim Limit",
          "type": "integer"
        },
        "claim_limit_reached": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "description": "True when claims_found is more than claim_limit: the rest are in more_claims, found and not checked. False when every claim found was selected. Null until the draft is read."
        },
        "input_truncated": {
          "title": "Input Truncated",
          "type": "boolean"
        },
        "assessments": {
          "anyOf": [
            {
              "$ref": "#/$defs/ReviewAssessmentCountsOut"
            },
            {
              "type": "null"
            }
          ]
        },
        "verifications": {
          "anyOf": [
            {
              "$ref": "#/$defs/ReviewVerificationCountsOut"
            },
            {
              "type": "null"
            }
          ]
        },
        "issues": {
          "title": "Issues",
          "type": "integer"
        },
        "citations_found": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "Citations with a URL or DOI in the text the review read (after the 50,000 character cut); null until the draft is read, or when the check was not asked.",
          "title": "Citations Found"
        },
        "citations_selected": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "The ones this review works on: the first in the draft's order.",
          "title": "Citations Selected"
        },
        "citation_limit": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "description": "The resolved cap.",
          "title": "Citation Limit"
        },
        "citation_limit_reached": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "description": "True when citations_found is more than citation_limit: the rest are in more_citations, found and not checked. False when every citation found was selected, exactly citation_limit included. Null until the text is read."
        },
        "citation_checks": {
          "anyOf": [
            {
              "$ref": "#/$defs/ReviewCitationCountsOut"
            },
            {
              "type": "null"
            }
          ]
        },
        "citation_issues": {
          "default": 0,
          "description": "Rows in citation_issues[]; 0 when the check was not asked.",
          "title": "Citation Issues",
          "type": "integer"
        },
        "citations_skipped": {
          "anyOf": [
            {
              "enum": [
                "url_input",
                "switched_off",
                "insufficient_credits"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "description": "Why the check was asked for and did not run.",
          "title": "Citations Skipped"
        }
      },
      "required": [
        "claims_selected",
        "claim_limit",
        "claim_limit_reached",
        "input_truncated",
        "assessments",
        "verifications",
        "issues"
      ],
      "title": "ReviewSummaryOutLegacy",
      "type": "object",
      "description": "A review summary as `2026-05-13` sends it: no `claims_found`; `claim_limit_reached` (true when the claims found were at least the limit) and `citation_limit_reached`."
    },
    "ReviewVerificationCountsOut": {
      "properties": {
        "planned": {
          "title": "Planned",
          "type": "integer"
        },
        "completed": {
          "title": "Completed",
          "type": "integer"
        },
        "failed": {
          "title": "Failed",
          "type": "integer"
        }
      },
      "required": [
        "planned",
        "completed",
        "failed"
      ],
      "title": "ReviewVerificationCountsOut",
      "type": "object"
    },
    "SuggestedEditOut": {
      "description": "One replacement in the draft: a `PositionOut` whose span is always\nin `text` as you sent it.",
      "properties": {
        "start": {
          "description": "Where the replaced span starts in `text` as you sent it, in Unicode code points. Half-open with `end`, inside `positions[position]`.",
          "title": "Start",
          "type": "integer"
        },
        "end": {
          "description": "Where the replaced span ends, exclusive.",
          "title": "En

# --- truncated at 32 KB (32 KB total) ---
# Full source: https://artifacts.apis.io/lenz-io/json-schema/lenz-io-review-issues-out-legacy-schema.json

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/lenz-io-review-issues-out-legacy"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.