CheckWebsiteNow Check API

The Check API from CheckWebsiteNow — 1 operation(s) for check.

GitHub OpenAPI

Operations 1

POST /api/v1/check Check one public HTTPS homepage #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/checkwebsitenow-com:checkwebsitenow-com-check-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

checkwebsitenow-com-check-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Checkwebsitenow Com Check API
  version: 1.8.0
  description: 'Operations tagged Check across 2 of this provider''s published API definitions: checkwebsitenow-com-openapi.json, checkwebsitenow-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: /
  description: Same origin as this description
tags:
- name: Check
paths:
  /api/v1/check:
    post:
      operationId: checkPublicWebsite
      summary: Check one public HTTPS homepage
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - hostname
              additionalProperties: false
              properties:
                hostname:
                  type: string
                  maxLength: 300
                  examples:
                  - example.com
      responses:
        '200':
          description: Observation, including inconclusive states.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckResult'
        '400':
          description: Request or measurement service error; never a target outage verdict.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                      message:
                        type: string
        '403':
          description: Request or measurement service error; never a target outage verdict.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                      message:
                        type: string
        '408':
          description: Request or measurement service error; never a target outage verdict.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                      message:
                        type: string
        '413':
          description: Request or measurement service error; never a target outage verdict.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                      message:
                        type: string
        '415':
          description: Request or measurement service error; never a target outage verdict.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                      message:
                        type: string
        '429':
          description: 'Our limit or a request problem; never a verdict about the website. Codes: RATE_LIMITED (10 per minute per client; IPv6 counted per /64), PROBE_BUSY_CLIENT (your previous check is still running), PROBE_BUSY (all four slots busy, or a check of this website is running and enough requests already wait for it; Retry-After 10), TARGET_BUSY (this website was checked very often in the last minute); RATE_LIMITED also when your client or network used its fair share of fresh checks (12 per minute per client). Retry after the Retry-After seconds.'
          headers:
            Retry-After:
              schema:
                type: integer
              description: Seconds to wait.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Request or measurement service error; never a target outage verdict.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - code
                    - message
                    properties:
                      code:
                        type: string
                      message:
                        type: string
        '503':
          description: 'PROBE_BUSY: our global budget of fresh checks for this minute is used up. Not a verdict about the website. Retry after the Retry-After seconds.'
          headers:
            Retry-After:
              schema:
                type: integer
              description: Seconds to wait.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      description: 'Adds "diagnosis" and "diagnosis_schema" (also on cached results), plus "agent_guidance", "geoblock_suspected" and "sponsored_offers" for agents (additive since API 1.8.0). Ten checks per minute per client (IPv6 per /64), shared with the MCP check_website tool; one running check per client; 60-second cache per website; at most 20 fresh checks per registrable domain (shared hosting zones such as myshopify.com count per hostname; the apex and www have their own budget) and 120 overall per minute, of which one client may start at most 12 (IPv6 /56: 24, /48: 36, /32: 60; IPv4 /24: 36, /16: 60). When a limit refuses a fresh check, a result up to 5 minutes old is returned instead (cached: true, cached_age_seconds).'
      tags:
      - Check
    servers:
    - url: /
      description: Same origin as this description
components:
  schemas:
    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: '#/components/schemas/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
    ApiError:
      type: object
      required:
      - error
      properties:
        error:
          type: object
          required:
          - code
          - message
          properties:
            code:
              type: string
            message:
              type: string
    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.'
    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
    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: '#/components/schemas/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: '#/components/schemas/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.'
    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.
                examples:
                - If it still fails for you
              summary:
                type: string
              visitor_steps:
                type: array
                items:
                  $ref: '#/components/schemas/Step'
              owner_steps:
                type: array
                items:
                  $ref: '#/components/schemas/Step'
              url:
                type: string
                examples:
                - /errors/http-503
        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
x-refined-from:
- checkwebsitenow-com-openapi.json
- checkwebsitenow-com-openapi.yml