前言
所有图片均来自Pixiv,版权也归作品的作者所有,API仅储存作品的基本信息。
本API仅限个人的学习研究鉴赏行为,如果因使用API产生任何问题,与API无关。
本API采用RESTful风格设计。
API前缀
目前仅可通过一个Url访问API。
https://pixiv-ab.site/api/pixiv/{PARAMS}
https://pixiv-ab.tk/api/pixiv/{PARAMS}
https://angelbeats.site/api/pixiv/{PARAMS}
https://angelbeats-kanade.com/api/pixiv/{PARAMS}
其中https://pixiv-ab.site/api/pixiv
为API的前缀,{PARAMS}
为占位符,表示的是获取不同的数据需要的不同Url后缀。
API后缀
GET
/{daily|r18}/tag/{tags:string}
/{daily|r18}/user/id/{id:int}
/{daily|r18}/user/name/{userName:string}
/{daily|r18}/date/{date:datetime}
/{daily|r18}/random
/id/{id:int}
POST
/
/json
根据tag搜索图片
Request URL:https://pixiv-ab.site/api/pixiv/{daily|r18}/tag/{tags}
参数 | 数据类型 | 说明 |
---|---|---|
tags |
string |
用于搜索图片的tag,多个tag之间用空格分开 |
Response body
Content-Type: application/json { "title": "string", "tags": [ "string" ], "url": "string", "artist": "string", "id": 0, "uid": 0 }
参数 | 数据类型 | 说明 |
---|---|---|
title |
string |
图片的标题 |
tags |
string[] |
图片的tag |
url |
string |
可以直接访问图片的Url |
artist |
string |
图片的作者 |
id |
int |
图片的P站ID |
uid |
int |
图片作者的P站ID |
本API按照AND
规则匹配图片的tag,对大小写不敏感。输入的tag应当是你所要得到的图片在Pixiv里会打上的tag,因此在搜索之前最好先确定自己要搜索的图片会有什么tag,本API不提供中文转译日文的功能,最好用日文相应的tag搜索。举个例子,我想要搜索关于明日方舟和黑丝的图片,那我发送的请求应该是如此:
https://pixiv-ab.site/api/pixiv/daily/tag/明日方舟%20黑丝
其中的%20为空格在Uri中的字符编码。实际输入的时候并不需要显式输入%20,只需要输入空格就可以了。返回的数据如下:
{ "title": "史尔特尔", "tags": [ "黑丝", "史尔特尔", "明日方舟", "アークナイツ", "スルト(アークナイツ)", "アークナイツ1000users入り" ], "url": "https://i.pixiv.re/img-master/img/2020/10/05/00/41/56/84809989_p0_master1200.jpg", "artist": "MAaaaaaackia", "id": 84809989, "uid": 14161677 }
根据画师的ID搜索图片
Request URL:https://pixiv-ab.site/api/pixiv/{daily|r18}/user/id/{id}
参数 | 数据类型 | 说明 |
---|---|---|
id |
int |
画师的ID |
Response body
Content-Type: application/json [ { "title": "string", "tags": [ "string" ], "url": "string", "artist": "string", "id": 0, "uid": 0 } ]
返回的数据为一个由图片信息组成的数组。
参数 | 数据类型 | 说明 |
---|---|---|
title |
string |
图片的标题 |
tags |
string[] |
图片的tag |
url |
string |
可以直接访问图片的Url |
artist |
string |
图片的作者 |
id |
int |
图片的P站ID |
uid |
int |
图片作者的P站ID |
根据画师的名字搜索图片
Request URL:https://pixiv-ab.site/api/pixiv/{daily|r18}/user/name/{userName}
参数 | 数据类型 | 说明 |
---|---|---|
userName |
string |
画师的名字 |
Response body
Content-Type: application/json [ { "title": "string", "tags": [ "string" ], "url": "string", "artist": "string", "id": 0, "uid": 0 } ]
返回的数据为一个由图片信息组成的数组。
参数 | 数据类型 | 说明 |
---|---|---|
title |
string |
图片的标题 |
tags |
string[] |
图片的tag |
url |
string |
可以直接访问图片的Url |
artist |
string |
图片的作者 |
id |
int |
图片的P站ID |
uid |
int |
图片作者的P站ID |
根据日期搜索图片
Request URL:https://pixiv-ab.site/api/pixiv/{daily|r18}/date/{date}
参数 | 数据类型 | 说明 |
---|---|---|
date |
datetime |
画作的日期,格式需要符合datetime格式,例如:2022-06-01 |
Response body
Content-Type: application/json [ { "title": "string", "tags": [ "string" ], "url": "string", "artist": "string", "id": 0, "uid": 0 } ]
返回的数据为一个由图片信息组成的数组。
参数 | 数据类型 | 说明 |
---|---|---|
title |
string |
图片的标题 |
tags |
string[] |
图片的tag |
url |
string |
可以直接访问图片的Url |
artist |
string |
图片的作者 |
id |
int |
图片的P站ID |
uid |
int |
图片作者的P站ID |
随机获取一张图片
Request URL:https://pixiv-ab.site/api/pixiv/{daily|r18}/random
参数 | 数据类型 | 说明 |
---|---|---|
无 |
Response body
Content-Type: application/json { "title": "string", "tags": [ "string" ], "url": "string", "artist": "string", "id": 0, "uid": 0 }
参数 | 数据类型 | 说明 |
---|---|---|
title |
string |
图片的标题 |
tags |
string[] |
图片的tag |
url |
string |
可以直接访问图片的Url |
artist |
string |
图片的作者 |
id |
int |
图片的P站ID |
uid |
int |
图片作者的P站ID |
根据ID搜索图片
Request URL:https://pixiv-ab.site/api/pixiv/{daily|r18}/id/{id}
参数 | 数据类型 | 说明 |
---|---|---|
id |
int |
图片的P站ID |
Response body
Content-Type: application/json { "title": "string", "tags": [ "string" ], "url": "string", "artist": "string", "id": 0, "uid": 0 }
参数 | 数据类型 | 说明 |
---|---|---|
title |
string |
图片的标题 |
tags |
string[] |
图片的tag |
url |
string |
可以直接访问图片的Url |
artist |
string |
图片的作者 |
id |
int |
图片的P站ID |
uid |
int |
图片作者的P站ID |
同时用多种参数搜索图片
因为RESTful风格的约束,一个API只能搜索一个方面,如果想同时从多个方面来搜索图片,可以采用POST方法来提交多种搜索参数。有两个POST方法,一个是键值对上传,一个是JSON上传。
# | Request URL | Content type | Request body |
---|---|---|---|
1 | https://pixiv-ab.site/api/pixiv |
application/x-www-form-urlencoded |
Tags={tags} &Date={date} &Artist={artist} &UserId={userId} &Page={page} &R18={true|false} |
2 | https://pixiv-ab.site/api/pixiv/json |
application/json |
{ "tags": "string", "date": "2022-06-01", "artist": "string", "uid": 0, "page": 0, "r18": true } |
参数 | 数据类型 | 说明 |
---|---|---|
Tags |
string |
画作的tag,同样支持多tag搜寻,tag之间用空格分开 |
Date |
datetime |
画作上传的时间 |
Artist |
string |
画师名字 |
UserId |
int |
画师的P站ID |
Page |
int |
这个值指定搜索的图片位于所有搜索到的图片的位置,一页图片为20张,默认为1 |
R18 |
boolean |
图片是否含有R18tag,默认值为false |
Response body
Content-Type: application/json [ { "title": "string", "tags": [ "string" ], "url": "string", "artist": "string", "id": 0, "uid": 0 } ]
返回的数据为一个由图片信息组成的数组。
参数 | 数据类型 | 说明 |
---|---|---|
title |
string |
图片的标题 |
tags |
string[] |
图片的tag |
url |
string |
可以直接访问图片的Url |
artist |
string |
图片的作者 |
id |
int |
图片的P站ID |
uid |
int |
图片作者的P站ID |
举个例子,如果我要搜索同时满足以下条件:画作上传时间在2021年6月23日、有关于明日方舟和百合、含有R18元素的画作,那么我构建的上传json如下:
{ "tags": "明日方舟 百合", "date": "2021-06-23", "r18": true }
返回的数据如下:
[ { "title": "W 汁水", "tags": [ "R-18", "女の子", "欧派", "明日方舟", "魅惑的大腿", "丝袜", "大腿", "足", "W", "百合" ], "url": "https://i.pixiv.re/img-master/img/2021/06/23/15/31/49/90753600_p0_master1200.jpg", "artist": "阿戈魔AGM", "id": 90753600, "uid": 20670939 } ]
响应码
在使用本API时,请先确认返回的响应码为200,如果不是200,则代表服务器在处理该次请求时有问题。
响应码 | 说明 |
---|---|
200 |
请求正常 |
404 |
找不到相应图片 |
500 |
服务器超载,请等待一段时间再试 |
其他
服务器上的数据相对于Pixiv的最新数据有一至数个小时的延迟,请不要在每天的日榜更新后立刻搜索最新一天的数据。
服务器在每周日的晚上10点进行停机维护,同时数据库也会进行更新,对全体图片的信息重新更新一遍,维护时间为2小时,请尽量避免在维护时间段内使用API。