接口参考
TG Validator API 文档
所有端点共用同一个 API Key 与余额。
| 项目 | 值 |
|---|---|
| Base URL | https://tgvalidator.com |
| 鉴权头 | X-API-Key: sk_your_api_key |
| 响应结构 | { code, msg, data } |
本页不列价格;每款产品按成功检测计费。 查看定价
认证
使用在设置中创建的 API Key,并随每次请求一起发送。
鉴权头
X-API-Key: sk_your_api_key妥善保管您的 API Key请始终从您的服务端发起请求;持有该 Key 的任何人都可以消耗您的账户余额。
同步检测
POST/api/v1/checkPOST/api/v1/batch-check
提交一个手机号,或在一次请求里提交最多 100 个,结果都在同一次响应里返回,不需要轮询也不需要回调。无法判定时返回 422 与业务码 42200,且不计费。多号请求保持提交顺序、每个标识独立计费,整批限时 300 秒,超时则整批失败并全额退款。
请求参数
| 字段 | 类型 | 说明 |
|---|---|---|
service_type | string | 产品码,取下面列出的任一产品。 |
identifier | string | 单号检测用:一个手机号。服务端会做归一化。 |
identifiers | string[] | 多号检测用:1~100 个手机号,响应按此顺序返回。 |

Telegram 注册检测
tg手机号通过同步 API 或 SaaS 网页后台确认号码是否已注册 Telegram,适合发送前检查联系人名单。
单号检测
POST/api/v1/check请求
curl -X POST "https://tgvalidator.com/api/v1/check" \
-H "X-API-Key: sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{ "service_type": "tg", "identifier": "+17253100591" }'{
"code": 0,
"msg": "ok",
"data": {
"service_type": "tg",
"identifier": "+17253100591",
"registered": true
}
}响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
registered | boolean | 号码是否已注册 Telegram。 |
多号检测
POST/api/v1/batch-check请求
curl -X POST "https://tgvalidator.com/api/v1/batch-check" \
-H "X-API-Key: sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{ "service_type": "tg", "identifiers": ["+17253100591", "+14155550000", "12345"] }'响应
{
"code": 0,
"msg": "ok",
"data": {
"service_type": "tg",
"total": 3,
"succeeded": 2,
"failed": 1,
"results": [
{
"identifier": "+17253100591",
"exists": true,
"registered": true
},
{
"identifier": "+14155550000",
"exists": true,
"registered": false
},
{
"identifier": "12345",
"exists": false
}
]
}
}响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
exists | boolean | 该号码是否得到了结果。为 false 表示号码格式错误、结果无法判定或本次检测失败;为 false 时,以下字段均不出现。 |
registered | boolean | 该号码是否已注册。仅当 exists 为 true 时出现,含义与单号检测一致。 |
异步检测
POST/api/v1/bulk-tasksGET/api/v1/bulk-tasks/{id}
上传文件后立刻拿到任务号,之后按任务号查询;成功的响应里带 result_url 结果下载链接。对外只有提交与查询两个动作,轮询间隔不要短于 30 秒。
请求参数
| 字段 | 类型 | 说明 |
|---|---|---|
service_type | string | 批量产品码,取下面列出的任一产品。 |
country | string | ISO 3166-1 国家码(如 US)。号码类任务必填:每个号码都要带国家码并属于这个国家(不符合的号码会被排除、不计费),也用它选路。multipart 时必须排在 file 之前。 |
file | file | .txt 或 .csv,每行一个标识,不超过 max_file_bytes(默认 20MB)。 |
Idempotency-Key | header | 可选,≤128 字符。同一个 key 重放返回原任务,不会重复建单。 |
本类产品
Telegram 批量注册检测tg_batch上传一整份号码文件,批量确认哪些号码已注册 Telegram,完成后下载结果文件。产品页
Telegram 批量活跃度检测tg_active_batch在批量确认注册状态的同时,返回用户 ID、用户名与活跃天数(距上次在线的天数)。产品页
Telegram 批量资料检测tg_profile_batch批量返回用户 ID、用户名、活跃天数、头像链接,以及根据头像估算的年龄、性别与肤色。产品页
Telegram 批量用户名检测tg_username_batch上传一份 Telegram 用户名清单,批量确认哪些用户名对应真实账号。产品页
Telegram 批量用户名资料检测tg_username_profile_batch批量返回一份用户名清单的用户 ID、活跃天数与头像链接。产品页

