Background Remover API

High-precision AI background removal from photos. Powered by U-2-Net. Hosted by GenSkyTech.

Status: ✓ LIVE   Latency: ~2–3s/image   Max size: 10MB

Endpoint

POSThttps://bgapi.geneduserve.in/remove

Authentication

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.

Form fields (multipart/form-data)

FieldRequiredDescription
imageyesThe input image file (JPEG / PNG / WebP). Max 10 MB.
bg_colornotransparent (default) or hex color like #ffffff.
license_keyyesYour active GenSkyTech license key.

Response

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": "..."}.

Get started in 3 steps

  1. Get a license key — create one at updates.geneduserve.in/admin/licenses (one key per site / app recommended).
  2. Pick your platform — copy the matching code snippet below and paste it into your project.
  3. Replace YOUR_LICENSE_KEY with your actual key. Done.

Code snippets

cURL
JavaScript (browser)
HTML page
PHP (server proxy)
Python
Node.js
Flutter / Dart
WordPress
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
}

Best practices

Health check

GET https://bgapi.geneduserve.in/health{"ok": true, "model": "u2net"}

Limits & pricing

Active GenSkyTech licenses include unlimited use on this API. If your license is suspended or expired, the API responds with HTTP 401.

Need help?

projects.genskytech@gmail.com
+91 9219 204 525

© 2026 GenSkyTech — powered by updates.geneduserve.in