EraseText

um removedor de texto por IA especializado para fotos e gráficos

Documentação

Mesmo modelo especializado de apagamento de texto que All text e Select no editor. Autentique com uma chave de API em Conta → Desenvolvedor. As chamadas usam créditos de API pré-pagos (escada abaixo) ou os créditos mensais de um plano em Preços.

URL Base

https://api.erasetext.com/v1

Cada caminho abaixo é relativo a esta base. Apenas HTTPS. OpenAPI: /openapi.json.

Autenticação

X-Api-Key: et_…

Criar sua primeira chave concede um teste único de 50 créditos de API — 50 chamadas, sem cartão. Depois disso, uma chave gasta primeiro seus créditos de API pré-pagos e depois os créditos mensais do plano.

Demonstrações em navegador / HTML

Uma página web deve chamar a API HTTP, não MCP JSON-RPC. MCP é para runtimes de agentes (Cursor, Claude Desktop). De um navegador, POST multipart FormData com campo image_file ou image. CORS está aberto — sem proxy. A autenticação pode ser X-Api-Key ou Authorization: Bearer et_…. Playground funcional: api.erasetext.com/demo.

const body = new FormData();
body.append("image_file", file); // a File from <input type="file">

const res = await fetch("https://api.erasetext.com/v1/erase", {
  method: "POST",
  headers: { "X-Api-Key": "et_…" },
  body,
});
const blob = await res.blob();

// Loose alias AIs often generate — JSON { output_url } data URL for <img>
// POST https://erasetext.com/api/mcp/erase  (also api.erasetext.com/api/mcp/erase)

MCP

Agentes podem chamar o mesmo caminho de apagamento via MCP. O servidor é Streamable HTTP em https://api.erasetext.com/mcp. Envie o mesmo X-Api-Key (ou Authorization: Bearer et_…). erase_text gasta 1 crédito em caso de sucesso; get_account, handshake e listagem de ferramentas são gratuitos. Falhas não são cobradas.

{
  "mcpServers": {
    "erasetext": {
      "url": "https://api.erasetext.com/mcp",
      "headers": { "X-Api-Key": "et_…" }
    }
  }
}

Cursor, Claude Desktop e outros clientes que falam MCP remoto com cabeçalhos funcionam hoje. Conectores OAuth hospedados não são fornecidos — use uma chave de API. Manifesto: /.well-known/mcp.json.

Quanto custa uma chamada

Cada /erase bem-sucedido gasta 1 crédito — um preço fixo, independentemente do tamanho da imagem ou do formato de saída. Falhas não são cobradas, e GET /account também não.

POST /erase

Multipart ou JSON. Retorna bytes de imagem por padrão.

  • image_file ou image_url — obrigatório
  • mask_file / mask_url — opcional; omita para detecção de todo texto
  • format=webp|png|jpg — padrão webp
  • resolution — alvo de borda curta para o modelo, limitado a 256–1024, padrão 512
  • paste_back — padrão true; mantém pixels originais fora da área apagada
  • return_boxes=1 — quads de OCR em X-Ocr-Boxes. Aplica-se apenas quando você não envia máscara, pois é quando a detecção é executada
  • response=json — retorna JSON com base64 em vez de bytes brutos

Polaridade da máscara: branco (qualquer valor de canal acima de 127) marca o que apagar, preto mantém. Envie na mesma proporção da imagem. Omita a máscara e a detecção cria uma para cada trecho de texto encontrado.

curl -X POST \
  -H "X-Api-Key: et_…" \
  -F "[email protected]" \
  "https://api.erasetext.com/v1/erase" \
  -o out.webp

O corpo JSON aceita os mesmos sinalizadores, mas campos de imagem diferentes — image_url ou image_file_b64 (e mask_url / mask_file_b64):

curl -X POST \
  -H "X-Api-Key: et_…" \
  -H "Content-Type: application/json" \
  -d '{"image_url":"https://…/photo.jpg","response":"json"}' \
  "https://api.erasetext.com/v1/erase"