Telegram 批量注册检测
tg_batch手机号每任务 1,000–500,000上传一整份号码文件,批量确认哪些号码已注册 Telegram,完成后下载结果文件。
提交任务
POST/api/v1/bulk-tasks请求
curl -X POST "https://tgvalidator.com/api/v1/bulk-tasks" \
-H "X-API-Key: sk_your_api_key" \
-F service_type=tg_batch \
-F country=US \
-F file=@numbers.txt响应
{
"code": 0,
"msg": "ok",
"data": {
"id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
"product": "tg_batch",
"status": "processing",
"country": "US",
"submitted_lines": 1015,
"total": 1015,
"invalid_cnt": 0,
"no_code_cnt": 0,
"other_country_cnt": 0,
"duplicate_cnt": 0,
"preparing": true,
"created_at": "2026-09-08T09:30:00Z"
}
}查询任务
GET/api/v1/bulk-tasks/{id}请求
curl "https://tgvalidator.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
-H "X-API-Key: sk_your_api_key"响应
{
"code": 0,
"msg": "ok",
"data": {
"id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
"product": "tg_batch",
"status": "success",
"country": "US",
"submitted_lines": 1015,
"total": 1000,
"invalid_cnt": 3,
"no_code_cnt": 0,
"other_country_cnt": 0,
"duplicate_cnt": 12,
"preparing": false,
"success_cnt": 990,
"failure_cnt": 10,
"result_url": "https://…/result.csv",
"created_at": "2026-09-08T09:30:00Z"
}
}结果列
| 字段 | 示例 | 说明 |
|---|---|---|
identifier | 17253100591 | 提交的号码,统一为带国家码的纯数字,不含加号和空格(例如 17253100591)。 |
activated | true | 该号码是否已注册 Telegram:true 或 false。 |

Telegram 批量活跃度检测
tg_active_batch手机号每任务 1,000–500,000在批量确认注册状态的同时,返回用户 ID、用户名与活跃天数(距上次在线的天数)。
提交任务
POST/api/v1/bulk-tasks请求
curl -X POST "https://tgvalidator.com/api/v1/bulk-tasks" \
-H "X-API-Key: sk_your_api_key" \
-F service_type=tg_active_batch \
-F country=US \
-F file=@numbers.txt响应
{
"code": 0,
"msg": "ok",
"data": {
"id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
"product": "tg_active_batch",
"status": "processing",
"country": "US",
"submitted_lines": 1015,
"total": 1015,
"invalid_cnt": 0,
"no_code_cnt": 0,
"other_country_cnt": 0,
"duplicate_cnt": 0,
"preparing": true,
"created_at": "2026-09-08T09:30:00Z"
}
}查询任务
GET/api/v1/bulk-tasks/{id}请求
curl "https://tgvalidator.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
-H "X-API-Key: sk_your_api_key"响应
{
"code": 0,
"msg": "ok",
"data": {
"id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
"product": "tg_active_batch",
"status": "success",
"country": "US",
"submitted_lines": 1015,
"total": 1000,
"invalid_cnt": 3,
"no_code_cnt": 0,
"other_country_cnt": 0,
"duplicate_cnt": 12,
"preparing": false,
"success_cnt": 990,
"failure_cnt": 10,
"result_url": "https://…/result.csv",
"created_at": "2026-09-08T09:30:00Z"
}
}结果列
| 字段 | 示例 | 说明 |
|---|---|---|
identifier | 17253100591 | 提交的号码,统一为带国家码的纯数字,不含加号和空格(例如 17253100591)。 |
activated | true | 该号码是否已注册 Telegram:true 或 false。不为 true 时,该行其余各列留空。 |
uid | 1234567890 | Telegram 用户 ID。 |
username | alex_kim | 用户名,未设置时为空。 |
activedays | 9 | 距上次在线的天数(整数),数值越小越近期。账号隐藏了精确在线时间时,Telegram 只给出大致范围,此时为近似值:0(最近)、7(一周内)、30(一月内)或 1000(很久以前)。 |

Telegram 批量资料检测
tg_profile_batch手机号每任务 1,000–500,000批量返回用户 ID、用户名、活跃天数、头像链接,以及根据头像估算的年龄、性别与肤色。
提交任务
POST/api/v1/bulk-tasks请求
curl -X POST "https://tgvalidator.com/api/v1/bulk-tasks" \
-H "X-API-Key: sk_your_api_key" \
-F service_type=tg_profile_batch \
-F country=US \
-F file=@numbers.txt响应
{
"code": 0,
"msg": "ok",
"data": {
"id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
"product": "tg_profile_batch",
"status": "processing",
"country": "US",
"submitted_lines": 1015,
"total": 1015,
"invalid_cnt": 0,
"no_code_cnt": 0,
"other_country_cnt": 0,
"duplicate_cnt": 0,
"preparing": true,
"created_at": "2026-09-08T09:30:00Z"
}
}查询任务
GET/api/v1/bulk-tasks/{id}请求
curl "https://tgvalidator.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
-H "X-API-Key: sk_your_api_key"响应
{
"code": 0,
"msg": "ok",
"data": {
"id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
"product": "tg_profile_batch",
"status": "success",
"country": "US",
"submitted_lines": 1015,
"total": 1000,
"invalid_cnt": 3,
"no_code_cnt": 0,
"other_country_cnt": 0,
"duplicate_cnt": 12,
"preparing": false,
"success_cnt": 990,
"failure_cnt": 10,
"result_url": "https://…/result.csv",
"created_at": "2026-09-08T09:30:00Z"
}
}结果列
| 字段 | 示例 | 说明 |
|---|---|---|
identifier | 17253100591 | 提交的号码,统一为带国家码的纯数字,不含加号和空格(例如 17253100591)。 |
activated | true | 该号码是否已注册 Telegram:true 或 false。不为 true 时,该行其余各列留空。 |
uid | 1234567890 | Telegram 用户 ID。 |
username | alex_kim | 用户名,未设置时为空。 |
activedays | 9 | 距上次在线的天数(整数),数值越小越近期。账号隐藏了精确在线时间时,Telegram 只给出大致范围,此时为近似值:0(最近)、7(一周内)、30(一月内)或 1000(很久以前)。 |
avatar_url | https://telegram.waavatar.xyz/v/example.jpg | 头像链接,没有头像时为空。 |
age | 31 | 根据头像估算的年龄;无法估算时为空。 |
gender | male | 根据头像估算的性别:male 或 female;认不出为 unknown,没有头像时为空。 |
skin_color | white | 根据头像估算的肤色,例如 white、middle_eastern、east_asian;认不出为 unknown,没有头像时为空。 |

Telegram 批量用户名检测
tg_username_batch用户名每任务 1,000–500,000上传一份 Telegram 用户名清单,批量确认哪些用户名对应真实账号。
提交任务
POST/api/v1/bulk-tasks请求
curl -X POST "https://tgvalidator.com/api/v1/bulk-tasks" \
-H "X-API-Key: sk_your_api_key" \
-F service_type=tg_username_batch \
-F file=@usernames.txt响应
{
"code": 0,
"msg": "ok",
"data": {
"id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
"product": "tg_username_batch",
"status": "processing",
"submitted_lines": 1015,
"total": 1015,
"invalid_cnt": 0,
"no_code_cnt": 0,
"other_country_cnt": 0,
"duplicate_cnt": 0,
"preparing": true,
"created_at": "2026-09-08T09:30:00Z"
}
}查询任务
GET/api/v1/bulk-tasks/{id}请求
curl "https://tgvalidator.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
-H "X-API-Key: sk_your_api_key"响应
{
"code": 0,
"msg": "ok",
"data": {
"id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
"product": "tg_username_batch",
"status": "success",
"submitted_lines": 1015,
"total": 1000,
"invalid_cnt": 3,
"no_code_cnt": 0,
"other_country_cnt": 0,
"duplicate_cnt": 12,
"preparing": false,
"success_cnt": 990,
"failure_cnt": 10,
"result_url": "https://…/result.csv",
"created_at": "2026-09-08T09:30:00Z"
}
}结果列
| 字段 | 示例 | 说明 |
|---|---|---|
identifier | alex_kim | 提交的用户名,不含 @ 与 t.me/ 前缀(例如 alex_kim)。 |
activated | true | 该用户名是否对应一个存在的 Telegram 账号:true 或 false。 |

