Developer API

API Documentation

Access remove.sh tools programmatically via our REST API. Free, no authentication required, CORS enabled.

Base URL

https://api.remove.sh

All endpoints are relative to this base URL. HTTPS required.

Endpoints

GET /health

Returns the current status of the API. Use this to verify the service is running before making other requests.

Response

Content-Type: application/json

JSON object with a status field.

Sample Response

{"status": "ok"}

Example

curl https://api.remove.sh/health
POST /remove

Remove the Gemini Nano Banana sparkle watermark from AI-generated images. Upload your PNG, JPG, or WebP file and get a clean image in seconds — no signup required.

Gemini Watermark Remover →

Parameters

Name Type Description
file file Image file with a Gemini watermark (PNG, JPG, or WebP). Also accepts field name image.

Response

Content-Type: image/png

Clean PNG image with the watermark removed via reverse alpha blending.

Example

curl -X POST \
  -F "[email protected]" \
  https://api.remove.sh/remove \
  --output cleaned.png
POST /tools/image-compress

Reduce image file sizes by up to 80% with smart compression. Choose your quality level and output format. Perfect for web optimization.

Image Compressor →

Parameters

Name Type Description
file file Image file to compress (PNG, JPG, or WebP). Also accepts field name image.
quality integer Compression quality level. Default: 80 Values: 0–100
format string Output image format. Default: jpg Values: jpg, png, webp

Response

Content-Type: image/jpeg (varies by format)

Compressed image in the requested format.

Response Headers

x-original-size Original file size in bytes

x-compressed-size Compressed file size in bytes

Example

curl -X POST \
  -F "[email protected]" \
  -F "quality=60" \
  -F "format=webp" \
  https://api.remove.sh/tools/image-compress \
  --output compressed.webp
POST /tools/image-convert

Convert images between all major web formats: PNG, JPG, and WebP. Optimize for the web or ensure compatibility across platforms.

Image Format Converter →

Parameters

Name Type Description
file file Image file to convert (PNG, JPG, or WebP). Also accepts field name image.
format string Target output format. Values: png, jpg, webp
quality integer Quality for lossy formats (JPG, WebP). Values: 0–100

Response

Content-Type: image/* (matches target format)

Image converted to the requested format.

Example

curl -X POST \
  -F "[email protected]" \
  -F "format=webp" \
  https://api.remove.sh/tools/image-convert \
  --output photo.webp
POST /tools/image-resize

Resize images to specific pixel dimensions. Maintain aspect ratio with Fit mode, crop to fill, or stretch to exact size.

Image Resizer →

Parameters

Name Type Description
file file Image file to resize (PNG, JPG, or WebP). Also accepts field name image.
width integer Target width in pixels. Omit to auto-calculate from height.
height integer Target height in pixels. Omit to auto-calculate from width.
mode string How the image is fitted to the target dimensions. Default: fit Values: fit, fill, stretch

Response

Content-Type: image/png

Resized image as a PNG.

Response Headers

x-original-dimensions Original image dimensions (e.g. 1920x1080)

x-new-dimensions Dimensions after resize (e.g. 800x450)

Example

curl -X POST \
  -F "[email protected]" \
  -F "width=800" \
  -F "mode=fit" \
  https://api.remove.sh/tools/image-resize \
  --output resized.png
POST /tools/exif-remove

Remove EXIF metadata from images including GPS location, camera model, date taken, and other personal information. Protect your privacy before sharing photos online.

EXIF Data Remover →

Parameters

Name Type Description
file file Image file to strip metadata from (PNG, JPG, or WebP). Also accepts field name image.

Response

Content-Type: image/* (preserves original format)

Image with all EXIF metadata (GPS, camera, date, etc.) removed. Original format is preserved.

Response Headers

x-original-size Original file size in bytes

x-metadata-removed Always "true" on success

Example

curl -X POST \
  -F "[email protected]" \
  https://api.remove.sh/tools/exif-remove \
  --output clean.jpg
GET /tools/what-is-my-ip

Instantly discover your public IP address along with detailed geolocation data including country, city, region, ISP, timezone, and more. See your approximate location on an interactive map. Databases are updated daily.

What Is My IP →

Response

Content-Type: application/json

Geolocation and network data for the requesting IP address. Uses GeoLite2 databases updated daily.

Sample Response

{
  "query": "101.190.80.155",
  "continent": "Oceania",
  "continentCode": "OC",
  "country": "Australia",
  "countryCode": "AU",
  "region": "NSW",
  "regionName": "New South Wales",
  "city": "Sydney",
  "zip": "2164",
  "lat": -33.8437,
  "lon": 150.9625,
  "timezone": "Australia/Sydney",
  "isp": "Telstra Limited",
  "as": "AS1221 Telstra Limited"
}

Example

curl https://api.remove.sh/tools/what-is-my-ip
GET /tools/ip-lookup

Enter any IPv4 or IPv6 address to get detailed geolocation data including country, city, region, ISP, timezone, and coordinates. View the location on an interactive map. Uses GeoLite2 databases updated daily.

IP Address Lookup →

Parameters

Name Type Description
ip string IPv4 or IPv6 address to look up.

Response

Content-Type: application/json

Geolocation and network data for the specified IP address. Same response format as /tools/what-is-my-ip.

Sample Response

{
  "query": "8.8.8.8",
  "continent": "North America",
  "continentCode": "NA",
  "country": "United States",
  "countryCode": "US",
  "region": "CA",
  "regionName": "California",
  "city": "Los Angeles",
  "lat": 34.0544,
  "lon": -118.2441,
  "timezone": "America/Los_Angeles",
  "isp": "Google LLC",
  "as": "AS15169 Google LLC"
}

Example

curl "https://api.remove.sh/tools/ip-lookup?ip=8.8.8.8"

Rate Limits & Usage

Rate Limiting

60 requests per minute per IP address. Contact us for higher limits.

Authentication

No authentication required. The API is free and open for everyone.

CORS

CORS enabled for all origins. Call directly from browser applications.

Error Handling

Errors are returned as JSON with an appropriate HTTP status code.

Status Meaning
200 Success — result returned in the response body.
400 Bad request — missing required field, unsupported format, or invalid parameters.
413 File too large — maximum upload size is 20 MB.
429 Rate limited — too many requests. Wait and retry.
500 Internal error — something went wrong processing the request.

Limits

Max upload size

20 MB

Per file, per request.

Supported formats

PNG JPG WebP

Image endpoints accept these formats as input.