{
  "schemaVersion": 1,
  "capturedAt": "2026-07-28T14:01:28.941852+00:00",
  "model": "glm-5.2",
  "targetUrl": "https://glm52.ai/guides/glm-5-2-web-search/",
  "scope": "One account, one key, one host, one date and one public static page; compatibility and output-fidelity evidence, not an SLA.",
  "sourceControl": {
    "httpStatus": 200,
    "elapsedMs": 935,
    "responseBodyBytes": 156199,
    "seoTitle": "GLM-5.2 Web Search: API, Chat and MCP Test | GLM52.ai",
    "canonical": "https://glm52.ai/guides/glm-5-2-web-search/",
    "headingCount": 28,
    "expectedMarkers": {
      "All nine archived HTTP calls returned 200": true,
      "Map the three search surfaces before coding": true,
      "https://api.z.ai/api/paas/v4/web_search": true
    }
  },
  "readerCases": [
    {
      "case": "reader-default-markdown",
      "requestOptions": {},
      "httpStatus": 200,
      "elapsedMs": 7674,
      "modelReturned": "web-reader",
      "title": "GLM-5.2 Web Search: Which Z.ai Route Actually Works?",
      "description": "Test GLM-5.2 web search across Z.ai's raw API, Chat Completions and Coding Plan MCP. Copy working requests, compare cost, citations and route limits.",
      "url": "https://glm52.ai/guides/glm-5-2-web-search/",
      "characterCount": 24606,
      "lineCount": 546,
      "sha256": "a75f7db1e55566b67d985b417b9c4c56c73f6fb51e7b79d6038232b4ed091736",
      "markdownHeadingCount": 24,
      "markdownLinkCount": 3,
      "markdownImageCount": 3,
      "expectedMarkers": {
        "All nine archived HTTP calls returned 200": false,
        "Map the three search surfaces before coding": true,
        "https://api.z.ai/api/paas/v4/web_search": true
      }
    },
    {
      "case": "reader-text",
      "requestOptions": {
        "return_format": "text"
      },
      "httpStatus": 200,
      "elapsedMs": 1576,
      "modelReturned": "web-reader",
      "title": "GLM-5.2 Web Search: Which Z.ai Route Actually Works?",
      "description": "Test GLM-5.2 web search across Z.ai's raw API, Chat Completions and Coding Plan MCP. Copy working requests, compare cost, citations and route limits.",
      "url": "https://glm52.ai/guides/glm-5-2-web-search/",
      "characterCount": 24606,
      "lineCount": 546,
      "sha256": "a75f7db1e55566b67d985b417b9c4c56c73f6fb51e7b79d6038232b4ed091736",
      "markdownHeadingCount": 24,
      "markdownLinkCount": 3,
      "markdownImageCount": 3,
      "expectedMarkers": {
        "All nine archived HTTP calls returned 200": false,
        "Map the three search surfaces before coding": true,
        "https://api.z.ai/api/paas/v4/web_search": true
      }
    },
    {
      "case": "reader-markdown-no-images",
      "requestOptions": {
        "return_format": "markdown",
        "retain_images": false
      },
      "httpStatus": 200,
      "elapsedMs": 3043,
      "modelReturned": "web-reader",
      "title": "GLM-5.2 Web Search: Which Z.ai Route Actually Works?",
      "description": "Test GLM-5.2 web search across Z.ai's raw API, Chat Completions and Coding Plan MCP. Copy working requests, compare cost, citations and route limits.",
      "url": "https://glm52.ai/guides/glm-5-2-web-search/",
      "characterCount": 24606,
      "lineCount": 546,
      "sha256": "a75f7db1e55566b67d985b417b9c4c56c73f6fb51e7b79d6038232b4ed091736",
      "markdownHeadingCount": 24,
      "markdownLinkCount": 3,
      "markdownImageCount": 3,
      "expectedMarkers": {
        "All nine archived HTTP calls returned 200": false,
        "Map the three search surfaces before coding": true,
        "https://api.z.ai/api/paas/v4/web_search": true
      }
    },
    {
      "case": "reader-markdown-no-cache",
      "requestOptions": {
        "return_format": "markdown",
        "no_cache": true
      },
      "httpStatus": 200,
      "elapsedMs": 7215,
      "modelReturned": "web-reader",
      "title": "GLM-5.2 Web Search: Which Z.ai Route Actually Works?",
      "description": "Test GLM-5.2 web search across Z.ai's raw API, Chat Completions and Coding Plan MCP. Copy working requests, compare cost, citations and route limits.",
      "url": "https://glm52.ai/guides/glm-5-2-web-search/",
      "characterCount": 24606,
      "lineCount": 546,
      "sha256": "a75f7db1e55566b67d985b417b9c4c56c73f6fb51e7b79d6038232b4ed091736",
      "markdownHeadingCount": 24,
      "markdownLinkCount": 3,
      "markdownImageCount": 3,
      "expectedMarkers": {
        "All nine archived HTTP calls returned 200": false,
        "Map the three search surfaces before coding": true,
        "https://api.z.ai/api/paas/v4/web_search": true
      }
    }
  ],
  "comparisons": {
    "default_vs_text_same_hash": true,
    "default_vs_no_images_same_hash": true,
    "default_vs_no_cache_same_hash": true,
    "default_markdown_character_count": 24606,
    "text_character_count": 24606,
    "default_markdown_heading_count": 24,
    "text_markdown_heading_count": 24,
    "default_markdown_image_count": 3,
    "no_images_markdown_image_count": 3,
    "all_default_markers_preserved": false
  },
  "omissionControl": {
    "marker": "All nine archived HTTP calls returned 200",
    "presentInSourceHtml": true,
    "presentInReader": false,
    "conclusion": "One visible callout marker was omitted; validate required content instead of treating HTTP 200 as completeness."
  },
  "glm52Ingestion": {
    "httpStatus": 200,
    "elapsedMs": 3168,
    "modelReturned": "glm-5.2",
    "inputReaderCharacters": 24000,
    "inputTruncated": true,
    "validJson": true,
    "parsedAnswer": {
      "surface_count": 3,
      "surfaces": [
        "Raw Search API",
        "Web Search in Chat",
        "Coding Plan Remote MCP"
      ],
      "mentions_source_validation": true
    },
    "usage": {
      "prompt_tokens": 5388,
      "cached_tokens": 0,
      "completion_tokens": 51,
      "total_tokens": 5439
    }
  },
  "mcp": {
    "initializeHttpStatus": 200,
    "initializeElapsedMs": 133750,
    "requestedProtocol": "2025-03-26",
    "returnedProtocol": "2024-11-05",
    "serverName": "web-reader-server",
    "sessionIdPresent": true,
    "sessionIdStored": false,
    "toolsListHttpStatus": 200,
    "toolsListElapsedMs": 7062,
    "tools": [
      {
        "name": "webReader",
        "description": "Fetch and Convert URL to Large Model Friendly Input.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "description": "The URL of the website to fetch and read"
            },
            "timeout": {
              "type": "integer",
              "format": "int32",
              "description": "Request timeout(unit is second), default is 20"
            },
            "no_cache": {
              "type": "boolean",
              "description": "Disable cache(true/false), default is false"
            },
            "return_format": {
              "type": "string",
              "description": "Reader response content type (markdown or text), default is markdown"
            },
            "retain_images": {
              "type": "boolean",
              "description": "Retain images (true/false), default is true"
            },
            "no_gfm": {
              "type": "boolean",
              "description": "Disable GitHub Flavored Markdown (true/false), default is false"
            },
            "keep_img_data_url": {
              "type": "boolean",
              "description": "Keep image data URL (true/false), default is false"
            },
            "with_images_summary": {
              "type": "boolean",
              "description": "Include images summary (true/false), default is false"
            },
            "with_links_summary": {
              "type": "boolean",
              "description": "Include links summary (true/false), default is false"
            }
          },
          "required": [
            "url"
          ],
          "additionalProperties": false
        }
      }
    ],
    "callHttpStatus": 200,
    "callElapsedMs": 2928,
    "calledTool": "webReader",
    "urlArgument": "url",
    "resultCharacterCount": 28635,
    "resultSha256": "c9b7fbb8d6c17b21dba7fd959a23b92ac055bd47f563ca2819d11ad4c0003c18",
    "resultIsError": false
  },
  "localSafetyControl": {
    "inputCharacterCount": 24606,
    "maximumReleasedCharacters": 24000,
    "releasedCharacterCount": 24000,
    "truncated": true,
    "wrappedAsUntrustedContent": true,
    "suspiciousPhraseHits": {
      "ignore previous": 0,
      "system message": 0,
      "developer message": 0,
      "<script": 0
    },
    "urlGuardCases": [
      {
        "url": "https://glm52.ai/guides/glm-5-2-web-search/",
        "accepted": true,
        "reason": "hostname-needs-dns-and-redirect-recheck"
      },
      {
        "url": "file:///etc/passwd",
        "accepted": false,
        "reason": "scheme-not-allowed"
      },
      {
        "url": "http://127.0.0.1/admin",
        "accepted": false,
        "reason": "non-public-address"
      },
      {
        "url": "http://169.254.169.254/latest/meta-data/",
        "accepted": false,
        "reason": "non-public-address"
      },
      {
        "url": "http://10.0.0.1/internal",
        "accepted": false,
        "reason": "non-public-address"
      },
      {
        "url": "http://[::1]/",
        "accepted": false,
        "reason": "non-public-address"
      },
      {
        "url": "https://user:pass@example.com/private",
        "accepted": false,
        "reason": "embedded-credentials"
      }
    ],
    "dnsAndRedirectRecheckRequired": true
  },
  "modelCostIllustration": {
    "pricingCheckedAt": "2026-07-28",
    "inputUsdPerMillionTokens": 1.4,
    "outputUsdPerMillionTokens": 4.4,
    "observedPromptTokens": 5388,
    "observedCompletionTokens": 51,
    "observedModelUsd": 0.0077676,
    "readerPriceIncluded": false,
    "readerPriceReason": "The current official pricing table did not publish a Web Reader per-call line."
  },
  "summary": {
    "http_request_count": 10,
    "http_200_count": 10,
    "http_statuses": {
      "200": 10
    },
    "median_elapsed_ms": 3734,
    "elapsed_range_ms": [
      935,
      133750
    ],
    "mcp_tool_count": 1,
    "mcp_call_http_status": 200,
    "glm_ingestion_valid_json": true
  },
  "credentialStored": false,
  "authorizationHeaderStored": false,
  "responseIdsStored": false,
  "sessionIdsStored": false,
  "reasoningStored": false
}