Telegram 批量用户名资料检测
tg_username_profile_batch用户名每任务 1,000–500,000批量返回一份用户名清单的用户 ID、活跃天数与头像链接。
提交任务
POST/api/v1/bulk-tasks请求
curl -X POST "https://tgvalidator.com/api/v1/bulk-tasks" \
-H "X-API-Key: sk_your_api_key" \
-F service_type=tg_username_profile_batch \
-F file=@usernames.txt响应
{
"code": 0,
"msg": "ok",
"data": {
"id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
"product": "tg_username_profile_batch",
"status": "processing",
"submitted_lines": 1015,
"total": 1015,
"invalid_cnt": 0,
"no_code_cnt": 0,
"other_country_cnt": 0,
"duplicate_cnt": 0,
"preparing": true,
"created_at": "2026-09-08T09:30:00Z"
}
}查询任务
GET/api/v1/bulk-tasks/{id}请求
curl "https://tgvalidator.com/api/v1/bulk-tasks/3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13" \
-H "X-API-Key: sk_your_api_key"响应
{
"code": 0,
"msg": "ok",
"data": {
"id": "3f9c2a7d8e4b4c1a9f0e6b2d5c8a7e13",
"product": "tg_username_profile_batch",
"status": "success",
"submitted_lines": 1015,
"total": 1000,
"invalid_cnt": 3,
"no_code_cnt": 0,
"other_country_cnt": 0,
"duplicate_cnt": 12,
"preparing": false,
"success_cnt": 990,
"failure_cnt": 10,
"result_url": "https://…/result.csv",
"created_at": "2026-09-08T09:30:00Z"
}
}结果列
| 字段 | 示例 | 说明 |
|---|---|---|
identifier | alex_kim | 提交的用户名,不含 @ 与 t.me/ 前缀(例如 alex_kim)。 |
activated | true | 该用户名是否对应一个存在的 Telegram 账号:true 或 false。不为 true 时,该行其余各列留空。 |
uid | 1234567890 | Telegram 用户 ID;账号存在时也可能为空。 |
activedays | 9 | 距上次在线的天数(整数),数值越小越近期。账号隐藏了精确在线时间时,Telegram 只给出大致范围,此时为近似值:0(最近)、7(一周内)、30(一月内)或 1000(很久以前)。账号没有公开任何在线信息时为空。 |
avatar_url | https://cdn5.telesco.pe/file/example.jpg | 头像链接,没有头像时为空。 |
余额查询
GET/api/v1/balance
查询账户当前余额(USD micros)。只读接口:不产生检测记录,也不扣费。
余额查询
GET/api/v1/balance请求
curl "https://tgvalidator.com/api/v1/balance" \
-H "X-API-Key: sk_your_api_key"响应
{
"code": 0,
"msg": "ok",
"data": {
"balance_micros": 12500000
}
}并发、超时与重试方式
Telegram 注册检测采用同步响应,请根据返回码决定接收结果或稍后重试。
| 字段 | 说明 |
|---|---|
每个用户最多 5 个请求在处理 | 单号检测与多号检测共用这个上限,一次多号请求算一个请求,与号码数量无关。此外每个账号同时只能跑 1 个多号检测,第二个会被拒绝直到前一个结束。达到任一上限都会立即返回业务码 42901 并附带 Retry-After 响应头,不扣费,等已有请求结束后再提交即可。 |
单号 60 秒,多号 300 秒 | 超过后返回业务码 50400,不计费;多号超时是整批失败,不返回部分结果,已扣费用全额退回。 |
多号单次最多 100 个号码 | 结果按提交顺序、同等长度返回。每个账号同时只跑 1 个多号检测,上一批返回后再提交下一批。 |
错误码
| 业务码 | 说明 |
|---|---|
40000 | 不支持的 service_type 或字段冲突 |
40001 | JSON 请求体无效 |
40002 | 号码无效 |
40100 | 缺少或无效的 API Key |
40200 | 余额不足 |
42200 | 暂时无法判定该号码。不返回 data,且本次不计费 |
42900 | 次数配额已用完,或未完成订单数超限 |
42901 | 5 个在处理的请求名额已满,或该账号已有一个多号检测在跑;已有请求结束后可再次提交,拒绝请求不扣余额,响应带 Retry-After |
50303 | 平台此刻处理中的检测已达上限,不扣费;按 Retry-After 的秒数等待后重新提交同一请求 |
50400 | 本次检测未在超时预算内完成,不计费,可直接重试;批量超时为整批失败并全额退款 |
50300 | 检测服务维护中 |