TelRump API
텔레그램 가입자 추출과 계정 구매를 내 프로그램·서버에서 자동으로 처리하는 API 입니다.
通过 API 在您自己的程序或服务器中自动完成 Telegram 注册用户筛选 与 账号购买。
개요概述
| 기본 주소 | 基础地址 | https://telrump.com/api/v1 |
|---|---|---|
| 인증 | 认证 | 요청 헤더 请求头 X-API-Key: tlr_... |
| 형식 | 格式 | JSON (UTF-8) · 시간은 UTC ISO 8601时间为 UTC ISO 8601 |
| 요금 | 费用 | USDT · 웹과 같은 가격으로 내 잔액에서 차감 (실패한 추출은 자동 환불)USDT · 与网页价格相同,从账户余额扣除(筛选失败自动退款) |
| 요청 제한 | 频率限制 | 키당 분당 120회 (초과 시 429)每个密钥每分钟 120 次(超出返回 429) |
인증 · API 키认证 · API 密钥
- telrump.com 로그인 → 상단 API 메뉴 → 새 키 만들기. 키는 그때 한 번만 보여요.
- 登录 telrump.com → 顶部 API 菜单 → 新建密钥。密钥只显示一次,请妥善保存。
- 모든 요청에
X-API-Key헤더를 넣으세요. (Authorization: Bearer tlr_...도 가능) - 所有请求都需携带
X-API-Key请求头(也可使用Authorization: Bearer tlr_...)。
오류 형식错误格式
실패하면 HTTP 상태 코드와 함께 아래 형식으로 응답합니다.
请求失败时返回 HTTP 状态码及以下格式:
{ "error": { "code": "insufficient_balance", "message": "잔액 부족 (필요: 0.7182 USDT, 보유: 0.1000 USDT)" } }
| HTTP | code | 의미 | 说明 |
|---|---|---|---|
| 401 | missing_api_key / invalid_api_key | 키가 없거나 잘못됨 / 폐기됨 | 缺少密钥或密钥无效 / 已作废 |
| 403 | api_not_enabled / account_inactive | API 사용이 차단된 계정 / 사용 불가 계정 | API 已被停用 / 账号不可用 |
| 429 | rate_limited | 요청이 너무 많음 (잠시 후 재시도) | 请求过于频繁(稍后重试) |
| 402 | insufficient_balance | 잔액 부족 | 余额不足 |
| 400 | no_numbers / too_few_numbers / too_many_numbers | 번호 없음 / 최소 개수 미만 / 최대 개수 초과 | 无号码 / 少于最低数量 / 超过最大数量 |
| 400 | invalid_json / invalid_webhook_url / unsupported_country | 요청 형식 오류 | 请求格式错误 |
| 400 | invalid_days / invalid_premium / invalid_format | 다운로드 옵션 오류 | 下载参数错误 |
| 400 | invalid_category / invalid_quantity | 구매 옵션 오류 | 购买参数错误 |
| 404 | job_not_found / account_not_found | 작업 / 계정 없음 | 任务 / 账号不存在 |
| 409 | not_ready / out_of_stock / not_connected | 결과 아직 없음 / 재고 부족 / 계정 연결 중 | 结果未完成 / 库存不足 / 账号连接中 |
| 413 | file_too_large | 파일 20MB 초과 | 文件超过 20MB |
| 502 | order_failed | 추출 주문 실패 — 차감액은 즉시 환불됨 | 任务创建失败 — 扣款已立即退还 |
| 503 | service_unavailable | 일시적으로 사용할 수 없음 | 服务暂时不可用 |
잔액 조회余额查询
GET/api/v1/me
curl https://telrump.com/api/v1/me -H "X-API-Key: tlr_..."
{ "username": "myid", "balance": 120.5, "currency": "USDT" }
가입자 추출 — 가격·조건注册用户筛选 — 价格与条件
번호 목록 중 텔레그램에 가입된 번호와 마지막 접속 시간을 찾아줍니다.
从号码列表中找出已注册 Telegram 的号码及其最后上线时间。
GET/api/v1/extract/price
{
"service": "telegram_active",
"price_per_number": 0.0006,
"currency": "USDT",
"min_numbers": 500,
"max_numbers": 1000000,
"countries": ["KR"],
"download_days": [1, 3, 5, 7]
}
요금 = price_per_number × 제출한 번호 수 (중복 제거 후). 가격은 바뀔 수 있으니 주문 전에 확인하세요.
费用 = price_per_number × 提交号码数(去重后)。价格可能调整,请在下单前确认。
추출 주문创建筛选任务
POST/api/v1/extract
JSON 또는 multipart/form-data(파일 업로드)로 보낼 수 있어요.
支持 JSON 或 multipart/form-data(上传文件)。
| 필드 | 字段 | 설명 | 说明 |
|---|---|---|---|
numbers | 번호 배열 또는 줄바꿈 문자열. 숫자만 남기고 7~15자리만 인정, 중복 제거 (예: 821012345678) | 号码数组或换行分隔的字符串。仅保留数字,7~15 位有效,自动去重(例:821012345678) | |
file | (multipart) txt 파일, 한 줄에 번호 하나, 최대 20MB. numbers 와 함께 보내면 합쳐짐 | (multipart)txt 文件,每行一个号码,最大 20MB。与 numbers 同时提交时合并 | |
country | 선택 · 현재 KR 만 지원 (생략하면 KR) | 可选 · 目前仅支持 KR(省略即为 KR) | |
title | 선택 · 작업 이름 (최대 60자) | 可选 · 任务名称(最多 60 字) | |
webhook_url | 선택 · 완료/실패 시 알림 받을 주소 (웹훅) | 可选 · 完成/失败时的通知地址(Webhook) |
curl -X POST https://telrump.com/api/v1/extract \
-H "X-API-Key: tlr_..." -H "Content-Type: application/json" \
-d '{"numbers":["821012345678","821087654321"],"title":"11월 DB","webhook_url":"https://example.com/hook"}'
# 파일로 보내기上传文件
curl -X POST https://telrump.com/api/v1/extract \
-H "X-API-Key: tlr_..." -F "file=@numbers.txt" -F "title=11월 DB"
응답 201 — 잔액에서 바로 차감되고 작업이 대기열에 들어갑니다.
返回 201 — 立即从余额扣款,任务进入队列。
{
"job": {
"id": 45, "title": "11월 DB", "status": "queued", "progress": 0, "country": "KR",
"input_count": 20000, "registered_count": 0, "premium_count": 0,
"cost": 12.0, "currency": "USDT", "refunded": false, "error": null,
"created_at": "2026-11-02T05:20:58Z", "completed_at": null, "download_ready": false
},
"balance": 108.5
}
작업 조회查询任务
GET/api/v1/extract/{id}
GET/api/v1/extract?limit=50최근 작업 목록 (최대 200)最近任务列表(最多 200)
| status | 의미 | 说明 |
|---|---|---|
queued | 대기 중 | 排队中 |
running | 처리 중 (progress 0~100) | 处理中(progress 0~100) |
completed | 완료 — registered_count(가입 번호 수), premium_count(프리미엄 수) 확정, 다운로드 가능 | 完成 — registered_count(已注册数)、premium_count(会员数)确定,可下载 |
failed | 실패 — refunded: true, 요금 자동 환불 | 失败 — refunded: true,费用自动退还 |
대략 2만 개 기준 몇 분 걸려요. 상태 조회는 10~30초 간격이면 충분하고, 웹훅을 쓰면 조회하지 않아도 됩니다.
约 2 万个号码需要几分钟。建议每 10~30 秒查询一次;使用 Webhook 则无需轮询。
결과 다운로드下载结果
GET/api/v1/extract/{id}/download?days=1&premium=all&format=txt
| 파라미터 | 参数 | 값 | 取值 |
|---|---|---|---|
days | all(기본, 가입 번호 전체) · 1 · 3 · 5 · 7 = 최근 N일 이내 접속 | all(默认,全部注册号码)· 1 · 3 · 5 · 7 = 最近 N 天内上线 | |
premium | all(기본) · 1 프리미엄만 · 0 일반만 | all(默认)· 1 仅会员 · 0 仅普通 | |
format | txt(기본, 한 줄에 번호 하나) · xlsx(전체 데이터 엑셀) | txt(默认,每行一个号码)· xlsx(完整数据 Excel) |
all 과 엑셀에만 포함.all 与 Excel 中。xlsx 열: 전화번호 · 유저ID · 아이디(@) · 성 · 이름 · 프리미엄 · 동결 여부 · 마지막 접속 · 접속 경과일 (한글). 완료 전에 요청하면 409 not_ready.
xlsx 列:电话号码 · 用户ID · 用户名 · 姓 · 名 · 会员 · 是否冻结 · 最后上线 · 距今天数(韩文表头)。任务未完成时返回 409 not_ready。
curl -o kr_1d.txt "https://telrump.com/api/v1/extract/45/download?days=1" -H "X-API-Key: tlr_..."
curl -o all.xlsx "https://telrump.com/api/v1/extract/45/download?format=xlsx" -H "X-API-Key: tlr_..."
완료 알림 (웹훅)完成通知 (Webhook)
주문할 때 webhook_url 을 넣으면, 작업이 끝나거나 실패했을 때 그 주소로 POST 를 보냅니다.
下单时填写 webhook_url,任务完成或失败时会向该地址发送 POST。
POST https://example.com/hook
Content-Type: application/json
X-Telrump-Event: extract.completed
{
"event": "extract.completed", // 또는或 "extract.failed"
"sent_at": "2026-11-02T05:25:01Z",
"job": { "id": 45, "status": "completed", "registered_count": 18388, "premium_count": 83, ... }
}
- 2xx 로 응답하면 성공. 실패하면 10초, 60초 뒤 두 번 더 보냅니다 (총 3번).
- 返回 2xx 即为成功。失败时会在 10 秒、60 秒后重试两次(共 3 次)。
- 공개 인터넷 주소(
http/https)만 가능해요. 내부망·localhost 주소는 거부됩니다. 리다이렉트는 따라가지 않아요. - 仅支持公网地址(
http/https),内网和 localhost 地址会被拒绝,不跟随重定向。 - 알림 내용을 그대로 믿지 말고
GET /api/v1/extract/{id}로 다시 확인한 뒤 처리하세요. - 请勿直接信任通知内容,处理前请用
GET /api/v1/extract/{id}再次确认。
계정 구매 — 재고·가격账号购买 — 库存与价格
GET/api/v1/shop/stock
{
"items": [
{ "category": "kr", "name": "한국 번호", "count": 34, "price": 6, "currency": "USDT" },
{ "category": "intl", "name": "해외 번호", "count": 0, "price": 4, "currency": "USDT" }
]
}
구매购买
POST/api/v1/shop/buy
curl -X POST https://telrump.com/api/v1/shop/buy \
-H "X-API-Key: tlr_..." -H "Content-Type: application/json" \
-d '{"category":"kr","quantity":2}'
201
{
"accounts": [
{ "account_id": 1650, "phone": "821012345678", "category": "kr" },
{ "account_id": 1651, "phone": "821087654321", "category": "kr" }
],
"cost": 12, "currency": "USDT", "balance": 96.5, "failed": 0
}
category: kr 또는 intl · quantity: 1~100. 재고가 요청 수량보다 적으면 409 out_of_stock (아무것도 구매되지 않음).
category:kr 或 intl · quantity:1~100。库存不足时返回 409 out_of_stock(不会购买任何账号)。
구매한 계정已购账号
GET/api/v1/shop/accounts?limit=100
{
"accounts": [
{ "account_id": 1650, "phone": "821012345678", "category": "kr", "purchased_at": "2026-11-02T06:01:00Z", "status": "ready" },
{ "account_id": null, "phone": "821055556666", "category": "kr", "purchased_at": "2026-10-30T02:11:00Z", "status": "delivered" }
]
}
| status | 의미 | 说明 |
|---|---|---|
connecting | 구매 직후 준비 중 (보통 수 초~1분) | 购买后准备中(通常几秒~1 分钟) |
ready | 인증코드를 받을 수 있는 상태 — 지금 로그인하세요 | 可接收验证码 — 请立即登录 |
delivered | 로그인 완료 — 우리 쪽 연결은 정리됨 (더 이상 코드 조회 불가) | 登录完成 — 我方连接已清除(无法再获取验证码) |
인증코드 받기获取验证码
GET/api/v1/shop/accounts/{account_id}/code?wait=30
| 파라미터 | 参数 | 설명 | 说明 |
|---|---|---|---|
wait | 0~60초. 새 코드가 올 때까지 최대 이만큼 기다렸다가 응답 (권장 30) | 0~60 秒。最多等待这么久直到收到新验证码(建议 30) | |
since | 선택 · 이 시각(ISO 8601) 이후에 온 코드만 '새 코드'로 봄. 생략하면 요청 시각 5초 전 | 可选 · 仅将此时间(ISO 8601)之后收到的验证码视为"新验证码"。省略则为请求时间前 5 秒 |
{
"account_id": 1650, "phone": "821012345678",
"code": "52819", "received_at": "2026-11-02T06:02:11Z", "age_sec": 2,
"fresh": true, // since 이후 새로 온 코드since 之后新收到的验证码
"codes_last_10min": 1 // 여러 개면 마지막 코드만 유효多个时仅最后一个有效
}
wait 와 함께 호출하고, fresh: true 인 코드를 쓰세요.wait 调用此接口,并使用 fresh: true 的验证码。로그인 자동화 예제自动登录示例
POST /shop/buy로 구매 →account_id,phone받기- 调用
POST /shop/buy购买 → 获得account_id、phone GET /shop/accounts에서status가ready가 될 때까지 대기- 轮询
GET /shop/accounts,直到status变为ready - 내 텔레그램 클라이언트로 그 번호의 로그인 코드를 요청
- 用您的 Telegram 客户端为该号码请求登录验证码
GET /shop/accounts/{account_id}/code?wait=30으로 코드 받아서 로그인- 调用
GET /shop/accounts/{account_id}/code?wait=30获取验证码并登录
# Python (requests + Telethon)
import asyncio, requests
from telethon import TelegramClient
API = "https://telrump.com/api/v1"
H = {"X-API-Key": "tlr_..."}
async def main():
acc = requests.post(f"{API}/shop/buy", json={"category": "kr", "quantity": 1}, headers=H).json()["accounts"][0]
for _ in range(30): # ready 대기 / 等待 ready
lst = requests.get(f"{API}/shop/accounts", headers=H).json()["accounts"]
if any(a["account_id"] == acc["account_id"] and a["status"] == "ready" for a in lst): break
await asyncio.sleep(3)
client = TelegramClient(f"acc_{acc['phone']}", API_ID, API_HASH) # 내 api_id / api_hash
await client.connect()
await client.send_code_request("+" + acc["phone"])
c = requests.get(f"{API}/shop/accounts/{acc['account_id']}/code", params={"wait": 30}, headers=H).json()
if not c.get("fresh"):
raise RuntimeError("새 코드를 받지 못했어요 / 未收到新验证码")
await client.sign_in("+" + acc["phone"], c["code"])
print("logged in:", await client.get_me())
asyncio.run(main())
가입자 추출 전체 예제
筛选完整示例
# Python (requests)
import time, requests
API = "https://telrump.com/api/v1"
H = {"X-API-Key": "tlr_..."}
numbers = [line.strip() for line in open("numbers.txt") if line.strip()]
job = requests.post(f"{API}/extract", json={"numbers": numbers, "title": "batch-1"}, headers=H).json()["job"]
while job["status"] in ("queued", "running"):
time.sleep(15)
job = requests.get(f"{API}/extract/{job['id']}", headers=H).json()["job"]
if job["status"] == "completed":
for d in (1, 3, 7):
r = requests.get(f"{API}/extract/{job['id']}/download", params={"days": d}, headers=H)
open(f"active_{d}d.txt", "wb").write(r.content)
r = requests.get(f"{API}/extract/{job['id']}/download", params={"format": "xlsx"}, headers=H)
open("all.xlsx", "wb").write(r.content)
else:
print("failed (refunded):", job["error"])
© TelRump · telrump.com