PIXIV · SEARCH · PROXY
Pixiv API Docs
Cari, lihat detail, dan unduh ilustrasi pixiv lewat proxy ChioriyaAPI. Hasil pencarian terfilter aman secara default (R-18 disembunyikan), guest tetap bisa dipakai dengan batas 5 hasil, dan akun tertaut / apikey mendapat jatah penuh.
Auth: opsional (apikey unlock limit)Biaya: 1 limit / search & detailDownload gambar: gratis
Search — GET /api/pixiv/search
Cari ilustrasi pixiv. Alias path: /api/pixiv?action=search atau ?mode=search. Biaya 1 limit per request untuk akun tertaut / apikey; guest memakai rate-limit IP.
| Parameter | Wajib | Default | Keterangan |
|---|---|---|---|
q / query | Ya | - | Kata kunci pencarian (tag pixiv, judul, atau caption). |
limit | Tidak | 5 | Jumlah hasil. Guest dibatasi maksimal 5; akun tertaut / apikey bisa lebih. |
target / searchTarget | Tidak | partial_match_for_tags | partial_match_for_tags | exact_match_for_tags | title_and_caption | keyword. |
sort | Tidak | date_desc | date_desc (terbaru) atau date_asc (terlama). |
safe | Tidak | true | Filter otomatis karya R-18. Set false + includeR18=1 untuk ikutkan. |
includeR18 / r18 / nsfw | Tidak | false | Sertakan karya R-18 pada hasil (dihormati saat safe=0). |
page | Tidak | 1 | Halaman hasil pencarian upstream. |
apikey | Opsional | - | Tanpa apikey tetap bisa, tapi limit hasil terkunci 5 dan terkena rate-limit IP. |
Contoh
curl "https://DOMAIN_ANDA/api/pixiv/search?q=Columbina&limit=5&safe=1"const r = await fetch('https://DOMAIN_ANDA/api/pixiv/search?q=' +
encodeURIComponent('Columbina') + '&limit=5&safe=1');
const d = await r.json();
console.log(d.items.map(i => [i.id, i.title]));import urllib.request, urllib.parse, json
q = urllib.parse.urlencode({'q': 'Columbina', 'limit': 5, 'safe': 1})
d = json.load(urllib.request.urlopen(f'https://DOMAIN_ANDA/api/pixiv/search?{q}'))
print([(i['id'], i['title']) for i in d['items']])Respons
{
"ok": true,
"traceId": "pixiv_search_x1y2z3",
"auth": "guest", // atau "panel"
"guestLimit": 5, // hanya saat guest
"safeOnly": true,
"items": [
{
"id": 123456789,
"title": "Judul karya",
"userName": "Nama ilustrator",
"tags": ["original", "..."],
"url": "https://embed.pixiv.net/...", // thumbnail proxy
"originalUrl": "/api/pixiv?action=download&id=123456789&page=0&size=original",
"totalBookmarks": 1200,
"illustType": 0
}
]
}Detail — GET /api/pixiv/detail
Ambil detail satu illust: deskripsi, metadata, sampai daftar halaman untuk karya multi-image. Biaya 1 limit.
| Parameter | Wajib | Default | Keterangan |
|---|---|---|---|
id / illustId | Ya | - | ID illust pixiv. |
Contoh
curl "https://DOMAIN_ANDA/api/pixiv/detail?id=123456789"const d = await fetch('https://DOMAIN_ANDA/api/pixiv/detail?id=123456789').then(r => r.json());d = json.load(urllib.request.urlopen('https://DOMAIN_ANDA/api/pixiv/detail?id=123456789'))Download — GET /api/pixiv/download
Proxy unduh gambar asli pixiv (menghindari hotlink-block). Respons binary gambar dengan header Content-Disposition: inline dan X-Pixiv-Title. Endpoint ini publik tanpa potongan limit.
| Parameter | Wajib | Default | Keterangan |
|---|---|---|---|
id | Ya | - | ID illust pixiv (angka). |
page | Tidak | 0 | Indeks halaman untuk karya multi-halaman. |
size | Tidak | original | original | large | medium | square_medium. |
Contoh
curl -L -o art.jpg "https://DOMAIN_ANDA/api/pixiv/download?id=123456789&page=0&size=original"const buf = Buffer.from(await fetch('https://DOMAIN_ANDA/api/pixiv/download?id=123456789').then(r => r.arrayBuffer()));img = urllib.request.urlopen('https://DOMAIN_ANDA/api/pixiv/download?id=123456789').read()Kode Status
Khusus pixiv:
| Status | Code | Arti |
|---|---|---|
| 400 | PIXIV_ACTION_INVALID | Action tidak dikenal — gunakan search / detail / download. |
| 400 | WORD_REQUIRED | Parameter q kosong pada search. |
| 401 | APIKEY_REQUIRED | Hanya bila memaksa lewat jalur yang mewajibkan apikey. |
| 429 | RATE_LIMITED | Guest melewati batas IP. |
| 500 | UPSTREAM | Pixiv upstream gagal dihubungi — coba lagi / cek traceId. |