addedInput schema / description
Added value: +"Supply exactly one of urls or citations. Optional sources requires citations; source_id references must exist and supplied-text citations require quote. Source IDs and citation IDs must each be unique in their own list."
addedInput schema / properties / citations
Added value: +{
+ "description": "1–10 citations in result order. Use url with optional quote, or source_id with required quote. Repeated URLs share a retrieval; source_id references reuse the supplied text. Optional citation ids must be unique.",
+ "items": {
+ "additionalProperties": false,
+ "oneOf": [
+ {
+ "not": {
+ "required": [
+ "source_id"
+ ]
+ },
+ "required": [
+ "url"
+ ]
+ },
+ {
+ "not": {
+ "required": [
+ "url"
+ ]
+ },
+ "required": [
+ "source_id",
+ "quote"
+ ]
+ }
+ ],
+ "properties": {
+ "id": {
+ "description": "Optional non-blank citation identifier, unique within the batch; echoed unchanged on success and failure.",
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "quote": {
+ "description": "The exact words attributed to this source.",
+ "maxLength": 4000,
+ "minLength": 1,
+ "type": "string"
+ },
+ "source_id": {
+ "description": "References an id in sources. Use exactly one of url or source_id; source_id requires quote. No URL is fetched for this entry.",
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "url": {
+ "format": "uri",
+ "maxLength": 4096,
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "maxItems": 10,
+ "minItems": 1,
+ "type": "array"
+}
addedInput schema / properties / sources
Added value: +{
+ "description": "Optional caller-supplied sources, only with citations. Refer to each by source_id. No URL provenance is accepted or verified. The entire request must fit within 64 KiB.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "description": "Non-blank source identifier, unique in sources.",
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "source_text": {
+ "description": "Non-blank text checked literally, preserving original whitespace and offsets. Share it across citations instead of repeating the text. No markup removal, fetching, or code execution.",
+ "maxLength": 100000,
+ "minLength": 1,
+ "type": "string"
+ },
+ "source_truncated": {
+ "default": false,
+ "description": "Set true for an excerpt or incomplete source. A missing quotation is then inconclusive for the complete source.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "id",
+ "source_text"
+ ],
+ "type": "object"
+ },
+ "maxItems": 10,
+ "minItems": 1,
+ "type": "array"
+}
changedInput schema / properties / urls / description
Previous value: -"Public HTTPS URLs to check, 1-10, in order. Each uses the guarded Source Reader: robots.txt is respected, at most three redirects are followed, and scripts are not run."New value: +"Public HTTPS URLs to check, 1-10, in order, without quotations. Each uses the guarded Source Reader: robots.txt is respected, at most three redirects are followed, and scripts are not run."
removedInput schema / required
Removed value: -[
- "urls"
-]
addedOutput schema / properties / results / items / properties / id
Added value: +{
+ "description": "Optional non-blank citation identifier, unique within the batch; echoed unchanged on success and failure.",
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+}
addedOutput schema / properties / results / items / properties / quote
Added value: +{
+ "description": "The quotation as supplied, when one was sent.",
+ "type": "string"
+}
addedOutput schema / properties / results / items / properties / quote_check
Added value: +{
+ "description": "Present when a quote was sent; null when the link could not be read.",
+ "properties": {
+ "checked_text_sha256": {
+ "pattern": "^[a-f0-9]{64}$",
+ "type": "string"
+ },
+ "match_counts": {
+ "properties": {
+ "exact": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "normalized": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "total": {
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "total",
+ "exact",
+ "normalized"
+ ],
+ "type": "object"
+ },
+ "matched": {
+ "description": "Null when the source was truncated and the quote was not found in the checked part.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "matches": {
+ "items": {
+ "properties": {
+ "after": {
+ "type": "string"
+ },
+ "before": {
+ "type": "string"
+ },
+ "end": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "kind": {
+ "enum": [
+ "exact_match",
+ "normalized_match"
+ ],
+ "type": "string"
+ },
+ "line_end": {
+ "minimum": 1,
+ "type": "integer"
+ },
+ "line_start": {
+ "minimum": 1,
+ "type": "integer"
+ },
+ "page_end": {
+ "description": "PDF sources only: one-based page where the match ends.",
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "page_start": {
+ "description": "PDF sources only: one-based page where the match starts.",
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "start": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "text": {
+ "type": "string"
+ },
+ "utf16_end": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "utf16_start": {
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "start",
+ "end",
+ "utf16_start",
+ "utf16_end",
+ "line_start",
+ "line_end",
+ "text",
+ "before",
+ "after",
+ "kind"
+ ],
+ "type": "object"
+ },
+ "maxItems": 3,
+ "type": "array"
+ },
+ "matches_truncated": {
+ "description": "More passages matched than the three returned; this does not indicate an incomplete source.",
+ "type": "boolean"
+ },
+ "matching": {
+ "properties": {
+ "case_sensitive": {
+ "const": true,
+ "type": "boolean"
+ },
+ "fuzzy_matching": {
+ "const": false,
+ "type": "boolean"
+ },
+ "normalize_whitespace": {
+ "const": true,
+ "type": "boolean"
+ },
+ "punctuation_sensitive": {
+ "const": true,
+ "type": "boolean"
+ },
+ "word_boundaries": {
+ "const": true,
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "normalize_whitespace",
+ "case_sensitive",
+ "punctuation_sensitive",
+ "word_boundaries",
+ "fuzzy_matching"
+ ],
+ "type": "object"
+ },
+ "offsets": {
+ "properties": {
+ "end": {
+ "type": "string"
+ },
+ "lines": {
+ "type": "string"
+ },
+ "pages": {
+ "type": "string"
+ },
+ "relative_to": {
+ "type": "string"
+ },
+ "start": {
+ "type": "string"
+ },
+ "unit": {
+ "type": "string"
+ },
+ "utf16": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "unit",
+ "start",
+ "end",
+ "utf16",
+ "lines",
+ "relative_to"
+ ],
+ "type": "object"
+ },
+ "source": {
+ "properties": {
+ "characters": {
+ "description": "Unicode code points checked.",
+ "maximum": 100000,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "full_characters": {
+ "description": "Code points in the full extraction or submitted text before any checker output limit; for incomplete supplied text the original document length is unknown.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "representation": {
+ "enum": [
+ "extracted_html_text",
+ "literal_text",
+ "pdf_text_layer",
+ "supplied_text"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "representation",
+ "characters",
+ "full_characters"
+ ],
+ "type": "object"
+ },
+ "source_truncated": {
+ "description": "Only part of the original source is represented: a fetched extraction exceeded the limit, or the caller declared supplied text incomplete. Missing quotations are inconclusive.",
+ "type": "boolean"
+ },
+ "status": {
+ "enum": [
+ "exact_match",
+ "normalized_match",
+ "not_found",
+ "source_truncated"
+ ],
+ "type": "string"
+ },
+ "warnings": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "status",
+ "matched",
+ "match_counts",
+ "matches",
+ "checked_text_sha256",
+ "source_truncated",
+ "warnings",
+ "matches_truncated",
+ "matching",
+ "offsets",
+ "source"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+}
addedOutput schema / properties / results / items / properties / source_id
Added value: +{
+ "description": "Supplied source identifier, present only for supplied-text results.",
+ "type": "string"
+}
addedOutput schema / properties / results / items / properties / status / description
Added value: +"readable: URL was fetched and text extracted; supplied_text: caller-provided text was checked without a fetch; failed: URL could not be read."
changedOutput schema / properties / results / items / properties / status / enum
Previous value: -[
- "readable",
- "failed"
-]New value: +[
+ "readable",
+ "failed",
+ "supplied_text"
+]
changedOutput schema / properties / results / items / properties / url / description
Previous value: -"The URL as supplied."New value: +"URL as supplied for URL citations; null for supplied-text citations."
changedOutput schema / properties / results / items / properties / url / type
Previous value: -"string"New value: +[
+ "string",
+ "null"
+]
addedOutput schema / properties / results / maxItems
Added value: +10
addedOutput schema / properties / results / minItems
Added value: +1
addedOutput schema / properties / summary / description
Added value: +"Counts citation entries, including repeats. total = readable + failed + supplied (treat omitted supplied as 0). Supplied text is not counted as a readable URL."
addedOutput schema / properties / summary / properties / quotes
Added value: +{
+ "description": "Present when citations were sent with quotes.",
+ "properties": {
+ "checked": {
+ "type": "integer"
+ },
+ "found": {
+ "type": "integer"
+ },
+ "inconclusive": {
+ "type": "integer"
+ },
+ "not_found": {
+ "type": "integer"
+ },
+ "unchecked": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+}
addedOutput schema / properties / summary / properties / supplied
Added value: +{
+ "description": "Present only when supplied-text citations were checked; counts these entries separately from fetched readable URLs.",
+ "minimum": 1,
+ "type": "integer"
+}