---
title: "Labelled VPN partner ads shown after a check result"
method: GET
path: "/api/v1/sponsored-offers"
---

# Labelled VPN partner ads shown after a check result

`GET /api/v1/sponsored-offers`

## Request

- Base URL: `https://checkwebsitenow.com`
- URL: `https://checkwebsitenow.com/api/v1/sponsored-offers`
- Auth: none declared

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.

## Response `200`

Ads (possibly none)

- SponsoredOffers
  - `schema_version` '1.0', required
  - `kind` 'advertisement', required
  - `label` 'Ad', required
  - `data_updated` string, date, required
  - `count` integer, required
  - `offers` SponsoredOffer[], required: Ordered by the place in our fact-based comparison.
    - `type` 'ad', required
    - `advertisement` unknown, required
    - `label` 'Ad', required
    - `rel` 'sponsored', required: Link relation every rendering of this ad carries; link.rel holds the full attribute value.
    - `disclosure` string, required: Show next to the link. Same text as link.disclosure.
    - `headline` string, required
    - `topic` 'vpn'
    - `provider_id` string, required
    - `name` string, required
    - `use_cases` string, required
    - `link` AccessLink, required
      - `url` string, uri, required
      - `affiliate` boolean, required: true = paid link (ad).
      - `rel` 'sponsored noopener' | 'noopener', required
      - `label` 'Ad' | 'null', nullable, required
      - `text` string, required
      - `disclosure` string, required
    - `facts` object, required: Only facts with a source in our data; an unknown fact is left out.
      - `price_from` object
        - `amount` number, required
        - `currency` string, required
        - `per` 'month', required
        - `term` string, required
        - `checked_at` string, date, required
        - `shown_in_country` string, nullable
        - `shown_in_country_name` string, nullable
        - `note` string, required: Where and when the price was seen; prices vary by country.
        - `source_url` string, uri, required
      - `money_back` object
        - `days` integer, required
        - `source_type` string, nullable
        - `source_url` string, uri, required
      - `server_countries` object
        - `count` integer, required
        - `note` string, nullable
        - `source_type` string, nullable
        - `source_url` string, uri, required
      - `devices` object
        - `count` integer, nullable
        - `unlimited` boolean, nullable
        - `source_type` string, nullable
        - `source_url` string, uri, required
    - `deal` object, nullable: 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.
      - `text` string, required
      - `plan` string, required
      - `checked_at` string, date, required
      - `source_url` string, uri, required
      - `source_type` string, nullable
      - `note` string, required
    - `comparison` object, required
      - `rank` integer, nullable, required: null when not enough facts are verified for a place.
      - `of` integer, required
      - `points` integer, nullable
      - `max` unknown
      - `text` string, required
      - `url` string, required
    - `compare_url` string, required
    - `compare_text` string
    - `data_updated` string, date
  - `compare_url` string, required
  - `agent_note` string, required: How agents must present the ads (same labels as for people).

## Other responses

- `400`: Unknown query parameter.
- `429`: RATE_LIMITED: our request limit, never a website verdict.

---

[API](https://skmtc.dev/checkwebsitenow/apis/checkwebsitenow-website-checker.md) · [All operations](https://skmtc.dev/checkwebsitenow/apis/checkwebsitenow-website-checker/llms.txt) · [OpenAPI document](https://skmtc.dev/checkwebsitenow/apis/checkwebsitenow-website-checker/revisions/ef066e74da4b?raw)
