Rendering API
One POST request: send a viewport capture, sketch or photo, get a photorealistic architectural render back in about 30 seconds. Your geometry is preserved — the API renders what you sent, it does not invent a new building.
Authentication
Every request carries a bearer token. Generate one in your dashboard settings; it is shown once and stored hashed, so keep it somewhere safe. Regenerating invalidates the old key.
Authorization: Bearer arch_live_...POST /api/v1/render
curl -X POST https://archome.ai/api/v1/render \
-H "Authorization: Bearer arch_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"image": "<base64 PNG>",
"tool": "sketch_to_render",
"prompt": "warm oak floors, matte white walls, late afternoon daylight"
}'Request body
| Alan | Tip | Description |
|---|---|---|
| image | string (required) | Base64 PNG. A data: prefix is stripped automatically. ~10 MB limit. |
| tool | string | interior | exterior | sketch_to_render (default: sketch_to_render) |
| prompt | string | Describe materials, light and atmosphere. Describe the space, not the geometry. |
Response
{
"url": "https://archome.ai/...", // permanent render URL
"generationId": "uuid",
"creditsUsed": 15,
"creditsRemaining": 985
}Errors
- 401 — invalid or missing API key
- 402 — kredi yetersiz
- 403 — account suspended
- 413 — image too large (over ~10 MB)
- 429 — rate limited; back off and retry
- 500 — generation failed; credits are refunded automatically
Node.js
const res = await fetch("https://archome.ai/api/v1/render", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.ARCHOME_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
image: base64Png, // data: prefix optional
tool: "interior", // interior | exterior | sketch_to_render
prompt: "japandi, warm oak, paper lanterns, soft daylight",
}),
});
const { url, creditsRemaining } = await res.json();Python
import base64, os, requests
with open("viewport.png", "rb") as f:
image = base64.b64encode(f.read()).decode()
r = requests.post(
"https://archome.ai/api/v1/render",
headers={"Authorization": f"Bearer {os.environ['ARCHOME_API_KEY']}"},
json={"image": image, "tool": "exterior",
"prompt": "charred timber cladding, overcast light"},
timeout=300,
)
print(r.json()["url"])Credit cost per call
| sketch_to_render | 15 kredi |
| interior | 10 kredi |
| exterior | 10 kredi |
On the free tier every call costs 30 credits and output is licensed for personal use. On paid plans the real tool price applies and output carries a commercial licence. Nothing is watermarked on any plan.
Already in SketchUp or 3ds Max?
Free plugins call this same endpoint from your current viewport — no code to write.
Frequently asked
How is the API priced?+
By credits, on the same balance as the web app — there is no separate API subscription and no per-seat licence. A sketch-to-render call costs 15 credits, interior or exterior 10. Credits come from your plan or from a one-time pack.
Which tools does the API expose?+
sketch_to_render, interior and exterior. Everything else (video, 2D-to-3D, material analysis, inpainting) currently runs in the web app only.
How long does a call take?+
Roughly 20–40 seconds. The request stays open until the render is finished and returns the permanent URL — there is no polling step.
What are the limits?+
The request body is capped at about 10 MB of image data, and calls are rate-limited per account. A 429 means you hit the rate limit; retry with backoff.
Do free accounts get API access?+
Yes, but each call costs 30 credits, so the 100 free credits to start go quickly and free-tier output carries no commercial licence. Any paid plan adds the licence and charges the standard tool price.
Is there a plugin instead?+
Yes — the SketchUp and 3ds Max plugins call this same endpoint. If you work in either, use the plugin rather than writing your own integration.