Lazytextures Public API
A free, open REST API to browse, search, filter, and download thousands of CC0 3D assets — Materials, Models, HDRIs, Textures, and more. No authentication required.
Introduction
The Lazytextures API gives you programmatic access to the full asset library. All assets are CC0 — completely free to use in any project, commercial or personal, with no attribution required.
- No API key or authentication required for any public endpoint.
- All responses are JSON.
- Asset file paths returned by the API can be used directly to download files.
- The API is used by Lazybridge to power the in-app asset browser.
Base URL & Format
Response Envelope
Every endpoint returns a JSON object. Successful responses always include success: true and a timestamp. Errors include success: false and an error message.
Asset Types
Wherever you see :assetType in an endpoint, use one of these five values (always lowercase):
Models
3D objects packaged as .fbx files inside a ZIP archive per resolution.
Materials
PBR texture sets — Color, Roughness, Normal, AO, Displacement in multiple resolutions.
HDRIs
High-dynamic-range environment maps in .exr format for lighting 3D scenes, packaged as ZIPs per resolution.
Textures
Standalone texture maps — imperfections, decals, overlays — usable across any material workflow.
Other
Additional assets that don't fit the main categories, such as brushes, presets, or apps.
Browse Assets
These endpoints return the full list of all assets for a given type as a single response. Ideal for building local caches or small integrations.
Returns every material asset with name, category, sub-category, tags, preview image path, and download statistics.
Returns all 3D model assets. Response key is PreviewModels, summary key is totalModels.
Returns all HDRI environment maps. Summary key is totalHDRIs.
Returns all standalone texture assets. Summary key is totalTextures.
Returns all miscellaneous assets. Summary key is totalOther.
Paginated Browse
Browse any asset type page-by-page with full control over sort order. Ideal for building UIs with infinite scroll or pagination controls.
| Parameter | Type | Required | Description |
|---|---|---|---|
| offset | integer | optional | Starting position. Default: 0 |
| limit | integer | optional | Items per page. Default: 20, max: 100 |
| sort | string | optional | Sort order. Default: name-asc. See options below. |
Search
The search API uses a fuzzy relevance scoring algorithm. Scores are calculated from name match, category match, sub-category match, and tag match. Results with zero relevance are excluded automatically. At least one search parameter must be provided.
Search across all asset types in a single request. Returns which type each result belongs to via the assetType field.
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | optional* | Free-text search query. Also accepts query. |
| tags | string | optional* | Comma-separated tag list. e.g. wood,outdoor |
| category | string | optional* | Exact category filter. e.g. Concrete |
| subCategory | string | optional* | Exact sub-category filter. |
| type | string | optional | Limit to one asset type: models, materials, hdris, textures, other |
| minDownloads | integer | optional | Minimum total download count filter. |
| sortBy | string | optional | relevance (default), downloads, name, date |
| limit | integer | optional | Max results. Default: 50, max: 200 |
| offset | integer | optional | Pagination offset. Default: 0 |
* At least one of q, tags, category, or subCategory is required.
Same search capabilities as /all/Search but scoped to a single asset type. Slightly faster for type-specific queries. Accepts the same query parameters (excluding type).
Asset Details
Returns complete information for a single asset including all available files (archives, texture maps, model files), their sizes, resolutions, and download paths. Files are grouped by resolution (e.g. 1K, 2K, 4K).
| Parameter | Type | Required | Description |
|---|---|---|---|
| assetType | string | required | One of: models, materials, hdris, textures, other |
| assetName | string | required | Exact asset name as returned by a list or search endpoint. |
Categories
Returns all available categories for the given asset type, each with its asset count.
Returns all assets in a specific category for the given asset type.
Collections
Collections are curated groups of assets. Each asset type has its own set of collections. Replace Model below with Material, HDRI, Texture, or Other for the other types.
Returns all available model collections with name, description, and asset count.
Returns all assets belonging to a specific collection.
All Collection Endpoints
/ModelCollections&/ModelCollections/:name/MaterialCollections&/MaterialCollections/:name/HDRICollections&/HDRICollections/:name/TextureCollections&/TextureCollections/:name/OtherCollections&/OtherCollections/:name
Download Files
Streams a ZIP file directly to the client. Each ZIP contains all texture maps (Color, Roughness, Normal, Displacement, AO…) for that resolution. Use the path and name values from the archiveFiles object in the asset detail response to build this URL. Downloads are tracked automatically.
| Parameter | Type | Required | Description |
|---|---|---|---|
| assetType | string | required | Asset type, e.g. materials |
| assetName | string | required | Exact asset name |
| fileName | string | required | Exact file name as returned in archiveFiles or textureFiles |
Library Statistics
Returns the total number of assets in the library broken down by type and category.
Returns the most downloaded assets across the library, sorted by total download count.
| Parameter | Type | Required | Description |
|---|---|---|---|
| type | string | optional | Filter by type: models, materials, etc. |
| limit | integer | optional | Number of results. Default: 20 |
Returns the most recently added assets across the library, sorted by creation date (newest first).
| Parameter | Type | Required | Description |
|---|---|---|---|
| type | string | optional | Filter by asset type. |
| limit | integer | optional | Number of results. Default: 20 |
Returns assets sorted by most recent download activity — useful for discovering trending assets.
| Parameter | Type | Required | Description |
|---|---|---|---|
| type | string | optional | Filter by asset type. |
| limit | integer | optional | Number of results. Default: 20 |
Response Format
Asset Object
Every asset object returned by list, search, and paginated endpoints shares this common structure:
"Concrete_Worn01""Concrete"null"material"Preview.png)["concrete","worn"]Frequently Asked Questions
Do I need an API key?
No. All public endpoints are completely open and require no authentication or API key.
What license do the assets use?
All assets are published under the CC0 1.0 Universal license. You can use them in personal or commercial projects with no attribution required.
Are there any rate limits?
There are no hard API rate limits for browsing and search endpoints. File downloads are subject to fair-use limits to protect server resources.
How do I get a preview image for an asset?
Each asset object contains a preview.path field. Prepend the base URL: https://lazytextures.net:3000 + preview.path to get the full image URL.
How does the search relevance score work?
Scores are computed using fuzzy string similarity across asset name (highest weight), category, sub-category, and tags. An exact name match scores higher than a partial match. Download popularity and recency provide a small additional boost.
Can I use the API in my own app or add-on?
Yes! The API is free to use. We'd love to hear about integrations — contact Lorenz@lazytextures.com.