Resposta

Bytes de imagem brutos com o Content-Type correspondente, além destes cabeçalhos:

  • X-Credits-Charged — sempre 1 em caso de sucesso
  • X-Credits-Remaining — saldo de API e web após a chamada
  • X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (segundos unix)
  • X-Ocr-Boxes — quads JSON, apenas com return_boxes=1

Com response=json, o corpo carrega as mesmas informações em vez disso:

{
  "image_base64": "…",
  "content_type": "image/webp",
  "credits_charged": 1,
  "credits_remaining": 199,
  "ocr_boxes": null
}

GET /account

curl -H "X-Api-Key: et_…" \
  "https://api.erasetext.com/v1/account"

Retorna os saldos de API e web, seu plano e a contagem de chamadas e créditos gastos deste mês UTC. Nunca gasta um crédito, então é seguro consultar antes de um lote.

Limites de taxa

Contados por chave de API em uma janela deslizante de 60 segundos. Solicitações acima do limite retornam 429 com Retry-After; o limite segue o plano da conta que possui a chave, e créditos pré-pagos não o aumentam.

PlanoSolicitações / minuto
Free6
Lite30
Pro120
Volume+300

Precisa de mais throughput que Volume+? Fale conosco.

Limites e tempo

  • Imagem e máscara devem ter entre 32 bytes e 25 MB, seja enviadas ou buscadas de uma URL. JPEG, PNG e WebP são os formatos de entrada seguros.
  • /erase é síncrono: mantém a conexão até a imagem estar pronta. Permita até 90 segundos — além disso você recebe 504 e não é cobrado. Ainda não há modo de callback ou polling, então defina um timeout de cliente acima de 90s e repita a chamada inteira.
  • Uma chamada típica leva alguns segundos; uma inicialização fria do modelo é o caso lento que o timeout cobre. A concorrência é limitada pelo seu limite de taxa, então distribua um lote ao longo do minuto em vez de disparar tudo de uma vez.
  • Nada do que você envia é mantido no caminho da API — os bytes são processados em trânsito e o resultado é retornado na resposta. Apenas o editor web armazena uploads, e eles expiram após uma hora.
  • O prefixo /v1 é o contrato: campos são apenas adicionados, nunca removidos ou reescritos. Mudanças que quebram compatibilidade seriam lançadas como um novo prefixo.

Starter

Experimente a API a taxas de volume.

$26

1,200 créditos de API · nunca expiram

$0.022 / crédito

Growth

Pipelines de catálogo estáveis.

$66

5,000 créditos de API · nunca expiram

$0.013 / crédito

Scale

Equipes de produto e mídia.

$199

20,000 créditos de API · nunca expiram

$0.010 / crédito

Volume pack

Menor preço unitário.

$666

100,000 créditos de API · nunca expiram

$0.007 / crédito

Usando 100.000+ créditos por mês? Fale conosco para uma taxa dedicada.

Erros

Toda falha tem formato JSON { "error": "…", "code": "…" }. Use code para ramificar, não o texto. Alguns códigos adicionam campos — 402 carrega required e balance, 429 carrega retryAfter.

StatuscódigoQuando
400bad_requestSem imagem, base64 ilegível, Content-Type errado, arquivo fora dos limites de tamanho, URL inacessível ou parâmetro descontinuado (size, engine)
401invalid_api_keyChave ausente, desconhecida ou revogada
402insufficient_creditsO saldo de API e web juntos não podem cobrir a chamada
404not_foundCaminho desconhecido
405method_not_allowedCaminho certo, método errado — /erase é somente POST
429rate_limitAcima do limite de solicitações por minuto por chave
429busyO backend de apagamento está saturado, não você — recue e tente novamente
500internalFalha inesperada — seguro tentar novamente uma vez
502erase_failedO modelo rejeitou ou falhou no trabalho — não cobrado
503misconfiguredProblema de configuração no servidor; tentar novamente não ajudará
504timeoutO modelo não terminou em 90s — não cobrado, tente novamente