Seed3D v1
Seed3D v1 API Reference
Generate GLB 3D assets from a single image URL. The public API accepts a user API key, creates an async task, and returns normalized status and output URLs.
Quick Start
curl -X POST 'https://seed3d-ai.org/v1/generate' \
-H 'Authorization: Bearer YOUR_ZA_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"image": "https://example.com/product.png",
"prompt": "clean topology, neutral studio lighting",
"subdivision_level": "medium"
}'Authentication
Send your user API key in the Authorization header for every public API request.
Authorization: Bearer YOUR_ZA_API_KEYPricing
Image-to-3D generation
Credits are deducted when a task is accepted. Failed provider submissions are refunded by the backend.
API Endpoints
Submit one image URL and optional generation hints. The response returns a task_id immediately.
imagerequired string | Public HTTP or HTTPS image URL. JPG, PNG, and WebP inputs are recommended. |
promptoptional string | Optional text hint for surface, material, geometry, or asset intent. Maximum 2000 characters. |
subdivision_leveloptional string | Mesh detail hint. Supported values: low, medium, high, or numeric aliases 0, 1, 2.default: provider default |
publicoptional boolean | Whether the generated result can be treated as public content by downstream features.default: false |
callback_urloptional string | Optional public webhook URL saved with the task. Localhost URLs are rejected. |
Example Request
{
"image": "https://example.com/product.png",
"prompt": "clean topology, neutral studio lighting",
"subdivision_level": "medium",
"public": false,
"callback_url": "https://example.com/webhooks/seed3d"
}Responses
{
"code": 200,
"message": "success",
"data": {
"task_id": "n105abc123s3d",
"status": "IN_PROGRESS",
"consumed_credits": 80
}
}Poll this endpoint until status is SUCCESS or FAILED. Successful tasks return response as an array of output URLs.
task_idrequired string | Task ID returned by POST /v1/generate. |
Example Request
curl -X GET 'https://seed3d-ai.org/v1/status?task_id=n105abc123s3d' \
-H 'Authorization: Bearer YOUR_ZA_API_KEY'Responses
{
"code": 200,
"message": "success",
"data": {
"task_id": "n105abc123s3d",
"status": "SUCCESS",
"consumed_credits": 80,
"request": {
"image": "https://example.com/product.png",
"prompt": "clean topology, neutral studio lighting",
"subdivision_level": "medium"
},
"response": [
"https://cdn.example.com/seed3d-output.glb"
],
"error_message": null
}
}Query recent tasks created by the API key in the Authorization header.
pageoptional number | Pagination page number.default: 1 |
limitoptional number | Items per page, capped by the backend.default: 20 |
task_idoptional string | Optional exact task ID filter. |
Example Request
curl -X GET 'https://seed3d-ai.org/v1/list?page=1&limit=20' \
-H 'Authorization: Bearer YOUR_ZA_API_KEY'Dashboard Tools
Use the dashboard to create keys and inspect logs while developing your integration.
Error Codes
| HTTP | Reason |
|---|---|
| 400 | Missing or invalid request parameter. |
| 401 | Authorization bearer token is missing or invalid. |
| 402 | The API key account does not have enough credits. |
| 403 | The requested API key does not match the bearer token. |
| 404 | The task ID was not found. |
| 405 | HTTP method is not allowed for this route. |
| 500 | Server or upstream provider error. Retry later or contact support. |