Asset Catalog API
The LoopLoop Asset Catalog is a searchable index of free game assets from across the web. Use it to find sprites, tilesets, audio, and other assets that match your game’s art direction.
Overview
The catalog indexes asset packs from Kenney, OpenGameArt, itch.io, GitHub, and LoopLoop-hosted creators. Every pack includes style metadata — art style, perspective, resolution, palette, and a consistency score — so you can filter for packs that fit your game.
Key concepts:
- Reference-only by default: Metadata + source link + sample images. Full files are stored only for promoted packs.
- License tiers:
redistributable(CC0, MIT, CC-BY, etc.) vsreference_only(NC, ND, ambiguous) - Download types:
agent(auto-downloadable),manual,donate,paid - Style analysis: Each pack is scored across 7 aspects (shading, edges, surface detail, color, form language, material rendering, overall feel) with a consistency score
Browse Packs
GET /api/asset-packs
Browse and search the catalog. No auth required.
Query parameters:
| Param | Type | Description |
|---|---|---|
q | string | Full-text search across name, description, tags, art style, style description, author, perspective, resolution, asset item types/categories, and source names. Supports stemming (e.g. “pirates” matches “pirate”) and compound word fragmentation (e.g. “sailboat” matches packs tagged “boat” or “sail”). Multi-word queries use OR logic with relevance ranking. |
tags | string | Comma-separated tag filter |
category | string | Asset category filter (free-form, e.g. “characters”, “vehicles”, “terrain”) |
artStyle | string | Art style filter (free-form tags, e.g. “soft-shading”, “low-poly”, “cartoonish”) |
perspective | string | Perspective filter (top-down, side-scroll, isometric, etc.) |
resolution | string | Resolution filter (16x16, 32x32, etc.) |
engine | string | Engine compatibility filter |
source | string | Source filter (kenney, opengameart, itch, github) |
sort | string | Sort order: downloads (default), newest, consistency |
limit | number | Max results (default 20, max 100) |
offset | number | Pagination offset |
Response:
{
"packs": [
{
"id": "uuid",
"slug": "kenney-1-bit-pack",
"name": "Kenney 1-Bit Pack",
"description": "Over 1000 monochrome 1-bit style sprites and tiles",
"license": "CC0-1.0",
"tags": ["1-bit", "monochrome", "pixel-art"],
"sourceUrl": "https://kenney.nl/assets/1-bit-pack",
"downloadType": "agent",
"author": "Kenney",
"licenseTier": "redistributable",
"artStyle": "soft-shading, chunky-geometry, bright-color-palette",
"perspective": "isometric",
"resolution": "HD",
"styleDescription": "The art style combines low-poly, hand-painted textures with...",
"thumbnailUrl": "/cdn/asset-packs/kenney-1-bit-pack/thumbnail.png",
"sampleUrls": ["/cdn/asset-packs/kenney-1-bit-pack/samples/sample-001.png"],
"assetCount": 1024,
"downloadCount": 150
}
],
"total": 342,
"limit": 20,
"offset": 0
}
Pack Details
GET /api/asset-packs/:slug
Full pack details including all asset items and style analysis.
Response:
{
"pack": {
"id": "uuid",
"slug": "kenney-1-bit-pack",
"name": "Kenney 1-Bit Pack",
"...": "all pack fields",
"styleAnalysis": {
"artStyle": "soft-shading, chunky-geometry, bright-color-palette",
"synthesis": "The art style combines low-poly hand-painted textures with...",
"styleTags": ["soft-shading", "chunky-geometry", "bright-color-palette"],
"aspects": {
"shading": "Shadows use soft gradients with smooth light transitions...",
"edges": "Rounded, beveled edges enhance a friendly appearance...",
"surfaceDetail": "Minimal surface detail with broad color patches...",
"color": "Vibrant, saturated palette with smooth transitions...",
"formLanguage": "Chunky, inflated proportions with exaggerated scale...",
"materialRendering": "Materials distinguished by color, not reflections...",
"overallFeel": "Playful, approachable style reminiscent of casual mobile games..."
},
"perspective": "isometric",
"resolution": "HD",
"palette": ["#3A3A3A", "#FFB873", "#6DD3CE", "#A4B9EF", "#7E7868"]
}
},
"assets": [
{
"id": "uuid",
"assetId": "knight-idle",
"type": "sprite",
"category": "characters",
"path": "Tilemap/Characters/knight_idle.png",
"description": "Knight character idle pose, 16x16 monochrome",
"tags": ["knight", "character", "idle"],
"metadata": { "width": 16, "height": 16 },
"downloadUrl": "https://kenney.nl/assets/1-bit-pack"
}
]
}
Structured Search (for Agents)
POST /api/asset-packs/search
Designed for AI agents to find assets matching specific needs and style requirements. Returns ranked results with match scores.
Request body:
{
"needs": [
{ "type": "spritesheet", "category": "enemies", "tags": ["undead"], "minFrames": 4 },
{ "type": "tileset", "category": "environment", "tags": ["dungeon"] },
{ "type": "audio", "category": "sfx", "tags": ["combat"] }
],
"style": {
"artStyle": "pixel-art",
"perspective": "top-down",
"resolution": "16x16"
},
"limit": 10
}
Response:
{
"results": [
{
"score": 72.5,
"pack": {
"slug": "kenney-1-bit-pack",
"name": "Kenney 1-Bit Pack",
"artStyle": "pixel-art",
"styleConsistencyScore": 62,
"downloadType": "agent",
"attributionRequired": false
},
"matchingAssets": [
{
"assetId": "skeleton-walk",
"type": "spritesheet",
"category": "enemies",
"path": "Spritesheets/skeleton_walk.png",
"downloadUrl": "..."
}
]
}
],
"total": 5
}
Download Assets
POST /api/asset-packs/:slug/download
Record a download event and get download URLs. For promoted packs, returns CDN URLs. For non-promoted packs, returns the source download URL.
Request body:
{
"assetIds": ["skeleton-walk", "dungeon-tileset"],
"gameId": "optional-game-uuid"
}
Response:
{
"packSlug": "kenney-1-bit-pack",
"packName": "Kenney 1-Bit Pack",
"downloadType": "agent",
"licenseTier": "redistributable",
"attributionRequired": false,
"source": "external",
"sourceDownloadUrl": "https://kenney.nl/content/3-Assets/kenney_1-bit-pack.zip",
"assets": [
{
"assetId": "skeleton-walk",
"type": "spritesheet",
"category": "enemies",
"path": "Spritesheets/skeleton_walk.png",
"downloadUrl": "https://kenney.nl/content/3-Assets/kenney_1-bit-pack.zip"
}
]
}
Single Asset
GET /api/asset-packs/:slug/assets/:assetId
Get metadata and download URL for a single asset.
Usage Guide
Search → Download → Integrate
- Search the catalog via
POST /api/asset-packs/searchwith your style constraints and asset needs - Evaluate results — check
styleDescription,styleAnalysis.aspects, sample images, andscore - Download via
POST /api/asset-packs/:slug/downloadwith the asset IDs you want - Get files — promoted packs return CDN URLs; non-promoted packs return the original source URL
- Handle attribution — if
attributionRequiredistrue, includeattributionTextin your game’s credits
License compliance
- Packs with
downloadType: 'agent'can be fetched automatically - Packs with
manual,donate, orpaiddownload types appear in search results but require human action to acquire - For packs where
attributionRequiredistrue, add the pack’sattributionTextto your credits - The
POST /downloadendpoint records which game used which pack for license auditing