Rage3D API
Transform 2D images into high-quality 3D models using advanced AI. Our API produces industry-leading results with 4K textures, PBR materials, and optimized geometry suitable for 3D printing, game development, e-commerce, and visualization.
Start with the Quickstart guide to generate your first 3D model in under 5 minutes.
What you can build
- E-commerce product visualization — Convert product photos to interactive 3D models
- 3D printing services — Generate print-ready STL files from any image
- Game asset creation — Create game-ready models with PBR textures
- AR/VR applications — Build immersive experiences with AI-generated 3D content
Key features
- 4K HD Textures — Ultra-detailed PBR materials
- Multiple input support — Single image or multi-view (up to 4 images)
- 3D print ready — Automatic STL conversion
- Fast processing — Most models ready in under 2 minutes
Quickstart
Generate your first 3D model in 4 simple steps.
Sign in to your dashboard and copy your API key.
curl -X POST https://rage3d-api-797053387346.asia-south1.run.app/generate-3d \ -H "X-API-Key: YOUR_API_KEY" \ -F "images=@photo.jpg"
import requests response = requests.post( "https://rage3d-api-797053387346.asia-south1.run.app/generate-3d", headers={"X-API-Key": "YOUR_API_KEY"}, files={"images": open("photo.jpg", "rb")} ) task_id = response.json()["task_id"] print(f"Task ID: {task_id}")
const fs = require('fs'); const FormData = require('form-data'); const axios = require('axios'); const form = new FormData(); form.append('images', fs.createReadStream('photo.jpg')); const response = await axios.post( 'https://rage3d-api-797053387346.asia-south1.run.app/generate-3d', form, { headers: { 'X-API-Key': 'YOUR_API_KEY', ...form.getHeaders() } } ); console.log('Task ID:', response.data.task_id);
Generation takes 1-3 minutes. Poll until status is "success".
curl https://rage3d-api-797053387346.asia-south1.run.app/task/YOUR_TASK_ID \
-H "X-API-Key: YOUR_API_KEY"
import time while True: status = requests.get( f"https://rage3d-api-797053387346.asia-south1.run.app/task/{task_id}", headers={"X-API-Key": "YOUR_API_KEY"} ).json() print(f"Progress: {status['progress']}%") if status["status"] == "success": print("Done!", status['pbr_model_url']) break elif status["status"] == "failed": print("Failed") break time.sleep(5)
curl https://rage3d-api-797053387346.asia-south1.run.app/download/YOUR_TASK_ID/glb \
-H "X-API-Key: YOUR_API_KEY" \
-o model.glb
Authentication
All API requests require an API key in the X-API-Key header.
X-API-Key: hyp3d_your_api_key_here
Getting your API key
- Sign in to your dashboard
- Copy your API key from the "API Access" section
Never share it publicly or commit to version control. Use environment variables.
Base URL
https://rage3d-api-797053387346.asia-south1.run.app
Pricing
How billing works
- Prepaid wallet — Add funds from dashboard
- Per-generation — ₹99 deducted when you submit
- No hidden fees — STL conversion and downloads are free
- Failed generations — Not charged if generation fails
How It Works
The generation pipeline
- Image upload — Your image is validated
- AI analysis — AI understands 3D structure
- Geometry generation — Optimized mesh created
- Texture creation — 4K PBR textures generated
- Model packaging — GLB file with embedded textures
Asynchronous processing
3D generation takes 1-3 minutes. The API returns a task_id immediately,
then poll GET /task/{task_id} to check progress.
Image Requirements
| Requirement | Value |
|---|---|
| Formats | JPEG, PNG, WebP |
| Max file size | 10 MB per image |
| Min resolution | 256 × 256 pixels |
| Recommended | 1024 × 1024 or higher |
| Number of images | 1-4 per request |
Tips for best results
- Clear subject with good lighting
- Simple or white backgrounds
- For complex objects, provide 2-4 views
Output Formats
GLB (default)
Binary glTF with embedded 4K PBR textures. Industry standard for web 3D.
STL (optional)
Geometry-only format for 3D printing. Use POST /task/{id}/convert-stl.
Download your models before they expire.
Generate 3D Model
Submits an image for 3D model generation. Returns a task ID for polling.
Request
Content-Type: multipart/form-data
| Parameter | Type | Description |
|---|---|---|
| imagesrequired | File | 1-4 image files (JPEG, PNG, WebP). Max 10MB each. |
{
"task_id": "42539d4f-9ce0-4599-8da5-21c58477562c",
"status": "queued",
"message": "Task submitted. Use GET /task/{task_id} to check status.",
"balance_after": 1881.0,
"cost": 99.0
}
Get Task Status
Get task status. Poll until status is "success" or "failed".
{
"task_id": "42539d4f-9ce0-4599-8da5-21c58477562c",
"status": "success",
"progress": 100,
"model_url": "https://...",
"pbr_model_url": "https://...",
"rendered_image_url": "https://...",
"expires_at": "2026-03-21T12:00:00+00:00"
}
Status values
| Status | Description |
|---|---|
queued | Waiting in queue |
running | In progress (check progress) |
success | Complete. Download URLs available. |
failed | Failed. Check error field. |
Convert to STL
Convert completed model to STL format for 3D printing.
curl -X POST https://rage3d-api-797053387346.asia-south1.run.app/task/YOUR_TASK_ID/convert-stl \
-H "X-API-Key: YOUR_API_KEY"
Download File
Download generated 3D model file.
| Parameter | Description |
|---|---|
| task_id | Task UUID |
| file_type | glb or stl |
# Download GLB curl https://rage3d-api-797053387346.asia-south1.run.app/download/TASK_ID/glb \ -H "X-API-Key: YOUR_API_KEY" -o model.glb # Download STL curl https://rage3d-api-797053387346.asia-south1.run.app/download/TASK_ID/stl \ -H "X-API-Key: YOUR_API_KEY" -o model.stl
List Generations
List your previous generations with status and output URLs.
curl https://rage3d-api-797053387346.asia-south1.run.app/generations?limit=10 \
-H "X-API-Key: YOUR_API_KEY"
Get Wallet Balance
curl https://rage3d-api-797053387346.asia-south1.run.app/wallet/balance \ -H "X-API-Key: YOUR_API_KEY" # Response: { "balance": 1980.0, "message": "You can generate 20 models with current balance" }
Get Profile
curl https://rage3d-api-797053387346.asia-south1.run.app/auth/me \ -H "X-API-Key: YOUR_API_KEY" # Response: { "email": "user@example.com", "name": "John Doe", "balance": 1980.0, "total_generations": 24, "generation_cost": 99.0 }
Error Handling
{
"detail": "Insufficient balance. Required: ₹99, Available: ₹50"
}
| Code | Meaning | What to do |
|---|---|---|
| 400 | Bad Request | Check parameters |
| 401 | Unauthorized | Check API key |
| 402 | Payment Required | Recharge wallet |
| 429 | Rate Limited | Wait and retry |
Best Practices
Polling strategy
- Poll every 5-10 seconds
- Stop when status is
"success"or"failed" - Implement exponential backoff for rate limits
Image optimization
- Use 1024×1024 or higher resolution
- Good lighting, clear subject
- Plain backgrounds work best
Security
- Never hardcode API keys
- Use environment variables
- Separate keys for dev/production