Watch-IP
IP、邮箱与登录风险 API

IP 地理定位、邮箱检查与登录风险信号,一个 API 全搞定。

在浏览器中定位网站访问者,从后端查询 IP 地址,识别注册邮箱中的一次性域名和拼写错误,并在登录时标记不可能的出行——全部使用同一个套餐和同一个每月请求额度。卡片预览的是本次页面请求的边缘数据和本地补充信息,并非 API 响应。

页面请求边缘预览request.cf
Columbus, OH, US

216.73.216.231

显示 Columbus 标记位置的地图
坐标
39.9612, -82.9988
时区
America/New_York
邮政编码
43215
大洲
NA
网络
Anthropic, PBC
ASN
AS16509
货币
$ USD
国家电话区号
+1
日出/日落
7:49 / 18:42
设备
—
安全
不可用——未检查

为您的任务选择合适的 API

定位您网站上的访问者

使用限制在您允许来源范围内的公开可用密钥,直接从浏览器调用访问者地理位置 API。利用近似的国家和城市数据、时区及可用的区域上下文信息,为用户提供更贴合的体验建议。

探索访问者地理位置 →

从后端查询一个 IP

您的应用中已经有一个 IP 地址了吗?将其发送到 IP 查询端点,从您的服务器发起调用。密钥用于验证请求身份,响应中包含来自第三方 IP 地理定位数据库的位置字段。

探索 IP 查询 API →

批量处理 IP 地址列表

在一次批量请求中最多发送 100 个 IP 地址,获得一份有序的查询结果列表,用于报表、数据补充及其他后端工作流。查询用量按 IP 计算,而非按批量请求计算。

探索批量 IP 查询 →

在注册时检查邮箱地址

检查语法、已知的一次性域名、域名是否有邮件服务器、可能的拼写错误和角色地址,并获得附带理由的接受、复核或拒绝判定。可使用可公开密钥从表单中调用,也可从后端或控制台每次请求检查最多 100 个地址——或最多 100,000 个地址的列表。

了解邮箱检查 →

一次调用为新注册评分

POST /v1/signup/check 将邮箱检查与注册 IP 的国家和网络、取决于套餐的 VPN、Tor 和数据中心指标,以及邮箱域名的注册时长相结合,给出 0–100 的评分和附带理由的判定。评分是您决策的参考,而非滥用的证据。

查看注册防滥用流程 →

在登录时标记不可能的出行

POST /v1/risk/check 将登录 IP 的大致位置与该用户上一次存储的位置进行比较,返回距离、间隔时间、推算速度和风险等级。它可能产生误报,也不能证明账户被盗用。

了解不可能出行检测 →

浏览器集成示例与边缘预览

该示例展示了如何从浏览器调用 GET /v1/geo。它并未被实际执行以生成此预览。位置信息来自本次页面请求;补充信息在本地推导得出。缺失的值表示不可用,且未运行安全检查。

示例请求——未执行

import { WatchIP } from "@digitload/watch-ip-sdk";

const client = new WatchIP("wip_pub_xxxxxxxx");
const { country, city, timezone, currency, callingCode } = await client.getGeo();

页面请求预览——并非 API 响应

