For developers & agents
Remove Background API โ Free, Browser-Native, No Server Cost
PNGmaker is not a traditional REST API โ and that is a deliberate choice with real advantages. Instead of sending your files to a server, PNGmaker runs the AI model directly in the browser. For many developer and agent use cases, this is significantly better than a conventional API approach.
How it works
When you open PNGmaker in a browser, the AI model is downloaded and executed locally โ inside the browser sandbox. No image data is sent to any server. The full background removal pipeline runs on the client machine.
- AI model runs in WebAssembly or WebGL inside the browser tab
- Images never leave your machine or the agent's runtime
- Output is a transparent PNG downloaded directly to the client
- No authentication, no session management, no API versioning
Why this is better for many use cases
| Factor | PNGmaker | Remove.bg API |
|---|---|---|
| Cost per image | $0.00 | ~$0.10 |
| API key required | No | Yes |
| Rate limits | None | Yes (plan-based) |
| Data sent to server | Never | Yes |
| Infrastructure to manage | None | HTTP client, key rotation |
For workflows that process images privately, or at unpredictable volumes, the browser-native model removes an entire category of cost and operational complexity.
Integration options
The recommended integration pattern is browser automation via Playwright. The agent-optimized page at /remove-background/agent is designed for clean automation with stable data-testid selectors.
const { chromium } = require('playwright');
const fs = require('fs');
const browser = await chromium.launch();
const page = await browser.newPage();
// Navigate to the agent-optimized tool
await page.goto('https://pngmaker.com/remove-background/agent');
// Upload image via the dropzone
const fileInput = await page.locator('[data-testid="bg-removal-dropzone"] input[type="file"]');
await fileInput.setInputFiles('./your-image.jpg');
// Wait for processing to complete
await page.waitForSelector('[data-testid="bg-removal-result"]', { timeout: 30000 });
// Download the result
const downloadPromise = page.waitForEvent('download');
await page.click('[data-testid="bg-removal-download"]');
const download = await downloadPromise;
await download.saveAs('./output-transparent.png');
await browser.close();See the full agent integration guide at /remove-background/agent.
Limitations
The browser-native approach is not universally suitable. Be aware of the following constraints before building:
- Requires a browser runtime. You need Chromium, Firefox, or WebKit โ a headless browser like Playwright. It does not work from Node.js or Python directly.
- Not a REST endpoint. There is no HTTP endpoint you can call with a simple fetch. The interface is a web UI.
- Image must be available on the client. The file needs to exist on the machine running the browser automation โ not on a remote server.
- Sequential processing only. Parallel batch jobs require multiple browser instances running concurrently.
Try it with PNGmaker
Use the tool flow directly from this guide. The idea is simple: understand the workflow, then get to the result fast.
