NAV Navbar
shell php
  • API Introduction
  • Developer library
  • Authentication
  • API Overview
  • Data Sources
  • HTTP Format
  • Text Format
  • JSON Format
  • JSONx Format
  • FQDN Queries
  • DNSWL data format
  • Browser access
  • DNS API
  • DNS Response codes
  • Scoring factors
  • Code snippets
  • API Introduction

    API endpoint:

    https://api.zetascan.com/
    

    The Zetascan Query Services "ZQS" was created to facilitate the real-time lookup of IP and Domain threat data into various applications and services. Currently there are dozens of various domain and IP data-feeds available to developers. Many of these feeds are available free of charge and some are paid for services when minimum query levels are exceeded. In addition, there are 2 main problems with trying to incorporate multiple data feed into a solution:

    1. The overlap between data feed providers in the content listed (IPs & URIs), and

    2. The absence of normalized meta-data related to the IPs or Domains.

    Because of the above, many developers asked if we could do something to reduce the complexity related to accessing and using threat data as part of their applications - ZQS is our solution. We are introducing a more elegant API for developers, with an affordable pricing model to match.

    To start, signup for a developer key and begin to integrate ZQS into your web-apps and mobile applications. A free-trial for 5,000 API queries is available for a 60-day period.

    Developer library

    To ease implementation Zetascan provides developer libraries in various languages. This provides a straightforward way to add ZQS support into your application.

    Authentication

    Authentication to ZQS can be provided via an API key, or by specifying your servers' static IP address.

    API key

    curl https://api.zetascan.com/?key=YOURAPIKEY
    

    Make sure to replace YOURAPIKEY with your API key.

    To query the ZQS an API key can be specified as an argument. No API key? Signup and receive a key instantly.

    ZQS uses API keys to allow access to the service, and expects the API key to be included in all requests, if IP authentication is not provided.

    IP authentication

    Alternatively, authentication to ZQS can be allowed by providing your servers' IP address via the Zetascan dashboard.

    Checking authentication

    IP Address:
    curl https://api.zetascan.com/v2/check/auth
    API Key:
    curl https://api.zetascan.com/v2/check/auth?key=YOURAPIKEY
    

    We provide a simple method to check if your requests will be allowed from a given IP or with your API key. You'll get either 'Authorized' or 'Not Authorized'.

    API Overview

    Query formats

    Query end-points include 4 formatting options:

    https://api.zetascan.com/v2/check/http/
    
    https://api.zetascan.com/v2/check/text/
    
    https://api.zetascan.com/v2/check/json/
    
    https://api.zetascan.com/v2/check/jsonx/
    

    You can issue requests to our endpoints from virtually any operating system or programming language. REST queries are extremely fast and provide the richest set of information about an item.

    Each client has a unique access key, generated by the system. You need to provide this key, if querying from an unregistered static IP address.

    There are four types of REST queries:

    The type of desired query is passed in the HTTP request. The version of the API is now v2. We are constantly adding new features to the API, and increase the API version number. You can use the latest version (recommended), or stick with a previous one.

    Score calculation

    ZQS provides two scoring mechanisms to grade an IP or domain-name for abuse, anti-spam measures and trustworthiness.

    A negative score, like -0.1, means that an item was matched on a known trusted white-list.

    If a score is 0, the item is not found within Zetascan and can be considered neutral.

    A score between 0 - 1.0 is a rating on the specified domain or IP address. Scores above 0.35 should be considered as spam or fraudulent.

    Reference the data sources chapter for more information on feeds used to calculate the scores. See the Scoring Factors section for exact values and logic used when generating item's score.

    webscore

    Webscore is returned by all query methods, except DNS A and AAAA queries. It is used to determine a score for integrating your web-application, mobile-app or protecting your application infrastructure.

    score

    Score is also returned by all query methods, and it used to check a specified IP or domain-name for anti-spam abuse via SMTP, useful for MTA and spam-filters. This score takes into consideration email abuse, and uses a different algorithm from the 'webscore' key.

    Test Cases

    IP Addresses

    We provide four IPv4 and four IPv6 addresses, which will always return the same answers. Use these for testing and development:

    Domains

    We provide two testing domains:

    Error handling

    When querying ZQS, the following error-codes will be returned if the query or authentication failed. Each query format (Text, HTTP, JSON/JSONx) will embed any error messages in the returned data. Examples on handling errors will be provided for each query format example.

    Error codes

    1 - HTTP 404 - Invalid request - the REST path was wrong, e.g. /v2/check/gson/domain.com (gson instead of json). It appears in the message body and in the x-zetascan-error header. This is the only error that appears like that, others appears in the specified format as per the documentation.

    2 - HTTP 404 - Missing IP/Domain argument

    3 - HTTP 404 - Failed to parse query's item

    4 - HTTP 403 - HTTPS required to supply API key

    5 - HTTP 403 - Not authorized (request to invalid host, route, port or method, or API method not supported)

    6 - HTTP 403 - Not authorized (request from invalid IP address or with invalid key)

    7 - HTTP 403 - Wrong API Key supplied

    8 - HTTP 404 - HTTP GET request required for queries

    9 - HTTP 403 - Query limit exceeded

    Data Sources

    Currently we derive our results from several providers, including:

    We also apply internal algorithms for de-duplicating, normalizing and scoring each item in our database, providing a seamless and reliable API end-point for your application.

    ZQS queries are answered in less than 1 millisecond, and expect no longer then 10 milliseconds for a query reply.

    All our sources are updated at very frequent intervals. We are also using real-time streams, so you may rest assured that you get the latest information from ZQS.

    IP Addresses sources

    We aggregate data from several data streams:

    On the other hand, we have also information about White Lists presence of IP address, for example DNSWL.

    Unlike other lists, ZQS analyzes the data about each IP address and provides normalized, de-duplicated, and pre-processed information about each IP address, containing internally calculated score (reputation), last modified timestamp, list of BL / WL where the item appears, etc.

    Domains sources

    At this stage we aggregate data from two main Domain providers:

    More providers will be added in the near future. Stay tuned!

    HTTP Format

    curl -i https://api.zetascan.com/v2/check/http/baddomain.org?key=YOURAPIKEY
    
    HTTP/1.1 200 OK
    Content-Type: text/plain; charset=utf-8
    x-zetascan-items: baddomain.org
    x-zetascan-status: success
    x-zetascan-score: 1
    x-zetascan-sources: DBL;RED;GREY;GOLD;BLACK
    x-zetascan-wl: null
    x-zetascan-time: 1500970900
    x-zetascan-webscore: 0.6
    x-zetascan-fromParent: null
    

    HTTP returns a very simple response - found or not, via HTTP response code. If found, the response will be 200 (OK).

    If the item is not present in any black-list/white-list, then the answer will be 204 (No Content).

    Additional information about the item is found in the response headers.

    Response headers

    If the query matches, the following HTTP headers will be supplied for additional information.

    Example HTTP header response:

    x-zetascan-items:querydomain.org
    x-zetascan-score:1
    x-zetascan-webscore:0.6
    x-zetascan-sources:DBL;RED;GREY;GOLD;BLACK
    x-zetascan-time:1500970900
    x-zetascan-wl:null
    x-zetascan-status:success
    
    HTTP Header Description
    x-zetascan-items The argument used to query ZQS
    x-zetascan-score The score returned for the query, used for MTA and SMTP anti-spam measures
    x-zetascan-webscore The score returned for the query, used for Web and application anti-abuse. Note the differences between web-score and score, see the score calculation for more information.
    x-zetascan-sources A list of sources the query is obtained from, delimitated by a semicolon. See the source references for more information.
    x-zetascan-time EPOCH time of response for the query
    x-zetascan-wl A list of sources matched if the query is listed in a white-list.
    x-zetascan-status Returns "success", otherwise "forbidden" or "error"

    Error handling

    Example HTTP error response:

    x-zetascan-errorCode:7
    x-zetascan-errorMessage:Wrong API Key
    x-zetascan-status:forbidden
    
    HTTP Header Description
    x-zetascan-errorCode The returned error-code. If present, the query has failed.
    x-zetascan-errorMessage A detailed explanation of the failure
    x-zetascan-status Returns "forbidden" if authentication denied, or "error" for all other error codes.

    Multiple items

    http://api.zetascan.com/v2/check/http/127.9.9.1,127.9.9.2

    x-zetascan-items: 127.9.9.1,127.9.9.2
    x-zetascan-status: success,success
    x-zetascan-score: 0.95,0.2
    x-zetascan-sources: XBL;SBL,PBL
    x-zetascan-wl: null,null
    x-zetascan-time: 1500970900,1500970900
    x-zetascan-webscore: 0.6,null
    x-zetascan-fromParent: null,null
    

    You can send multiple items in a single request by sedning a comma-separated list of IP's or domains. This will speed up the overall time for answering your query.

    The HTTP headers will contain a response for each query, as a comma-separated list in the same sequence as in the query.

    Text Format

    curl https://api.zetascan.com/v2/check/text/baddomain.org?key=YOURAPIKEY
    

    The above example returns text in the format:

    baddomain.org:true,false,,1,0.6,dbl,red,gold,grey,black
    

    TEXT returns space separated blocks of information about the lists where the item is found.

    Text example - replace 'baddomain.com' with your query - IP or domain:

    Format

    Items are separated by space. The format for each item is:

    item;parent:bool,bool,wldata,score,webscore,source

    Where:

    Error handling

    If an error occurs using the text query, the data returned will contain the item, the string 'error', an error message and a specific error-code.

    Example authentication error:

    127.9.9.1:error:Wrong_API_Key;7

    Malformed query:

    127.a.b.4:error:Failed_to_parse_query's_item;3

    Multiple items

    http://api.zetascan.com/v2/check/text/127.9.9.1,127.9.9.2

    127.9.9.1:true,false,,0.95,0.6,xbl,sbl 127.9.9.2:true,false,,0.2,0,pbl
    

    You can send multiple items in a comma-separated list of IP's or domains. This will speed up the overall time for answering your query.

    The text format will contain a response for each query, delimited by space.

    JSON Format

    curl https://api.zetascan.com/v2/check/json/baddomain.org?key= YOURAPIKEY
    

    Example JSON return string:

    {
        "results":[{
            "item":"baddomain.org",
            "found":true,
            "score":1,
            "webscore":0.6,
            "fromSubnet":false,
            "sources":
                ["shDBL","ubGrey","ubGold","ubRed","ubBlack"],
            "wl":false,
            "wldata":"",
            "lastModified":1500972200
            }],
        "executionTime":2,
        "status":"success"
    }
    

    The query will return a JSON response including if the item is found on a black-list/white-list, score, sources, etc. Refer to the table below for each field explanation.

    JSON response

    Parameter Description
    Item Query value (IP or domain)
    Found True/False if matched in a white-list/black-list.
    Score Score between a negative decimal number like -0.2 to 1.0 for MTA/Anti-spam abuse. See score information
    WebScore Score between a negative decimal number to 1.0 for Web/application abuse.
    FromSubnet Will be true, if the IP address was found in a subnet (PBL, SBL)
    Sources Black-Lists matched from ZQS. See list information.
    Wl If the item matches a white-list.
    Wldata White-Lists matched from ZQS. See list information.
    ExecutionTime Time in ms for server response
    Status Success or failure

    Error handling

    Example authentication error:

    {"error":{"message":"Wrong API Key","errorCode":7}} 
    

    Malformed query:

    {"results":
        [{"item":"malformedquery",
          "error":{
            "message":"Failed to parse query's item",
            "errorCode":3
            }
        }],
        ...
    }
    

    If an error occurred, the JSON response will return an errorCode, message and status within the JSON object.

    It is highly recommended to test against the specified error-codes during implementation. Reference the error handling section for more information.

    Multiple items

    http://api.zetascan.com/v2/check/json/127.9.9.1,127.9.9.2

    {"results":
        [{
        "item":"127.9.9.1",
        ...
        },{
        "item":"127.9.9.2",
        ...
        }],
    "executionTime":1,
    "status":"success"
    }
    

    You can send multiple items in a single request by passing comma-separated list of IP's or domains. This will speed up the overall time for answering your query.

    The JSON format, will contain a response for each query within the results array.

    JSONx Format

    curl https://api.zetascan.com/v2/check/jsonx/baddomain.org?key=yourkeygoeshere
    

    JSONx will return also a JSON document, extended with additional information about the last known activity of an fraudulent IP address. The JSONx format only supports IP addresses and not domain queries.

    JSONx response

    Responses include additional information about an IP address with fraudulent activity.
    This information is found in the 'extended' and 'extendedSecl' fields.
    The 'extended' element contains data from Spamhaus,
    while 'extededSecl' contains information from Seclytics.

    "extended": {
          "ASNum": "23969",
          "route": "1.0.200.0/24",
          "country": "AU",
          "domain": "veridas.net",
          "state": "",
          "time": "1486447729",
    
          "reason": {
            "class": "BOT",
            "rule": "9904",
            "type": "sinkhole"
            "name": "conficker",
            "source": "104.244.14.252",
            "port": "80",
            "sourceport": "23915",
            "destination": "1"
          },
          "emailslastday":"123"
        },
    
        "extendedSecl":[
            {"
            cidr":"62.196.0.0/16",
            "asn":3302,
            "first_seen":"2017-01-17",
            "last_seen":"2017-10-23",
            "categories":["scanner","spam"]
            }
        ]
    

    Extended element

    Parameter Description
    ASNum The autonomous system number of the ISP;
    route The address of the network / subnet from which the activity originated;
    country The location of the above network;
    domain The associated domain with the ip address;
    state Display the state (if available);
    time The last registered activity timestamp in unix epoch format;
    emailsdaily Contains the number of detected spam emails in the last 24 hours;

    In addition, the reason object contains additional detection information about the queried IP. Results include:

    Details for each response is provided below:

    Bot

    JSONX provides extended information to protect your web-site or mobile application, especially for user signup forms, login and integrations to your application.

    JSONX returns a BOT class, which represents one of the following 5 types:

    Sinkhole

    {"class":"BOT", "rule":"9091", "type":"sinkhole", "name":"marcher", "source":"216.218.185.162", "port":"80", "sourceport":"n/a", "destination":"onoven.com"}
    
    Parameter Description
    Rule The detection rule ID
    Type Sinkhole
    Source Source IP
    Port Source Port

    Web-Server Compromises

    {"class":"BOT", "rule":"20062", "type":"spamlink", "domain":"www.thefashionic.com", "source":"1.53.132.24", "name":"gamut", "link":"https://www.thefashionic.com/wp-content/themes/thevoux-wp/f3ebf56b6f.html", "redirect":"https://targetsale.name"}
    
    Parameter Description
    Rule The detection rule ID
    Type Spamlink
    Domain Spam domain
    Source Source IP
    Link Typed link, e.g. as it appears to user
    Redirect Real link destination

    Web-Server Attacks

    {"class":"BOT", "rule":"9051", "type":"web server attack", "name":"commentspammer"}
    
    Parameter Description
    Rule The detection rule ID
    Type Web Server Attack
    Name Extended Information

    Miscellaneous

    In this case, attempted user and password are also listed. Note that these fields are not always present.

    {"class":"BOT", "rule":"9803", "type":"miscellaneous", "name":"iotwopbot", "user":"root", "password":"anko", "port":"5358", "source":"198.133.159.133", "sourceport":"53234", "domain":"-"}
    
    Parameter Description
    Rule The detection rule ID
    Type Miscellaneous
    Name Attack name
    User Attempted username login
    Pass Attempted password
    Port Port address
    Source Source IP
    SourcePort Source Port address
    Domain Domain specified

    Unknown

    {"class":"BOT", "rule":"3013", "type":"unknown", "name":"unknown3013", "halo":"pharmaccccyyy.ca"}
    
    Parameter Description
    Rule The detection rule ID
    Type Unknown
    Name Attack name
    Halo SMTP Halo specified

    Extended - SMTP

    If using ZQS for MTA/SMTP security, JSONx provides extended information that can assist with spam detection and email security for end-user mailboxes. Check the class key in the reason sub-object.

    LOC

    {"class":"LOC", "type":"helos as destination server"}
    
    Parameter Description
    LOC SMTP "helos" as destination server

    MPD

    {"class":"MPD", "type":"helos as multiple unrelated domains", "heloscount":"16", "domainscount":"16", "domains":["daycoonline.net", "e-apollo.lv", "exitprofit.com", "flammhotclicks.com", "ftc-i.net", "happyhumans.com", "hctc.net", "heronaerospace.com", "hi.nl", "hot.dog.cx", "i-love-cats.com", "investonline.biz", "kafen.com"]}
    
    Parameter Description
    MPD helos as multiple unrelated domains
    heloscount Number of unique HELO attempts
    domainscount Number of unique domains on HELO attempts
    domains JSON array for the domains used for HELO attempts

    Never

    {"class":"NEVER", "type":"forged helos", "halo":"hotmail.com"}
    
    Parameter Description
    NEVER Usually forged helos

    Misc

    {"class":"MISC", "type":"specific broken helos", "halo":"device.lan"}
    
    Parameter Description
    MISC Usually specific broken helos

    Bogus

    {"class":"BOGUS", "type":"multiple illegal helos", "halos":["impedibilityz","recanterp","stanchedb"]}
    
    Parameter Description
    BOGUS Multiple illegal helos
    Halos JSON array of malformed domains that do not comply with RFC822

    BSIP

    {"class":"BSIP", "type":"illegal helo as IP", "halo":"109.242.179.132"}
    
    Parameter Description
    BSIP Illegal helo`ing as IP
    Halo Malformed IP address used to HELO

    SSIP

    {"class":"SSIP", "type":"illegal helo as own IP", "halo":"120.215.192.35"}
    
    Parameter Description
    SSIP Illegal helo`ing as own IP
    Halo Source IP address

    LH

    {"class":"SSIP", "type":"illegal helo as own IP", "halo":"120.215.192.35"}
    
    Parameter Description
    * LH Variations on localhost

    FAM

    {"class":"FAM", "type":"helos as someone we know they`re not", "rdns":"ppp-93-104-64-20.dynamic.mnet-online.de", "halo":"striker.ottawa.on.ca"}
    
    Parameter Description
    FAM Helos as someone we know they're not
    rdns Reverse dns of the offending IP

    NOHELO

    {"class":"NOHELO"}
    
    Parameter Description
    NOHELO Missing Helo

    HELI

    {"class":"HELI", "type":"special category", "halo":"test654.com"}
    
    Parameter Description
    HELO Special category for development purposes.

    ExtendedSecl element

    This element contails information about the category of the threat, its IP address, ASN and CIDR, when it was first detected and when was the last activity from this IP address. The possible categories are:

    Parameter Description
    unknown Unknown category
    malware, malicious, ransomware Varius malicious software, viruses, ransomware
    ddos, bot, botnet Botnets
    phishing, defacement Phishing, defaced web sites
    spam, backscatter Known spam sources
    scanner Port scanner
    proxy, tor_list, tor Anonymous proxies
    dyndns
    suspicious Suspicious activity

    Error handling

    Error handling for the JSONx query type is the same as the JSON error handling section.

    Multiple items

    JSONx support multiple items for a single query, and matches the JSON multiple-item format.

    FQDN Queries

    test.baddomain.org;baddomain.org:true,false,,1,0.6,dbl,red,gold,grey,black
    
    {"results":[{"item":"test.baddomain.org","found":true,"score":1,"webscore":0.6,"fromSubnet":false,"sources":["shDBL","ubGrey","ubGold","ubRed","ubBlack"],
    "wl":false,"wldata":"","lastModified":1500970900,"fromParent":"baddomain.org"}],"executionTime":1,"status":"success"}
    
    x-zetascan-fromParent: baddomain.org
    x-zetascan-items: test.baddomain.org
    

    We now support sub-domains (FQDN queries). Some BL’s and White Lists have sub-domains listed. If the item is not a direct hit, we will check the parent domain. For example:

    https://api.zetascan.com/v2/check/{json/jsonx/http/text}/test.baddomain.org

    Check the fromParent key with JSON / JSONx, the x-zetascan-fromParent header with HTTP and the item part in a TEXT query, where the parent will appear separated by semicolon.

    DNSWL data format

    The White List data can have two formats:

    "wldata":"1004" or "wldata":"med;domain.com;id". 1004 is a special case of so-called auto-promoted IP addresses. Their reputation is based on automatic detection.

    The second format has 3 parts: ranking, domain and ID.

    "wldata" field will have empty string or may be missing, if "wl" is false.

    Browser access

    Alternatively, you can test the ZQS using your web-browser. This should be used for test purposes only.

    The service will return list of results with details on where the items were found, query time, and calculated score.

    Note: a 5 second delay is applied to all anonymous user queries. Please register for an API key to remove this delay.

    Alternatively, you can issue a query to our API directly from the browser address bar by entring the query REST URL:

    https://api.zetascan.com/v2/check/text/baddomain.org?key=YOURAPIKEY

    You can then use Developers Tools (usually F12) in your browser to examine the result.

    DNS API

    ZQS provides an rbldns service that combines the information from all the sources we aggregate.

    Multiple query formats are supported, with DNS type records A (ipv4), AAAA (ipv6) and TXT returned.

    Lookup access

    ZQS provides lookup access for a domain or IP address against the *.{APIKEY}.api.zetascan.com FQDN.

    This end-point can be used by MTA/SMTP software such as Exim, Postfix, Sendmail and more, for Anti-spam lookups and abuse prevention. Zetascan is a drop-in replacement for existing RBL services to provide a seamless anti-spam service.

    Domain query

    Domain query:

    dig A baddomain.org.{key}.api.zetascan.com

    
