Send an image, get transparent PNG back. AI-powered edge detection for people, products, and animals. Under 2 seconds. 10-20× cheaper than Remove.bg.
# Remove background from an image
curl -X POST https://bgremoval.ink/remove \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "image=@photo.jpg" \
--output result.png
Production-ready background removal. One call, transparent result, done.
State-of-the-art AI model handles fine details — hair, fur, transparent objects, complex edges.
Advanced edge detection preserves every detail. No jagged edges, no leftover artifacts.
Optimized pipeline delivers results in under 2 seconds. Real-time ready for your workflows.
Remove.bg charges $0.20/image. We start at $0.01. Same quality, fraction of the cost.
Send JPEG, PNG, WebP, BMP. Get transparent PNG back or base64 JSON — your choice.
Images are processed and immediately deleted. Never stored, never used for training. Zero retention.
People, products, animals, logos — our AI handles them all.
Portraits, headshots, full body
E-commerce, catalogs
Fur, feathers, fine detail
Cars, furniture, anything
Paste an image URL and see the background removed in real time.
Paste a URL or click a sample to see the magic
Four endpoints. That's it. No SDKs required, any HTTP client works.
/remove
Upload an image file → get transparent PNG back. Supports JPEG, PNG, WebP, BMP up to 25 MB.
/remove/url
Pass an image URL in JSON → get transparent PNG back. No need to download the image first.
/health
Health check endpoint. Returns service status, uptime, and model readiness.
/usage
Check your current usage: images processed, quota remaining, plan details, billing period.
Works with any language. Here's how to get started.
curl -X POST https://bgremoval.ink/remove \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "image=@photo.jpg" \
--output result.png
# Remove background from a URL
curl -X POST https://bgremoval.ink/remove/url \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/photo.jpg"}' \
--output result.png
# Get result as base64 JSON
curl -X POST https://bgremoval.ink/remove \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-F "image=@photo.jpg"
import requests
API_KEY = "YOUR_API_KEY"
URL = "https://bgremoval.ink"
# Option 1: Upload a file
with open("photo.jpg", "rb") as f:
resp = requests.post(
f"{URL}/remove",
headers={"Authorization": f"Bearer {API_KEY}"},
files={"image": f}
)
with open("result.png", "wb") as f:
f.write(resp.content)
# Option 2: From URL
resp = requests.post(
f"{URL}/remove/url",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"url": "https://example.com/photo.jpg"}
)
# Option 3: Get base64 JSON response
resp = requests.post(
f"{URL}/remove",
headers={
"Authorization": f"Bearer {API_KEY}",
"Accept": "application/json"
},
files={"image": open("photo.jpg", "rb")}
)
data = resp.json()
print(data["image"][:50], "...")
import { readFile, writeFile } from 'fs/promises';
const API_KEY = 'YOUR_API_KEY';
const URL = 'https://bgremoval.ink';
// Option 1: Upload a file
const imageData = await readFile('photo.jpg');
const form = new FormData();
form.append('image', new Blob([imageData]), 'photo.jpg');
const resp = await fetch(`${URL}/remove`, {
method: 'POST',
headers: { 'Authorization': `Bearer ${API_KEY}` },
body: form,
});
const buffer = Buffer.from(await resp.arrayBuffer());
await writeFile('result.png', buffer);
// Option 2: From URL
const resp2 = await fetch(`${URL}/remove/url`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ url: 'https://example.com/photo.jpg' }),
});
package main
import (
"bytes"
"io"
"mime/multipart"
"net/http"
"os"
)
func main() {
apiKey := "YOUR_API_KEY"
url := "https://bgremoval.ink/remove"
// Read the image file
imgData, _ := os.ReadFile("photo.jpg")
// Create multipart form
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("image", "photo.jpg")
part.Write(imgData)
writer.Close()
// Send request
req, _ := http.NewRequest("POST", url, body)
req.Header.Set("Authorization", "Bearer "+apiKey)
req.Header.Set("Content-Type", writer.FormDataContentType())
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
// Save result
out, _ := os.Create("result.png")
defer out.Close()
io.Copy(out, resp.Body)
}
Get binary PNG by default, or JSON with base64 when you need it.
HTTP/1.1 200 OK
Content-Type: image/png
X-Processing-Time: 1.23s
X-Image-Width: 1920
X-Image-Height: 1080
[binary PNG data with transparency]
{
"success": true,
"image": "iVBORw0KGgo...",
"format": "png",
"width": 1920,
"height": 1080,
"processing_time": 1.23
}
Start free. Scale when you need to. No hidden fees, no surprises.
Free tier included. No credit card required. Get your API key and start in under a minute.