{
  "ip": "216.73.216.231",
  "country": "US",
  "region": "Ohio",
  "regionCode": "OH",
  "city": "Columbus",
  "postalCode": "43215",
  "latitude": 39.96118,
  "longitude": -82.99879,
  "continent": "NA",
  "timezone": "America/New_York",
  "isEUCountry": false,
  "asn": 16509,
  "asOrganization": "Anthropic, PBC",
  "currency": {
    "code": "USD",
    "name": "US Dollar",
    "symbol": "$"
  },
  "callingCode": "+1",
  "compliance": {
    "isGDPR": false,
    "usPrivacyLaw": null,
    "isLGPD": false,
    "requiresCookieConsent": false,
    "dataResidencyZone": "US",
    "isEmbargoedCountry": false
  },
  "locale": {
    "suggestedLocale": "en-US",
    "measurementSystem": "imperial",
    "firstDayOfWeek": 0,
    "dateFormat": "MM/DD/YYYY"
  },
  "sun": {
    "sunrise": "2026-10-23T11:49:40.834Z",
    "sunset": "2026-10-23T22:42:44.749Z"
  },
  "holiday": {
    "isPublicHolidayToday": false,
    "todayHolidayName": null,
    "nextHoliday": {
      "date": "2026-11-11",
      "name": "Veterans Day"
    }
  },
  "age": {
    "ageOfMajority": 18,
    "drinkingAge": 21,
    "adultContentVerificationRequired": true,
    "jurisdictionNote": "HB 96 (2025)"
  },
  "tax": {
    "jurisdictionCode": "US-OH",
    "taxSystem": "US_SALES_TAX",
    "rate": null
  },
  "userAgent": {
    "browser": null,
    "browserVersion": null,
    "os": null,
    "osVersion": null,
    "deviceType": "bot"
  }
}

访问者与后端地理位置

在访问者的浏览器中使用公开可用密钥调用 GET /v1/geo。在您的后端使用密钥调用 GET /v1/lookup/{ip} 或 POST /v1/lookup 查询提供的 IP。

一个套餐涵盖所有检查

地理定位、IP 查询以及邮箱、注册和不可能出行检查都消耗同一个每月请求额度——每次调用、每个被检查的 IP 或地址计为一次请求。无需另购产品,包括 Free 在内的每个套餐都可以签发两种类型的密钥。

域名级邮箱检查

邮箱检查会查看语法、域名是否为一次性域名及其邮件服务器记录、可能的拼写错误和角色地址。它从不连接邮箱,因此任何结果都不能确认某个地址存在或能够接收邮件。

来源锁定密钥

您的 API 密钥是公开可用的,就像 Stripe 或 Google Maps 的密钥一样。请求仅会响应您注册的来源——CORS 也仅授予这些来源。

边缘地理位置

GET /v1/geo 读取当前连接 IP 的网络级位置数据。IP 位置为近似值;响应时间取决于请求内容及已启用的功能。

区域信息补充

访问者响应会根据位置和请求头推导出货币、国家电话区号、日出日落时间及设备提示信息。当来源数据不可用时,相关字段可能为 null。

区域合规提示

静态的国家与地区映射提供合规提示信息。它们不构成法律义务,也不保证合规性。

为您完成的语言环境协商

每个响应都包含一个 locale 对象:最匹配的 BCP47 语言环境(结合访问者的国家与其浏览器自带的 Accept-Language 请求头得出,因此一位身处加拿大、使用法语的访问者会得到 fr-CA,而非 fr-FR),以及计量单位制、一周的起始日和日期格式——无需在您自己的 i18n 层中重复实现这些逻辑。

公共假日日历

每个响应都包含一个 holiday 对象:今天是否为访问者所在国家的公共假日、假日名称,以及下一个即将到来的假日——适用于“我们今天休息”的客服提示文案、结账提示信息或排期逻辑,覆盖精心整理的约 40 个国家名单。

年龄管辖提示

静态映射根据近似的 IP 位置提供年龄与管辖区域提示信息。它们不验证身份或年龄;请自行确认适用的具体要求。

税务管辖提示

静态映射提供区域税务背景信息。它们并非税务计算,也不能替代持续维护的税务引擎。

SDK 源码包

代码仓库包含 JavaScript/TypeScript、Python、PHP、Go 及 Flutter/Dart 客户端。端点支持范围各有不同;安装前请查阅文档并确认软件包的可用性。

VPN、Tor 与网络信号

符合条件的访问者方案包含基于名单的 VPN、Tor、数据中心、威胁及受制裁网络指标。误判标记为 false 仅表示在可用数据中未找到匹配项,并不代表访问者是安全的。IPv6 覆盖范围有限;IPv6 上的 Tor 未被覆盖。

品牌自定义子域名

