https://cdn.jsdelivr.net/gh/AMRITO-KUNDU/wallpapers-CDN@main/images.json
Cached at the edge. Use this in production apps.
Wallpaper CDN is a GitHub repository that publishes a JSON index of categorized wallpapers. There is no API key, no rate-limited backend, and nothing to provision.
Prefer jsDelivr. It is cached at the edge and typically faster than raw GitHub. Both URLs return the same JSON.
https://cdn.jsdelivr.net/gh/AMRITO-KUNDU/wallpapers-CDN@main/images.json
Cached at the edge. Use this in production apps.
https://raw.githubusercontent.com/AMRITO-KUNDU/wallpapers-CDN/main/images.json
Direct from the repository. Useful as a fallback.
The index is an array of category objects. Each file includes a direct CDN URL and, when available, a WebP thumbnail.
| Field | Description |
|---|---|
| category | Folder name used as the category |
| files | Wallpapers in that folder |
| name | Original filename |
| url | Full-resolution image on jsDelivr |
| thumbnail | Optional WebP preview |
[
{
"category": "Nature",
"files": [
{
"name": "nature-mountain-lake.jpg",
"url": "https://cdn.jsdelivr.net/gh/AMRITO-KUNDU/wallpapers-CDN@main/wallpapers/Nature/nature-mountain-lake.jpg",
"thumbnail": "https://cdn.jsdelivr.net/gh/AMRITO-KUNDU/wallpapers-CDN@main/thumbnails/Nature/nature-mountain-lake.webp"
}
]
}
]Fetch the JSON, then render url as the wallpaper and thumbnail in grids.
const INDEX =
"https://cdn.jsdelivr.net/gh/AMRITO-KUNDU/wallpapers-CDN@main/images.json";
const catalog = await fetch(INDEX).then((res) => res.json());
const nature = catalog.find(
(group) => group.category.toLowerCase() === "nature"
);
const wallpaper = nature.files[0];
// wallpaper.url is a direct CDN image
const indexUrl =
'https://cdn.jsdelivr.net/gh/AMRITO-KUNDU/wallpapers-CDN@main/images.json';
final response = await http.get(Uri.parse(indexUrl));
final catalog = jsonDecode(response.body) as List;
final group = catalog.first as Map<String, dynamic>;
final files = group['files'] as List;
const INDEX =
"https://cdn.jsdelivr.net/gh/AMRITO-KUNDU/wallpapers-CDN@main/images.json";
const catalog = await fetch(INDEX).then((res) => res.json());
const urls = catalog.flatMap((group) =>
group.files.map((file) => file.url)
);
No manual editing of the index is required. Apps that already fetch the JSON pick up new files automatically.
View the GitHub Action