JADE REALMS / 개발자 문서
REST API 사용 안내
공개 정보와 무료 단일 모델에는 계정이나 API 키가 필요 없습니다. 유료 파일은 기존 구매 확인을 유지합니다.
빠른 시작
검색 → 상세 → 다운로드
curl --fail 'https://3dmodelhub.io/api/v1/models?q=pine&limit=2&locale=ko'const response = await fetch("https://3dmodelhub.io/api/v1/models?q=pine&limit=2&locale=ko", {
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=ko") 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는 CORS용입니다. 브라우저는 credentials: omit을 사용합니다. 잘못되거나 중복된 매개변수는 400입니다.
메타데이터는 Cloudflare 위치별 IP당 분당 120회 최선형 제한을 공유합니다. 무료 파일의 계정별 다운로드 한도가 아닙니다.
공개된 사실만 반환합니다. 알 수 없는 값은 null이며 엔진 검증은 기록된 GLB 해시에만 적용되고 성능을 인증하지 않습니다.
GET/api/v1/site
사이트 정보
Read published categories, styles, languages and counts. Catalog entries are not necessarily independent models; read the scope notes.
jaderealms_get_site_info
| 요청 매개변수 | 필수 | 기본값 | 허용 값 | 설명 |
|---|---|---|---|---|
localequery · string | 선택 | "en" | en · zh · ja · ko · es · de · fr | 응답 언어. |
curl --fail 'https://3dmodelhub.io/api/v1/site?locale=ko'const response = await fetch("https://3dmodelhub.io/api/v1/site?locale=ko", {
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=ko") as response:
body = json.load(response)
print(body['data'])응답 예시 · HTTP 200
예시는 현재 공개 카탈로그에서 생성합니다. 개수, 가격, 요청 ID는 달라질 수 있습니다.
{
"locale": "ko",
"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": "SF",
"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/ko/",
"models": "https://3dmodelhub.io/ko/models/",
"kits": "https://3dmodelhub.io/ko/kits/",
"guide": "https://3dmodelhub.io/ko/guide/",
"license": "https://3dmodelhub.io/ko/license/"
}
},
"meta": {
"api_version": "1.0.0",
"request_id": "fdb17c86-9fa0-44ba-9aed-f9e7a1be0965"
}
}GET/api/v1/models
모델 검색
Filter by keyword and structured conditions. Default order is featured first, then ID; use offset for pagination. Read /site for category and style values.
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=ko'const response = await fetch("https://3dmodelhub.io/api/v1/models?q=pine&limit=2&locale=ko", {
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=ko") as response:
body = json.load(response)
print(body['data'])응답 예시 · HTTP 200
예시는 현재 공개 카탈로그에서 생성합니다. 개수, 가격, 요청 ID는 달라질 수 있습니다.
{
"locale": "ko",
"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/ko/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": "6c76b6cd-e6bc-4a88-b6d5-2cad9dd20859"
}
}GET/api/v1/models/{id}
모델 상세
Use an exact ID from search to get files, materials, animations, dimensions and hash-matched engine checks.
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=ko'const response = await fetch("https://3dmodelhub.io/api/v1/models/ancient_pine?locale=ko", {
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=ko") as response:
body = json.load(response)
print(body['data'])응답 예시 · HTTP 200
예시는 현재 공개 카탈로그에서 생성합니다. 개수, 가격, 요청 ID는 달라질 수 있습니다.
{
"locale": "ko",
"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/ko/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": "Unreal Engine: 미검증"
},
"license": {
"url": "https://3dmodelhub.io/ko/license/",
"commercial_games_and_animation": true,
"cc0_foundation_exception": false
}
},
"meta": {
"api_version": "1.0.0",
"request_id": "21754d0a-4bbd-4694-b35a-5cd2991c75e4"
}
}GET/api/v1/kits
장면 팩 목록
Read public scene packs, current public prices and delivery summaries. Personal ownership is not queried.
jaderealms_list_scene_kits
| 요청 매개변수 | 필수 | 기본값 | 허용 값 | 설명 |
|---|---|---|---|---|
localequery · string | 선택 | "en" | en · zh · ja · ko · es · de · fr | 응답 언어. |
curl --fail 'https://3dmodelhub.io/api/v1/kits?locale=ko'const response = await fetch("https://3dmodelhub.io/api/v1/kits?locale=ko", {
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=ko") as response:
body = json.load(response)
print(body['data'])응답 예시 · HTTP 200
예시는 현재 공개 카탈로그에서 생성합니다. 개수, 가격, 요청 ID는 달라질 수 있습니다.
{
"locale": "ko",
"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/ko/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/ko/kits/meteor-ancient-town/",
"preview_url": "https://3dmodelhub.io/preview/meteor-ancient-town/?lang=ko",
"license_url": "https://3dmodelhub.io/ko/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/ko/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/ko/scenes/moonlit-bamboo/",
"preview_url": "https://3dmodelhub.io/ko/scenes/moonlit-bamboo/#preview",
"license_url": "https://3dmodelhub.io/ko/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/ko/products/sunward-modern-town/",
"checks": [
"Blender 4.3.2에서 단품 GLB 175개와 마을 GLB 54개를 실제 다시 가져와 검증했습니다.",
"단품 Godot 4.6.3 headless: 리소스 175개, 충돌 형상 282개, 외부 표본 846개 통과. 손실 압축을 끄면 기본 삼각형 395,326개에서 퇴화가 없습니다.",
"마을 Godot 4.6.3: GLB 54개와 이미지 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/ko/products/sunward-modern-town/",
"preview_url": "https://3dmodelhub.io/preview/sunward-modern-town/?lang=ko",
"license_url": "https://3dmodelhub.io/ko/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/ko/kits/creek-village/",
"checks": [
"잔디 그림자 수정은 로컬 Blender 재질 미리보기 재생에서 확인했습니다. 기록상 형상, 오브젝트 변환, 재질 노드와 애니메이션은 유지되었습니다."
],
"limitations": [
"배치된 하나의 환경입니다. 장면 오브젝트와 잔디 인스턴스 수는 독립 모델 종류 수가 아닙니다.",
"브라우저는 정적 GLB 버전이며 Blender 절차적 재질, 조명, 원본 애니메이션과 다릅니다.",
"Godot, Unity, Unreal 가져오기 및 충돌, 내비게이션, 대상 기기 FPS는 검증하지 않았습니다.",
"원본 재생 확인은 최종 Cycles 애니메이션 렌더 검수나 모든 프레임의 무결성을 보증하지 않습니다."
]
},
"detail_url": "https://3dmodelhub.io/ko/kits/creek-village/",
"preview_url": "https://3dmodelhub.io/preview/creek-village/?lang=ko",
"license_url": "https://3dmodelhub.io/ko/license/"
}
],
"meta": {
"api_version": "1.0.0",
"request_id": "72f1f549-b190-4c47-8555-dc1352fe17b2"
}
}GET/api/v1/kits/{id}
장면 팩 상세
Read one pack’s public contents, validation and delivery metadata. A filename and size grant no paid-file access.
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=ko'const response = await fetch("https://3dmodelhub.io/api/v1/kits/creek-village?locale=ko", {
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=ko") as response:
body = json.load(response)
print(body['data'])응답 예시 · HTTP 200
예시는 현재 공개 카탈로그에서 생성합니다. 개수, 가격, 요청 ID는 달라질 수 있습니다.
{
"locale": "ko",
"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/ko/kits/creek-village/",
"checks": [
"잔디 그림자 수정은 로컬 Blender 재질 미리보기 재생에서 확인했습니다. 기록상 형상, 오브젝트 변환, 재질 노드와 애니메이션은 유지되었습니다."
],
"limitations": [
"배치된 하나의 환경입니다. 장면 오브젝트와 잔디 인스턴스 수는 독립 모델 종류 수가 아닙니다.",
"브라우저는 정적 GLB 버전이며 Blender 절차적 재질, 조명, 원본 애니메이션과 다릅니다.",
"Godot, Unity, Unreal 가져오기 및 충돌, 내비게이션, 대상 기기 FPS는 검증하지 않았습니다.",
"원본 재생 확인은 최종 Cycles 애니메이션 렌더 검수나 모든 프레임의 무결성을 보증하지 않습니다."
]
},
"detail_url": "https://3dmodelhub.io/ko/kits/creek-village/",
"preview_url": "https://3dmodelhub.io/preview/creek-village/?lang=ko",
"license_url": "https://3dmodelhub.io/ko/license/"
},
"meta": {
"api_version": "1.0.0",
"request_id": "8eeb7259-14ac-4bd9-af16-8dac062e580d"
}
}GET/api/v1/guidance
사용 및 라이선스
topic is required: license, downloads, engines or purchases. The linked license page contains the applicable terms.
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=ko'const response = await fetch("https://3dmodelhub.io/api/v1/guidance?topic=license&locale=ko", {
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=ko") as response:
body = json.load(response)
print(body['data'])응답 예시 · HTTP 200
예시는 현재 공개 카탈로그에서 생성합니다. 개수, 가격, 요청 ID는 달라질 수 있습니다.
{
"locale": "ko",
"data": {
"topic": "license",
"links": {
"home": "https://3dmodelhub.io/ko/",
"models": "https://3dmodelhub.io/ko/models/",
"kits": "https://3dmodelhub.io/ko/kits/",
"guide": "https://3dmodelhub.io/ko/guide/",
"license": "https://3dmodelhub.io/ko/license/"
},
"confirmed": true,
"commercial_games_and_animation": true,
"raw_asset_resale": false,
"repackaged_asset_distribution": false,
"paid_pack_terms_url": "https://3dmodelhub.io/ko/license/",
"cc0_exceptions": {
"note": "Project redistribution restrictions do not override the disclosed CC0 foundation rights. Consult the exact source records.",
"url": "https://3dmodelhub.io/ko/license/#cc0-foundations",
"model_ids": [
"ancient_east_water_buffalo",
"anime_jrpg_coastal_wind_cliff"
]
}
},
"meta": {
"api_version": "1.0.0",
"request_id": "5062cb21-e60e-415a-b8f1-fbf79ac8bf46"
}
}GET/api/v1/models/{id}/downloads
무료 다운로드 정보
Get free GLB and complete ZIP metadata and URLs. This endpoint returns JSON; follow files[].url to receive the actual bytes.
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=ko'const response = await fetch("https://3dmodelhub.io/api/v1/models/ancient_pine/downloads?locale=ko", {
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=ko") as response:
body = json.load(response)
print(body['data'])응답 예시 · HTTP 200
예시는 현재 공개 카탈로그에서 생성합니다. 개수, 가격, 요청 ID는 달라질 수 있습니다.
{
"locale": "ko",
"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/ko/license/",
"commercial_games_and_animation": true,
"cc0_foundation_exception": false
}
},
"meta": {
"api_version": "1.0.0",
"request_id": "4f03242c-0e7a-461f-b7f5-dead39725598"
}
}응답 필드
| JSON | 설명 |
|---|---|
data | The endpoint result: arrays for model/pack lists, objects for details. |
id / version | Stable entry ID and content version. Use the ID, not a translated name, in detail paths. |
name / name_en | Localized and English names. JSON names, enum values and IDs are independent of locale. |
category / category_name / styles | Category code, display label and style code array. Filter using codes, not labels. |
triangles / default_glb_bytes | Triangle count and byte size of the default GLB, as integers. Not ZIP size or scene performance. |
materials / textures | Recorded counts of materials and texture images. |
static / rigged / animation_count | Catalog static marker, rigging flag and animation count. A character name does not imply a rig or animation. |
available_formats / dimensions_m_y_up | Recorded formats and dimensions in meters with Y up; null when unknown. Check file notes for actual ZIP contents. |
locale | Response language; en by default. |
meta.api_version / meta.request_id | API version and request identifier. An ID shown in an example does not identify your own request. |
pagination.total / next_offset | Matching rows and the next offset; null means the final page. |
scope / status / checked_on / parent_id | Entry scope, verification status and date, and parent scene. verified confirms current GLB contents and classification, not engine certification. Entries, extracted modules and repeated instances are different counts. |
tested_engines / validation | Hash-matched engine import records and their scope; not a performance or other-engine certificate. |
download.files / files | GLB/ZIP format, filename, bytes, SHA256 and file URL. The array itself is not the file. |
login_required / purchase_required | Whether sign-in or purchase is required. Both are false for free models; paid packs do not expose private URLs. |
files[].purpose / recommended | Purpose of each file and recommended choice. complete_model_zip recommends the complete single-model ZIP. |
detail_url / poster_url / preview_url / license_url | Absolute detail, poster, scene preview and license page URLs. A preview page is not a model file. |
price.amount_minor / currency | Integer minor currency units: USD 799 means US$7.99. null means unknown, not free. |
price.phase / policy / checkout_enabled | Current price phase, pricing policy and checkout availability. Server-calculated prices may change; this API creates no checkout. |
access / availability | Pack access (free or paid_one_time) and availability (free_download, on_sale, unavailable). Follow the returned state. |
contents.model_count / instance_count / source_model_ids | Source model count, scene instance count and source IDs. Instances, LODs and collision proxies are not extra independent models. |
ownership / delivery | Public metadata does not query account ownership. Public delivery names and sizes grant no paid-file access. |
delivery.download_url | May appear only while the pack is publicly free. Omitted for paid packs. |
license / guidance | License summaries and public guidance. Read the linked terms and asset-specific notes for commercial use, resale restrictions and CC0 exceptions. |
null | Unknown or inapplicable; do not silently replace with 0, false or a verified claim. |
페이지 나누기
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: "ko" });
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을 반환합니다. 실제 GLB 또는 ZIP은 data.files의 url에서 받으세요. 무료 파일에는 인증이 필요 없습니다.
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 키가 필요 없습니다. 유료 파일은 기존 구매 확인을 유지합니다.
오류 및 재시도
HTTP 상태와 error.code를 확인하고 request_id를 저장하세요. 메시지는 영어입니다. 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 | Unknown/repeated argument, missing topic, or limit outside 1–20. |
| 404 | NotFound | No published entry or no public endpoint. |
| 405 | MethodNotAllowed | GET, HEAD, OPTIONS |
| 414 | InvalidArguments | URL > 4096 |
| 429 | RateLimited | Retry-After: 60 |
downloads는 JSON을 반환합니다. 실제 GLB 또는 ZIP은 data.files의 url에서 받으세요. 무료 파일에는 인증이 필요 없습니다.
File routes may also return 416 for invalid ranges or 503 for storage/integrity failures; paid files may return 401/402. Check status before saving a response as a model.