开始使用

快速开始

从 API 密钥到下载好的 3D 模型,只需四步。下面每段代码都可在 curl、Python 或 JavaScript 中复制粘贴即用,在顶部栏选择所需语言即可。

Base URLhttps://api.picoberry.ai
认证Bearer / x-api-key
格式JSON · { success, data }

1. 获取 API 密钥

本 API 面向付费用户开放——需要有效订阅,或至少完成过一次积分购买。打开账户 → API 密钥,创建密钥并复制——密钥仅显示一次。完整说明见认证页面。

设置
export PB_KEY="pb_live_xxxxxxxxxxxx"
export BASE="https://api.picoberry.ai"
import requests, time

BASE = "https://api.picoberry.ai"
headers = {"Authorization": "Bearer pb_live_xxxxxxxxxxxx"}
const BASE = "https://api.picoberry.ai";
const headers = { Authorization: "Bearer pb_live_xxxxxxxxxxxx" };
密钥请保存在服务器端 pb_live_ 密钥可能花光你的全部积分余额——切勿将其放入客户端代码或提交到代码仓库。

2. 发起生成

发起一个文生 3D 任务。该调用会立即返回资产 idtaskStatus: 0——生成在后台运行。图像也可通过 POST /v1/images 以相同方式进行。

请求
curl -X POST $BASE/v1/models/from-text \
  -H "Authorization: Bearer $PB_KEY" -H "Content-Type: application/json" \
  -d '{"prompt":"a stylized treasure chest, low-poly","engine":"tripo"}'
r = requests.post(f"{BASE}/v1/models/from-text", headers=headers,
    json={"prompt": "a stylized treasure chest, low-poly", "engine": "tripo"})
asset_id = r.json()["data"]["id"]
const r = await fetch(`${BASE}/v1/models/from-text`, { method: "POST",
  headers: { ...headers, "Content-Type": "application/json" },
  body: JSON.stringify({ prompt: "a stylized treasure chest, low-poly", engine: "tripo" }) });
const assetId = (await r.json()).data.id;
响应 · 200
{ "success": true, "data": { "id": "019f3a39-…", "taskStatus": 0, "type": "model_3d" } }

3. 轮询直到完成

生成是异步的。请轮询 GET /v1/assets/{id},直到 taskStatus 变为 2。3D 任务通常需要约 60–120 秒,图像只需几秒。成功后,files.model 中会包含一个签名的 GLB URL。

0 排队中1 处理中2 成功3 失败
轮询
# set ASSET_ID from the response above, then repeat until .data.taskStatus is 2
curl $BASE/v1/assets/$ASSET_ID -H "Authorization: Bearer $PB_KEY"
while True:
    a = requests.get(f"{BASE}/v1/assets/{asset_id}", headers=headers).json()["data"]
    if a["taskStatus"] in (2, 3): break
    time.sleep(4)
model_url = a["files"]["model"]
let a;
do {
  a = (await (await fetch(`${BASE}/v1/assets/${assetId}`, { headers })).json()).data;
  if (a.taskStatus < 2) await new Promise(res => setTimeout(res, 4000));
} while (a.taskStatus < 2);
const modelUrl = a.files.model;
用 Webhook 跳过轮询 注册 callbackUrl,PicoBerry 会将完成的资产推送到你的服务器。参见 Webhook异步与轮询

4. 下载模型

files.model 是可直接使用的 GLB。若需要特定格式——FBX/OBJ,或适用于 Unity 的纹理拆分——请导出以获取新的签名下载 URL。

请求
curl -X POST $BASE/v1/assets/$ASSET_ID/download \
  -H "Authorization: Bearer $PB_KEY" -H "Content-Type: application/json" \
  -d '{"format":"glb"}'
d = requests.post(f"{BASE}/v1/assets/{asset_id}/download", headers=headers,
    json={"format": "glb"}).json()["data"]
download_url = d["url"]
const d = (await (await fetch(`${BASE}/v1/assets/${assetId}/download`, { method: "POST",
  headers: { ...headers, "Content-Type": "application/json" },
  body: JSON.stringify({ format: "glb" }) })).json()).data;
const downloadUrl = d.url;
响应 · 200
{ "success": true, "data": { "url": "https://…signed", "format": "glb", "filename": "model.glb" } }
fbx / obj 为 ZIP 打包 glb 是单个文件;fbxobj 会以 .zip(模型 + 纹理)形式返回。完整选项——Unity 预设、自定义文件名——见下载与导出页面。

后续步骤

这就是完整流程——密钥 → 生成 → 轮询 → 下载。接下来: