开发者中心  /  平台概览
登录 / 用户中心申请账号iOS 9.48
从一次注册,开始你的接入

看得见的注册流程。
接得上的业务接口。

从创建设备、绑定代理到验证码登录,在控制台逐步执行接口、查看实际结果;注册预览用于了解流程,完整注册可用性仍待验证。

iPhone 18 Pro / Pro Max   ·   设备独立代理   ·   状态持久化
一台设备,一条完整记录体验预览
iPhone 18 Pro
iOS 948 · 独立设备档案
网络出口绑定 SOCKS5 代理
1
创建设备
2
注册设备
3
发送验证码
4
验证码登录
完整注册与账号登录是两个独立状态,逐步显示真实结果。

体验、调用、文档,一次衔接

先看案例,再调用接口,最后接入自己的业务。

三条入口
▷

在网页上体验注册

选择设备和出口,查看每个步骤的结果。验证码由你输入,账号始终由你控制。

⌘

用相同参数调用接口

业务输入自动映射到 API 参数,附带 cURL 与 Python 示例,便于直接接入。

▤

按步骤阅读开发文档

从账号鉴权到设备状态、代理绑定、错误处理,说明请求顺序与成功条件。

从平台账号开始

1
申请并开通平台账号

管理员审批,设置使用期限,首次登录自动绑定客户端。

2
登录平台,准备设备

获取 Token,创建档案并绑定代理。

3
完成验证码登录,调用业务

使用设备编号统一请求托管 API。

POST /api/device/send
Authorization: Bearer <TOKEN>

{
  "uniqueId": "<DEVICE_ID>",
  "method": "GET",
  "path": "/api/sns/v6/homefeed?num=20",
  "bizParams": { "host": "https://rec.xiaohongshu.com" }
}

支持 HTTPS 明文 JSON,也兼容 AES-GCM 封装;请先登录平台。

LIVE CASE / 注册体验

在一台设备上走完注册与登录

设备注册完成后,再为你的账号发送短信并登录。

当前为可点击的设计原型,没有连接业务服务,不会发送短信。正式版只展示当前请求的实际结果。

本次体验配置

发码线路国内 · 按 +86 自动选择

正式版需要先登录平台;Token 不通过公开页面参数传递。

流程记录

尚未开始
1
创建设备与绑定代理

/device/create → /device/edit

待执行
2
设备注册

cfg / onboarding / activate / tiny

待执行
3
发送短信验证码

/device/login/vfc-code

待执行
4
验证码登录

/device/login/code

待执行
等待开始体验

正式运行时会显示设备状态、请求编号与每步耗时。

// 等待操作
// 仅在真实响应成功时显示相应成功状态

案例验证记录

待接入证据

上线后采用脱敏运行记录:环境版本、测试日期、逐步响应、最终状态。历史记录与本次实时体验分别展示。

网页/API 兼容性本地模拟响应验证通过
当前服务器完整设备注册实测尚未通过
密码 / 快捷登录暂不开放体验
API REFERENCE

接口调用

统一使用设备编号管理状态,调用者专注业务参数。

已实现 · 离线验证

参数类型说明

示例使用占位符,未执行请求。完整契约与可下载 Python 示例见下方文档。

DOCUMENTATION

开发文档

沿着调用顺序接入,明确每个状态的含义。

快速开始

平台账号用于访问托管服务,小红书账号用于业务登录。两者独立。

  1. 申请平台账号,管理员批准并设置有效期,首次登录自动绑定客户端。
  2. 调用 /api/auth/login,获取 Bearer Token。
  3. 调用 /api/device/create,保存返回的 uniqueId。
  4. 调用 /api/device/edit 为设备设置 SOCKS5 代理。
  5. 调用 /api/device/register,按返回的 phase 判断注册进度。
  6. 调用 /api/device/login/vfc-code 发码,用户输入验证码后调用 /api/device/login/code。
  7. 登录成功后通过 /api/device/send 签名代发业务请求。

申请地址与接口地址

在 /#apply 申请平台账号;申请信息、图形验证码及提交接口使用 https://a.ttjian.com/public/…。申请需管理员审批,设置账号有效期,首次成功调用登录接口时自动绑定客户端标识。

开发者平台和业务 API 的 Base URL 为 https://a.ttjian.com,不需要添加端口。示例中的账号是获批的平台账号,不是小红书账号。

账号密码与 Token

先向 POST https://a.ttjian.com/api/auth/login 提交 username、password、machineCode,其中 machineCode 由调用程序自动生成并持久保存,首次密码验证成功后自动绑定,后续必须使用相同值;网页自动处理,不展示该值。登录接口无需 Bearer Token。

登录成功且业务 code=200 时,从 data.token 取出 Token。后续平台业务接口只需携带 Authorization: Bearer <TOKEN>,不需要重复传账号密码;设备编号和其他业务参数仍按各接口要求提交。

Token 当前默认有效期为 24 小时,账号有效期独立计算。账号到期或被禁用后,登录被拒绝,已有 Token 也不能继续访问;Token 自身到期后,在账号仍有效时重新登录获取。遇到业务 401,先核对账号、密码、机器码、Token 和账号期限;账号已到期需联系管理员续期。

完整调用示例:登录 → Token → 查询设备

安装 requests 后运行以下 Python 示例,输入获批的账号密码,客户端标识自动生成。示例自动获取 Token 并查询设备列表,不触发短信或小红书注册。返回 HTTP 200 时仍需检查 JSON 中的业务 code。

# Python 3; first install: python -m pip install requests
import getpass
import requests

BASE_URL = "https://a.ttjian.com"
username = input("Platform username: ").strip()
password = getpass.getpass("Platform password: ")
from pathlib import Path
import uuid
client_file = Path.home() / ".xhs-platform-client-id"
if not client_file.exists():
    client_file.write_text(str(uuid.uuid4()), encoding="utf-8")
machine_code = client_file.read_text(encoding="utf-8").strip()

def read_result(response):
    response.raise_for_status()
    result = response.json()
    if result.get("code") != 200:
        raise RuntimeError(f"{result.get('code')}: {result.get('msg')}")
    return result["data"]

# Login uses username/password/machineCode; no Bearer token required.
login = read_result(requests.post(
    BASE_URL + "/api/auth/login",
    json={"username": username, "password": password,
          "machineCode": machine_code}, timeout=30))
token = login["token"]

# Subsequent API calls use only the Bearer token for platform authentication.
# This read-only call lists your devices; it does not send SMS or register users.
devices = read_result(requests.get(
    BASE_URL + "/api/device/list",
    headers={"Authorization": "Bearer " + token}, timeout=30))
print(devices)

当前平台支持 HTTPS 下的明文 JSON 请求,也兼容原 Java 客户端的 AES-GCM 请求封装。请在自己的后端保存平台密码与 Token,避免放到公开网页代码、公开日志或仓库中。

完整接口文档 下载 Python 示例 真实操作控制台

客户端与服务端

客户端 ↔ 平台 API:HTTPS、Bearer Token;支持明文 JSON 或兼容的 AES-GCM 请求封装。服务端 ↔ 业务接口:使用设备绑定的代理与设备签名状态。

设备状态与成功判断

状态含义
CREATED本地设备档案已创建。
ACTIVATED游客激活完成,完整注册步骤仍可能未通过。
REGISTERED要求的 cfg、onboarding 与 tiny 步骤均返回成功。
LOGGED_IN账号登录成功并完成会话检查。
LOGOUT已清除当前登录凭据。

ACTIVATED 不代表注册全部完成

读取 registrationSteps 查看未完成的具体步骤。前端停在对应步骤,显示实际状态,不改写成成功。正式版会提供可展开的脱敏响应。

代理与发码线路

代理绑定到设备,注册、发码、登录与代发复用同一出口。清空 proxy 可切回直连。

输入区号默认线路
86 / +86edith.xiaohongshu.com
其他区号edith.rnote.com

按区号选择 API 域名与使用国内/海外代理是两个不同设置。当前默认没有“国内失败自动重发海外”的逻辑。

公开案例中仅显示代理地区与是否配置,隐藏 IP、用户名和密码。

返回与错误处理

平台接口统一返回 {code, msg, data}。先检查业务 code,再读取 data;不能只凭 HTTP 200 判断成功。

code处理
200检查设备状态或目标 httpCode/body。
400检查参数、目标地址或代理格式。
401检查平台登录、机器码或账号有效期。
404设备不存在或不属于当前账号。
501当前尚未实现的登录方式。
502上游失败;展示阶段,避免自动重复发码。

正式案例保留请求编号、阶段、HTTP 状态和业务状态,脱敏 Token、手机号、设备凭据与代理信息。

当前支持范围

iOS 9.48 / 9480813固定版本
设备创建、代理编辑、签名代发已实现,离线验证
平台申请、审批、有效期已实现;平台登录已公网验证
完整设备注册 REGISTERED实测 ACTIVATED;cfg 超时 / tiny register=-1
密码登录、快捷登录暂未支持

上线后的案例以已验证的功能为准,显示测试环境和日期。未验证能力不显示“真实可用”标签。

BUSINESS API / 业务接口目录

已整理的小红书接口

按功能查找接口,查看来源、接入方式与验证状态。

这是一份有来源的接口目录,不是全部可用性承诺。当前页面不会调用小红书;正式执行由登录后的托管服务完成。

如何接入

参数与证据

只复制结构,不执行请求。未核对的参数不会生成伪造的可运行示例。

待补齐的能力

这些功能保留在规划中,拿到完整抓包与参数验证后再加入可调用列表。

平台账号申请

平台账号用于调用我们的 API,不是小红书账号。有效期从管理员批准时起计算,申请不代表已经开通。

3–32 位,以英文字母开头,只能包含字母、数字和下划线。图形验证码,点击刷新

查询审批结果

审批、续期或账号问题,请联系向你提供本平台的管理员。目前未配置公开客服联系方式。

数据与隐私说明

更新日志 · 数据与隐私 · 服务支持