Tools API
Free public website checking tools. This page lists all 4 endpoints in the Tools area of the Visual Sentinel REST API.
Base URL: https://visualsentinel.com. Unless an endpoint says otherwise it accepts an API key or a session cookie, see Authentication. Most error responses use the ErrorResponse shape, see Errors and Rate limits.
Endpoints
- Website health check:
GET /api/tools/website-check - SSL certificate check:
GET /api/tools/ssl-check - DNS lookup tool:
GET /api/tools/dns-check - Website speed test:
GET /api/tools/speed-test
Website health check
GET /api/tools/website-check
Free tool to check whether a website responds, from each check region, with its response time and certificate. Rate limited to 10 requests/minute per IP. With visual=1 it also tries one homepage screenshot (3 per 10 minutes per IP).
Authentication: no session or API key needed.
Parameters
url(query, string, required): URL to check (https:// prefix added if missing)visual(query, string, optional): Also capture one homepage screenshot (the address is reduced to its origin). One of:1.
Responses
200: Website check results. Body: object.400: The address cannot be checked: missing, not a valid URL, or not a public http/https address. Body: object.422: The site could not be checked: its name does not resolve (not_found, with lookup and an optional suggestion), or its bot protection blocked the check in every region, answering each with a verification page (bot_protection). Body: object.429: Rate limit exceeded. Retry-After gives the seconds to wait. Body: object.503: Our checker could not finish this check (check_error). Nothing is known about the site. Body: object.
| Field | Type | Required | Description |
|---|---|---|---|
url | string | No | |
status | string | No | One of: UP, DEGRADED, DOWN. |
responseTime | integer or null | No | |
statusCode | integer or null | No | |
sslValid | boolean or null | No | |
sslDaysRemaining | integer or null | No | |
sslIssuer | string or null | No | |
dnsTime | integer or null | No | |
regions | array of object | No | |
regions[].region | string | No | |
regions[].status | string | No | One of: UP, DOWN. |
regions[].responseTime | integer or null | No | |
regions[].statusCode | integer or null | No | |
regions[].error | string or null | No | |
checkedAt | string (date-time) | No | |
screenshot | string or null | No | visual=1 only: a data URL, or null when no screenshot was taken. |
screenshotUnavailable | boolean | No | visual=1 only: screenshots are switched off for now. |
screenshotBlocked | string | No | visual=1 only: the site's bot protection showed a verification page instead of the site. One of: bot_protection. |
screenshotLimited | boolean | No | visual=1 only: this caller reached the screenshot limit. |
SSL certificate check
GET /api/tools/ssl-check
Free tool to check SSL certificate validity, expiration, and chain details.
Authentication: no session or API key needed.
Parameters
domain(query, string, required): Host name, optionally with an https:// prefix or a :port, for exampleexample.comorexample.com:8443.
Responses
200: SSL certificate details.429: Rate limit exceeded.
DNS lookup tool
GET /api/tools/dns-check
Free tool to check DNS records (A, AAAA, MX, NS, TXT, CNAME, SOA).
Authentication: no session or API key needed.
Parameters
domain(query, string, required)type(query, string, optional): Record type. Case-insensitive. One of:A,AAAA,MX,CNAME,TXT,NS,SOA,ALL. Default:ALL.
Responses
200: DNS records.429: Rate limit exceeded.
Website speed test
GET /api/tools/speed-test
Free tool to test website loading speed and performance metrics.
Authentication: no session or API key needed.
Parameters
url(query, string, required)
Responses
200: Speed test results.429: Rate limit exceeded.503: The test did not run.SPEED_TEST_SERVICE_BUSY: the testing service was busy, rate limited or timed out (not a problem with the page); aRetry-Afterheader is sent, try again in a few minutes.PAGE_NOT_TESTABLE: the page could not be loaded for testing.SPEED_TEST_UNAVAILABLEandSPEED_TEST_FAILED: the speed test is unavailable on our side. Failures are sent withCache-Control: no-store.
Generated from the OpenAPI 3.1 specification at https://docs.visualsentinel.com/openapi.json, the same file the interactive reference reads.