Link Safety Check

Checks the domain of a URL against the CERT Polska Warning List of malicious domains, whose licence allows commercial use, and reports whether the domain or a parent domain is listed and the date of the list.

POST/v1/link-safety
curl -X POST https://YOUR_API_HOST/v1/link-safety \
  -H "Authorization: Bearer $LOOKVALID_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'
  • 1 credit per URL checked (a check that cannot run is free)
  • Charged on every completed lookup
  • Cached 1 day

1 credit per URL checked (a check that cannot run is free)

Charged on every completed lookup. A repeat inside 1 day is free.

Every LookValid product draws on one shared balance. See pricing.

From key to answer in three steps

One key, one POST to /v1/link-safety and a JSON answer back. The same three steps work in any language that can send HTTPS.

  1. 01

    Create a key

    Sign up and copy a key from the dashboard. The same key works for every LookValid product and for the MCP server.

    Terminal
    export LOOKVALID_API_KEY="lv_live_..."
    
  2. 02

    Send the request

    POST a JSON body to /v1/link-safety. 1 credit per URL checked (a check that cannot run is free).

    request.sh
    curl -X POST https://YOUR_API_HOST/v1/link-safety \
      -H "Authorization: Bearer $LOOKVALID_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"url":"https://example.com"}'
    
  3. 03

    Read the answer

    A real run of this lookup on 2026-10-18. The data object has 7 named fields.

    response.json
    {
      "product": "link-safety",
      "found": true,
      "data": {
        "url": "https://example.com/",
        "host": "example.com",
        "verdict": "not_listed",
        "matches": [],
        "feeds_checked": [
          {
            "id": "cert-pl-warning-list",
            "name": "CERT Polska Warning List of malicious domains",
            "data_date": "2026-10-18T03:00:12.000Z",
            "matched": false,
            "licence": "Free for any purpose including commercial use (CERT Polska), no attribution required"
      ...
    

A structured answer, not a page of text

The data object has 7 named fields. Every response also lists the sources behind the result, the credits charged and whether it was served from your cache.

  • Fields returned in data by Link Safety Check
    FieldType
    urlstring
    hoststring
    verdict"listed" | "not_listed"
    matchesarray of object
    feeds_checkedarray of object

    And 2 more fields in the API reference.

    Named fields. A URL on no list is not proof it is safe: the list only holds domains that have already been reported, and it checks the domain, not the page.

    1. Your requestone API key
    2. Your cache1 dayRepeat: 0 credits
    3. Data sourcefirst lookupCharged: 1 credit
    4. ResultJSON

    A repeat lookup is free. Results are cached per account for 1 day. Ask the same question again inside that window and the response comes back with cache_hit: true and no charge.

  • Terminal
    # Sent with every request, for every product
    Authorization: Bearer $LOOKVALID_API_KEY
    

    One key for your code and your agents. Send your API key as a Bearer token. The same key and the same credit balance cover every other LookValid product. AI agents can call it as a tool on the MCP server at https://YOUR_API_HOST/v1/mcp.

7

named fields in every answer

1

day a repeat lookup is free

14

lookups on the same key and balance

Latest from the changelog

All changes

Priced in credits

Every LookValid product draws on one shared balance. Link Safety Check uses 1 credit per URL checked (a check that cannot run is free).

Cost

1credit

Per URL checked (a check that cannot run is free)


  • Completed lookup, found or not1 credit
  • Repeat inside 1 day0 credits
  • Errors and invalid requests0 credits

Questions about Link Safety Check

01How much does Link Safety Check cost?

1 credit per URL checked (a check that cannot run is free). Credits come out of the one balance shared by every LookValid product.

02Am I charged when nothing is found?

Yes. This product charges every completed lookup, whether or not it finds something. Errors and invalid requests are not charged.

03How long are results cached?

For 1 day, per account. Repeating the same lookup inside that window returns cache_hit: true and costs 0 credits.

04Which API key do I use?

The same key as every other product. Send it as a Bearer token in the Authorization header. Email hello@lookvalid.com and we set up your account and send the key.