BlenderKit APIblenderkit.com ↗
Search BlenderKit's library of 3D models, materials, scenes, HDRs, and brushes. Get asset details, categories, and autocomplete suggestions via 4 endpoints.
What is the BlenderKit API?
The BlenderKit API gives developers access to 4 endpoints covering search, asset detail retrieval, autocomplete suggestions, and category metadata across BlenderKit's library of 3D models, materials, scenes, HDRs, and brushes. The search_assets endpoint returns paginated results with asset UUIDs, thumbnail URLs, plan requirements, and per-category counts, while get_asset_detail exposes polygon count, file size, license, author, and tag data for any individual asset.
curl -X GET 'https://api.parse.bot/scraper/35549423-11e6-43b5-8c7f-864dc2774a32/search_assets?page=1&sort=_score&query=chair&asset_type=model' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace blenderkit-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""BlenderKit SDK — search 3D assets, get details, and explore categories."""
from parse_apis.blenderkit_search_api import BlenderKit, AssetType, Sort, AssetNotFound
client = BlenderKit()
# Search for 3D chair models sorted by downloads
for asset in client.assetsummaries.search(query="chair", sort=Sort.MOST_DOWNLOADED, limit=5):
print(asset.name, asset.plan, asset.thumbnail_url)
# Drill into the first result for full details
summary = client.assetsummaries.search(query="table", asset_type=AssetType.MODEL, limit=1).first()
if summary:
detail = summary.details()
print(detail.description, detail.file_size, detail.polygon_count)
print("Tags:", detail.tags)
print("Author:", detail.author.name)
# Get a known asset by UUID
try:
asset = client.assets.get(asset_uuid="360816c4-65d8-461d-9170-f03747bd66bd")
print(asset.title, asset.license, asset.file_size)
except AssetNotFound as exc:
print(f"Asset gone: {exc}")
# Autocomplete suggestions for building a search UI
suggestions = client.suggestions.search(query="woo")
print(suggestions.query, suggestions.suggestions)
# Browse category metadata for materials
category = client.categories.get(asset_type=AssetType.MATERIAL)
print(category.name, category.slug, category.asset_count_cumulative)
print("exercised: assetsummaries.search / summary.details / assets.get / suggestions.search / categories.get")
Search BlenderKit for 3D assets (models, materials, scenes, HDRs, brushes). Returns paginated results with asset summaries including names, UUIDs, thumbnails, and plan info. Supports keyword search, category filtering, and various sort orders. Each page returns up to 24 results.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (starts at 1) |
| sort | string | Sort order for results |
| query | string | Search keywords (e.g., 'chair', 'wood planks', 'modern kitchen') |
| category | string | Filter by category slug (e.g., 'chair', 'furniture', 'wood') |
| asset_type | string | Asset type to search |
{
"type": "object",
"fields": {
"page": "integer current page number",
"assets": "array of asset summary objects with asset_uuid, version_uuid, name, thumbnail_url, plan, detail_url",
"total_count": "integer total number of matching assets",
"category_counts": "object mapping category slugs to integer counts",
"results_on_page": "integer number of results returned on this page"
},
"sample": {
"data": {
"page": 1,
"assets": [
{
"name": "Office chair",
"plan": "Full Plan",
"asset_uuid": "360816c4-65d8-461d-9170-f03747bd66bd",
"detail_url": "https://www.blenderkit.com/asset-gallery-detail/360816c4-65d8-461d-9170-f03747bd66bd/",
"version_uuid": "ef099750-e7a1-43c5-9bc7-61d16cdf6c95",
"thumbnail_url": "https://public.blenderkit.com/thumbnails/assets/ef099750e7a143c59bc761d16cdf6c95/files/thumbnail_4bfcc022-2e2b-4d5b-a956-a3421afd6ac6.png.256x256_q85_crop-%2C.png.webp"
}
],
"total_count": 11532,
"category_counts": {
"chair": 2926,
"furniture": 1569
},
"results_on_page": 24
},
"status": "success"
}
}About the BlenderKit API
Search and Filter Assets
The search_assets endpoint accepts a query string, an asset_type filter (model, material, scene, hdr, or brush), and a category slug to narrow results. Sort order is controlled by the sort parameter: _score for relevance, -created for newest first, +created for oldest first, or +likes for most-liked. Each response includes a total_count, a results_on_page count, a category_counts map for faceted navigation, and an array of asset objects carrying asset_uuid, version_uuid, name, thumbnail_url, plan, and a detail_url.
Asset Detail
get_asset_detail takes a single asset_uuid (obtained from search results) and returns the full asset record: title, description, tags, license, file_size, polygon_count, and an author object with name and id. The plan field tells you whether an asset requires a free account or a paid Full Plan, which is useful for filtering before surfacing assets to end users.
Autocomplete and Categories
search_suggestions accepts a partial query string and returns up to 15 alphabetically sorted term suggestions — suitable for powering a search-as-you-type interface. get_categories returns structured metadata for each category under a given asset_type, including slug, assetCount, assetCountCumulative (which includes subcategories), thumbnail, description in markdown, and a parent slug for reconstructing the hierarchy.
The BlenderKit API is a managed, monitored endpoint for blenderkit.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when blenderkit.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official blenderkit.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a 3D asset browser that filters by type and category using search_assets with asset_type and category params
- Display detailed asset cards with polygon count, file size, and license pulled from get_asset_detail
- Gate asset access in a UI by reading the plan field to distinguish Free vs. Full Plan assets
- Implement search-as-you-type using search_suggestions to autocomplete partial queries
- Render a category tree with asset counts using get_categories and the assetCountCumulative and parent fields
- Build a pipeline that ingests new BlenderKit assets by sorting search_assets with -created
- Tag-based recommendation: retrieve tags from get_asset_detail and find related assets via search_assets query
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.