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 the output is watermarked. On paid plans the real tool price applies and there is no watermark.
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 free-tier renders are watermarked and each call costs 30 credits, so the 100 monthly credits go quickly. Any paid plan removes the watermark 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.