changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "description": "Response for ``POST /seo-check``.",
+ "properties": {
+ "canonical": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Canonical"
+ },
+ "cost_usdc": {
+ "description": "Price charged in stablecoin units (USDC/USDT 1:1); 0 on the free tier.",
+ "title": "Cost Usdc",
+ "type": "number"
+ },
+ "fetched_at": {
+ "description": "UTC timestamp when the data was fetched.",
+ "format": "date-time",
+ "title": "Fetched At",
+ "type": "string"
+ },
+ "final_url": {
+ "title": "Final Url",
+ "type": "string"
+ },
+ "freshness_seconds": {
+ "description": "Age of the underlying data in seconds (0 = fetched live).",
+ "title": "Freshness Seconds",
+ "type": "integer"
+ },
+ "grade": {
+ "title": "Grade",
+ "type": "string"
+ },
+ "h1": {
+ "items": {
+ "type": "string"
+ },
+ "title": "H1",
+ "type": "array"
+ },
+ "h2_count": {
+ "title": "H2 Count",
+ "type": "integer"
+ },
+ "hreflang_count": {
+ "title": "Hreflang Count",
+ "type": "integer"
+ },
+ "html_bytes": {
+ "title": "Html Bytes",
+ "type": "integer"
+ },
+ "http_status": {
+ "title": "Http Status",
+ "type": "integer"
+ },
+ "https": {
+ "title": "Https",
+ "type": "boolean"
+ },
+ "images": {
+ "additionalProperties": {
+ "type": "integer"
+ },
+ "title": "Images",
+ "type": "object"
+ },
+ "issues": {
+ "items": {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ "title": "Issues",
+ "type": "array"
+ },
+ "lang": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Lang"
+ },
+ "links": {
+ "additionalProperties": {
+ "type": "integer"
+ },
+ "title": "Links",
+ "type": "object"
+ },
+ "load_ms": {
+ "title": "Load Ms",
+ "type": "integer"
+ },
+ "meta_description": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Meta Description"
+ },
+ "meta_description_length": {
+ "title": "Meta Description Length",
+ "type": "integer"
+ },
+ "meta_robots": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Meta Robots"
+ },
+ "open_graph": {
+ "additionalProperties": true,
+ "title": "Open Graph",
+ "type": "object"
+ },
+ "redirects": {
+ "title": "Redirects",
+ "type": "integer"
+ },
+ "robots_txt": {
+ "anyOf": [
+ {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Robots Txt"
+ },
+ "routing": {
+ "description": "How the request was routed (provider, fallback, cache, latency).",
+ "properties": {
+ "cache_hit": {
+ "default": false,
+ "description": "True if the result was served from cache.",
+ "title": "Cache Hit",
+ "type": "boolean"
+ },
+ "fallback_used": {
+ "default": false,
+ "description": "True if the primary provider failed and a fallback served the result.",
+ "title": "Fallback Used",
+ "type": "boolean"
+ },
+ "latency_ms": {
+ "default": 0,
+ "description": "End-to-end routing latency in milliseconds.",
+ "title": "Latency Ms",
+ "type": "integer"
+ },
+ "provider": {
+ "description": "Name of the upstream provider that served the result.",
+ "title": "Provider",
+ "type": "string"
+ },
+ "providers_tried": {
+ "description": "Providers attempted, in order.",
+ "items": {
+ "type": "string"
+ },
+ "title": "Providers Tried",
+ "type": "array"
+ }
+ },
+ "required": [
+ "provider"
+ ],
+ "title": "RoutingMeta",
+ "type": "object"
+ },
+ "score": {
+ "title": "Score",
+ "type": "integer"
+ },
+ "sitemap": {
+ "anyOf": [
+ {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Sitemap"
+ },
+ "structured_data_blocks": {
+ "title": "Structured Data Blocks",
+ "type": "integer"
+ },
+ "title": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Title"
+ },
+ "title_length": {
+ "title": "Title Length",
+ "type": "integer"
+ },
+ "token": {
+ "default": "USDC",
+ "description": "Token actually used for payment (USDC, USDT or FREE).",
+ "title": "Token",
+ "type": "string"
+ },
+ "twitter_card": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Twitter Card"
+ },
+ "url": {
+ "title": "Url",
+ "type": "string"
+ },
+ "viewport": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "title": "Viewport"
+ },
+ "word_count": {
+ "title": "Word Count",
+ "type": "integer"
+ },
+ "x_payment_response": {
+ "description": "Base64-encoded x402 settlement receipt (mirrors the X-PAYMENT-RESPONSE header). Only present when the call was paid with `x_payment`.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "freshness_seconds",
+ "cost_usdc",
+ "routing",
+ "url",
+ "final_url",
+ "http_status",
+ "redirects",
+ "https",
+ "load_ms",
+ "html_bytes",
+ "title_length",
+ "meta_description_length",
+ "h1",
+ "h2_count",
+ "word_count",
+ "images",
+ "links",
+ "open_graph",
+ "structured_data_blocks",
+ "hreflang_count",
+ "issues",
+ "score",
+ "grade"
+ ],
+ "type": "object"
+}