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

AlanTipAçıklama
imagestring (zorunlu)Base64 PNG. data: öneki varsa temizlenir. ~10 MB üst sınır.
toolstringinterior | exterior | sketch_to_render (varsayılan: sketch_to_render)
promptstringMalzeme, ışık ve atmosfer tarifi. Mekânı tarif etme — görselde zaten var.

Response

{
  "url": "https://archome.ai/...",     // kalıcı render URL'i
  "generationId": "uuid",
  "creditsUsed": 15,
  "creditsRemaining": 985
}

Errors

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: öneki opsiyonel
    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_render15 kredi
interior10 kredi
exterior10 kredi

Ücretsiz hesapta her çağrı 30 kredidir ve çıktı filigranlıdır. Ücretli planda gerçek araç fiyatı geçerlidir ve filigran yoktur.

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.