A háttéreltávolító végpont a felület nélkül, közvetlenül is hívható. Egy hívás egy képet dolgoz fel.
POST https://hub.douplademo.com/api/public/photoroomHitelesítés: X-Overlay-Key: <a kapott kulcs> fejléc. Kulcs nélkül a végpont csak a projekt saját tárhelyéről származó képet fogad el (ezt használja a beépített felület).
curl -X POST https://hub.douplademo.com/api/public/photoroom \
-H "X-Overlay-Key: $OVERLAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"imageUrl": "https://pelda.hu/termek.jpg",
"bgColor": "FFFFFF",
"format": "png",
"outputSize": "1600x1600"
}' \
--output eredmeny.pngcurl -X POST https://hub.douplademo.com/api/public/photoroom \
-H "X-Overlay-Key: $OVERLAY_API_KEY" \
-F "imageFile=@termek.jpg" \
-F "bgColor=FFFFFF" \
-F "format=png" \
-F "outputSize=1600x1600" \
--output eredmeny.png| Mező | Kötelező | Leírás |
|---|---|---|
| imageUrl | JSON módban igen | Nyilvánosan elérhető HTTPS kép URL. |
| imageFile | multipart módban igen | JPG / PNG / WEBP, legfeljebb 25 MB. |
| bgColor | nem | Hex szín # nélkül, alapértelmezés: FFFFFF. |
| format | nem | png | jpeg | webp, alapértelmezés: png. |
| outputSize | nem | Például 1600x1600. Üresen az eredeti arányt tartja. |
Siker esetén a válasz maga a kész kép (bináris), a megfelelő Content-Typefejléccel. Diagnosztikai fejlécek: X-PR-Endpoint, X-PR-Upstream-Status, X-PR-Fallback, X-PR-Duration-Ms, és fallback esetén X-PR-Note.
Ha X-PR-Fallback: true, a fiók nem éri el a teljes szerkesztő végpontot: a válasz háttér nélküli PNG, a háttérszínt és a méretezést a hívó oldalnak kell ráraknia.
400 hibás bemenet (URL, formátum, méret)
401 hiányzó vagy hibás X-Overlay-Key
429 percenkénti hívásszám túllépve (60/perc)
500 hiányzó szerveroldali beállítás
502 a PhotoRoom vagy a kép letöltése hibázott (JSON hibaobjektum)A végpont szándékosan egy képet dolgoz fel hívásonként — így nem fut időkorlátba. A ciklust a hívó oldal végzi, ajánlottan 3–5 párhuzamos hívással.
const KEY = process.env.OVERLAY_API_KEY;
async function process(imageUrl) {
const res = await fetch("https://hub.douplademo.com/api/public/photoroom", {
method: "POST",
headers: { "X-Overlay-Key": KEY, "Content-Type": "application/json" },
body: JSON.stringify({ imageUrl, bgColor: "FFFFFF", format: "png" }),
});
if (!res.ok) throw new Error(await res.text());
return Buffer.from(await res.arrayBuffer());
}
// 4 párhuzamos szál
const queue = [...urls];
await Promise.all(
Array.from({ length: 4 }, async () => {
for (let url; (url = queue.shift()); ) {
await process(url);
}
}),
);