Check an IP address

POST
/v1/risk/ip/check

IP intelligence on its own: Tor exit nodes, cloud and hosting networks, networks mostly used by VPN and proxy services, the network (ASN) and its country. Stateless. Missing IP data is reported in degraded. Sandbox keys see the documentation addresses (192.0.2.1 Tor, .2 cloud, .3 VPN, the rest residential).

Authorization

bearerAuth
headerAuthorizationBearer <token>

A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.

Header Parameters

Coss-Version?"2026-10-10"

The API version (a date) to use for this request. Defaults to your organization's version, pinned to the latest one when it first used the API and upgraded from the dashboard. The SDK always sends the version it was built for.

Value in"2026-10-10"

Request Body

application/json
  1. body
ip*|

The address to check.

Response Body

What COSS knows about the address.

application/json
  1. response
version*|
private*boolean
tor*boolean
hosting*boolean
hosting_provider*string|null
hosting_kind*|
Value in"cloud""hosting""vpn"null
asn*integer|null
as_name*string|null
country*|

ISO 3166-1 alpha-2.

privacy*|

From COSS's IP privacy data provider (VPNs, proxies, relays). null when it isn't available or was not asked (private addresses).

object*"risk_ip_check"
Value in"risk_ip_check"
ip*string
degraded*array<>

ip_data when some IP data (Tor exits, cloud ranges, networks and countries) is unavailable at the moment; ip_privacy when the privacy data provider failed or timed out.

import { Coss } from "coss";const coss = new Coss({  apiKey: process.env.COSS_API_KEY,  baseUrl: "https://api.coss.com",});const { data, error } = await coss.risk.checkIp("185.220.101.1");
{  "object": "risk_ip_check",  "ip": "185.220.101.1",  "version": 4,  "private": false,  "tor": true,  "hosting": false,  "hosting_provider": null,  "hosting_kind": null,  "asn": 60729,  "as_name": "Stiftung Erneuerbare Freiheit",  "country": "DE",  "privacy": null,  "degraded": []}