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:


Browse Packs

GET /api/asset-packs

Browse and search the catalog. No auth required.

Query parameters:

ParamTypeDescription
qstringFull-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.
tagsstringComma-separated tag filter
categorystringAsset category filter (free-form, e.g. “characters”, “vehicles”, “terrain”)
artStylestringArt style filter (free-form tags, e.g. “soft-shading”, “low-poly”, “cartoonish”)
perspectivestringPerspective filter (top-down, side-scroll, isometric, etc.)
resolutionstringResolution filter (16x16, 32x32, etc.)
enginestringEngine compatibility filter
sourcestringSource filter (kenney, opengameart, itch, github)
sortstringSort order: downloads (default), newest, consistency
limitnumberMax results (default 20, max 100)
offsetnumberPagination 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

  1. Search the catalog via POST /api/asset-packs/search with your style constraints and asset needs
  2. Evaluate results — check styleDescription, styleAnalysis.aspects, sample images, and score
  3. Download via POST /api/asset-packs/:slug/download with the asset IDs you want
  4. Get files — promoted packs return CDN URLs; non-promoted packs return the original source URL
  5. Handle attribution — if attributionRequired is true, include attributionText in your game’s credits

License compliance