Growth 与 Scale 方案在控制台中提供自定义域名设置路径。是否可用取决于账户资格,以及 DNS 与 SSL 配置是否成功;集成时必须使用配置好的基础 URL。

异常位移信号

POST /v1/risk/check 会将提供的 IP 的近似位置与已存储的用户基线进行比较。该功能可能产生误报,也不能证明账户已被盗用。请联系我们以确认可用性及开通情况。

集成之前,先了解响应内容

访问者与查询这两个 API 服务于不同的请求,并返回不同的数据。访问者地理位置使用当前连接请求的边缘地理位置信息,并补充区域上下文;IP 查询则使用第三方 IP 地理定位数据库解析您提供的地址。查询响应并不包含访问者地理位置中所有的补充信息——例如,当前的数据源不提供邮政编码和时区信息。邮箱、注册和风险检查分别处理您发送的输入——一个邮箱地址,或一个用户 ID 和 IP——下表每一行都消耗同一个每月请求额度。

您的任务端点密钥数据重点
定位当前连接的网站访问者GET /v1/geo公开可用,限制来源访问者位置及区域上下文信息
查询单个提供的 IPGET /v1/lookup/{ip}Bearer 密钥第三方 IP 地理定位数据库位置查询结果
查询多个提供的 IPPOST /v1/lookupBearer 密钥最多 100 条有序位置查询结果
在注册表单中检查邮箱地址POST /v1/email/validate公开可用,限制来源语法、一次性域名、邮件服务器和拼写错误信号,附带判定
批量检查邮箱地址POST /v1/email/batch, /v1/email/jobsBearer 密钥每次请求最多 100 个,或每个异步列表任务最多 100,000 个
为新注册评分POST /v1/signup/checkBearer 密钥基于邮箱、IP 网络和域名注册时长信号的 0–100 评分
将登录与上一次位置比较POST /v1/risk/checkBearer 密钥距离、推算速度和不可能出行标记

常见问题

Watch-IP 能定位我提供的 IP 地址吗?

可以。请使用带有密钥的服务器端 IP 查询 API。浏览器访问者端点定位的是当前连接的客户端,不接受任意指定的 IP 进行查询。

我可以在浏览器的 JavaScript 中使用 Watch-IP 吗?

请使用为您网站来源配置好的公开可用密钥调用访问者地理位置。查询密钥仅应保存在您的后端,绝不应出现在浏览器代码中。

IP 地理位置与浏览器的 Geolocation API 是一回事吗?

不是。Watch-IP 根据 IP 连接估算位置。浏览器的 Geolocation API 是一种独立机制,可请求权限以获取设备提供的位置信息。

我可以查询 IPv4 和 IPv6 地址吗?

查询端点接受有效的 IPv4 和 IPv6 地址,具体取决于数据库中是否存在对应记录。安全信号的覆盖范围是另一个问题,会因指标和 IP 版本而异。

Watch-IP 有免费方案吗?

有。Free 套餐包含每月请求额度以及较小的 IP 查询额度;当前限制请参阅定价页面。邮箱、注册和不可能出行检查消耗同一额度,无需单独套餐。

邮箱检查会确认邮箱是否存在吗?

不会。Watch-IP 检查语法、域名(一次性域名列表、邮件服务器记录、注册时长)以及拼写错误和角色账户等地址模式。它不会连接邮件服务器,因此任何结果都不能确认邮箱存在或能够接收邮件。

邮箱检查和风险检查需要单独的套餐吗?

不需要。每个被检查的地址、每次注册检查或不可能出行检查,都与您的地理定位和查询调用一样,计为同一每月额度中的一次请求。后端端点使用您在控制台中签发的密钥。

安全标记为 false 是否意味着该访问者是安全的?

不是。它只表示所使用的数据中未找到匹配项。覆盖不足、未列入名单的网络以及不可用的信号,都需要单独考量。

选择您的第一个集成

网站可从访问者指南开始,后端应用可从 IP 查询产品页开始,注册表单可从邮箱检查开始。