LassoCut: move off the remove.bg API before 1 December 2026
remove.bg closes on 1 December 2026 (website and accounts at 09:00 CET). The self-service API stops accepting requests from 1 December 2026, and the plugins are discontinued on 1 December 2026.
Dates and Enterprise contracts (which continue): remove.bg FAQ. Reported in early September 2026 (Bitvoxy, 3 September 2026). What exactly shuts down?
LassoCut is compatible with the remove.bg API: change the base URL and the key, and your existing requests keep working, with the same endpoint, parameters and error codes.
- Endpoint:
POST https://api.lassocut.com/v1.0/removebg - Authentication: the same
X-Api-Keyheader - 50 free previews a month (up to 10 a day) on every account
- No subscription; purchased credits never expire
Last updated 27 September 2026.
Change one URL
- https://api.remove.bg/v1.0/ + https://api.lassocut.com/v1.0/
- Get a LassoCut key. Sign in with GitHub or Google in your account and create a key.
- Replace the base URL.
https://api.remove.bg/v1.0/becomeshttps://api.lassocut.com/v1.0/. - Replace the key. It still goes in the
X-Api-Keyheader. Paths, form fields, JSON bodies and response formats do not change.
Compatibility, parameter by parameter
Each row is a part of the remove.bg API v1.0. The LassoCut column lists what the LassoCut API accepts today. The Leonardo.Ai column is the path remove.bg points self-service API customers to; it comes from Leonardo's own migration guide, read on 27 September 2026. Where Leonardo keeps a parameter, it moves inside a JSON parameters object. "Not documented" means that guide does not say.
| remove.bg API v1.0 | LassoCut | Leonardo.Ai |
|---|---|---|
Endpoint POST /v1.0/removebg | Same path | Different: POST /api/rest/v2/generationssync |
Auth X-Api-Key | Same header | No: Authorization: Bearer |
image_file (multipart) | Yes | No: JSON only (base64, or a separate upload endpoint) |
image_url | Yes | Moved: guidances.image_reference (URL) |
image_file_b64 | Yes | Moved: guidances.image_reference (BASE64) |
size | Yes | Yes, under parameters |
type | Yes | Yes, under parameters |
format auto, png, jpg, webp, zip | All five | png, jpg, webp; no auto, no zip |
bg_color | Yes | Yes, under parameters |
bg_image_url, bg_image_file | Both | bg_image_file: no; bg_image_url: moved to guidances.background_image_reference |
crop, crop_margin | Yes | Yes, under parameters |
scale, position | Yes | Yes, under parameters |
channels rgba, alpha | Yes | Yes, under parameters |
| Raw image bytes in the response | Yes (or JSON with Accept: application/json) | No: always JSON (URL or base64) |
Headers X-Credits-Charged, X-Type, X-Width, X-Height | Yes, plus X-Foreground-* | No: cost is in a cost object, width and height in the JSON body; no X-Type or foreground position |
GET /v1.0/account | Yes, same response shape | Not documented |
POST /v1.0/improve | Yes | No |
LassoCut also accepts roi, type_level, semitransparency, add_shadow, shadow_type and shadow_opacity, the legacy size names (small, regular, medium, hd, 4k), and returns rate-limit headers and 429 with Retry-After. See the API reference.
Before and after: only the URL and the key change
The curl, Python and Node examples were run against the production API on 27 September 2026 and returned a PNG.
curl
Before
curl -H "X-Api-Key: $REMOVE_BG_API_KEY" \ -F "image_file=@photo.jpg" \ -F "size=auto" \ -o no-bg.png \ https://api.remove.bg/v1.0/removebg
After
curl -H "X-Api-Key: $LASSOCUT_API_KEY" \ -F "image_file=@photo.jpg" \ -F "size=auto" \ -o no-bg.png \ https://api.lassocut.com/v1.0/removebg
Python (requests)
Before
import os, requests
r = requests.post(
"https://api.remove.bg/v1.0/removebg",
headers={"X-Api-Key": os.environ["REMOVE_BG_API_KEY"]},
files={"image_file": open("photo.jpg", "rb")},
data={"size": "auto"},
)
r.raise_for_status()
open("no-bg.png", "wb").write(r.content)
print("credits charged:", r.headers["X-Credits-Charged"])
After
import os, requests
r = requests.post(
"https://api.lassocut.com/v1.0/removebg",
headers={"X-Api-Key": os.environ["LASSOCUT_API_KEY"]},
files={"image_file": open("photo.jpg", "rb")},
data={"size": "auto"},
)
r.raise_for_status()
open("no-bg.png", "wb").write(r.content)
print("credits charged:", r.headers["X-Credits-Charged"])
Or with the official package: lassocut
Python 3.10 or later, no dependencies, retries on temporary errors.
pip install lassocut
from lassocut import LassoCut
client = LassoCut() # reads LASSOCUT_API_KEY
result = client.remove_background("photo.jpg", size="preview")
result.save("no-bg.png")
print("credits charged:", result.credits_charged)
Node.js (18 or later, fetch)
Before
import { readFile, writeFile } from "node:fs/promises";
const form = new FormData();
form.append("image_file", new Blob([await readFile("photo.jpg")]), "photo.jpg");
form.append("size", "auto");
const res = await fetch("https://api.remove.bg/v1.0/removebg", {
method: "POST",
headers: { "X-Api-Key": process.env.REMOVE_BG_API_KEY },
body: form,
});
if (!res.ok) throw new Error(JSON.stringify(await res.json()));
await writeFile("no-bg.png", Buffer.from(await res.arrayBuffer()));
After
import { readFile, writeFile } from "node:fs/promises";
const form = new FormData();
form.append("image_file", new Blob([await readFile("photo.jpg")]), "photo.jpg");
form.append("size", "auto");
const res = await fetch("https://api.lassocut.com/v1.0/removebg", {
method: "POST",
headers: { "X-Api-Key": process.env.LASSOCUT_API_KEY },
body: form,
});
if (!res.ok) throw new Error(JSON.stringify(await res.json()));
await writeFile("no-bg.png", Buffer.from(await res.arrayBuffer()));
PHP (cURL)
Before
$ch = curl_init("https://api.remove.bg/v1.0/removebg");
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("REMOVE_BG_API_KEY")],
CURLOPT_POSTFIELDS => ["image_file" => new CURLFile("photo.jpg"), "size" => "auto"],
CURLOPT_RETURNTRANSFER => true,
]);
file_put_contents("no-bg.png", curl_exec($ch));
After
$ch = curl_init("https://api.lassocut.com/v1.0/removebg");
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["X-Api-Key: " . getenv("LASSOCUT_API_KEY")],
CURLOPT_POSTFIELDS => ["image_file" => new CURLFile("photo.jpg"), "size" => "auto"],
CURLOPT_RETURNTRANSFER => true,
]);
file_put_contents("no-bg.png", curl_exec($ch));
Check your balance
curl -H "X-Api-Key: $LASSOCUT_API_KEY" https://api.lassocut.com/v1.0/account
The response has the same shape as before: data.attributes.credits and data.attributes.api.free_calls.
Libraries and the CLI
Python: removebg package
The endpoint is a module constant; set it once before creating the client.
import removebg.removebg
removebg.removebg.API_ENDPOINT = "https://api.lassocut.com/v1.0/removebg"
from removebg import RemoveBg
RemoveBg(LASSOCUT_API_KEY, "errors.log").remove_background_from_img_file("photo.jpg")
PHP: mtownsend/remove-bg
The endpoint is a public property of the client.
$removebg = new \Mtownsend\RemoveBg\RemoveBg($lassocutApiKey);
$removebg->endpoint = 'https://api.lassocut.com/v1.0/removebg';
$removebg->file('photo.jpg')->save('no-bg.png');
Command line: the LassoCut CLI
Same flags as the remove.bg command-line tool, results keep the -removebg suffix, and REMOVE_BG_API_KEY is still read. Needs Node.js 18 or later. Details in the CLI guide.
export LASSOCUT_API_KEY=your-key npm install -g lassocut-cli lassocut --output-directory out/ photos/
Source and full flag list: github.com/jaupin94/lassocut-cli.
Node.js: remove.bg package
Its address is built in. Call the API with fetch as shown above; it takes a few lines.
Plugins that stop on 1 December
remove.bg's plugins are discontinued on the same day (remove.bg FAQ), and third-party plugins that call the remove.bg API stop working with it. LassoCut has its own plugins for these tools, all on one account and one balance of credits:
- Photoshop: the cut-out is added as a new layer.
- Figma: works in place in Figma, FigJam and Figma Slides.
- WordPress and WooCommerce: Media Library and product images, originals kept.
- GIMP 3: the cut-out is added as a new layer.
- n8n: a node verified by n8n, or your HTTP Request node with the new URL and key.
- Zapier: removes the background in any Zap and returns a file.
- Make: an OAuth app with one Remove Background module, or your HTTP module with the new URL and key.
Using the remove.bg desktop app or command-line tool? See the desktop app guide and the CLI guide. All tools are on the platforms page.
Credits that never expire
LassoCut has no subscription. You buy credits when you need them, and purchased credits never expire while your account is open. 1 credit = 1 full-size image; a preview costs 0.25 credit, and every account gets 50 free previews a month (up to 10 a day).
Packs: 100 credits for $9, 1,000 for $39 ($0.039 per image), 10,000 for $249 ($0.0249 per image) and 100,000 for $1,500 ($0.015 per image). See pricing, with a cost table for 1,000 to 100,000 images.
For comparison, Leonardo.Ai charges $0.1047 per image for background removal (Leonardo's migration guide, read on 27 September 2026).
Unused remove.bg pay-as-you-go credits expire on 1 December 2026 and cannot be used on LassoCut (remove.bg FAQ).
What is different
- Shadows.
add_shadowandshadow_typeare accepted. The drop shadow and the cast shadow (also what3Dandautogive) are drawn; the car style is not drawn yet. - LassoCut extras. The
presetparameter frames the result for Amazon, eBay, Etsy, Shopify, Zalando or Instagram and checks it,GET /v1.0/presetslists the live values,POST /v1.0/composere-finishes a cut-out for free, andshadow_type=castadds a cast shadow. See marketplace presets. - The cut-out itself. Our models are not remove.bg's, so edges will not be pixel-identical. Test a sample of your own images before switching production traffic.
- Detected type. With
type=auto,X-Typecomes from our own classifier and can disagree with what you saw before on borderline images. - Existing credits. remove.bg credits cannot be used on LassoCut.
Questions
Is LassoCut part of remove.bg?
No. LassoCut is an independent service operated by JAUPIN Design LLC. It implements the publicly documented remove.bg API so existing code keeps working.
Why not move to Leonardo.Ai?
You can. According to Leonardo's migration guide, its API uses a different endpoint, a Bearer token and JSON-only requests, with no multipart upload, no ZIP output and no format=auto, so the calls have to be rewritten. With LassoCut, the existing calls keep working after the URL and key change.
Compare alternatives: the remove.bg alternatives guide and the background removal API guide.
Does the remove.bg Enterprise API stop too?
No. According to the remove.bg FAQ, Enterprise API contracts are not affected. The self-service API stops on 1 December 2026.
Do you keep my images?
No. Images sent to /removebg are processed in memory and discarded. Only images you send yourself to /improve are kept, to improve the models.
Something doesn't match?
Send the request and the response you got to contact@lassocut.com. Compatibility bugs are fixed first.