Developers

API & developer tools

Every published Grab3D model is listed in a free, keyless JSON API: static files, no authentication, CC0 content. Build asset browsers, engine plugins or jam tools on top of it.

Static JSON API v1

GET /api/v1/models.json
All 803 published models with tier, category, kit, tags, specs, media and download URLs.
GET /api/v1/models/{slug}.json
A single model, e.g. /api/v1/models/treasure-chest.json
GET /api/v1/kits.json
All 22 kits with their published model slugs.

Model fields

FieldContent
slugURL-safe id, also the file-name stem
nameobject with en / de / es
summaryone-sentence English description
category, categoryNamee.g. "props", "Props & Items"
tier"high-detail" or "lightweight"
style"stylized", "realistic", "low-poly", "cartoon" or null
kitnull or { slug, name, page }
tagslowercase English tags
specstriangles, trianglesLight, texturePx, texturePxLight, maps, dimensionsMeters [W, D, H], movingParts
mediathumbnail, thumbnailSmall, og, previewGlb, turntableWebm, turntableMp4 (absolute URLs)
filesarray of { format, variant, file, bytes, url }. Formats: glb, fbx, blend, usdz, obj-zip. Variant: full or light
riggednull or { animations, origin, preview, files }
originhow the model was made: { method, aiContent, aiAssistedCode, detail, licenseUrl, manifestUrl }. method is "ai-assisted" (base mesh and textures from an AI image-to-3D tool, then edited in Blender, aiContent true) or "procedural" (built by Blender scripts, aiContent false, aiAssistedCode true because the scripts were written with an AI coding assistant). aiAssistedCode is null for ai-assisted models. Use it for AI disclosures such as the one on Steam
relatedVariantslug of the low-poly / original counterpart, or null
page, license, createdmodel page URL, "CC0-1.0", ISO date

Download URLs have the form https://grab3d.com/dl/<slug>/<file>. The GLBs use no mesh compression (no Draco, no Meshopt), so any glTF loader reads them without an extra decoder. For smaller files in a web app, compress a copy with gltf-transform.

Each package folder also contains LICENSE.txt (CC0 text plus an “Origin / AI disclosure” section) and manifest.json (files, triangle count, texture size and the same origin object), for example /dl/treasure-chest/manifest.json.

Examples

// JavaScript
const res = await fetch('https://grab3d.com/api/v1/models.json');
const { models } = await res.json();
const light = models.filter((m) => m.tier === 'lightweight');
const glb = light[0].files.find((f) => f.format === 'glb' && f.variant === 'full');
console.log(glb.url, glb.bytes);
# Python
import requests
models = requests.get('https://grab3d.com/api/v1/models.json').json()['models']
rigged = [m['slug'] for m in models if m['rigged']]
# curl + jq
curl -s https://grab3d.com/api/v1/models/samurai.json | jq '.files[] | select(.format == "fbx") | .url'

Blender add-on

Browse the library and import models into your scene without leaving Blender. One file, no dependencies, works with Blender 3.6+. It reads /api/v1/models.json and imports the full-quality GLB, or the lighter GLB where a model offers one.

Download grab3d_browser.py

  1. Blender → Edit → Preferences → Add-ons → Install… → select the file → enable.
  2. Open the sidebar in the 3D viewport (N) → Grab3D tab.
  3. Search, click, imported. Everything is CC0, including the add-on itself.

Fair use & versioning

The API consists of static files that change when new models are published. Please cache responses in your tools instead of fetching on every start. The v1 schema is stable. Breaking changes will ship as v2. Questions or plugin ideas? Post them on the request board.