A self-hosted image library with 7,000 hand-picked images across 7 categories.
No API key. No rate limits. Just raw GitHub CDN URLs that always work.
A static image library hosted on GitHub. Every image is a plain .jpg file served directly over GitHub's CDN — no server, no auth, no downtime. Fetch a URL and you have an image. That's the entire thing.
Built for Discord bots, web projects, and anything that needs a reliable stream of images without dealing with API keys or rate limits. If GitHub is up, this is up.
| category | images | aspect | description |
|---|---|---|---|
girls |
1,000 | 1:1 | Female profile pictures |
boys |
1,000 | 1:1 | Male profile pictures |
anime |
1,000 | 1:1 | Anime-style profile pictures |
couples |
1,000 | 1:1 | Couple profile pictures |
banners |
1,000 | 3:1+ | Discord / Twitter banners |
wallpapers |
1,000 | 16:9 | Desktop wallpapers |
server-icons |
1,000 | 1:1 | Server / community icons |
Images follow a simple, predictable URL pattern. Pick a category, pick any number from 0 to 999:
https://raw.githubusercontent.com/itsfizys/piccdn/main/{category}/{n}.jpg
Fetch index.json once to get the counts, then build any URL you need:
https://raw.githubusercontent.com/itsfizys/piccdn/main/index.json
async function random(category) {
const { base_url, categories } = await fetch(
"https://raw.githubusercontent.com/itsfizys/piccdn/main/index.json"
).then(r => r.json());
const n = Math.floor(Math.random() * categories[category]);
return `${base_url}/${category}/${n}.jpg`;
}
await random("anime"); // → .../anime/487.jpg
await random("server-icons"); // → .../server-icons/62.jpgimport httpx, random as rnd
index = httpx.get("https://raw.githubusercontent.com/itsfizys/piccdn/main/index.json").json()
def random(category: str) -> str:
n = rnd.randint(0, index["categories"][category] - 1)
return f"{index['base_url']}/{category}/{n}.jpg"
random("wallpapers") # → .../wallpapers/213.jpgAn npm wrapper is also available if you prefer installing via a package manager.
npm install piccdnimport { random, url } from "piccdn";
await random("anime"); // → full URL to a random anime image
url("wallpapers", 42); // → .../wallpapers/42.jpgThe package ships with TypeScript types and zero dependencies — it's a thin wrapper around the same raw CDN URLs above.
No code needed. Any of these URLs work as-is:
https://raw.githubusercontent.com/itsfizys/piccdn/main/girls/0.jpg
https://raw.githubusercontent.com/itsfizys/piccdn/main/boys/0.jpg
https://raw.githubusercontent.com/itsfizys/piccdn/main/anime/0.jpg
https://raw.githubusercontent.com/itsfizys/piccdn/main/couples/0.jpg
https://raw.githubusercontent.com/itsfizys/piccdn/main/banners/0.jpg
https://raw.githubusercontent.com/itsfizys/piccdn/main/wallpapers/0.jpg
https://raw.githubusercontent.com/itsfizys/piccdn/main/server-icons/0.jpg
Replace 0 with any number from 0 to 999.
Built and maintained by itsfizys.
Portfolio at itsfizys.gg.
MIT © 2026 itsfizys · index.json