IPv4 query (213.189.1.4), note the IP must be reversed:

    dig TXT 4.1.189.213.{key}.api.zetascan.com

    IPv6 query, note the IP must be reversed and expanded:

    dig AAAA 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.c.b.a.9.8.7.6.5.4.3.2.1.{key}.api.zetascan.com

    Direct access

    Alternatively, you can query api.zetascan.com directly as a nameserver and retrieve results. Your IP address must be specified within the Zetascan dashboard for access to be granted.

    Domain query:

    dig A @api.zetascan.com baddomain.org

    IPv4 query, note, IP is not reverse formatted.

    dig TXT @api.zetascan.com 127.9.9.4

    IPv6 query:

    dig AAAA @api.zetascan.com ::1

    PTR IPv4 query (used for reverse IP lookups):

    dig PTR @api.zetascan.com PTR 1.9.9.127.in-addr.arpa.

    PTR IPv6 query (used for reverse IP lookups):

    dig PTR @api.zetascan.com 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.c.b.a.9.8.7.6.5.4.3.2.1.ip6.arpa

    DNS Response codes

    When querying ZQS via DNS two formatting options are returned, TXT or (A, AAAA, PTR)

    TXT format

    When querying for the DNS TXT type, if the domain/IP is matched, extended information will be returned for the query.

    Query:

    dig +short TXT @api.zetascan.com 127.9.9.4

    Returned response:

    "127.9.9.4:true,true,10;med;zetascan.com;99999,-0.1,-0.1,dnswl"

    The response will be the same format as the REST TEXT Query.

    The format for each item is:

    item;parent:bool,bool,wldata,score,webscore,sources

    Where:

    A, AAAA, PTR format

    When querying via DNS using the A, AAAA, or PTR record types, the following IP addresses will be returned, indicating a match on a specified black-list/white-list and extended reasons. Querying with AAAA will return the IPv6 equivalent of the IPv4 responses described below. See IPv6 Responses.

    Sample dig syntax:

    dig +short 4.9.9.127.{APIKEY}.api.zetascan.com A

    Returned data:

    127.8.10.3

    The IP returned in the 127.X.X.X format is based on the real-time blacklist RBL syntax, pioneered by anti-spam and MTA software.

    Values for each response type listed below:

    127.0.0.x - Spamhaus IP lists

    Parameter Description
    127.0.0.10 PBL (Public/residential) IP addresses, reported by ISP
    127.0.0.11 PBL detected by Spamhaus
    127.0.0.4 XBL Illegal 3rd party exploits, including proxies, worms and trojan exploits
    127.0.0.2 SBL Spamhaus SBL Data
    127.0.0.3 SBL Spamhaus SBL CSS Data
    127.0.0.9 SBL Spamhaus DROP/EDROP Data

    127.0.1.x - Spamhaus Domain Lists

    Parameter Description
    127.0.1.2 spam domain
    127.0.1.4 phish domain
    127.0.1.5 malware domain
    127.0.1.6 botnet C&C domain
    127.0.1.102 abused legit spam
    127.0.1.103 abused spammed redirector domain
    127.0.1.104 abused legit phish
    127.0.1.105 abused legit malware
    127.0.1.106 abused legit botnet C&C
    127.0.1.200 Zero reputation domains

    127.1.0.x - URIBL Domain lists

    Parameter Description
    127.1.0.1 Black
    127.1.0.2 Gold
    127.1.0.3 Grey
    127.1.0.4 Red
    127.1.0.5 White - a Domain White List from URIBL

    127.3.0.1 - Return Path White Lists (Domain or IP)

    127.8.0.x - DNSWL (IP White List)

    Parameter Description
    127.8.x.1 None, auto-discovered
    127.8.x.2 Low ranking
    127.8.x.3 Medium ranking
    127.8.x.4 High ranking

    Where the third digit (x) means the type of industry:

    Parameter Description
    2 Financial services
    3 Email Service Providers
    4 Organizations (both for-profit [i.e. companies] and non-profit)
    5 Service/network providers
    6 Personal/private servers
    7 Travel/leisure industry
    8 Public sector/governments
    9 Media and Tech companies
    10 Some special cases
    11 Education, academic
    12 Healthcare
    13 Manufacturing/Industrial
    14 Retail/Wholesale/Services
    15 Email Marketing Providers
    20 Added through Self Service without specific category

    127.2.0.x - Seclytics Black Lists

    Where the last digit (x) means the category of the threat:

    Parameter Description
    0 unknown
    1 malware
    2 botnet
    3 phishing
    4 malicious
    5 spam
    6 scanner
    7 proxy
    8 ddos
    9 bot
    10 ransomware
    11 dyndns
    12 defacement
    13 tor_list
    14 backscatter
    15 suspicious
    16 tor

    IPv6 Responses

    Each of the above responses can be returned as IPv6 address, if you issue AAAA DNS query, in the following format:

    Scoring factors

    Providers

    Spamhaus

    Source Score (SPAM) Web Score
    SBL 0.4 0.2
    DBL 0.45 0.1
    XBL 0.4 0.1
    PBL 0.2 0
    CBL Web Attacks 0.2 0.3
    CBL Web Server Compromises 0.2 0.2
    CBL Sinkhole 0.2 0.1
    CBL Others 0.2 0.05
    ZRD 0.25 0.25
    BOTNET 1 1
    DROP 1 1

    URIBL

    Source Score (SPAM) Web Score
    Black 0.3 0.2
    Gold 0.15 0.1
    Red 0.1 0.1
    Gray 0.05 0.05
    White -0.1 -0.1

    Seclytics

    Source Score (SPAM) Web Score
    malware 0.9 0.9
    botnet 0.7 0.7
    phishing 0.5 0.5
    malicious 0.6 0.6
    spam 0.4 0.3
    scanner 0.2 0.2
    proxy 0.3 0.3
    ddos 0.8 0.8
    bot 0.3 0.4
    ransomware 0.7 0.7
    dyndns 0.2 0.2
    defacement 0.3 0.3
    tor_list 0.3 0.4
    backscatter 0.4 0.2
    suspicious 0.1 0.1
    tor 0.3 0.4
    unknown 0.1 0.1

    Vade Secure

    Source Score (SPAM) Web Score
    Domains BL 0.8 0.4
    IP BL 0.85 0.45

    DNSWL

    Source Score (SPAM) Web Score
    IP WL -0.1 -0.1

    Return Path - White List

    Source Score (SPAM) Web Score
    IP WL -0.1 -0.1
    Domains WL -0.1 -0.1

    Multiple matches

    If an item is found in more than one source, a score of 0.05 is added to the total calculated as per the tables above. For example, an item found in Spamhaus' SBL and PBL, and Seclytics' Suspicious category, will have score of 0.8 (0.4 + 0.1 + 0.2 + (2x0.05)) This is also true for White Lists, so an item found in two White Lists will have a score of -0.25.

    Propagation

    In the upcoming release we will provide a Propagation score, measuring the speed of detection of new threats, based on internal information we have and rate of updates and queries for a given item.

    Code snippets

    Python

    from requests import Session
    session = Session()
    session.head('https://api.zetascan.com/v2/check/json/127.9.9.1?key=yourkeygoeshere')
    response = session.get(
      url='https://api.zetascan.com/v2/check/json/127.9.9.1?key=yourkeygoeshere'
    )
    print(response.text)
    

    Node.js

    var request = require('request');
    var options = {
      url: 'https://api.zetascan.com/v2/check/json/127.9.9.1?key=yourkeygoeshere',
      json: true
    };
    
    request(options, function(error, response, body) {
      console.log(body);
    });
    

    Javascript

    jQuery(document).ready(function($) {
      $.ajax({
        type: 'GET',
        url: 'https://api.zetascan.com/v2/check/json/127.9.9.1?key=yourkeygoeshere',
        dataType: 'JSON',
        success: function(response) {
          console.log(response);
        },
        error: function(xhr, status, error) {
          console.log(error.toString());
        }
      });
    });