快速开始
基础 URL:https://api.meshforge.ai/v1
# 使用 curl 测试 API
curl -X POST https://api.meshforge.ai/v1/models/text-to-3d \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt": "a cyberpunk dragon", "style": "realistic"}'
认证
所有 API 请求需要在 Header 中携带 API Key:
Authorization: Bearer YOUR_API_KEY
在 控制台 中获取你的 API Key。Pro 及以上方案支持 API 访问。
错误处理
API 使用标准 HTTP 状态码:
200 OK - 请求成功
202 Accepted - 任务已接受
400 Bad Request - 请求参数错误
401 Unauthorized - 认证失败
404 Not Found - 资源不存在
429 Too Many Requests - 速率限制
API 端点
POST/models/text-to-3d
提交一个文生 3D 生成任务,返回任务 ID 用于轮询状态。
请求参数:{
"prompt": "a cyberpunk mechanical dragon", // 必填,模型描述
"style": "realistic", // 可选,艺术风格
"quality": "high", // 可选:standard/high/ultra
"polyCount": "medium" // 可选:low/medium/high
}
响应示例:
{
"taskId": "task_abc123",
"modelId": "model_xyz789",
"status": "queued",
"estimatedTime": 60,
"pollUrl": "/api/models/task/task_abc123"
}
POST/models/image-to-3d
提交一个图生 3D 生成任务,支持单图或多图输入。
{
"image": "base64_encoded_image_data", // 必填,base64 图片或 URL
"multiView": false, // 可选,是否多视角模式
"removeBackground": true // 可选,自动移除背景
}
GET/models/task/{taskId}
查询生成任务的当前状态和进度。
{
"taskId": "task_abc123",
"modelId": "model_xyz789",
"status": "processing",
"progress": 45,
"estimatedTime": 60
}
GET/models
获取用户的模型列表,支持分页和筛选。
查询参数:page, perPage, type (text-to-3d/image-to-3d), status
GET/models/{modelId}/download
获取模型下载链接,支持多种格式。
查询参数:format (glb/obj/stl/fbx/usdz/3mf)
POST/texturing/generate
为指定模型生成 PBR 贴图。
{
"modelId": "model_xyz789",
"prompt": "rusted metal with green patina",
"resolution": "4K",
"textureSet": ["albedo", "normal", "metallic", "roughness"]
}
POST/texturing/edit
用自然语言编辑现有模型的贴图。
POST/animation/rig
为模型自动生成骨骼绑定。
{
"modelId": "model_xyz789",
"rigType": "humanoid", // auto/humanoid/quadruped
"boneCount": 24
}
GET/animation/library
获取动画预设库列表,支持按类别和骨骼类型筛选。
GET/user/profile
获取当前用户的资料信息。
GET/user/credits
获取用户的积分余额和使用情况。
POST/agent/chat
与 AI 3D Agent 对话,支持多轮对话和生成任务。
{
"messages": [
{"role": "user", "content": "帮我设计一个3D打印的龙形摆件"}
],
"conversationId": "conv_abc123" // 可选,继续已有对话
}