API de Detecção de Imagem Gerada por IA
Documentação completa para integrar a API de detecção de imagem IA da TruthScan em suas aplicações.
Teste a API sem código visitando nosso endpoint FastAPI: https://detect-image.truthscan.com/docs
Autenticação
A TruthScan usa chaves de API para permitir o acesso à API. Você pode obter sua chave de API no topo da página em nosso portal de desenvolvedores.
A TruthScan espera que a chave de API seja incluída em todas as solicitações de API para o servidor no corpo da solicitação da seguinte forma:
{
"key": "YOUR API KEY GOES HERE"
}Você deve substituir YOUR API KEY GOES HERE pela sua chave de API pessoal.
Detector de Imagem IA
Detectar
O fluxo de trabalho de detecção de imagem IA consiste nas seguintes etapas:
- Obter uma URL de upload pré-assinada
- Fazer upload da imagem
- Enviar a imagem para detecção
1. Obter uma URL de Upload Pré-assinada
Comece solicitando uma URL pré-assinada da API. Esta URL permite que você faça upload do arquivo de imagem para o servidor de armazenamento com segurança.
Formatos de Arquivo Suportados
JPG, JPEG, PNG, WebP, JFIF, HEIC, HEIF, AVIF, BMP, TIFF, TIF
Nota Importante
É necessário remover espaços do nome do arquivo da imagem ao solicitar uma URL pré-assinada.
GET https://detect-image.truthscan.com/get-presigned-url?file_name=example.jpgExemplo de Solicitação
curl -X GET 'https://detect-image.truthscan.com/get-presigned-url?file_name=example.jpg' \
--header 'apikey: YOUR API KEY GOES HERE'Exemplo de Resposta
{
"status": "success",
"presigned_url": "https://nyc3.digitaloceanspaces.com/ai-image-detector-prod/uploads/581d47c7-3ef4-42af-88d9-6dab6bf69389_20250611-121955_example.jpg?...",
"file_path": "uploads/example.jpg"
}2. Fazer Upload da Imagem
Use a 'presigned_url' fornecida para fazer upload da sua imagem via uma solicitação PUT. Certifique-se de que o tipo de conteúdo correto está definido de acordo com o formato da sua imagem.
Nota Importante
É necessário remover espaços do nome do arquivo da imagem ao fazer upload da imagem.
Exemplo de Solicitação
curl -X PUT 'https://nyc3.digitaloceanspaces.com/ai-image-detector-prod/uploads/581d47c7-3ef4-42af-88d9-6dab6bf69389_20250611-121955_example.jpg?...' \
--header 'Content-Type: image/<FILE_FORMAT - jpeg, jpg, png, webp, heic, heif, avif, bmp, tiff, tif>' \
--header 'x-amz-acl: private' \
--data-binary '@example.jpg' # AttachmentLimites de Tamanho de Arquivo
- Tamanho mínimo de arquivo: 1KB
- Tamanho máximo de arquivo: 10MB
Certifique-se de que o formato do arquivo permaneça consistente durante o processo de upload. Um upload bem-sucedido retornará um código de status de 200.
3. Enviar Imagem para Detecção de IA
Após o upload, envie a imagem para detecção de IA referenciando o 'file_path' da etapa anterior.
POST https://detect-image.truthscan.com/detectExemplo de Solicitação
curl -X 'POST' \
'https://detect-image.truthscan.com/detect' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"key": "YOUR-API-KEY-GOES-HERE",
"url": "https://ai-image-detector-prod.nyc3.digitaloceanspaces.com/<FILE_PATH>",
"generate_preview": false
}'O 'FILE_PATH' refere-se ao caminho obtido da resposta na etapa inicial, 'Obter uma URL de Upload Pré-assinada'.
Parâmetros Opcionais
generate_preview: Defina como 'true' para gerar uma URL de preview da imagem (padrão: 'false')document_type: Tipo de documento (padrão: 'Image')email: Endereço de email para processamento
Exemplo de Resposta
{
"id": "77565038-9e3d-4e6a-8c80-e20785be5ee9",
"status": "pending"
}A resposta inclui um ID único de imagem para rastrear o status da detecção.
Consultar
Este endpoint aceita um ID de imagem retornado pela solicitação /detect. E retorna o status do envio da imagem, bem como o resultado completo da operação de detecção de IA, incluindo metadados, OCR e análise do modelo ML.
POST https://detect-image.truthscan.com/queryExemplo de Solicitação
curl -X 'POST' \
'https://detect-image.truthscan.com/query' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"id": "IMAGE-ID-GOES-HERE"
}'Exemplo de Resposta
{
"id": "77565038-9e3d-4e6a-8c80-e20785be5ee9",
"status": "done",
"result": 85.5,
"final_result": "AI Generated",
"confidence": "high",
"detection_step": 3,
"metadata": {
"width": 1920,
"height": 1080,
"format": "JPEG",
"size": 2456789
},
"ocr": {
"text": "Extracted text from image...",
"confidence": 0.92
},
"preview_url": "https://ai-image-detector-prod.nyc3.digitaloceanspaces.com/previews/..."
}Interpretação dos Resultados
result: Pontuação de 1-100 indicando a probabilidade de a imagem ser gerada por IA. Pontuações mais altas = maior probabilidade de IA.final_result: 'AI Generated' ou 'Not AI Generated' - determinação claraconfidence: 'high', 'medium' ou 'low' - nível de confiança na detecçãodetection_step: 1 = apenas metadados, 2 = metadados + OCR, 3 = completo (metadados + OCR + ML)preview_url: URL de preview da imagem (apenas se generate_preview=true foi usado)
Aqui, "result": 85.5 indica uma alta probabilidade de a imagem ter sido gerada por IA. O "final_result": "AI Generated" fornece uma determinação clara, e o "confidence": "high" indica alta confiança neste resultado. O campo "detection_step": 3 indica que a análise completa (metadados, OCR e modelo ML) foi concluída.
Verificar Créditos do Usuário
Este endpoint aceita o apikey do usuário via header. E retorna detalhes de créditos do usuário.
GET https://detect-image.truthscan.com/check-user-creditsExemplo de Solicitação
curl -X 'GET' \
'https://detect-image.truthscan.com/check-user-credits' \
-H 'apikey: YOUR API KEY GOES HERE' \
-H 'accept: application/json' \
-H 'Content-Type: application/json'Exemplo de Resposta
{
"baseCredits": 10000,
"boostCredits": 1000,
"credits": 11000
}Verificação de Saúde
Este endpoint permite verificar o status do serviço de detecção de imagem IA.
GET https://detect-image.truthscan.com/healthExemplo de Solicitação
curl -X 'GET' \
'https://detect-image.truthscan.com/health' \
-H 'accept: application/json'Exemplo de Resposta
{
"status": "healthy",
"timestamp": "2024-01-15T10:30:00Z"
}A resposta "healthy" indica que o serviço está funcionando normalmente.
Erros
A maioria dos erros será de parâmetros incorretos sendo enviados para a API. Verifique novamente os parâmetros de cada chamada de API para garantir que esteja formatado corretamente e tente executar o código de exemplo fornecido.
Os códigos de erro genéricos que usamos estão em conformidade com o padrão REST:
| Código de Erro | Significado |
|---|---|
| 400 | Bad Request -- Sua solicitação é inválida. |
| 403 | Forbidden -- A chave de API é inválida ou não há créditos suficientes para processamento de imagem. |
| 404 | Not Found -- O recurso especificado não existe. |
| 405 | Method Not Allowed -- Você tentou acessar um recurso com um método inválido. |
| 406 | Not Acceptable -- Você solicitou um formato que não é JSON. |
| 410 | Gone -- O recurso neste endpoint foi removido. |
| 422 | Invalid Request Body -- O corpo da sua solicitação está formatado incorretamente ou inválido ou tem parâmetros ausentes. |
| 429 | Too Many Requests -- Você está enviando muitas solicitações! Diminua a velocidade! |
| 500 | Internal Server Error -- Tivemos um problema com nosso servidor. Tente novamente mais tarde. |
| 503 | Service Unavailable -- Estamos temporariamente offline para manutenção. Tente novamente mais tarde. |
Problemas Comuns e Soluções
Problemas de Autenticação
"Verificação de usuário falhou" (403)
Causa: Chave de API inválida ou expirada
Solução:
- Verifique se sua chave de API está correta
- Verifique se sua chave de API está ativa em sua conta
- Tente regenerar sua chave de API
"Não há créditos suficientes" (403)
Causa: Créditos insuficientes para processamento de imagem
Solução:
- Verifique seus créditos restantes usando /check-user-credits
- Compre créditos adicionais se necessário
- Otimize o tamanho das imagens antes do upload para consumir menos créditos
Problemas de Validação de Entrada
"Formato de arquivo não suportado" (400)
Causa: Formato de imagem não suportado ou inválido enviado
Solução:
- Verifique se o formato da imagem é suportado (JPG, JPEG, PNG, WebP, JFIF, HEIC, HEIF, AVIF, BMP, TIFF, TIF)
- Certifique-se de que o arquivo não está corrompido
- Verifique o Content-Type header ao fazer upload
"Arquivo muito grande" (400)
Causa: Tamanho do arquivo excede o limite de 10MB
Solução:
- Redimensione ou comprima a imagem para menos de 10MB
- Verifique o tamanho do arquivo antes do upload
- Use formatos mais eficientes como WebP quando possível
Problemas de Processamento
"Tempo limite da solicitação" (WebSocket)
Causa: O processamento da imagem demorou muito tempo
Solução:
- Tente com uma imagem menor ou menos complexa
- Verifique se o serviço está passando por alta carga
- Tente novamente a solicitação
Status do Documento "falhou"
Causa: O processamento falhou por várias razões
Solução:
- Verifique se a imagem atende aos requisitos mínimos (1KB - 10MB)
- Verifique se a imagem está em um formato suportado
- Verifique se o upload foi concluído com sucesso antes de enviar para detecção
- Entre em contato com o suporte se o problema persistir
Problemas de Upload
"Falha no upload da imagem" (403/400)
Causa: URL pré-assinada inválida ou expirada, ou problemas com o servidor de armazenamento
Solução:
- Certifique-se de usar a URL pré-assinada imediatamente após recebê-la (pode expirar)
- Verifique se o Content-Type header está correto para o formato da imagem
- Remova espaços do nome do arquivo antes do upload
- Tente gerar uma nova URL pré-assinada se a atual expirou
"URL pré-assinada inválida" (400)
Causa: Nome de arquivo com espaços ou URL pré-assinada expirada/corrompida
Solução:
- Remova todos os espaços do nome do arquivo antes de solicitar a URL pré-assinada
- Use apenas caracteres alfanuméricos, hífens e underscores no nome do arquivo
- Gere uma nova URL pré-assinada se necessário
Precisa de Ajuda?
Para mais informações sobre como usar nossa API ou para suporte técnico, entre em contato conosco.
Perguntas Frequentes sobre a API
Encontre respostas para as perguntas mais comuns sobre nossa API de detecção de imagem IA.