RemBG Background Removal API – Fejlesztői dokumentumok és integrációs útmutató






OpenAPI · Élő játszótér

Fedezze fel a teljes API-t – futtasson valódi kéréseket a böngészőjében

Böngésszen minden végpont, paraméter és válasz között. Próbálja ki a kéréseket az API-kulcsával, majd bármikor letöltheti a nyers specifikációt az /api/openapi címen.

Interaktív referencia indítása

A rembg.js telepítése

latest npm versionGitHub starsnpm downloadslicenseGitHub issues

npm i @remove-background-ai/rembg.js
                        

API Reference for rembg.js

@remove-background-ai/rembg.js is a zero-config Node.js wrapper for the free Rembg API, enabling background removal with simple, customizable parameters.

Parameters for RemBG.js
ParameterTypeRequiredDefaultDescription
apiKeystring
Required

Your Rembg API key
inputImagestring | Buffer | { base64: string }
Required

Image file, buffer, or base64 payload
onDownloadProgress(event) => void
Optional

Hook for upload progress events
onUploadProgress(event) => void
Optional

Hook for download progress events
options.formatwebp (default) | png
Optional
webp
Specifies the output image format. Either "webp" (default) or "png"
options.returnBase64boolean
Optional
false
Return Base64 string instead of file
options.returnMaskboolean
Optional
false
Return only the alpha mask
options.wnumber
Optional

Target width (maintains aspect ratio)
options.hnumber
Optional

