快速开始
搜索 → 查看详情 → 下载
curl --fail 'https://3dmodelhub.io/api/v1/models?q=pine&limit=2&locale=zh'const response = await fetch("https://3dmodelhub.io/api/v1/models?q=pine&limit=2&locale=zh", {
credentials: 'omit',
headers: { Accept: 'application/json' }
});
const body = await response.json();
if (!response.ok) throw new Error(body.error?.code || response.status);
console.log(body.data);import json
from urllib.request import urlopen
with urlopen("https://3dmodelhub.io/api/v1/models?q=pine&limit=2&locale=zh") as response:
body = json.load(response)
print(body['data'])下方示例由当前已发布目录生成;数量、价格和请求 ID 可能随实际查询变化。
认证与访问规则
公开目录和免费单模型文件都不需要账号或 API 密钥。付费包的介绍信息公开,付费文件继续执行网站原有的购买鉴权。
- Base URL
https://3dmodelhub.io/api/v1- API version
- 1.0.0
- 支持语言
- en · zh · ja · ko · es · de · fr
GET 和 HEAD 用于读取,OPTIONS 用于跨域预检。浏览器请求使用 credentials: omit。参数区分大小写,未知、重复或越界参数返回 400。
元数据共用每 IP 每分钟 120 次的边缘保护,在 Cloudflare 各位置尽力执行;这不是免费文件的账号下载额度。
只返回公开且已发布的目录事实。未知值保留 null;引擎导入检查只适用于记录中的 GLB 哈希,不等于性能认证。
GET/api/v1/site
站点信息
获取当前公开目录的分类、风格、语言和统计。目录条目不一定都是独立模型,请同时读取 scope 说明。
jaderealms_get_site_info
| 请求参数 | 必填 | 默认值 | 可选值与范围 | 说明 |
|---|---|---|---|---|
localequery · string | 选填 | "en" | en · zh · ja · ko · es · de · fr | 返回语言。 |
curl --fail 'https://3dmodelhub.io/api/v1/site?locale=zh'const response = await fetch("https://3dmodelhub.io/api/v1/site?locale=zh", {
credentials: 'omit',
headers: { Accept: 'application/json' }
});
const body = await response.json();
if (!response.ok) throw new Error(body.error?.code || response.status);
console.log(body.data);import json
from urllib.request import urlopen
with urlopen("https://3dmodelhub.io/api/v1/site?locale=zh") as response:
body = json.load(response)
print(body['data'])响应示例 · HTTP 200
下方示例由当前已发布目录生成;数量、价格和请求 ID 可能随实际查询变化。
{
"locale": "zh",
"data": {
"name": "JadeRealms",
"origin": "https://3dmodelhub.io",
"languages": [
{
"code": "en",
"tag": "en",
"label": "English"
},
{
"code": "zh",
"tag": "zh-CN",
"label": "中文"
},
{
"code": "ja",
"tag": "ja",
"label": "日本語"
},
{
"code": "ko",
"tag": "ko",
"label": "한국어"
},
{
"code": "es",
"tag": "es",
"label": "Español"
},
{
"code": "de",
"tag": "de",
"label": "Deutsch"
},
{
"code": "fr",
"tag": "fr",
"label": "Français"
}
],
"catalog": {
"verified_entries": 252,
"scope_verified_entries": 252,
"scope_pending_entries": 0,
"historical_entries": 251,
"separate_modules": 1,
"verified_atomic_model_total": null,
"verified_scene_packs": 4,
"count_note": "Catalog entries may be scenes, kits or entries of unverified scope. A parent scene and an extracted module are not counted as independent designs twice."
},
"categories": [
{
"id": "terrain",
"name": "地形与岩石",
"count": 29
},
{
"id": "vegetation",
"name": "树木与植物",
"count": 18
},
{
"id": "architecture",
"name": "建筑",
"count": 71
},
{
"id": "creatures",
"name": "生物与动物",
"count": 30
},
{
"id": "props",
"name": "场景道具",
"count": 96
},
{
"id": "environment",
"name": "场景组件",
"count": 8
}
],
"styles": [
{
"id": "ancient",
"name": "古风",
"count": 72
},
{
"id": "fantasy",
"name": "奇幻",
"count": 64
},
{
"id": "scifi",
"name": "科幻",
"count": 22
},
{
"id": "modern",
"name": "现代",
"count": 23
},
{
"id": "toon",
"name": "卡通",
"count": 78
},
{
"id": "anime",
"name": "动漫 JRPG",
"count": 43
}
],
"access": {
"free_model_login_required": false,
"paid_pack_login_required": true,
"paid_pack_purchase_required": true,
"private_account_data_exposed": false
},
"links": {
"home": "https://3dmodelhub.io/zh/",
"models": "https://3dmodelhub.io/zh/models/",
"kits": "https://3dmodelhub.io/zh/kits/",
"guide": "https://3dmodelhub.io/zh/guide/",
"license": "https://3dmodelhub.io/zh/license/"
}
},
"meta": {
"api_version": "1.0.0",
"request_id": "0e3e3a36-f5dd-438c-85b5-d3140db0f6e5"
}
}GET/api/v1/models
搜索模型
使用关键词和结构化条件筛选模型。默认按精选顺序、再按 ID 排列;结果通过 offset 分页。分类与风格的可选值见 /site。
jaderealms_search_models
| 请求参数 | 必填 | 默认值 | 可选值与范围 | 说明 |
|---|---|---|---|---|
qquery · string | 选填 | "" | ≤ 120 | 按已索引名称和描述匹配关键词,不是语义搜索。 |
categoryquery · string | 选填 | — | terrain · vegetation · architecture · creatures · props · environment | 模型分类。 |
stylequery · string | 选填 | — | ancient · fantasy · scifi · modern · toon · anime | 视觉风格。 |
tested_enginequery · string | 选填 | — | godot · unity · unreal | 记录中与当前 GLB 哈希匹配的引擎导入检查。 |
max_trianglesquery · integer | 选填 | — | 1–100000000 | 最大三角面数。 |
limitquery · integer | 选填 | 8 | 1–20 | 每页返回条数。 |
offsetquery · integer | 选填 | 0 | 0–10000 | 分页起始位置。 |
localequery · string | 选填 | "en" | en · zh · ja · ko · es · de · fr | 返回语言。 |
curl --fail 'https://3dmodelhub.io/api/v1/models?q=pine&limit=2&locale=zh'const response = await fetch("https://3dmodelhub.io/api/v1/models?q=pine&limit=2&locale=zh", {
credentials: 'omit',
headers: { Accept: 'application/json' }
});
const body = await response.json();
if (!response.ok) throw new Error(body.error?.code || response.status);
console.log(body.data);import json
from urllib.request import urlopen
with urlopen("https://3dmodelhub.io/api/v1/models?q=pine&limit=2&locale=zh") as response:
body = json.load(response)
print(body['data'])响应示例 · HTTP 200
下方示例由当前已发布目录生成;数量、价格和请求 ID 可能随实际查询变化。
{
"locale": "zh",
"data": [
{
"id": "ancient_pine",
"name": "古松",
"name_en": "Ancient Pine",
"category": "vegetation",
"category_name": "树木与植物",
"styles": [
"ancient",
"fantasy"
],
"triangles": 135682,
"default_glb_bytes": 19271052,
"static": true,
"scope": {
"type": "independent_functional_object",
"status": "verified",
"checked_on": "2026-10-22",
"evidence": "verified_actual_glb_and_three_view_classification",
"parent_id": null,
"historical_count_increment": 1
},
"tested_engines": [
"godot",
"unity"
],
"detail_url": "https://3dmodelhub.io/zh/models/ancient_pine/",
"poster_url": "https://3dmodelhub.io/media/ancient_pine-1280.jpg"
}
],
"pagination": {
"total": 1,
"limit": 2,
"offset": 0,
"next_offset": null
},
"sort": "featured_then_id",
"meta": {
"api_version": "1.0.0",
"request_id": "cf0d2298-b5ee-472f-b977-811700c6aedf"
}
}GET/api/v1/models/{id}
模型详情
用搜索结果中的精确 ID 获取完整元数据,包括文件、材质、动画、尺寸及哈希对应的引擎检查记录。
jaderealms_get_model_details
| 请求参数 | 必填 | 默认值 | 可选值与范围 | 说明 |
|---|---|---|---|---|
idpath · string | 必填 | — | ^[A-Za-z0-9_-]+$ · 1–100 | 使用列表返回的精确模型或套件 ID。 |
localequery · string | 选填 | "en" | en · zh · ja · ko · es · de · fr | 返回语言。 |
curl --fail 'https://3dmodelhub.io/api/v1/models/ancient_pine?locale=zh'const response = await fetch("https://3dmodelhub.io/api/v1/models/ancient_pine?locale=zh", {
credentials: 'omit',
headers: { Accept: 'application/json' }
});
const body = await response.json();
if (!response.ok) throw new Error(body.error?.code || response.status);
console.log(body.data);import json
from urllib.request import urlopen
with urlopen("https://3dmodelhub.io/api/v1/models/ancient_pine?locale=zh") as response:
body = json.load(response)
print(body['data'])响应示例 · HTTP 200
下方示例由当前已发布目录生成;数量、价格和请求 ID 可能随实际查询变化。
{
"locale": "zh",
"data": {
"id": "ancient_pine",
"name": "古松",
"name_en": "Ancient Pine",
"category": "vegetation",
"category_name": "树木与植物",
"styles": [
"ancient",
"fantasy"
],
"triangles": 135682,
"default_glb_bytes": 19271052,
"static": true,
"scope": {
"type": "independent_functional_object",
"status": "verified",
"checked_on": "2026-10-22",
"evidence": "verified_actual_glb_and_three_view_classification",
"parent_id": null,
"historical_count_increment": 1
},
"tested_engines": [
"godot",
"unity"
],
"detail_url": "https://3dmodelhub.io/zh/models/ancient_pine/",
"poster_url": "https://3dmodelhub.io/media/ancient_pine-1280.jpg",
"version": "Ancient_Pine_Runtime_v1",
"materials": 5,
"textures": 8,
"available_formats": [
"GLB",
"Blender"
],
"rigged": false,
"animation_count": 0,
"dimensions_m_y_up": null,
"download": {
"login_required": false,
"purchase_required": false,
"recommended": "complete_model_zip",
"files": [
{
"format": "GLB",
"purpose": "Direct default model with embedded materials",
"filename": "ancient_pine_LOD1.glb",
"bytes": 19271052,
"sha256": "2301433ad1795a0bff44b55d65f6ad81e2f94c5e3f15fa0eb7dcdc38a8bb6bbb",
"url": "https://3dmodelhub.io/download/ancient_pine/model-0/"
},
{
"format": "ZIP",
"purpose": "Complete files for this model, including Blender sources and textures",
"filename": "ancient_pine_complete.zip",
"bytes": 41762903,
"sha256": "1529b0170d56bab328c6bf7688009b0359fd390b5491b2a4689b7c9c9125a631",
"url": "https://3dmodelhub.io/download/ancient_pine/package/"
}
]
},
"validation": {
"source_glb_sha256": "2301433ad1795a0bff44b55d65f6ad81e2f94c5e3f15fa0eb7dcdc38a8bb6bbb",
"checks": [
{
"engine": "godot",
"version": "4.7.2",
"status": "passed",
"adaptations": [],
"verified_on": "2026-10-19",
"scope": "desktop_import_materials_static_render",
"report_sha256": "56ab80f9590d2708d689fe6fa1f446c19f3a39e9b71b3013ea3737f35c6ade2a"
},
{
"importer": "com.unity.cloud.gltfast 6.14.1",
"engine": "unity",
"version": "6000.6.6f1",
"status": "passed",
"adaptations": [],
"verified_on": "2026-10-19",
"scope": "desktop_import_materials_static_render",
"report_sha256": "a3034b63e1d70b6970ef6aca228012fc8b76765f2cdaa7c828735f1f46d9c3f4"
}
],
"limitations": "仅检查当前默认 GLB 的桌面静态表现;未认证性能、绑定、动画、模型碰撞或自动 LOD。",
"unreal": "虚幻引擎:尚未验证"
},
"license": {
"url": "https://3dmodelhub.io/zh/license/",
"commercial_games_and_animation": true,
"cc0_foundation_exception": false
}
},
"meta": {
"api_version": "1.0.0",
"request_id": "b803d958-60f8-48e4-9452-a6fd99267838"
}
}GET/api/v1/kits
场景包列表
查看公开场景包、当前公开价格和交付摘要。这里没有个人已购状态。
jaderealms_list_scene_kits
| 请求参数 | 必填 | 默认值 | 可选值与范围 | 说明 |
|---|---|---|---|---|
localequery · string | 选填 | "en" | en · zh · ja · ko · es · de · fr | 返回语言。 |
curl --fail 'https://3dmodelhub.io/api/v1/kits?locale=zh'const response = await fetch("https://3dmodelhub.io/api/v1/kits?locale=zh", {
credentials: 'omit',
headers: { Accept: 'application/json' }
});
const body = await response.json();
if (!response.ok) throw new Error(body.error?.code || response.status);
console.log(body.data);import json
from urllib.request import urlopen
with urlopen("https://3dmodelhub.io/api/v1/kits?locale=zh") as response:
body = json.load(response)
print(body['data'])响应示例 · HTTP 200
下方示例由当前已发布目录生成;数量、价格和请求 ID 可能随实际查询变化。
{
"locale": "zh",
"data": [
{
"id": "meteor-ancient-town",
"name": "流星古镇 · 临水茶街",
"summary": "一桥过水,半街茶香。走近茶楼、石桥与月门庭院,切换镜头和日夜光照。",
"version": "v02",
"access": "paid_one_time",
"login_required": true,
"ownership": "not_queried",
"availability": "on_sale",
"price": {
"amount_minor": 799,
"currency": "usd",
"phase": "intro",
"policy": "intro_then_standard",
"intro_amount_minor": 799,
"standard_amount_minor": 999,
"launch_at": "2026-10-21T16:03:49.190Z",
"intro_ends_at": "2026-11-20T16:03:49.190Z",
"checkout_enabled": true,
"mode": "live"
},
"contents": {
"source_catalog": "models",
"model_count": 9,
"instance_count": 41,
"counts_note": "Instances, LOD files and collision proxies are not additional independent models.",
"source_model_ids": [
"tea_house",
"moon_gate",
"arched_stone_bridge",
"crimson_maple",
"weeping_willow",
"stone_lantern",
"courtyard_wall_corner",
"open_tea_pavilion",
"bamboo_stand"
],
"source_model_access": "free_catalog"
},
"delivery": {
"filename": "Meteor_Ancient_Town_Complete_v02.zip",
"bytes": 876519048,
"format": "ZIP",
"download_ready": true,
"access_note": "Sign in, purchase this pack, and use the download button on its original page. This response does not grant access."
},
"validation": {
"details_url": "https://3dmodelhub.io/zh/kits/meteor-ancient-town/",
"checks": [],
"limitations": [
"Engine checks differ between scene packs. Consult this pack detail page; checks on individual source models do not certify whole-scene performance."
]
},
"detail_url": "https://3dmodelhub.io/zh/kits/meteor-ancient-town/",
"preview_url": "https://3dmodelhub.io/preview/meteor-ancient-town/",
"license_url": "https://3dmodelhub.io/zh/license/"
},
{
"id": "moonlit-bamboo",
"name": "月门竹影",
"summary": "月洞门、石灯与竹石组成一方小庭院。旋转、靠近,切换日夜,查看原模型的每一处细节。",
"version": "v02",
"access": "paid_one_time",
"login_required": true,
"ownership": "not_queried",
"availability": "on_sale",
"price": {
"amount_minor": 399,
"currency": "usd",
"phase": "intro",
"policy": "intro_then_standard",
"intro_amount_minor": 399,
"standard_amount_minor": 599,
"launch_at": "2026-10-21T16:03:49.190Z",
"intro_ends_at": "2026-11-20T16:03:49.190Z",
"checkout_enabled": true,
"mode": "live"
},
"contents": {
"source_catalog": "models",
"model_count": 4,
"instance_count": 7,
"counts_note": "Instances, LOD files and collision proxies are not additional independent models.",
"source_model_ids": [
"moon_gate",
"stone_lantern",
"bamboo_stand",
"moss_boulders"
],
"source_model_access": "free_catalog"
},
"delivery": {
"filename": "Moonlit_Bamboo_Complete_v02.zip",
"bytes": 234657922,
"format": "ZIP",
"download_ready": true,
"access_note": "Sign in, purchase this pack, and use the download button on its original page. This response does not grant access."
},
"validation": {
"details_url": "https://3dmodelhub.io/zh/scenes/moonlit-bamboo/",
"checks": [],
"limitations": [
"Engine checks differ between scene packs. Consult this pack detail page; checks on individual source models do not certify whole-scene performance."
]
},
"detail_url": "https://3dmodelhub.io/zh/scenes/moonlit-bamboo/",
"preview_url": "https://3dmodelhub.io/zh/scenes/moonlit-bamboo/#preview",
"license_url": "https://3dmodelhub.io/zh/license/"
},
{
"id": "sunward-modern-town",
"name": "Sunward 现代小镇",
"summary": "奶油白建筑、青绿色店面与连贯街区,组成明亮的现代小镇。商业街、住宅和公共空间可用于搭建游戏环境。",
"version": "v02",
"access": "paid_one_time",
"login_required": true,
"ownership": "not_queried",
"availability": "on_sale",
"price": {
"amount_minor": 799,
"currency": "usd",
"phase": "fixed",
"policy": "fixed",
"intro_amount_minor": 799,
"standard_amount_minor": 799,
"launch_at": "2026-10-21T16:03:49.190Z",
"intro_ends_at": null,
"checkout_enabled": true,
"mode": "live"
},
"contents": {
"source_catalog": "sunward",
"model_count": 72,
"instance_count": 128,
"counts_note": "Instances, LOD files and collision proxies are not additional independent models.",
"source_model_ids": [
"balcony_platform",
"balcony_railing",
"column",
"corner_external",
"corner_internal",
"cornice",
"exterior_stair",
"foundation_step",
"parapet_corner",
"parapet_straight",
"porch_canopy",
"roof_flat",
"roof_hvac",
"roof_pitched_end",
"roof_pitched_middle",
"shop_awning",
"solar_rack",
"wall_entry",
"wall_shop_entry",
"wall_shop_window",
"wall_solid",
"wall_window",
"crosswalk_marking",
"curb_ramp",
"drain_channel",
"parking_marking",
"plaza_paving",
"road_cross_junction",
"road_curve",
"road_straight",
"road_t_junction",
"sidewalk_external_corner",
"sidewalk_internal_corner",
"sidewalk_straight",
"bollard",
"direction_sign",
"fire_hydrant",
"fountain",
"menu_board",
"planter",
"shop_hanging_sign",
"traffic_light",
"tree_broadleaf",
"tree_street_tall",
"tree_pine_layered",
"tree_blossom",
"shrub_leafy",
"fern_arching",
"grass_upright",
"grass_arching",
"rock_single",
"flowers_meadow",
"bus_shelter",
"bus_stop_sign",
"trash_bin",
"recycling_bin",
"post_box",
"parcel_locker",
"bicycle_rack",
"bicycle",
"bench",
"street_lamp",
"notice_board",
"drinking_fountain",
"car_compact",
"delivery_van",
"vending_machine",
"cafe_table",
"cafe_chair",
"patio_umbrella",
"shop_crate",
"ev_charger"
],
"source_model_access": "paid_pack_only"
},
"delivery": {
"filename": "Sunward_Modern_Town_Complete_v02.zip",
"bytes": 685144857,
"format": "ZIP",
"download_ready": true,
"access_note": "Sign in, purchase this pack, and use the download button on its original page. This response does not grant access."
},
"validation": {
"details_url": "https://3dmodelhub.io/zh/products/sunward-modern-town/",
"checks": [
"Blender 4.3.2 真实回导:175 个单件库 GLB 与 54 个镇 GLB 通过。",
"单件 Godot 4.6.3 headless 导入:175 项资源、282 个碰撞形状与 846 个外侧样点通过。关闭有损 mesh 压缩后,395,326 个基础三角无退化。",
"镇 Godot 4.6.3 headless 导入:54 个 GLB、30 张图像;17 个默认文件与 17 个碰撞文件同场检查。410 个碰撞组件、1,230 个外侧样点、560 个角色尺度样点及 8 条明确路线通过。"
],
"limitations": [
"建筑仅有外观;不含室内、人物、任务、驾驶或开店交互。",
"未提供自动 LOD 切换、流送、全图导航或完整角色控制器。",
"镇碰撞覆盖楼体外壳与世界地面支持,不覆盖全部街具、树干及细障碍。8 条路线为样本,不是全镇每处可通行认证。",
"Godot 不应用 KHR_materials_ior,不保证跨引擎玻璃观感完全一致。",
"尚未进行 GPU 帧率测试、Unity/Unreal 验证或移动端认证。",
"仍有可见建筑组合重复。LOD0 高细节仅覆盖 26 栋代表建筑,其余 102 栋没有同等级细节;默认全镇共 5,358,342 三角,仍需按目标设备优化。技术检查不等于最终商业视觉验收。作者源保留旧辅助碰撞,正式碰撞以已验证 runtime/Collision GLB 为准。"
]
},
"detail_url": "https://3dmodelhub.io/zh/products/sunward-modern-town/",
"preview_url": "https://3dmodelhub.io/preview/sunward-modern-town/",
"license_url": "https://3dmodelhub.io/zh/license/"
},
{
"id": "creek-village",
"name": "溪流村庄 V5",
"summary": "草坡、蜿蜒溪流与水车围绕的小村庄。提供含草地阴影修复的 V5 Blender 可编辑场景。",
"version": "v05",
"access": "paid_one_time",
"login_required": true,
"ownership": "not_queried",
"availability": "on_sale",
"price": {
"amount_minor": 599,
"currency": "usd",
"phase": "fixed",
"policy": "fixed",
"intro_amount_minor": 599,
"standard_amount_minor": 599,
"launch_at": "2026-10-22T01:05:44.321Z",
"intro_ends_at": null,
"checkout_enabled": true,
"mode": "live"
},
"contents": {
"source_catalog": "blender-scene",
"model_count": null,
"instance_count": null,
"counts_note": "Instances, LOD files and collision proxies are not additional independent models.",
"source_model_ids": [],
"source_model_access": "paid_pack_only"
},
"delivery": {
"filename": "Creek_Village_V5_Complete_v05.zip",
"bytes": 28490117,
"format": "ZIP",
"download_ready": true,
"access_note": "Sign in, purchase this pack, and use the download button on its original page. This response does not grant access."
},
"validation": {
"details_url": "https://3dmodelhub.io/zh/kits/creek-village/",
"checks": [
"草地阴影修复已在本地 Blender 材质预览播放中检查;记录对比表明,几何、物体变换、材质节点与动画保持不变。"
],
"limitations": [
"这是一个已布置的完整环境。场景物体和草地实例数量不代表独立模型种类。",
"浏览器展示静态 GLB 适配版,程序材质、光照与原生动画效果可能不同。",
"尚未完成 Godot、Unity 或 Unreal 导入,也未完成碰撞、导航与目标设备帧率验证。",
"原生播放检查不等于最终 Cycles 动画渲染验收,也不能证明每一帧均无瑕疵。"
]
},
"detail_url": "https://3dmodelhub.io/zh/kits/creek-village/",
"preview_url": "https://3dmodelhub.io/preview/creek-village/",
"license_url": "https://3dmodelhub.io/zh/license/"
}
],
"meta": {
"api_version": "1.0.0",
"request_id": "d468b1af-42fb-439c-8023-1e5568e1199a"
}
}GET/api/v1/kits/{id}
场景包详情
获取一个场景包的公开组成、验证和交付信息。公开文件名与大小不授予付费文件访问权限。
jaderealms_get_scene_kit_details
| 请求参数 | 必填 | 默认值 | 可选值与范围 | 说明 |
|---|---|---|---|---|
idpath · string | 必填 | — | ^[A-Za-z0-9_-]+$ · 1–100 | 使用列表返回的精确模型或套件 ID。 |
localequery · string | 选填 | "en" | en · zh · ja · ko · es · de · fr | 返回语言。 |
curl --fail 'https://3dmodelhub.io/api/v1/kits/creek-village?locale=zh'const response = await fetch("https://3dmodelhub.io/api/v1/kits/creek-village?locale=zh", {
credentials: 'omit',
headers: { Accept: 'application/json' }
});
const body = await response.json();
if (!response.ok) throw new Error(body.error?.code || response.status);
console.log(body.data);import json
from urllib.request import urlopen
with urlopen("https://3dmodelhub.io/api/v1/kits/creek-village?locale=zh") as response:
body = json.load(response)
print(body['data'])响应示例 · HTTP 200
下方示例由当前已发布目录生成;数量、价格和请求 ID 可能随实际查询变化。
{
"locale": "zh",
"data": {
"id": "creek-village",
"name": "溪流村庄 V5",
"summary": "草坡、蜿蜒溪流与水车围绕的小村庄。提供含草地阴影修复的 V5 Blender 可编辑场景。",
"version": "v05",
"access": "paid_one_time",
"login_required": true,
"ownership": "not_queried",
"availability": "on_sale",
"price": {
"amount_minor": 599,
"currency": "usd",
"phase": "fixed",
"policy": "fixed",
"intro_amount_minor": 599,
"standard_amount_minor": 599,
"launch_at": "2026-10-22T01:05:44.321Z",
"intro_ends_at": null,
"checkout_enabled": true,
"mode": "live"
},
"contents": {
"source_catalog": "blender-scene",
"model_count": null,
"instance_count": null,
"counts_note": "Instances, LOD files and collision proxies are not additional independent models.",
"source_model_ids": [],
"source_model_access": "paid_pack_only"
},
"delivery": {
"filename": "Creek_Village_V5_Complete_v05.zip",
"bytes": 28490117,
"format": "ZIP",
"download_ready": true,
"access_note": "Sign in, purchase this pack, and use the download button on its original page. This response does not grant access."
},
"validation": {
"details_url": "https://3dmodelhub.io/zh/kits/creek-village/",
"checks": [
"草地阴影修复已在本地 Blender 材质预览播放中检查;记录对比表明,几何、物体变换、材质节点与动画保持不变。"
],
"limitations": [
"这是一个已布置的完整环境。场景物体和草地实例数量不代表独立模型种类。",
"浏览器展示静态 GLB 适配版,程序材质、光照与原生动画效果可能不同。",
"尚未完成 Godot、Unity 或 Unreal 导入,也未完成碰撞、导航与目标设备帧率验证。",
"原生播放检查不等于最终 Cycles 动画渲染验收,也不能证明每一帧均无瑕疵。"
]
},
"detail_url": "https://3dmodelhub.io/zh/kits/creek-village/",
"preview_url": "https://3dmodelhub.io/preview/creek-village/",
"license_url": "https://3dmodelhub.io/zh/license/"
},
"meta": {
"api_version": "1.0.0",
"request_id": "35979623-3451-4283-af10-f2d9f2bed6ec"
}
}GET/api/v1/guidance
使用与许可说明
topic 为必填项:license、downloads、engines 或 purchases。许可最终以返回的 license 页面条款为准。
jaderealms_get_usage_guidance
| 请求参数 | 必填 | 默认值 | 可选值与范围 | 说明 |
|---|---|---|---|---|
topicquery · string | 必填 | — | license · downloads · engines · purchases | 需要读取的公开说明主题。 |
localequery · string | 选填 | "en" | en · zh · ja · ko · es · de · fr | 返回语言。 |
curl --fail 'https://3dmodelhub.io/api/v1/guidance?topic=license&locale=zh'const response = await fetch("https://3dmodelhub.io/api/v1/guidance?topic=license&locale=zh", {
credentials: 'omit',
headers: { Accept: 'application/json' }
});
const body = await response.json();
if (!response.ok) throw new Error(body.error?.code || response.status);
console.log(body.data);import json
from urllib.request import urlopen
with urlopen("https://3dmodelhub.io/api/v1/guidance?topic=license&locale=zh") as response:
body = json.load(response)
print(body['data'])响应示例 · HTTP 200
下方示例由当前已发布目录生成;数量、价格和请求 ID 可能随实际查询变化。
{
"locale": "zh",
"data": {
"topic": "license",
"links": {
"home": "https://3dmodelhub.io/zh/",
"models": "https://3dmodelhub.io/zh/models/",
"kits": "https://3dmodelhub.io/zh/kits/",
"guide": "https://3dmodelhub.io/zh/guide/",
"license": "https://3dmodelhub.io/zh/license/"
},
"confirmed": true,
"commercial_games_and_animation": true,
"raw_asset_resale": false,
"repackaged_asset_distribution": false,
"paid_pack_terms_url": "https://3dmodelhub.io/zh/license/",
"cc0_exceptions": {
"note": "Project redistribution restrictions do not override the disclosed CC0 foundation rights. Consult the exact source records.",
"url": "https://3dmodelhub.io/zh/license/#cc0-foundations",
"model_ids": [
"ancient_east_water_buffalo",
"anime_jrpg_coastal_wind_cliff"
]
}
},
"meta": {
"api_version": "1.0.0",
"request_id": "5e703484-f1e6-4359-8f06-d4ad6b38521c"
}
}GET/api/v1/models/{id}/downloads
免费模型下载信息
获取免费 GLB 和完整 ZIP 的文件信息与下载地址。这个接口返回 JSON,文件内容需要再访问 files[].url。
jaderealms_get_model_downloads
| 请求参数 | 必填 | 默认值 | 可选值与范围 | 说明 |
|---|---|---|---|---|
idpath · string | 必填 | — | ^[A-Za-z0-9_-]+$ · 1–100 | 使用列表返回的精确模型或套件 ID。 |
localequery · string | 选填 | "en" | en · zh · ja · ko · es · de · fr | 返回语言。 |
curl --fail 'https://3dmodelhub.io/api/v1/models/ancient_pine/downloads?locale=zh'const response = await fetch("https://3dmodelhub.io/api/v1/models/ancient_pine/downloads?locale=zh", {
credentials: 'omit',
headers: { Accept: 'application/json' }
});
const body = await response.json();
if (!response.ok) throw new Error(body.error?.code || response.status);
console.log(body.data);import json
from urllib.request import urlopen
with urlopen("https://3dmodelhub.io/api/v1/models/ancient_pine/downloads?locale=zh") as response:
body = json.load(response)
print(body['data'])响应示例 · HTTP 200
下方示例由当前已发布目录生成;数量、价格和请求 ID 可能随实际查询变化。
{
"locale": "zh",
"data": {
"id": "ancient_pine",
"version": "Ancient_Pine_Runtime_v1",
"login_required": false,
"purchase_required": false,
"recommended": "complete_model_zip",
"files": [
{
"format": "GLB",
"purpose": "Direct default model with embedded materials",
"filename": "ancient_pine_LOD1.glb",
"bytes": 19271052,
"sha256": "2301433ad1795a0bff44b55d65f6ad81e2f94c5e3f15fa0eb7dcdc38a8bb6bbb",
"url": "https://3dmodelhub.io/download/ancient_pine/model-0/"
},
{
"format": "ZIP",
"purpose": "Complete files for this model, including Blender sources and textures",
"filename": "ancient_pine_complete.zip",
"bytes": 41762903,
"sha256": "1529b0170d56bab328c6bf7688009b0359fd390b5491b2a4689b7c9c9125a631",
"url": "https://3dmodelhub.io/download/ancient_pine/package/"
}
],
"license": {
"url": "https://3dmodelhub.io/zh/license/",
"commercial_games_and_animation": true,
"cc0_foundation_exception": false
}
},
"meta": {
"api_version": "1.0.0",
"request_id": "a36cd537-532a-4f34-b1c3-c352be5c5e4f"
}
}返回字段说明
| JSON | 说明 |
|---|---|
data | 接口的实际结果。模型列表和套件列表是数组,详情是对象。 |
id / version | 条目的稳定 ID 和内容版本。详情路径使用 id,不要使用翻译后的名称。 |
name / name_en | 当前 locale 下的名称和英文名称。JSON 字段名、枚举值和 ID 不随语言改变。 |
category / category_name / styles | 分类代码、显示名称及风格代码数组;筛选时使用代码,不使用显示名称。 |
triangles / default_glb_bytes | 当前默认 GLB 的三角面数和字节数,均为整数。它们不代表整个 ZIP 的大小或场景运行性能。 |
materials / textures | 模型记录中的材质数量、图像纹理数量。 |
static / rigged / animation_count | 目录静态模型标记、实际绑定状态与动画数量。不要仅根据模型名称推断它有角色骨骼或动画。 |
available_formats / dimensions_m_y_up | 记录中的格式名称与米制、Y 轴向上的尺寸信息;尺寸未知时为 null。具体 ZIP 文件内容见文件说明。 |
locale | 这次响应使用的语言,默认 en。 |
meta.api_version / meta.request_id | API 版本和本次请求标识。request_id 可用于排查实际请求,文档示例的 ID 仅属于示例。 |
pagination.total / next_offset | 符合当前筛选条件的总数,以及下一页起点;next_offset 为 null 表示结束。 |
scope / status / checked_on / parent_id | 条目范围、核验状态与日期、父场景。verified 仅确认当前 GLB 的内容及分类,不代表引擎认证。目录条目、提取模块和场景重复实例不能直接相加当作独立模型总数。 |
tested_engines / validation | 当前默认 GLB 哈希对应的引擎导入记录、检查范围和限制,不代表游戏帧率或其他引擎已验证。 |
download.files / files | GLB 与完整 ZIP 的格式、文件名、字节数、SHA256 和实际文件地址。此数组自身不是文件。 |
login_required / purchase_required | 该内容是否要求登录或购买。免费模型的两个值均为 false;付费包不会因此提供私人下载地址。 |
files[].purpose / recommended | 文件用途说明,以及建议的下载选择。complete_model_zip 表示优先取得完整单模型 ZIP。 |
detail_url / poster_url / preview_url / license_url | 模型详情、封面、场景预览和许可页面的绝对地址。预览地址是网站页面,不是模型文件地址。 |
price.amount_minor / currency | 金额使用最小货币单位的整数。例如 USD 的 799 表示 7.99 美元;null 表示未知,不能当作免费。 |
price.phase / policy / checkout_enabled | 当前价格阶段、定价策略及结账可用状态。价格由服务器当前配置计算,不是永久报价;API 本身不创建结账。 |
access / availability | 包的公开访问类型(free 或 paid_one_time)及可用状态(free_download、on_sale、unavailable)。应按实际返回判断。 |
contents.model_count / instance_count / source_model_ids | 源模型数量、场景放置实例数量及源条目 ID。实例、LOD 和碰撞代理不应重复计为独立模型。 |
ownership / delivery | 公开接口不查询账号持有状态。delivery 的公开文件名和大小不授予付费下载权限。 |
delivery.download_url | 只有场景包当前被设为免费时才可能公开此地址;付费包不包含这个字段。 |
license / guidance | 使用许可摘要和公开帮助内容。商业使用范围、禁止转卖和 CC0 例外请以链接的许可页及具体素材说明为准。 |
null | 来源未确认或该信息不适用;不要自动替换成 0、false 或“已验证”。 |
分页读取
持续使用 next_offset,直到它变成 null。翻页时保持筛选条件一致;total 表示符合当前筛选条件的条目数。
const base = "https://3dmodelhub.io/api/v1";
let offset = 0;
while (offset !== null) {
const query = new URLSearchParams({ limit: '20', offset: String(offset), locale: "zh" });
const response = await fetch(base + '/models?' + query, { credentials: 'omit' });
const body = await response.json();
if (!response.ok) throw new Error(body.error?.code || response.status);
for (const model of body.data) console.log(model.id, model.name);
offset = body.pagination.next_offset;
}下载实际文件
downloads 接口返回 JSON。继续访问 data.files 中的 url,才能下载实际 GLB 或 ZIP 文件。免费文件无需登录或 API 密钥。
curl --fail --location --output 'ancient_pine_LOD1.glb' 'https://3dmodelhub.io/download/ancient_pine/model-0/'
curl --fail --location --output 'ancient_pine_complete.zip' 'https://3dmodelhub.io/download/ancient_pine/package/'
# macOS: compare the first column with data.files[].sha256
shasum -a 256 'ancient_pine_LOD1.glb'Range: bytes=0-1023 · 206 Partial Content · ETag / If-Range
公开目录和免费单模型文件都不需要账号或 API 密钥。付费包的介绍信息公开,付费文件继续执行网站原有的购买鉴权。
错误与重试
程序应判断 error.code 并保存 request_id,结合 HTTP 状态处理错误。错误消息使用英文。遇到 429 时按 Retry-After 等待,不要立即连续重试。
{
"error": {
"code": "InvalidArguments",
"message": "Check the documented parameters and their allowed values."
},
"request_id": "00000000-0000-4000-8000-000000000000"
}X-Request-Id = request_id · Access-Control-Allow-Origin: * · Cache-Control: no-store
| HTTP | error.code | 说明 |
|---|---|---|
| 400 | InvalidArguments | 参数名拼错、重复参数、缺少 topic、limit 超出 1–20。 |
| 404 | NotFound | 没有对应的已发布条目,或请求了不开放的私人接口。 |
| 405 | MethodNotAllowed | GET, HEAD, OPTIONS |
| 414 | InvalidArguments | URL > 4096 |
| 429 | RateLimited | Retry-After: 60 |
downloads 接口返回 JSON。继续访问 data.files 中的 url,才能下载实际 GLB 或 ZIP 文件。免费文件无需登录或 API 密钥。
文件下载还可能返回 416(Range 超出文件范围)或 503(存储或校验暂不可用);付费文件仍可能返回 401 / 402。请按响应状态处理,不要把 HTML 错误页保存成模型。