A production image-to-3D API that converts any product photo or object image into a textured 3D model — GLB and OBJ — in approximately 45 seconds. One POST call. $0.01 per model, half the price of Meshy. Comparing i23d API options? PixelAPI gives you transparent per-model pricing with 500 free credits and no credit card required.
Sign up, grab your key, and POST a product photo. The endpoint returns the completed output_url and files object directly — no polling loop needed on your side. Generation takes roughly 45 seconds; the request blocks until the model is ready.
# Generate a 3D model from an image (synchronous — waits ~45s) curl -X POST https://api.pixelapi.dev/v1/3d/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -F "[email protected]" \ -F "format=all" \ -F "texture_size=1024" # Response (200 OK, ~45s later): # { # "id": "uuid", # "status": "completed", # "output_url": "https://cdn.pixelapi.dev/...", # "files": { # "glb": "https://cdn.pixelapi.dev/....glb", # "obj": "https://cdn.pixelapi.dev/....obj" # }, # "credits_used": 10, # "generation_time": 42.3 # }
pip install pixelapi
---
from pixelapi import PixelAPI
client = PixelAPI(api_key="YOUR_API_KEY")
result = client.image_to_3d(
image="product.jpg",
format="all", # glb, obj, or all
texture_size=1024 # 512, 1024, or 2048
)
print(result.files["glb"]) # CDN URL to .glb file
print(result.files["obj"]) # CDN URL to .obj file
result.download("product.glb")
npm install pixelapi
---
import { PixelAPI } from "pixelapi";
const client = new PixelAPI({ apiKey: process.env.PIXELAPI_KEY });
const result = await client.imageTo3d({
image: "./product.jpg",
format: "all",
textureSize: 1024,
});
console.log(result.files.glb); // CDN URL to .glb
await result.download("product.glb");
composer require pixelapi/pixelapi
---
<?php
use PixelAPI\Client;
$client = new Client(getenv("PIXELAPI_KEY"));
$result = $client->imageTo3d([
"image" => "product.jpg",
"format" => "all",
"texture_size" => 1024,
]);
file_put_contents("product.glb", $result->downloadGlb());
echo $result->files["glb"]; // CDN URL
gem install pixelapi
---
require "pixelapi"
client = PixelAPI::Client.new(api_key: ENV["PIXELAPI_KEY"])
result = client.image_to_3d(
image: "product.jpg",
format: "all",
texture_size: 1024
)
puts result.files["glb"]
File.binwrite("product.glb", result.download_glb)
go get github.com/pixelapi/pixelapi-go
---
import "github.com/pixelapi/pixelapi-go"
client := pixelapi.New("YOUR_API_KEY")
result, err := client.ImageTo3D(&pixelapi.ThreeDRequest{
Image: "product.jpg",
Format: "all",
TextureSize: 1024,
})
if err != nil { panic(err) }
fmt.Println(result.Files["glb"]) // CDN URL
Per Om's pricing rule, PixelAPI's per-model cost is set at exactly half the cheapest verified competitor price. Meshy's API is the publicly audited floor at $0.020/model — so PixelAPI is $0.010. For rivals whose per-API prices are not publicly listed, see their pricing pages directly.
| Provider | Free tier | Per-model API price | Output formats | Texture control |
|---|---|---|---|---|
| PixelAPI | 500 credits, no card | $0.010 | GLB · OBJ · both | 512 / 1024 / 2048 px |
| Meshy | 200 credits/mo | ~$0.020 | GLB · FBX · OBJ · USDZ | Yes |
| Tripo3D | Limited free tier | See tripo3d.ai/pricing | GLB · OBJ · FBX · USDZ | Yes |
| CSM AI | Trial available | See 3d.csm.ai/pricing | GLB · OBJ | Yes |
| Rodin (Hyper3D) | Trial available | See hyper3d.ai/pricing | GLB · OBJ · FBX | Yes |
Meshy pricing verified from meshy.ai public pricing page, May 2026. PixelAPI's per-model price is set at exactly half the cheapest verified rival per our pricing principle. Rivals without publicly-listed API prices are linked to their own pricing pages.
A single POST to /v1/3d/generate returns all of the following — no second request needed:
The web-native 3D format. Drop directly into <model-viewer> for Web AR, Apple AR Quick Look, Google Scene Viewer, or any Three.js / Babylon.js scene. Textures are embedded — one file, no dependencies.
Universal DCC format. Import into Blender, Maya, Cinema 4D, or any 3D tool for further editing, rigging, or rendering. Paired with an MTL material file in the same CDN folder.
Pass texture_size=512 for fast previews, 1024 (default) for product AR, or 2048 for print-quality close-ups. All three sizes are priced identically at $0.010.
Every output_url and files.glb / files.obj URL is served from a global CDN and remains valid for 7 days. Store the URL in your database or download immediately.
The image-to-3D API is the foundation for these production workflows. Each links to a full setup guide:
Auto-generate 3D product assets from listing photos. Serve AR "try in room" on Shopify PDPs.
Convert hi-res furniture photos to GLB for room-planning AR apps and virtual staging.
Capture ring, pendant, and watch geometry for 360° configurators and AR try-on.
Build 3D clothing and accessory assets for virtual fitting rooms and marketing renders.
From product photo to printable mesh in one call. Perfect for small-batch manufacturing.
Let sellers upload one photo and generate 3D assets at scale without manual modeling.
More use-case guides: all industries →
Auto-generate 3D models on product upload via webhook — serve AR on PDPs without manual work.
No-code trigger: new photo in Drive or Airtable → 3D model → URL back in your spreadsheet.
Drag-and-drop 3D generation in Make scenarios. Connect to any CMS or DAM.
Embed model-viewer GLB links in Webflow CMS for interactive product pages.
Bulk-generate 3D assets for existing product catalogs via the WooCommerce REST API.
Catalog automation: 2D product images in, 3D AR assets out, attached to BC listings.
Similar output quality. PixelAPI has transparent public per-model pricing; Tripo bundles API access into subscription tiers.
Meshy's i2i3D API is ~$0.020/model. PixelAPI is $0.010 — exactly half — with GLB + OBJ in a single call.
CSM specializes in multi-view consistency. PixelAPI delivers single-image generation at a lower, published per-call price.
Rodin produces highly detailed meshes via subscription. PixelAPI is pay-per-model with no monthly commitment.
Free tier: 10 concurrent 3D jobs at once. Paid tiers: up to 60 concurrent jobs. Because each generation runs for ~45 seconds, you rarely hit concurrency limits in practice. Exceeding limits returns HTTP 429 with a Retry-After header.
If a generation fails (malformed input, server error), the API returns HTTP 500 with an error message and credits are automatically refunded. If the job times out after 5 minutes, you receive HTTP 504 and credits are also refunded — you never pay for a failed result.
# Python SDK with auto-retry on 429
from pixelapi import PixelAPI
client = PixelAPI(api_key="...", max_retries=3)
result = client.image_to_3d(image="product.jpg") # auto-retries on 429
# Check job status independently (if you stored the job ID)
# GET https://api.pixelapi.dev/v1/3d/status/{job_id}
import requests
status = requests.get(
"https://api.pixelapi.dev/v1/3d/status/YOUR_JOB_ID",
headers={"Authorization": "Bearer YOUR_API_KEY"}
).json()
print(status["status"]) # queued | completed | failed
The i23d API (image-to-3D API) converts a single photo into a textured 3D model — returning GLB and OBJ files you can drop straight into a game engine, AR viewer, or e-commerce platform. PixelAPI's i23d API costs $0.01 per model with 500 free credits and no credit card required. Compared to Tripo3D, PixelAPI offers transparent, publicly-listed per-model pricing and returns both GLB and OBJ simultaneously with format=all.
$0.010 per 3D model generation (10 credits at $0.001/credit). New accounts get 500 free credits — enough to generate 50 models before paying anything. No credit card required to start.
Average generation time is approximately 45 seconds end-to-end. The POST /v1/3d/generate request blocks and returns the completed model URL directly — no polling loop required. Maximum timeout is 5 minutes; if exceeded, credits are automatically refunded.
GLB (binary glTF — ideal for web AR, game engines, and <model-viewer>), OBJ (broad DCC tool compatibility), or both simultaneously using format=all. Textures are baked in at 512, 1024, or 2048 pixels depending on your texture_size parameter.
JPEG, PNG, and WebP. Maximum file size is 50 MB. For best results, use a well-lit photo of the subject against a simple or neutral background. The API handles any camera orientation.
Yes — pip install pixelapi. Official SDKs are also available for Node.js (npm install pixelapi), PHP (Composer), Ruby (Gem), and Go (go get). All SDKs handle authentication, binary file download, and automatic retry on transient errors.
Free tier: 10 concurrent 3D jobs. Paid tiers: up to 60 concurrent jobs. Because each generation takes ~45 seconds, effective throughput is roughly 80 models/hour on a paid plan. Contact [email protected] for higher burst limits.
Meshy's API costs ~$0.020 per model generation. PixelAPI is $0.010 — exactly half. Both return GLB output. PixelAPI also returns OBJ simultaneously (format=all) with no extra charge, and offers transparent per-model pricing with no subscription required.
Yes. The GLB output is compatible with <model-viewer> (Web AR), Apple AR Quick Look, and Google Scene Viewer out of the box. Generate 3D assets from product photos at $0.01 each and serve them directly from your CDN — no 3D artist required.
The POST /v1/3d/generate response includes an output_url (primary file) and a files object with separate glb and obj URLs. All URLs are CDN-backed and valid for 7 days. Download immediately or store the URLs in your database.
Use texture_size=512 for web thumbnails and low-poly previews, 1024 (default) for standard product AR, and 2048 for print-quality assets or close-up renders. All three sizes cost the same: $0.010 per model.
Yes. New accounts receive 500 free credits ($0.50 of value) with no credit card required. That covers 50 full 3D model generations — enough to test on real product photos, evaluate output quality, and integrate into your pipeline before committing to a paid plan.