Target height (maintains aspect ratio)
options.exact_resizeboolean
Optional
false
Force exact width × height (may distort)
options.anglenumber
Optional
0
Rotation angle in degrees
options.expandboolean
Optional
true
Add padding so rotated images aren’t cropped
options.bg_colorstring
Optional
-
Optional solid background color in hex (e.g. #FFFFFFFF) or named color (e.g. "red", "blue")
  • A környezet beállítása: Győződjön meg arról, hogy a projekt gyökérkönyvtárában van egy .env fájl, amely tartalmazza az API-kulcsot.

  • A szükséges modulok importálása: Kezdje a rembg függvény importálásával a @remove-background-ai/rembg.js fájlból és a dotenv modulból a környezeti változók kezeléséhez.

  • Az előrehaladás visszahívásainak konfigurálása: A könyvtár onDownloadProgress és onUploadProgress visszahívásokat kínál a fájlműveletek előrehaladásának nyomon követésére. A bemutatott példában ezeket az eseményeket közvetlenül a konzolra naplózzuk.

Most pedig nézzünk meg közelebbről egy használati mintát:


// script.mjs file

import  { rembg } from '@remove-background-ai/rembg.js';
import dotenv from 'dotenv';
// Load environment variables from .env file
dotenv.config();

// API_KEY will be loaded from the .env file
const API_KEY = process.env.API_KEY;

// log upload and download progress
const onDownloadProgress = console.log;
const onUploadProgress = console.log;
rembg({
    apiKey: API_KEY,
    inputImage: './input.png', //inputImage can be one of these: string | Buffer | { base64: string };
    onDownloadProgress,
    onUploadProgress
}).then(({ outputImagePath, cleanup }) => {
    console.log('✅🎉 background removed and saved under path=', outputImagePath);
    // if called, it will cleanup (remove from disk) your removed background image
    // cleanup();
});
					
						

Ne feledje, hogy a Cleanup funkció akkor hívható meg, ha a háttér eltávolítása után el kívánja távolítani a feldolgozott képet a lemezről.

A folyamatjelző sáv megjelenítése

A háttérben végzett eltávolítási szolgáltatás integrálásakor gyakran hasznos visszajelzést adni a felhasználóknak a feltöltési vagy letöltési kérésük előrehaladásáról. Ennek megkönnyítése érdekében meghatározhatja saját onDownloadProgress és onUploadProgress visszahívásait. Mindkét visszahívás elfogadja az AxiosProgressEvent eseményparamétert. Ahogy a kérés halad, ezek a visszahívások többször is meghívásra kerülnek, így például megjeleníthet egy folyamatjelző sávot, és az előrehaladás alapján módosíthatja a hosszát.


 (base) root@DESKTOP-C0Q8KK7:~/rembg.js-test# node index.mjs
 {
   loaded: 65687,
   total: 68474,
   progress: 0.9592984198381868, <---- @95% progress 
   bytes: 65687,
   rate: undefined,
   estimated: undefined,
   upload: true  <---- upload progress
 }
 {
   loaded: 68474,
   total: 68474,
   progress: 1, <---- @100% progress 
   bytes: 2787,
   rate: undefined,
   estimated: undefined,
   upload: true <---- upload progress 
 }
 {
   loaded: 1002,
   total: 68824,
   progress: 0.014558874811112402, <---- @1% progress 
   bytes: 1002,
   rate: undefined,
   estimated: undefined,
   download: true <---- download progress 
 }
 {
   loaded: 68824,
   total: 68824,
   progress: 1, <---- @100% progress 
   bytes: 67822,
   rate: undefined,
   estimated: undefined,
   download: true <---- download progress
 }
 ✅🎉 background removed and saved under path=/tmp/rembg--3339-DBqqeJ2eOs4D-.png
					

Tagság és jóváírások felhasználása

Visszaküldi a csomag címkéjét, a benne foglalt és előre kifizetett hitelegyenlegeket, valamint a felhasználást. Lekérdezhet UTC naptári hónap (örökölt), Stripe-hoz igazított számlázási időszak szerint (megújítással történő figyeléshez), vagy listázhatja az ismert számlázási időszakokat. Csak az API-kulccsal hitelesítsen.

Sémákért, példákért és egy próbakonzolért tekintse meg ugyanazt a végpontot a teljes hivatkozásban: API-dokumentumok megnyitása

Végpont
GET https://www.rembg.com/api/membership-usage
Hitelesítés

Küldje el API-kulcsát: fejléc x-api-key: YOUR_API_KEY_HERE (kulcsokat hozhat létre és kezelhet a rembg.com-on lévő profiljában).

Lekérdezési paraméterek
ParaméterÍrja be:Leírás
yearnumberNaptári év (1–9999). A hónapnál a Redis Keys user:{uid}:app_usage:{year}:{month} felirat olvasható. Ha kihagyja (és a periodStartUnix nincs használatban), az alapértelmezés szerint az aktuális UTC év.
monthnumber (1–12)Naptári hónap 1–12. (a kulcsokhoz használt UTC-egyezmény). Ha kihagyja, alapértelmezés szerint az aktuális UTC hónap.
periodStartUnixnumberUnix időbélyeg másodpercben: a számlázási időszak kezdete. Beolvassa a user:{uid}:app_usage:cycle:{periodStartUnix} és az api_usage:cycle:… Nem kombinálható az évszámmal vagy a hónappal.
expandstringVesszővel elválasztott jelzők. Adja meg a billing_cycle értéket egy billingCycle objektum hozzáadásához: az aktuális Stripe időszak, amikor a számlázási_időszak_* létezik a Redisben, egyébként az aktuális UTC naptári hónap. Egy adott ablakhoz a periodStartUnix-szal is működik.
includeBillingCycle1 / trueUgyanaz, mint a billing_cycle-t tartalmazó kibontás: állítsa 1-re vagy igazra a billingCycle objektum felvételéhez.
listBillingCycles1 / trueDedikált mód: listBillingCycles=1 vagy true csak a { billingCycles: [...] }. Megkeresi a Redis ciklusbillentyűit ehhez a felhasználóhoz; a többi lekérdezési paraméter figyelmen kívül hagyja ezt a kérést.

Ne adja át a periodStartUnix értéket az év vagy hónap között – az API 400-at ad vissza. A listBillingCycles mód különálló, és figyelmen kívül hagyja a többi paramétert.

Számlázási időszakok listája

Használja ezt a múltbeli és jelenlegi előfizetési ablakok legördülő menüjének kitöltéséhez (minden bejegyzés egy periodStartUnix, amelyet a periodStartUnix=… paraméterrel adhat vissza). A periódusvégi időkre következtet (a következő időszak kezdete – 1, vagy Stripe current_period_end az aktív időszakra).

curl --location 'https://www.rembg.com/api/membership-usage?listBillingCycles=1' \
  --header 'x-api-key: YOUR_API_KEY_HERE'

Példa válasz

{
  "billingCycles": [
    {
      "periodStartUnix": 1774268612,
      "periodEndUnix": 1776947012,
      "appUsage": 120,
      "apiUsage": 880
    }
  ]
}

Először a legújabb időszakot rendezve. Egy időszak jelenik meg, ha van ciklushasználati kulcs, vagy ha ez az aktuális számlázási_időszak_kezdete a Stripe webhook-ból.

A billingCycle objektum

Akkor jelenik meg, ha a kibontás tartalmazza a számlázási_ciklust vagy az includeBillingCycle be van állítva. Használja irányítópultokhoz: megújítási határ, használat az ablakban és a fennmaradó kreditek.

MezőLeírás
periodStartUnixA számlázási ablak kezdete (unix másodperc). Megfelel a Stripe current_period_start értéknek, amikor a fiók szinkronizálva van.
periodEndUnixAz aktuális ablak vége (unix másodperc), azaz közvetlenül a következő megújítás előtt – Szinkronizáláskor csíkos aktuális_period_end. Nem ugyanaz, mint az előfizetés lemondásának dátuma.
appUsage / apiUsageAz ebben az ablakban számolt beszámított hitelhasználat: web/szerkesztő (alkalmazás) vs API-kulcs (api). A usedIncludedCredits megegyezik az összegükkel.
includedCreditsA Redisben tárolt (tervbeli) kreditkeret (ugyanaz, mint a felső szintű krediteknél).
prepaidCreditsElőre fizetett (vásárolt) egyenleg; nem állít vissza minden számlázási időszakot.
usedIncludedCreditsAz ablakban szereplő összes használat (alkalmazás + API). Az előre fizetett fogyasztás ide nem kerül hozzáadásra.
remainingIncludedCreditsmax(0, benneKreditek − használtIncludedCredits) ehhez a pillanatképhez.
stripeBillingSyncedigaz, ha a Redis számlázási_időszak_kezdete/vége a Stripe-től, így az ablak megegyezik az előfizetésével; false azt jelenti, hogy az API visszaesett egy UTC naptári hónapra ennél a blokknál.

Amíg a Stripe webhookok nem írnak számlázási időszakokat a felhasználó számára, a stripeBillingSynced hamis lehet, és a számlázási ciklus ablaka az UTC naptári hónapot követi. A szinkronizálás után a kép API használati korlátai ugyanazokhoz a cikluskulcsokhoz igazodnak.

A „következő megújítás előtt felhasznált jóváírásokhoz” hívja az expand=billing_cycle paramétert, és használja a billingCycle.periodEndUnix értéket megújítási határként, a billingCycle.usedIncludedCredits (vagy appUsage + apiUsage) és billingCycle.remainingIncludedCredits értéket. Adjon hozzá előre fizetett hiteleket, ha teljes eldobható egyenleget szeretne.

Példák (cURL)

Használat egy adott UTC naptári hónaphoz

curl --location 'https://www.rembg.com/api/membership-usage?year=2026&month=3' \
  --header 'x-api-key: YOUR_API_KEY_HERE'

Jelenlegi számlázási ciklus + teljes számlázási ciklus blokk (szinkronizáláskor megújításhoz igazítva)

# Current subscription window + usage (renewal-aligned when Stripe is synced)
curl --location 'https://www.rembg.com/api/membership-usage?expand=billing_cycle' \
  --header 'x-api-key: YOUR_API_KEY_HERE'

Egy számlázási előzmény időszak kezdete szerint (a listBillingCycles vagy Stripe listából)

# Specific billing period by Stripe period start (unix seconds)
curl --location 'https://www.rembg.com/api/membership-usage?periodStartUnix=1774268612&expand=billing_cycle' \
  --header 'x-api-key: YOUR_API_KEY_HERE'
Példa JSON-ra (számlázási ciklussal)

A legfelső szintű app_usage és api_usage mindig vagy a kért naptári hónapot tükrözi, vagy ha a periodStartUnix be van állítva, az adott ciklus számlálóit. Ha az expand=billing_cycle kimarad, a billingCycle hiányzik.

{
  "membership": "Premium-20000",
  "credits": 18500,
  "prepaidCredits": 2000,
  "app_usage": 8500,
  "api_usage": 10000,
  "billingCycle": {
    "periodStartUnix": 1740441600,
    "periodEndUnix": 1743033599,
    "appUsage": 4200,
    "apiUsage": 5100,
    "includedCredits": 18500,
    "prepaidCredits": 2000,
    "usedIncludedCredits": 9300,
    "remainingIncludedCredits": 9200,
    "stripeBillingSynced": true
  }
}

Ha a stripeBillingSynced igaz, a billingCycle megfelel a háttér-eltávolító API végrehajtásának. Ha hamis, hagyatkozzon a naptári hónap mezőire, vagy várja meg, amíg a webhookok feltöltik a számlázási_időszak_*-ot a Redisben.

Error Responses

All error responses return a JSON body with a status field matching the HTTP status code.

Single Error Response

HTTP/1.1 400 Bad Request

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
  "error": "Image width (12000px) exceeds the maximum allowed width of 10000px.",
  "field": "image",
  "status": 400
}

