CheckWebsiteNow Sponsored Offers API

The Sponsored Offers API from CheckWebsiteNow — 1 operation(s) for sponsored offers.

GitHub OpenAPI

Operations 1

GET /api/v1/sponsored-offers Labelled VPN partner ads shown after a check result #

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-sponsored-offers-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-sponsored-offers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Checkwebsitenow Com Sponsored Offers API
  version: 1.8.0
  description: 'Operations tagged Sponsored Offers 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: Sponsored Offers
paths:
  /api/v1/sponsored-offers:
    get:
      operationId: getSponsoredOffers
      summary: Labelled VPN partner ads shown after a check result
      description: 'Public read-only resource (CORS *), cacheable for 5 minutes, no outbound requests. Every offer is an ad for an affiliate programme we joined: show the label "Ad" and the disclosure next to the link and keep rel="sponsored". Facts come from our VPN data with their sources and dates; comparison gives the place in our fact-based comparison (/vpn), which commission never changes. The home page shows it after the result, "Your next move" and the free steps, and not when a regional block is suspected (then the ranked VPN box has priority). offers is empty when no programme is joined.'
      responses:
        '200':
          description: Ads (possibly none)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SponsoredOffers'
        '400':
          description: Unknown query parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: 'RATE_LIMITED: our request limit, never a website verdict.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
      - Sponsored Offers
    servers:
    - url: /
      description: Same origin as this description
components:
  schemas:
    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
    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
    SponsoredOffers:
      type: object
      required:
      - schema_version
      - kind
      - label
      - data_updated
      - count
      - offers
      - compare_url
      - agent_note
      properties:
        schema_version:
          const: '1.0'
        kind:
          const: advertisement
        label:
          const: Ad
        data_updated:
          type: string
          format: date
        count:
          type: integer
        offers:
          type: array
          items:
            $ref: '#/components/schemas/SponsoredOffer'
          description: Ordered by the place in our fact-based comparison.
        compare_url:
          type: string
        agent_note:
          type: string
          description: How agents must present the ads (same labels as for people).
    ApiError:
      type: object
      required:
      - error
      properties:
        error:
          type: object
          required:
          - code
          - message
          properties:
            code:
              type: string
            message:
              type: string
x-refined-from:
- checkwebsitenow-com-openapi.json
- checkwebsitenow-com-openapi.yml