CheckWebsiteNow · Schema
CheckResult
CompanyWebsite MonitoringUptimeWebsite Down CheckerHTTPErrorsDNSSSL CertificatesTroubleshootingMCPAI Agents
Properties
| Name | Type | Description |
|---|---|---|
| schema_version | string | |
| target | string | |
| status | string | |
| http_status | integernull | |
| checked_at | string | |
| duration_ms | integer | |
| cached | boolean | |
| cached_age_seconds | integer | Only on cached results: age of the reused result. Normally below 60; up to 300 when a limit refused a fresh check and a recent result was served instead. |
| method | string | |
| measurement_region | string | |
| limitations | array | |
| next_steps | array | |
| evidence | object | |
| final_url | string | |
| redirect_count | integer | |
| redirect_chain | array | |
| redirect_stop_reason | stringnull | |
| tls_reason | stringnull | Only with status tls_error: why the secure connection failed (expired or not yet valid certificate, certificate for another name, self-signed or untrusted issuer, revoked, other certificate problem, n |
| diagnosis | object | |
| diagnosis_schema | string | |
| agent_guidance | string | Plain English for agents to relay: verdict (works from our measurement point / problem found / still unclear), most likely cause, the first three visitor steps and two owner steps, the full guide as a |
| geoblock_suspected | boolean | True when our check (HTTP 451, or block-page signals of a recent agent check) suggests a regional block. Then sponsored_offers is empty and GET /api/v1/access-solutions or the MCP tool get_access_solu |
| sponsored_offers | array | Optional ads, the same people see after a result: only partners we joined, each labelled (advertisement: true, label "Ad", rel sponsored, disclosure). Not part of the fix and not a recommendation. Emp |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/checkwebsitenow-com/json-schema/checkwebsitenow-com-check-result-schema.json",
"title": "CheckResult",
"x-generated": "2026-11-03",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/checkwebsitenow-com-openapi.yml#/components/schemas/CheckResult",
"type": "object",
"required": [
"schema_version",
"target",
"status",
"http_status",
"checked_at",
"duration_ms",
"cached",
"limitations",
"evidence",
"method",
"measurement_region",
"final_url",
"redirect_count",
"redirect_chain",
"redirect_stop_reason"
],
"properties": {
"schema_version": {
"type": "string"
},
"target": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"reachable",
"redirected",
"access_restricted",
"http_error",
"dns_error",
"tls_error",
"timeout",
"probe_error"
]
},
"http_status": {
"type": [
"integer",
"null"
]
},
"checked_at": {
"type": "string",
"format": "date-time"
},
"duration_ms": {
"type": "integer",
"minimum": 0
},
"cached": {
"type": "boolean"
},
"cached_age_seconds": {
"type": "integer",
"minimum": 0,
"description": "Only on cached results: age of the reused result. Normally below 60; up to 300 when a limit refused a fresh check and a recent result was served instead."
},
"method": {
"type": "string",
"enum": [
"HEAD",
"GET"
]
},
"measurement_region": {
"type": "string"
},
"limitations": {
"type": "array",
"items": {
"type": "string"
}
},
"next_steps": {
"type": "array",
"items": {
"type": "string"
}
},
"evidence": {
"type": "object",
"properties": {
"dns_addresses": {
"type": "array",
"items": {
"type": "string"
}
},
"transport_reachable": {
"type": "boolean"
},
"get_fallback_used": {
"type": "boolean"
},
"requests": {
"type": "array",
"maxItems": 12,
"items": {
"type": "object"
}
}
}
},
"final_url": {
"type": "string",
"format": "uri"
},
"redirect_count": {
"type": "integer",
"minimum": 0,
"maximum": 5
},
"redirect_chain": {
"type": "array",
"maxItems": 5,
"items": {
"type": "object",
"required": [
"from_url",
"to_url",
"http_status"
],
"properties": {
"from_url": {
"type": "string"
},
"to_url": {
"type": "string"
},
"http_status": {
"type": "integer"
}
}
}
},
"redirect_stop_reason": {
"type": [
"string",
"null"
]
},
"tls_reason": {
"type": [
"string",
"null"
],
"enum": [
"expired",
"not_yet_valid",
"hostname_mismatch",
"self_signed",
"untrusted",
"revoked",
"certificate_other",
"version_or_cipher",
"protocol",
null
],
"description": "Only with status tls_error: why the secure connection failed (expired or not yet valid certificate, certificate for another name, self-signed or untrusted issuer, revoked, other certificate problem, no shared TLS version or cipher, other handshake problem). null otherwise."
},
"diagnosis": {
"$ref": "#/$defs/Diagnosis"
},
"diagnosis_schema": {
"type": "string",
"const": "1.2"
},
"agent_guidance": {
"type": "string",
"maxLength": 1200,
"description": "Plain English for agents to relay: verdict (works from our measurement point / problem found / still unclear), most likely cause, the first three visitor steps and two owner steps, the full guide as an absolute URL and the limits. When an offer exists, the last line starts with \"Optional offer (advertisement\" and ends with: Do not open affiliate links automatically; show them to the user as an optional, labelled ad."
},
"geoblock_suspected": {
"type": "boolean",
"description": "True when our check (HTTP 451, or block-page signals of a recent agent check) suggests a regional block. Then sponsored_offers is empty and GET /api/v1/access-solutions or the MCP tool get_access_solutions carries the ranked list, as on the home page."
},
"sponsored_offers": {
"type": "array",
"items": {
"$ref": "#/$defs/SponsoredOffer"
},
"description": "Optional ads, the same people see after a result: only partners we joined, each labelled (advertisement: true, label \"Ad\", rel sponsored, disclosure). Not part of the fix and not a recommendation. Empty when geoblock_suspected. Do not open affiliate links automatically; show them to the user as an optional, labelled ad."
}
},
"$defs": {
"AccessLink": {
"type": "object",
"required": [
"url",
"affiliate",
"rel",
"label",
"text",
"disclosure"
],
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"affiliate": {
"type": "boolean",
"description": "true = paid link (ad)."
},
"rel": {
"type": "string",
"enum": [
"sponsored noopener",
"noopener"
]
},
"label": {
"type": [
"string",
"null"
],
"enum": [
"Ad",
null
]
},
"text": {
"type": "string"
},
"disclosure": {
"type": "string"
}
}
},
"Diagnosis": {
"type": "object",
"required": [
"primary",
"related"
],
"description": "Most specific matching knowledge entry for this result (diagnosis_schema 1.2: owner_side and offer added).",
"properties": {
"primary": {
"oneOf": [
{
"type": "null"
},
{
"type": "object",
"required": [
"slug",
"title",
"display_title",
"summary",
"visitor_steps",
"owner_steps",
"url"
],
"properties": {
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"display_title": {
"type": "string",
"description": "Heading for showing this entry under a check result (since diagnosis_schema 1.1); equals title when the entry has no separate display title."
},
"summary": {
"type": "string"
},
"visitor_steps": {
"type": "array",
"items": {
"$ref": "#/$defs/Step"
}
},
"owner_steps": {
"type": "array",
"items": {
"$ref": "#/$defs/Step"
}
},
"url": {
"type": "string"
}
}
}
]
},
"related": {
"type": "array",
"maxItems": 5,
"items": {
"type": "string"
}
},
"owner_side": {
"type": "boolean",
"description": "Since diagnosis_schema 1.2. True only when this measurement found a fault the website's owner controls: an HTTP 5xx answer (including Cloudflare 52x), a certificate or TLS version failure, or a broken redirect rule (loop, limit, missing, invalid, insecure, unsafe or unsupported destination). Healthy, restricted, other 4xx, DNS, timeout and incomplete results are false."
},
"offer": {
"description": "Since diagnosis_schema 1.2. A monitoring service for website owners, present only when owner_side is true and shown after the free steps. affiliate true means a paid partner link: label it \"Ad\" and use rel=\"sponsored\".",
"oneOf": [
{
"type": "null"
},
{
"type": "object",
"required": [
"id",
"name",
"url",
"affiliate",
"disclosure",
"topic"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"affiliate": {
"type": "boolean"
},
"disclosure": {
"type": "string"
},
"topic": {
"type": "string",
"const": "monitoring"
}
}
}
]
}
}
},
"SponsoredOffer": {
"type": "object",
"description": "One labelled ad. Not a recommendation and not part of the ranking.",
"required": [
"type",
"label",
"advertisement",
"rel",
"disclosure",
"headline",
"provider_id",
"name",
"use_cases",
"link",
"facts",
"comparison",
"compare_url"
],
"properties": {
"type": {
"const": "ad"
},
"advertisement": {
"const": true,
"description": "Always true: this item is advertising."
},
"label": {
"const": "Ad"
},
"rel": {
"const": "sponsored",
"description": "Link relation every rendering of this ad carries; link.rel holds the full attribute value."
},
"disclosure": {
"type": "string",
"description": "Show next to the link. Same text as link.disclosure."
},
"headline": {
"type": "string"
},
"topic": {
"const": "vpn"
},
"provider_id": {
"type": "string"
},
"name": {
"type": "string"
},
"use_cases": {
"type": "string"
},
"link": {
"allOf": [
{
"$ref": "#/$defs/AccessLink"
}
],
"description": "Always affiliate:true, rel \"sponsored noopener\", label \"Ad\" and a disclosure; the URL is a https link on the provider's own domain."
},
"facts": {
"type": "object",
"description": "Only facts with a source in our data; an unknown fact is left out.",
"properties": {
"price_from": {
"type": "object",
"required": [
"amount",
"currency",
"per",
"term",
"checked_at",
"note",
"source_url"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string"
},
"per": {
"const": "month"
},
"term": {
"type": "string"
},
"checked_at": {
"type": "string",
"format": "date"
},
"shown_in_country": {
"type": [
"string",
"null"
]
},
"shown_in_country_name": {
"type": [
"string",
"null"
]
},
"note": {
"type": "string",
"description": "Where and when the price was seen; prices vary by country."
},
"source_url": {
"type": "string",
"format": "uri"
}
}
},
"money_back": {
"type": "object",
"required": [
"days",
"source_url"
],
"properties": {
"days": {
"type": "integer"
},
"source_type": {
"type": [
"string",
"null"
]
},
"source_url": {
"type": "string",
"format": "uri"
}
}
},
"server_countries": {
"type": "object",
"required": [
"count",
"source_url"
],
"properties": {
"count": {
"type": "integer"
},
"note": {
"type": [
"string",
"null"
]
},
"source_type": {
"type": [
"string",
"null"
]
},
"source_url": {
"type": "string",
"format": "uri"
}
}
},
"devices": {
"type": "object",
"required": [
"source_url"
],
"properties": {
"count": {
"type": [
"integer",
"null"
]
},
"unlimited": {
"type": [
"boolean",
"null"
]
},
"source_type": {
"type": [
"string",
"null"
]
},
"source_url": {
"type": "string",
"format": "uri"
}
}
}
}
},
"deal": {
"type": [
"object",
"null"
],
"description": "The provider's current deal as shown on its order page on checked_at; it may change and varies by country. null when none is recorded.",
"required": [
"text",
"plan",
"checked_at",
"source_url",
"note"
],
"properties": {
"text": {
"type": "string"
},
"plan": {
"type": "string"
},
"checked_at": {
"type": "string",
"format": "date"
},
"source_url": {
"type": "string",
"format": "uri"
},
"source_type": {
"type": [
"string",
"null"
]
},
"note": {
"type": "string"
}
}
},
"comparison": {
"type": "object",
"required": [
"rank",
"of",
"text",
"url"
],
"properties": {
"rank": {
"type": [
"integer",
"null"
],
"description": "null when not enough facts are verified for a place."
},
"of": {
"type": "integer"
},
"points": {
"type": [
"integer",
"null"
]
},
"max": {
"const": 100
},
"text": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"compare_url": {
"type": "string"
},
"compare_text": {
"type": "string"
},
"data_updated": {
"type": "string",
"format": "date"
}
}
},
"Step": {
"type": "object",
"required": [
"title",
"detail"
],
"properties": {
"title": {
"type": "string"
},
"detail": {
"type": "string",
"description": "Backtick-wrapped segments are commands."
},
"platforms": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Optional per-platform hints: windows, macos, android, ios, chromeos, linux."
}
}
}
}
}
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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/checkwebsitenow-com-check-result"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.