Generate 3D models programmatically via the Trify3D REST API. Authenticate with API keys, run async jobs via Trigger.dev, and receive webhooks on completion.
All /v1/* endpoints require a Bearer token in the Authorization header:
Authorization: Bearer trf_live_xxxxxxxxCreate keys from /api/api-keys using your session cookie. Keys are hashed (SHA-256) at rest; the plaintext is shown only once.
/api/v1/generations/image-to-3dscope: writeStart an image-to-3D generation job. Async — returns a taskId for polling or webhook delivery.
/api/v1/generations/text-to-3dscope: writeStart a text-prompt-to-3D generation. Send a prompt, get a taskId back.
/api/v1/generations/multiview-to-3dscope: writeStart a multiview (2+ images) to 3D generation. For objects captured from multiple angles.
/api/v1/generations/{taskId}scope: readPoll the status of a generation task. Returns status, output URL, and credit usage.
/api/api-keysscope: sessionList your API keys (requires session auth, not Bearer).
/api/api-keysscope: sessionCreate a new API key. Returns the plaintext key once.
/api/api-keys/{keyId}/revokescope: sessionRevoke an API key. Irreversible.
curl -X POST https://trify3d.com/api/v1/generations/image-to-3d \
-H "Authorization: Bearer trf_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "tripo3d/h3.1",
"mode": "quality",
"imageUrl": "https://example.com/image.png",
"webhookUrl": "https://yourapp.com/hooks/trify3d"
}'
# Response 201
{
"taskId": "uuid",
"provider": "tripo3d",
"status": "processing",
"creditsUsed": 5,
"creditsRemaining": 95
}If you pass webhookUrl on task creation, we POST the result when the job finishes (success or failure). Retries: up to 3 times with backoff (1s, 5s, 15s).
POST {your webhookUrl}
Headers:
X-Trify3D-Event: generation.completed
X-Trify3D-Delivery: {taskId}
Body:
{
"taskId": "uuid",
"type": "image_to_3d",
"status": "completed",
"provider": "tripo3d",
"outputModelUrl": "https://...",
"thumbnailUrl": "https://...",
"creditsUsed": 5,
"errorCode": null,
"timestamp": "2026-06-14T..."
}Each API key: 600 requests / hour. Responses include X-RateLimit-Limit, X-RateLimit-Remaining, and on 429 a Retry-After header (seconds).
Jobs run on Trigger.dev with retries and 10-minute max duration. Poll GET /api/v1/generations/{taskId} or wait for the webhook — your choice.