LosePrivacy API v1
概述
LosePrivacy API v1提供了对LosePrivacy收录的所有数据泄露事件、数据泄露专题及其数据源的查询功能。主要功能包括:
- 展示所有已收录数据泄露事件的详细信息
- 对所有数据泄露事件的数据源进行基本的查询
- 展示所有LosePrivacy数据泄露事件专题的详细信息
- 对所有数据泄露专题的数据源进行基本的查询
目前主要支持的查询类型至少包括:
- 查询用户名
- 查询密码
- 查询身份证
- 查询手机号
- 查询邮箱
- 查询QQ
- 查询微博
- 查询Facebook
应用场景
利用LosePrivacy API提供的查询功能,开发者可以快速开发出很多有趣、实用的应用。例如:
- 个人隐私相关的应用,例如查询个人隐私数据的泄露情况
- 私人服务相关的应用,例如帮助用户找回丢失的密码/账号
- 安全订阅相关的应用,例如当某些人的数据出现泄露,及时通知用户进行相应的防范
- 密码管理器相关的应用,例如当用户使用了高频的已泄露密码时及时通知用户
- 企业数据泄露相关的应用,例如当某些企业数据发生泄露时,帮助企业更准确地评估风险
- Telegram机器人相关的应用,例如个人社工库、尽职调查等
- 其他数据挖掘相关应用,例如筛选排除高风险贷款用户等
接入须知
- 请勿滥用API接口,有恶意进行攻击、妨碍他人使用等行为将会被限制使用API接口
- 请在应用中标注数据来源于LosePrivacy
- API KEY和API网关地址在LosePrivacy官网的用户中心中获取
LosePrivacy API v1接口列表
API网关地址在LosePrivacy官网的用户中心中可见。API网关地址不定期更换,但API接口保持稳定。
URL | 简述 |
---|---|
/api/v1/dataclasses |
获取可查询的敏感数据类型 |
/api/v1/breaches |
查询所有或某些类别的数据泄露事件 |
/api/v1/breach |
查询某个数据泄露事件的详情 |
/api/v1/search_breach |
查询数据泄露事件的数据源 |
/api/v1/topics |
查询所有数据泄露专题的详细信息 |
/api/v1/topic |
查询某个数据泄露专题的详细信息 |
/api/v1/search_topic |
查询数据泄露专题的数据源 |
数据格式
LosePrivacy API v1所有的接口均返回json格式的内容,格式为:
{
"code":错误码,
"msg":错误信息,
"data":具体数据包
}
错误码简介
返回代码 | 解释 |
---|---|
200 | OK, 成功 |
400 | Bad Request, 参数错误 |
401 | Unauthorised, 认证失败(API KEY不正确) |
403 | Forbidden, 如User-Agent的值不正确 |
404 | Not found,未找到内容 |
429 | Too many requests,请求频率过高 |
503 | Service unavailable, 服务暂时不可用 |
访问认证
LosePrivacy API的所有接口调用需要进行身份认证。认证方式为API KEY,每次调用时需要将API KEY放入HTTP header(header头为loseprivacy-auth-key
)中。另外,LosePrivacy API要求所有的http请求的user agent的值为:loseprivacy
HTTP头 | HTTP值 |
---|---|
loseprivacy-auth-key | 你的API KEY |
user-agent | loseprivacy |
若访问认证失败,对应的错误码如下:
返回代码 | 解释 |
---|---|
401 | 认证失败(API KEY不正确) |
403 | User-Agent的值不正确 |
获取 API KEY
API KEY可以登录LosePrivacy官网后在用户中心中的开发者页面申请获得。请珍惜API KEY,切勿滥用或转借他人使用。API网关地址也发布在LosePrivacy官网中的用户中心中。
数据样例
API KEY认证失败的数据包样例:
{"code":401,"msg":"Unauthorised","data":null}
User Agent错误值的数据包样例:
{"code":403,"msg":"Forbidden","data":null}
获得可以查询的敏感数据类型
数据请求
- Method:
GET/POST
- URL:
/api/v1/dataclasses
- Headers:
`Content-Type:application/json
- Parameters: 无
样例
- 获得可以查询的数据类型:
/api/v1/dataclasses
数据结果
- Data: 数组。三元组:name(字段解释), field(字段名称), value(字段 ID)
{
"code":200,
"msg":"OK",
"data": [
{"name":"搜QQ号","field":"field_qq","value":"qq"},
{"name":"搜微博","field":"field_weibo","value":"weibo"},
{"name":"搜手机号","field":"field_phone","value":"phone"},
{"name":"搜邮箱","field":"field_email","value":"email"},
{"name":"搜用户名","field":"field_username","value":"username"},
{"name":"搜身份证","field":"field_identity","value":"identity"},
{"name":"搜密码","field":"field_password","value":"password"},
{"name":"搜Facebook","field":"field_facebook","value":"facebook"}
]
}
其中field或value后续可用于查询具体的数据源。
数据泄露事件数据:查询数据泄露事件及数据源
查询所有或部分的数据泄露事件的详细信息
数据请求
- Method:
GET/POST
- URL:
/api/v1/breaches
- Headers:
Content-Type:application/json
- Parameters:
参数 | 是否必须 | 样例 | 解释 |
---|---|---|---|
field | 否 | ?field=qq | 筛选有特定数据类型(字段名称)的数据泄露事件 |
{
'field': <敏感数据类型,如field_username/field_qq/field_phone等,具体见敏感数据类型接口field字段>
}
样例
- 查询所有数据泄露事件:
/api/v1/breaches
- 查询泄露了用户名相关数据的数据泄露事件:
/api/v1/breaches?field=username
数据结果
- data: 符合查询条件的结果,以数组形式
{
"code":200,
"msg":'OK',
"data": [
{
"id":9,
"name":"QQ",
"title":"QQ用户数据",
"domain":"https:\/\/qq.com",
"description":"2018年泄露的QQ用户数据,主要涉及QQ用户的手机绑定信息......",
"breach_time":1574352000,
"update_time":1651517895,
"logo":"\/static\/upload\/breach\/9\/logo.jpg",
"author_name":"佚名",
"breach_count":668304163,
...
},
{
"id":10,
"name":"微博",
"title":"微博用户数据",
...
}
]
}
查询某个数据泄露事件的详情
数据请求
- Method:
GET/POST
- URL:
/api/v1/breach
- Headers:
Content-Type:application/json
- Parameters:
参数 | 是否必须 | 样例 | 解释 |
---|---|---|---|
breach_id | 是 | ?breach_id=1 | 根据ID筛选某个数据泄露事件。每个泄露事件的ID数固定的 |
样例
- 可以查询网易邮箱数据泄露事件详情:
/api/v1/breach?breach_id=1
数据结果
- Data: 数据泄露事件详情,breach和catelist。
返回值 | 解释 |
---|---|
breach | 数据泄露事件的详细信息 |
catelist | 数据源中可查询的数据类型 |
样例
{
"code":200,
"msg":"OK",
"data":
{
"breach":
{
"id":1,
"name":"网易邮箱",
"title":"网易邮箱数据",
"domain":"https:\/\/163.com",
"description":"...",
"breach_time":1450800000,
"download":"...",
......
},
"catelist":
[
{
"name":"邮箱",
"field":"field_email",
"value":"email"
},
{
"name":"密码",
"field":"field_password",
"value":"password"
}
]
}
}
查询数据泄露事件的数据源
数据请求
- Method:
GET/POST
- URL:
/api/v1/search_breach
- Headers:
Content-Type:application/json
- Parameters:
参数 | 是否必须 | 样例 | 解释 |
---|---|---|---|
breach_id | 是 | ?breach_id=1 | 指定查询数据泄露事件ID为1的数据源 |
field_value | 是 | ?field_value=qq | 查询的关键词所在的字段ID |
keyword | 是 | ?keyword=18647547584 | 查询关键词 |
样例
- URL:
/api/v1/search_breach?breach_id=1&field_value=email&keyword=10086
数据结果
- Data:符合查询结果的数据结果,数组形式(若查询结果较多,最多返回256条信息)。样例:
{"code":200,"msg":"OK","data":[[{"id":89668455,"breach_id":0,"email":"10086","password":"610555586"}]]}
数据泄露专题数据:查询数据泄露专题及数据源
查询所有数据泄露专题的详细信息
数据请求
- Method:
GET/POST
- URL:
/api/v1/topics
- Headers:
Content-Type:application/json
- Parameters: 无
样例
- 查询所有数据泄露专题:
/api/v1/topics
数据结果
- Data:符合查询结果的专题详情。
查询某个数据泄露专题的详细信息
数据请求
- Method:
GET/POST
- URL:
/api/v1/topic
- Headers:
Content-Type:application/json
- Parameters: topic_id
参数 | 是否必须 | 样例 | 解释 |
---|---|---|---|
topic_id | 是 | ?breach_id=1 | 指定查询数据泄露专题ID为1的数据源 |
样例
- 查询数据泄露专题ID为1的信息:
/api/v1/topic?topic_id=1
数据结果
- Data:符合查询结果的专题详情,包括topic和catelist字段,
返回值 | 解释 |
---|---|
topic | 数据泄露专题的详细信息 |
catelist | 数据源中可查询的数据类型 |
样例
{
"code":200,
"msg":"OK",
"data":
{
"topic":
{
"id":1,
"name":"QQ群关系数据",
"desc":"QQ所有的QQ群关系数据......",
"status":1,
"cover_url":"\/static\/upload\/topic\/ee\/02cfde2afb899fc377105e64cf084b.png",
"create_time":1651681867,
"update_time":1651812774,
......
},
"catelist":
[
{"name":"搜QQ群号","value":"qqgroup"}
]
}
}
查询数据泄露专题的数据源
数据请求
- Method:
GET/POST
- URL:
/api/v1/search_topic
- Headers:
Content-Type:application/json
- Parameters:
参数 | 是否必须 | 样例 | 解释 |
---|---|---|---|
topic_id | 是 | ?topic_id=1 | 指定查询数据泄露事件ID为1的数据源 |
field_value | 是 | ?field_value=qqgroup | 查询的关键词所在的字段ID |
keyword | 是 | ?keyword=18647547584 | 查询关键词 |
自定义,由返回值确定 | 否 | ?table=td_gov_company_abnormal | 连续查询参数 |
样例
- URL:
/api/v1/search_topic?topic_id=1&field_value=email&keyword=10086
- URL:
/api/v1/search_topic?keyword=北京字节跳动科技有限公司&field_value=company&topic_id=2
数据结果
- Data:符合查询结果的数据结果(若查询结果较多,最多返回256条信息)。
返回值 | 是否可选 | 解释 |
---|---|---|
查询结果json | 否 | 查询结果 |
subcommands | 是 | 后续继续查询时需要提供的请求参数 |
没有subcommands的返回值样例
{"code":200,"msg":"OK","data":[[{"id":89668455,"breach_id":0,"email":"10086","password":"610555586"}]]}
有subcommands的返回值样例
{
"code":200,
"msg":"OK",
"data":
{
"公司基本信息":
[
{
"id":5320886,
"company_id":18310359,"unified_code":"911101085923662400","ent_name":"北京字节跳动科技有限公司","
reg_capital":"1,000万(元)",
"real_capital":"-",
"reg_no":"911101085923662400",
"ent_type":"有限责任公司",
...
}
],
"subcommands":
[
"table=td_gov_company_abnormal",
"table=td_gov_company_announcementcourt",
"table=td_gov_company_basic",
]
}
}
对于有subcommands返回值的部分,subcommands数组指定了后续每次请求时需要携带的参数。为了获取更完整的查询内容,首次调用请求:
/api/v1/search_topic?keyword=北京字节跳动科技有限公司&field_value=company&topic_id=2
之后可以根据subcommands的内容依次进行后续调用:
/api/v1/search_topic?keyword=北京字节跳动科技有限公司&field_value=company&topic_id=2&table=td_gov_company_abnormal
/api/v1/search_topic?keyword=北京字节跳动科技有限公司&field_value=company&topic_id=2&table=td_gov_company_announcementcourt
/api/v1/search_topic?keyword=北京字节跳动科技有限公司&field_value=company&topic_id=2&table=td_gov_company_basic