High-precision AI background removal from photos. Powered by U-2-Net. Hosted by GenSkyTech.
Status: ✓ LIVE Latency: ~2–3s/image Max size: 10MB
You need an active license key. Manage your keys at
updates.geneduserve.in/admin/licenses.
Pass your key in the license_key form field on every request.
| Field | Required | Description |
|---|---|---|
image | yes | The input image file (JPEG / PNG / WebP). Max 10 MB. |
bg_color | no | transparent (default) or hex color like #ffffff. |
license_key | yes | Your active GenSkyTech license key. |
Returns the processed image as image/png bytes. The response header X-Processing-Time tells you how long the AI inference took.
On error: HTTP 401 (invalid license), 400 (bad input), 500 (processing failed) with a JSON body {"detail": "..."}.
YOUR_LICENSE_KEY with your actual key. Done.curl -X POST https://bgapi.geneduserve.in/remove \
-F "image=@photo.jpg" \
-F "bg_color=#ffffff" \
-F "license_key=YOUR_LICENSE_KEY" \
--output processed.png
const fd = new FormData();
fd.append("image", fileInput.files[0]);
fd.append("bg_color", "transparent");
fd.append("license_key", "YOUR_LICENSE_KEY");
const res = await fetch("https://bgapi.geneduserve.in/remove", {
method: "POST", body: fd
});
if (!res.ok) throw new Error("HTTP " + res.status);
const blob = await res.blob();
img.src = URL.createObjectURL(blob);
$ch = curl_init("https://bgapi.geneduserve.in/remove");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => [
"image" => new CURLFile("/path/photo.jpg"),
"bg_color" => "#ffffff",
"license_key" => "YOUR_LICENSE_KEY",
],
]);
$png_bytes = curl_exec($ch);
file_put_contents("processed.png", $png_bytes);
import requests
with open("photo.jpg", "rb") as f:
r = requests.post(
"https://bgapi.geneduserve.in/remove",
files={"image": f},
data={"bg_color": "transparent", "license_key": "YOUR_LICENSE_KEY"},
timeout=30,
)
r.raise_for_status()
open("processed.png", "wb").write(r.content)
<input type="file" id="photo" accept="image/*">
<select id="bgcolor">
<option value="transparent">Transparent</option>
<option value="#ffffff">White</option>
<option value="#1e88e5">Blue</option>
</select>
<button id="go">Remove Background</button>
<img id="result" style="max-width:400px">
<script>
const KEY = "YOUR_LICENSE_KEY";
document.getElementById('go').onclick = async () => {
const file = document.getElementById('photo').files[0];
if (!file) return alert('Pick a photo');
const fd = new FormData();
fd.append('image', file);
fd.append('bg_color', document.getElementById('bgcolor').value);
fd.append('license_key', KEY);
const res = await fetch('https://bgapi.geneduserve.in/remove', { method:'POST', body:fd });
if (!res.ok) return alert('Error: ' + res.status);
document.getElementById('result').src = URL.createObjectURL(await res.blob());
};
</script>
⚠ Security: the license key is visible in browser source. For public-facing sites use the PHP server proxy below instead.
// Node 18+ (built-in fetch)
import fs from 'node:fs';
const fd = new FormData();
fd.append('image', new Blob([fs.readFileSync('photo.jpg')]), 'photo.jpg');
fd.append('bg_color', '#ffffff');
fd.append('license_key', 'YOUR_LICENSE_KEY');
const res = await fetch('https://bgapi.geneduserve.in/remove', { method:'POST', body:fd });
if (!res.ok) throw new Error('HTTP ' + res.status);
const buf = Buffer.from(await res.arrayBuffer());
fs.writeFileSync('processed.png', buf);
import 'dart:io';
import 'package:http/http.dart' as http;
Future<List<int>> removeBg(File img, {String bg = 'transparent'}) async {
final req = http.MultipartRequest('POST', Uri.parse('https://bgapi.geneduserve.in/remove'));
req.files.add(await http.MultipartFile.fromPath('image', img.path));
req.fields['bg_color'] = bg;
req.fields['license_key'] = 'YOUR_LICENSE_KEY';
final r = await req.send();
if (r.statusCode != 200) throw Exception('HTTP ${r.statusCode}');
return r.stream.toBytes();
}
// Add to your theme's functions.php
function bgapi_remove_bg($image_path, $bg_color = 'transparent') {
$ch = curl_init("https://bgapi.geneduserve.in/remove");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => [
"image" => new CURLFile($image_path),
"bg_color" => $bg_color,
"license_key" => get_option('bgapi_license_key'), // saved via WP admin
],
]);
$png_bytes = curl_exec($ch);
curl_close($ch);
return $png_bytes; // image/png raw bytes — write to disk or stream
}
GET https://bgapi.geneduserve.in/health → {"ok": true, "model": "u2net"}
Active GenSkyTech licenses include unlimited use on this API. If your license is suspended or expired, the API responds with HTTP 401.