Skip to main content
Documentação
CENTRO DE APRENDIZAGEM

Domine a moderação de conteúdo com guias completos, tutoriais e documentação da API

Links rápidos

Extração de texto com OCR

Discuse extrai texto de imagens e documentos para que você possa ler — e moderar — conteúdos que, de outra forma, ficariam invisíveis para um filtro de texto. Envie até 5 URLs de imagens ou documentos para POST /api/v2/ocr e você receberá o texto reconhecido; por padrão, esse texto também será processado pelas verificações de conteúdo do seu projeto.

Por que usar OCR para moderação?

Muitos abusos ficam escondidos dentro de imagens: um insulto incorporado a um meme, um link de phishing em uma captura de tela, um número de telefone fraudulento em um panfleto. Uma verificação de texto simples nunca vê isso. O OCR extrai as palavras primeiro, para que as mesmas verificações de sentimento, spam, palavrões e idioma que você já aplica a textos também sejam aplicadas a conteúdos de imagens e documentos.

Como faço para extrair texto?

Envie uma ou mais URLs de arquivos. moderate usa true como padrão, então o texto extraído também é verificado e você recebe um objeto results; defina como false se quiser apenas o texto bruto.

curl -X POST https://api.discuse.com/api/v2/ocr \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "file_urls": ["https://example.com/user-meme.jpg"],
    "moderate": true
  }'

Uma única requisição aceita até 5 URLs de imagens ou documentos.

Resposta

{
  "text": "BUY FOLLOWERS NOW — dm @spammer for 50% off",
  "has_text": true,
  "num_files": 1,
  "has_violations": true,
  "results": {
    "hits": true,
    "spamfinder": {
      "label": "spam",
      "confidence": 0.94,
      "is_spam": true,
      "hit": true
    }
  },
  "usage": {
    "api_requests_used": 412,
    "api_requests_limit": 10000,
    "api_requests_remaining": 9588
  }
}

Quando moderate é false (ou nenhum texto foi encontrado), results é omitido e has_violations é false — você recebe apenas o text extraído.

Campos da requisição

Campo Tipo Observações
api_key string Opcional no corpo; você pode enviar X-API-Key em vez disso
file_urls string[] URLs de imagens ou documentos a serem lidos. Pelo menos uma é obrigatória, até 5
moderate boolean Executa o texto extraído nas suas verificações de texto. O padrão é true

Campos da resposta

Campo Tipo Descrição
text string Texto reconhecido, concatenado de todos os arquivos
has_text boolean Verdadeiro se algum texto não vazio foi reconhecido
num_files number Número de arquivos lidos com sucesso
has_violations boolean Verdadeiro se o texto moderado acionou alguma verificação
results object Os resultados da verificação de texto (veja Análise de texto), presente apenas quando a moderação foi executada e texto foi encontrado
usage object api_requests_used, api_requests_limit, api_requests_remaining

O objeto results tem o mesmo formato de POST /api/v2/checkspamfinder, sentiment, language, badwords e o sinalizador de nível superior hits. Veja Análise de texto para detalhes dos campos.

Limites de uso

OCR é um recurso de planos pagos; cada arquivo do qual você extrai texto conta uma vez na sua cota de OCR.

Plano Extrações mensais de OCR Taxa excedente
Basic Não disponível -
Gold 1.000 $0.0015/extração
Platinum 2.000 $0.001275/extração (15% de desconto)
Ultimate 4.000 $0.001125/extração (25% de desconto)

Se um projeto não tiver uma assinatura ativa, as requisições de OCR serão negadas.

Boas práticas

Modere em uma única chamada

Deixe moderate ativado (o padrão) quando seu objetivo for detectar violações de política em imagens. Uma única chamada de OCR extrai o texto e o verifica, em vez de uma chamada de OCR seguida de uma chamada separada para /check.

async function moderateImage(fileUrl) {
  const res = await ocr([fileUrl], true);
  if (res.has_violations) {
    await flagForReview(fileUrl, res.results);
  }
  return res.text;
}

Verifique has_text antes de agir

Uma imagem sem texto legível retorna has_text: false e um text vazio. Use isso como ramificação para não tratar "nada para ler" como "limpo e confirmado".

Agrupe arquivos relacionados

Se um envio incluir várias imagens, envie-as juntas (até 5) em uma única requisição, em vez de fazer uma chamada por arquivo — menos idas e vindas, uma única resposta contabilizada na cota.

Exemplos de integração

Node.js

async function ocr(fileUrls, moderate = true) {
  const response = await fetch('https://api.discuse.com/api/v2/ocr', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': process.env.DISCUSE_API_KEY
    },
    body: JSON.stringify({ file_urls: fileUrls, moderate })
  });
  return response.json();
}

Python

import os
import requests

def ocr(file_urls, moderate=True):
    response = requests.post(
        'https://api.discuse.com/api/v2/ocr',
        headers={
            'Content-Type': 'application/json',
            'X-API-Key': os.environ['DISCUSE_API_KEY']
        },
        json={'file_urls': file_urls, 'moderate': moderate}
    )
    return response.json()

Pronto para ler texto em imagens? Comece com Discuse.

Escrito por Equipe Discuse · Última atualização em June 2026

Artigos relacionados

Análise de texto e detecção de sentimento

Detecte spam, toxicidade, palavrões e analise o sentimento em conteúdo de texto

Detecção de NSFW em imagens

Detecte e filtre automaticamente imagens inadequadas e conteúdo adulto

Detecção de spam

Filtragem de spam com tecnologia de AI para textos e mensagens