uDeck

Developers

Public API

JSON over HTTPS at https://udeck.botaweso.me. No API key. The Switch uses lookup for box art; this site uses search for the Covers gallery. EasyAPI is a separate, short-lived SteamGridDB key transfer.

Browse covers EasyAPI

Cover object

Lookup and search items share this shape. url is JPEG 600×900 for the Switch. thumb is WebP for the gallery. original is the pack PNG. titleId is a 16-digit hex program ID, or null if unmatched.

{
  "name": "Mario Kart 8 Deluxe",
  "file": "Mario Kart 8 Deluxe - 0100152000022000",
  "url": "https://udeck.botaweso.me/covers/jpeg/….jpg",
  "thumb": "https://udeck.botaweso.me/covers/thumbs/….webp?v=pad",
  "original": "https://udeck.botaweso.me/covers/original/….png",
  "titleId": "0100152000022000",
  "score": 1000
}

Lookup

One best match. Title ID wins when it is a full 16-hex ID. Otherwise the name is scored against the library (minimum score 700).

GET /api/covers/lookup

QueryDescription
titleIdOptional. 16 hex digits, with or without 0x.
nameOptional. Game title if there is no ID hit.
GET /api/covers/lookup?titleId=0100152000022000
GET /api/covers/lookup?name=Mario%20Kart%208%20Deluxe

200 cover object. 404 no match. 429 too many requests (400/min). 503 index down.

Search

Paged list. Empty q returns the whole library. Hex strings of 8–16 digits search by title ID prefix.

GET /api/covers/search

QueryDescription
qTitle or ID. Omit for the full catalog.
sortstandard (bestsellers first), abc, or zyx.
limit1–48, default 24.
offsetPage offset, default 0.
GET /api/covers/search?q=zelda&sort=abc&limit=24&offset=0
{
  "total": 14100,
  "items": [ /* cover objects */ ]
}

429 too many requests (90/min).

EasyAPI

Pairs a SteamGridDB key to the Switch with a four-character code. Use the EasyAPI page unless you are writing another client. Codes last five minutes and are deleted after redeem, expiry, or delete.

MethodPathBody / querySuccess
POST /api/easyapi {"apiKey":"…32 chars…"} {"code","expiresAt"}
GET /api/easyapi/status ?code=XXXX {"remainingMs","state"} — pending, redeemed, or expired
POST /api/easyapi/redeem {"code":"XXXX"} {"apiKey"} — used by the Switch
DELETE /api/easyapi {"code":"XXXX"} {"ok":true}