API para desarrolladores

Elimina fondos de imágenes mediante API REST. La misma calidad de IA que la web, con prioridad de cola para integraciones.

¿Qué es?

La API de remove.es permite eliminar fondos de imágenes de forma programática. Envías una imagen, recibes la imagen procesada sin fondo. Misma tecnología de IA que la web.

Autenticación

Todas las peticiones requieren una API key en la cabecera X-API-Key.

# Incluir en cada petición:
X-API-Key: tu_clave_aqui

Endpoints

POST /api/v1/remove

Elimina el fondo de una imagen. Petición multipart/form-data.

ParámetroTipoDescripción
imagefileImagen a procesar (obligatorio)
qualitystringstd (rápido, ~5s) o hd (máxima calidad, ~25s). Default: std
fmtstringpng o webp. Default: png

Respuesta exitosa (200): imagen binaria (image/png o image/webp) con cabeceras:

CabeceraDescripción
X-Job-IdID del job procesado
X-Elapsed-SSegundos de procesamiento
⏱ Timeout: 90 segundos

Si recibes un 504 Gateway Timeout, el trabajo sigue procesándose en el servidor. Reintenta la misma petición pasados 15-30 segundos — si el resultado está en caché, la respuesta será instantánea.

GET /api/v1/usage

Consulta tu consumo mensual.

{
  "month": "2026-07",
  "used": 142,
  "limit": 1000,
  "plan": "api-basic"
}

Ejemplos

curl -X POST https://remove.es/api/v1/remove \
  -H "X-API-Key: tu_clave" \
  -F "image=@foto.jpg" \
  -F "quality=std" \
  -F "fmt=png" \
  -o resultado.png
import requests

response = requests.post(
    "https://remove.es/api/v1/remove",
    headers={"X-API-Key": "tu_clave"},
    files={"image": open("foto.jpg", "rb")},
    data={"quality": "std", "fmt": "png"},
    timeout=120
)

if response.status_code == 200:
    with open("resultado.png", "wb") as f:
        f.write(response.content)
    print(f"Job: {response.headers['X-Job-Id']}")
    print(f"Tiempo: {response.headers['X-Elapsed-S']}s")
elif response.status_code == 504:
    print("Timeout — reintentar en 15-30s")
else:
    print(f"Error {response.status_code}: {response.text}")
<?php
$ch = curl_init('https://remove.es/api/v1/remove');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ['X-API-Key: tu_clave'],
    CURLOPT_POSTFIELDS => [
        'image' => new CURLFile('foto.jpg'),
        'quality' => 'std',
        'fmt' => 'png',
    ],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 120,
]);

$result = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($code === 200) {
    file_put_contents('resultado.png', $result);
}
?>
const formData = new FormData();
formData.append('image', fileInput.files[0]);
formData.append('quality', 'std');
formData.append('fmt', 'png');

const res = await fetch('https://remove.es/api/v1/remove', {
  method: 'POST',
  headers: { 'X-API-Key': 'tu_clave' },
  body: formData
});

if (res.ok) {
  const blob = await res.blob();
  const url = URL.createObjectURL(blob);
  console.log('Job:', res.headers.get('X-Job-Id'));
  // usar url para mostrar o descargar
} else if (res.status === 504) {
  // Reintentar en 15-30 segundos
}

Códigos de error

CódigoDescripción
400Imagen inválida o formato no soportado
401API key inválida o no proporcionada
429Cuota excedida o demasiados errores de autenticación (>30 errores 401/hora por IP)
504Timeout (90s). El trabajo sigue procesándose — reintentar en 15-30s

¿Quieres una API key?

Escríbenos y te configuramos el acceso.

api@remove.es