HTTP/1.1 400 Bad Request

HTTP/1.1 400 Bad Request
Content-Type: application/json

{
  "error": "Multiple validation errors",
  "details": [
    { "field": "w", "message": "'w' must be an integer, got: 'abc'" },
    { "field": "angle", "message": "'angle' must be between -360 and 360 degrees, got: 500.0" }
  ],
  "status": 400
}
Error Reference
ScenarioStatusError Message
No image provided
400
No image file provided. Please include an 'image' field in your form data.
No file selected
400
No file selected. Please choose an image file to upload.
Unsupported file type
400
File type '.exe' is not supported. Allowed formats: webp, bmp, png, jpg, jpeg
Corrupt image
400
File does not appear to be a valid image (invalid file signature)
Empty file (0 bytes)
400
Uploaded file is empty (0 bytes).
File too large
400
File size (55.2 MB) exceeds the maximum allowed size of 50 MB.
Image too wide
400
Image width (12000px) exceeds the maximum allowed width of 10000px.
Image too tall
400
Image height (15000px) exceeds the maximum allowed height of 10000px.
Bad w or h value
400
'w' must be an integer, got: 'abc'
w or h out of range
400
'w' must be at least 1, got: -5
w or h above max
400
'w' must be at most 10000, got: 15000
Bad angle
400
'angle' must be a number, got: 'ninety'
Angle out of range
400
'angle' must be between -360 and 360 degrees, got: 500.0
Bad output format
400
Invalid format 'gif'. Allowed formats: PNG, JPEG, WEBP, BMP
Bad bg_color
400
Invalid color format '#12345'. Use hex format: #RGB, #RGBA, #RRGGBB, or #RRGGBBAA
mask + bg_color conflict
400
Cannot use 'mask=true' together with 'bg_color'. Choose one or the other.
Email not verified
403
Email address not verified – please check your inbox
Invalid API key
401
invalid api key
Both API key and user token sent
400
This is a mistake: Cannot use both API key and user token
Rate limit exceeded (short-term)
429
You're making requests too quickly, Please Upgrade or slow down.
Rate limit exceeded (daily, anonymous)
429
You've reached your daily limit. Please sign up for more access.
Rate limit exceeded (monthly, authenticated)
429
You've reached your monthly limit. Consider purchasing more credits.
Error Handling Guidelines
  • Check HTTP status code 400 to identify validation errors
  • Parse the error field for the error message
  • Check for the details array when handling multiple validation errors
  • Use the field property to map errors to specific request parameters