Assets
Signed URL untuk asset R2 (character icon/splash, weapon icon, artifact icon, dsb).
Semua asset visual DYOGG di-host di Cloudflare R2 (cdn.dyogg.com). Endpoint Assets menyediakan:
- Direct public URL — sudah include di response endpoint lain (
icon_url,splash_url, dsb). - Bulk lookup untuk workflow batch (mis. generate infographic banyak karakter).
- Signed URL untuk asset premium/DMCA-sensitive (rarely used).
GET /v1/assets/{game}/character/{avatar_id}?variant=…
Get URL asset karakter — icon, portrait, splash, side-icon.
Path params
| Nama | Tipe | Required |
|---|---|---|
game | enum | ✓ |
avatar_id | integer | ✓ |
Query params
| Nama | Tipe | Default |
|---|---|---|
variant | enum | icon (icon, side, portrait, splash, chibi) |
format | enum | webp (webp, png, jpg) |
w | integer | — (resize width, on-the-fly via R2 image resizing) |
Response 200
{
"data": {
"url": "https://cdn.dyogg.com/genshin/portraits/Flins.webp",
"content_type": "image/webp",
"width": 1024,
"height": 1024,
"cached_until": "2026-07-23T00:00:00Z"
}
}
POST /v1/assets/bulk-resolve
Resolve URL sekaligus untuk banyak entity.
Request body
{
"game": "hsr",
"items": [
{ "kind": "character", "id": 1308, "variant": "splash" },
{ "kind": "light_cone", "id": 23028, "variant": "icon" },
{ "kind": "relic", "id": 314, "variant": "icon" }
]
}
Response 200
{
"data": [
{ "kind": "character", "id": 1308, "url": "https://cdn.dyogg.com/hsr/splashes/1308.png" },
{ "kind": "light_cone", "id": 23028, "url": "https://cdn.dyogg.com/hsr/light-cones/23028.png" }
]
}
Batasan
- Bulk max 50 item per request.
- Semua URL public (immutable, cache-friendly). Signed URL hanya untuk asset internal DYOGG (screenshot user-uploaded, dsb) — bukan aset game.