API Presend para desenvolvedores
Endpoints de servidor gratuitos para tarefas comuns, além de ferramentas incorporáveis no cliente. Sem chave de API. Sem cadastro.
Endpoints de servidor
Rodam na rede edge da Cloudflare e retornam JSON. Apenas uso justo — sem SLA oficial, tráfego pesado ou automatizado pode ser limitado sem aviso.
Usuários de Python: requisições enviadas com o User-Agent padrão do urllib (Python-urllib/3.x) são rejeitadas pelo Cloudflare com HTTP 403 e o corpo error code: 1010. Defina qualquer User-Agent explícito. requests, curl e Node enviam um que é aceito.
import json, urllib.request
req = urllib.request.Request("https://presend.pages.dev/api/uuid", headers={"User-Agent": "my-app/1.0"})
print(json.load(urllib.request.urlopen(req)))
POST /api/hash
Retorna SHA-256, SHA-1 e SHA-512 de qualquer arquivo de até 20 MB.
curl -X POST --data-binary @file.pdf \
https://presend.pages.dev/api/hash
# {"size_bytes":17,"hashes":{"sha256":"...","sha1":"...","sha512":"..."}}
POST /api/file-type
Detecta o tipo real de um arquivo pela sua assinatura binária e aponta divergência em relação ao Content-Type declarado: pega arquivos disfarçados (por exemplo, um executável renomeado como foto) que passam por filtros de upload ingênuos.
curl -X POST --data-binary @suspicious.jpg -H "Content-Type: image/jpeg" https://presend.pages.dev/api/file-type
POST /api/malware-check
Calcula o hash (SHA-256) de um arquivo enviado e o verifica no MalwareBazaar (abuse.ch), um banco de dados gratuito de amostras de malware conhecidas: hash e verificação em uma única chamada.
curl -X POST --data-binary @file.exe https://presend.pages.dev/api/malware-check
GET /api/url-clean
Remove mais de 60 parâmetros de rastreamento (utm_*, fbclid, gclid...) de uma URL.
curl "https://presend.pages.dev/api/url-clean?url=https://example.com/?utm_source=x"
# {"clean":"https://example.com/","removed":1,"valid":true}
POST /api/url-clean
O mesmo, em lote: até 100 URLs por requisição.
curl -X POST -H "Content-Type: application/json" \
-d '{"urls":["https://a.com?fbclid=x","https://b.com?gclid=y"]}' \
https://presend.pages.dev/api/url-clean
GET /api/ip
Retorna o IP de quem faz a chamada com geolocalização, moeda, idioma e indicadores de UE e VPN.
curl https://presend.pages.dev/api/ip
GET /api/uuid
Gera UUIDs aleatórios (v4), até 100 por requisição.
curl "https://presend.pages.dev/api/uuid?count=5"
GET /api/base64
Codifica ou decodifica texto em Base64.
curl "https://presend.pages.dev/api/base64?action=encode&text=hello"
GET /api/jwt-decode
Decodifica o cabeçalho e o payload de um JWT (sem verificar a assinatura; para isso, use jwt-verify).
curl "https://presend.pages.dev/api/jwt-decode?token=eyJhbGci..."
POST /api/jwt-verify
Verifica de fato a assinatura criptográfica de um JWT (HS256/384/512, RS/PS256/384/512, ES256/384/512) pela API Web Crypto nativa dos Workers, além de checar as claims exp/nbf. Forneça um “secret” para HMAC, ou um “jwk”/“jwks_url” para algoritmos assimétricos.
curl -X POST -H "Content-Type: application/json" -d '{"token":"...","secret":"..."}' https://presend.pages.dev/api/jwt-verify
GET /api/timestamp
Hora atual, ou conversão entre timestamp Unix e data ISO.
curl "https://presend.pages.dev/api/timestamp?unix=1700000000"
GET /api/color
Converte entre os formatos de cor hex, RGB e HSL.
curl "https://presend.pages.dev/api/color?hex=ff5733"
GET /api/user-agent
Analisa uma string User-Agent em navegador, sistema operacional e tipo de dispositivo.
curl "https://presend.pages.dev/api/user-agent"
GET /api/password
Gera uma senha criptograficamente segura com estimativa de entropia.
curl "https://presend.pages.dev/api/password?length=20&symbols=1"
GET /api/email-validate
Valida a sintaxe do e-mail e verifica se o domínio tem um registro MX. Não sonda a caixa de correio, então não pode confirmar que o endereço existe; use email-verify para também detectar domínios descartáveis e contas funcionais.
curl "https://presend.pages.dev/api/email-validate?email=foo@example.com"
GET /api/favicon
Obtém a URL do favicon de qualquer domínio.
curl "https://presend.pages.dev/api/favicon?domain=github.com"
GET/POST /api/csv-json
Converte entre JSON e CSV. Objetos aninhados viram strings, não são achatados.
curl -X POST -H "Content-Type: application/json" \
-d '{"direction":"json-to-csv","data":"[{\"a\":1}]"}' \
https://presend.pages.dev/api/csv-json
GET /api/password-breach
Verifica se uma senha aparece em vazamentos de dados conhecidos (Have I Been Pwned). Apenas os 5 primeiros caracteres do hash SHA-1 dela são enviados ao HIBP (k-anonimato), e o Presend não a registra. Mas é uma requisição GET, então a senha trafega na URL, onde navegadores, proxies ou logs de servidor podem registrá-la: para senhas reais, use POST /api/password-check.
curl "https://presend.pages.dev/api/password-breach?password=..."
POST /api/password-check
Combina pontuação de força/entropia com uma verificação opcional de vazamento em uma única chamada — a senha viaja no corpo da requisição POST, nunca em uma URL. Mesma garantia de k-anonimato do password-breach.
curl -X POST -H "Content-Type: application/json" -d '{"password":"..."}' https://presend.pages.dev/api/password-check
GET /api/email-disposable
Detecta provedores de e-mail descartáveis a partir de uma lista de mais de 576 domínios conhecidos.
curl "https://presend.pages.dev/api/email-disposable?email=foo@mailinator.com"
GET /api/email-verify
Combina verificação de sintaxe, consulta MX, detecção de domínio descartável e detecção de conta genérica (info@, admin@...) em uma única chamada .
curl "https://presend.pages.dev/api/email-verify?email=foo@example.com"
GET /api/phone-verify
Valida e formata um número de telefone (E.164, internacional, nacional) via libphonenumber-js. Se nenhum país for informado para um número sem prefixo "+", o país inferido pelo IP do solicitante é usado automaticamente.
curl "https://presend.pages.dev/api/phone-verify?number=%2B14155552671"
GET /api/email-security
Verifica a configuração antifalsificação de e-mail de um domínio: força do SPF, política DMARC e uma busca DKIM de melhor esforço em seletores comuns.
curl "https://presend.pages.dev/api/email-security?domain=example.com"
GET /api/security-scan
Combina security-headers, url-reputation e subdomains em um único relatório com pontuação geral e veredito: uma chamada em vez de três.
curl "https://presend.pages.dev/api/security-scan?url=https://example.com"
POST /api/qr-scan
Decodifica um QR code de uma imagem enviada e, se ele apontar para uma URL, verifica-a no URLhaus em busca de indícios de malware ou phishing: decodificação e verificação de reputação em uma única chamada. O phishing por QR code (“quishing”) é um dos vetores de phishing que mais crescem.
curl -X POST -F "file=@qrcode.png" https://presend.pages.dev/api/qr-scan
GET /api/security-headers
Audita os cabeçalhos de segurança HTTP (CSP, HSTS, X-Frame-Options...) e atribui uma nota por letra.
curl "https://presend.pages.dev/api/security-headers?url=https://example.com"
GET /api/url-reputation
Verifica uma URL no URLhaus, um banco de dados público de malware e phishing.
curl "https://presend.pages.dev/api/url-reputation?url=https://example.com"
GET /api/subdomains
Descoberta passiva de subdomínios pelos logs de Certificate Transparency (crt.sh), para auditar a sua própria superfície de ataque. Observação: depende do crt.sh, que tem instabilidades ocasionais fora do nosso controle.
curl "https://presend.pages.dev/api/subdomains?domain=example.com"
GET /api/ai-crawler-check
Busca o robots.txt e informa quais crawlers de IA conhecidos (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot etc.) estão permitidos ou bloqueados. Grátis, sem cadastro.
curl "https://presend.pages.dev/api/ai-crawler-check?domain=example.com"
GET /api/ip-reputation
Verifica um endereço IPv4 ou IPv6 em uma lista curada de blocos de rede sabidamente sequestrados ou controlados por operações de spam ou crime cibernético. Uma lista específica, não uma pontuação de reputação completa. A cópia é atualizada no máximo uma vez por dia; a resposta inclui a data da lista, a atribuição e um indicador stale se a fonte ficou inacessível tempo suficiente para a cópia ter mais de 48 horas. Para verificar cada requisição no seu próprio middleware, carregar a lista localmente costuma ser o melhor desenho.
curl "https://presend.pages.dev/api/ip-reputation?ip=1.2.3.4"
GET /api/dns-lookup
Registros A, AAAA, CNAME, MX, TXT e NS em uma única chamada pelo resolvedor DNS sobre HTTPS do Cloudflare, ou um único tipo com type=.
curl "https://presend.pages.dev/api/dns-lookup?domain=example.com"
GET /api/whois-lookup
Registrador, datas de criação e expiração, idade do domínio e servidores de nomes via RDAP, o sucessor do WHOIS tradicional baseado em HTTPS.
curl "https://presend.pages.dev/api/whois-lookup?domain=example.com"
GET /api/redirect-trace
Segue a cadeia completa de redirecionamentos de uma URL (até 15 saltos) e registra o código de status e o destino de cada salto, não apenas a URL final.
curl "https://presend.pages.dev/api/redirect-trace?url=http://github.com"
Segurança da cadeia de suprimentos
Verificações de risco de dependências. typosquat-check e maintainer-change-check são heurísticas: sinais para triagem, não vereditos.
GET /api/typosquat-check
Aponta nomes de pacotes muito parecidos com os de uma lista curada de pacotes npm e PyPI conhecidos (1 edição para nomes de 4 a 7 caracteres, 2 a partir de 8; nomes de 3 caracteres ou menos não passam por comparação aproximada). Os nomes do PyPI são normalizados (PEP 503); sósias legítimos revisados são marcados com known_legitimate.
curl "https://presend.pages.dev/api/typosquat-check?ecosystem=npm&package=lodahs"
POST /api/typosquat-check
Modo em lote: até 100 nomes por requisição, contados como uma única requisição no limite de uso. Uma entrada inválida retorna um erro para essa entrada sem derrubar o lote.
curl -X POST -H "Content-Type: application/json" -d '{"ecosystem":"npm","packages":["lodahs","expres","react"]}' https://presend.pages.dev/api/typosquat-check
GET /api/maintainer-change-check
npm e PyPI. No npm, aponta quando um publicador humano nunca visto antes assume um pacote após mais de 180 dias de inatividade, nos últimos 365 dias: o padrão por trás do comprometimento do event-stream (2018). Passagens para um publicador que já mantém outro pacote com mais de 100.000 downloads semanais, e a migração para o trusted publishing do npm, são relatadas à parte, sem levantar o alerta. Não detecta uma conta de mantenedor existente sequestrada nem uma versão maliciosa publicada pelo mantenedor original, já que a identidade do publicador não muda. No PyPI, informa apenas existência e idade: o PyPI não expõe quem publicou cada versão, por isso a análise de publicadores retorna maintainer_analysis: "npm_only". Nos dois registros, first_published e package_age_days dão a idade do pacote, e new_package é true para um pacote publicado pela primeira vez há menos de 30 dias. No PyPI, a idade é a do arquivo mais antigo ainda presente: versões excluídas fazem um projeto parecer mais novo.
curl "https://presend.pages.dev/api/maintainer-change-check?ecosystem=npm&package=lodash"
POST /api/maintainer-change-check
Modo em lote: até 20 pacotes de um mesmo registro (npm ou PyPI) por requisição, contados como uma única requisição no limite de uso. Um pacote inexistente ou uma falha do registro é relatado por entrada, sem derrubar o lote.
curl -X POST -H "Content-Type: application/json" -d '{"ecosystem":"npm","packages":["lodash","express"]}' https://presend.pages.dev/api/maintainer-change-check
GET /api/vulnerability-check
Verifica uma versão de pacote no OSV.dev: npm, PyPI, Go, crates.io, Maven, RubyGems, Packagist, NuGet. Para consultar diretamente um identificador CVE ou GHSA, use cve-lookup. Sem versão, são contados os avisos que afetam qualquer versão (scope). No npm e no PyPI, um nome que não existe devolve found: false e vulnerable: null, nunca um resultado limpo.
curl "https://presend.pages.dev/api/vulnerability-check?ecosystem=npm&package=lodash&version=4.17.15"
GET /api/repo-health-check
Estrelas, forks, issues abertas, licença, status de arquivamento e dias desde o último push de um repositório do GitHub, pela API REST do GitHub.
curl "https://presend.pages.dev/api/repo-health-check?repo=lodash/lodash"
GET /api/supply-chain-check
Combina maintainer-change-check (análise de publicadores, somente npm), vulnerability-check, typosquat-check e repo-health-check (repositório obtido dos metadados do registro quando possível) em uma única chamada com veredito geral. Um pacote publicado pela primeira vez há menos de 30 dias é marcado como new_package, e o veredito passa a ser no mínimo review_recommended. As vulnerabilidades são verificadas para o parâmetro opcional version ou, na falta dele, para a última versão publicada (version_checked, version_source).
curl "https://presend.pages.dev/api/supply-chain-check?ecosystem=npm&package=lodash"
Blockchain
Ferramentas gratuitas para os ecossistemas Cosmos e EVM. Sem cadastro, sem chave de API.
GET /api/address-risk
Verifica um endereço cripto em todas as listas de endereços de moedas digitais da lista SDN (Specially Designated Nationals) da OFAC. Endereços EVM (0x...) e Bitcoin (bc1..., 1..., 3...) têm cobertura completa; endereços de outras redes são apontados quando listados. Endereços Cosmos SDK (bech32) retornam sanctioned: null quando não listados, pois a OFAC não publicou nenhuma entrada para redes Cosmos SDK.
curl "https://presend.pages.dev/api/address-risk?address=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
GET /api/tx-decode
Decodifica uma transação Cosmos SDK bruta e assinada (bytes TxRaw em protobuf, base64) em JSON legível -- mensagens, taxa, gas, informações do signatário, assinaturas. Sem dependência externa; decodifica os tipos de mensagem comuns de bank/staking/gov/authz, incluindo MsgExec aninhado.
curl "https://presend.pages.dev/api/tx-decode?tx=CpwBCpEBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnEK..."
GET /api/rpc-check
Audita um endpoint RPC público do CometBFT de uma rede Cosmos SDK: status do nó, saúde, conectividade com pares e se métodos administrativos inseguros (dial_seeds, dial_peers, unsafe_flush_mempool) parecem estar expostos. Somente leitura -- nunca invoca nenhum método inseguro.
curl "https://presend.pages.dev/api/rpc-check?url=https://cosmos-rpc.publicnode.com"
Utilitários
Ferramentas pequenas e focadas, sem dependência externa sempre que possível.
GET /api/iban-validate
Valida um IBAN pela soma de verificação ISO 7064 mod-97, com checagem de comprimento por país. Algoritmo puro -- sem fonte de dados externa.
curl "https://presend.pages.dev/api/iban-validate?iban=DE89370400440532013000"
GET /api/vat-validate
Valida um número de IVA da UE em tempo real pelo serviço oficial VIES da Comissão Europeia -- retorna o nome e o endereço registrados da empresa quando válido.
curl "https://presend.pages.dev/api/vat-validate?country=IE&vat=6388047V"
GET /api/link-metadata
Extrai metadados Open Graph, Twitter Card e básicos do <head> de uma URL -- os mesmos dados usados por apps de chat para exibir a prévia de um link. Também retorna o favicon e, após seguir os redirecionamentos (cada um verificado), a URL final.
curl "https://presend.pages.dev/api/link-metadata?url=https://github.com/presendapp/presend-source"
GET /api/cve-lookup
Consulta direta de CVE/GHSA por identificador via OSV.dev. Complementa o vulnerability-check (que exige pacote, ecossistema e versão) quando você já tem um identificador de um relatório de scanner.
curl "https://presend.pages.dev/api/cve-lookup?id=CVE-2021-44228"
Fluxos encadeados
Esses dois endpoints encadeiam múltiplas operações no servidor em uma única chamada . O processamento não mantém estado: nada é gravado em disco, nada é registrado, o arquivo é descartado assim que a resposta é enviada.
POST /api/merge-and-compress-pdf
Combina 2 ou mais arquivos PDF em um único documento, depois comprime o resultado e remove metadados (título, autor, produtor) — em uma única requisição em vez de duas.
curl -X POST -F "files=@a.pdf" -F "files=@b.pdf" https://presend.pages.dev/api/merge-and-compress-pdf -o merged.pdf
POST /api/clean-image
Remove EXIF/GPS de JPEG e metadados de texto de PNG via análise binária direta — os pixels nunca são recodificados, portanto não há perda de qualidade (diferente das abordagens baseadas em canvas, que sempre recomprimem).
curl -X POST --data-binary @photo.jpg -H "Content-Type: image/jpeg" https://presend.pages.dev/api/clean-image -o clean.jpg
POST /api/image-similarity
Hash perceptual (dHash) para 1 ou 2 imagens JPEG/PNG. Ao contrário de um hash criptográfico, resiste a recompressão e pequenas edições: envie 2 imagens para compará-las diretamente com uma pontuação de similaridade e um veredito.
curl -X POST -F "files=@a.jpg" -F "files=@b.png" https://presend.pages.dev/api/image-similarity
POST /api/text-similarity
SimHash para 1 ou 2 textos: o equivalente para texto do image-similarity. Detecta conteúdo quase duplicado, parafraseado ou levemente editado, ao contrário de um hash criptográfico. Textos sem relação costumam pontuar ~50% por acaso, não 0%.
curl -X POST -H "Content-Type: application/json" -d '{"texts":["text a","text b"]}' https://presend.pages.dev/api/text-similarity
Ferramentas no cliente (incorporar)
A maioria das ferramentas de processamento de arquivos (remoção de EXIF, compressão de PDF etc.) também roda inteiramente no navegador como widgets independentes — nada é enviado. Use-as em vez da API acima quando quiser uma interface pronta em vez de uma chamada ao servidor. Incorpore diretamente:
<iframe src="https://presend.pages.dev/tools/exif-remover?embed=1" width="100%" height="600" frameborder="0" ></iframe>
Ferramentas disponíveis
File Hash Checker
SHA-256 / SHA-1 / SHA-512 — API de servidor disponível
URL Cleaner
Remove parâmetros de rastreamento — API de servidor disponível
IP Geolocation
IP, localização, moeda — API de servidor disponível
UUID Generator
UUIDs aleatórios — API de servidor disponível
Base64 Encoder/Decoder
Codifica/decodifica texto — API de servidor disponível
JWT Decoder
Decodifica tokens JWT — API de servidor disponível
Timestamp Converter
Conversão de datas Unix/ISO — API de servidor
Color Converter
Hex/RGB/HSL — API de servidor
User-Agent Parser
Detecção de navegador/SO — API de servidor
Password Generator API
Senhas seguras com entropia — API de servidor
Email Validator
Sintaxe + registro MX — API de servidor
Favicon Fetcher
Favicon de qualquer site — API de servidor
CSV/JSON Converter
Bidirecional — API de servidor
Password Breach Check
Baseado no HIBP — API de servidor
Disposable Email Detector
Mais de 576 domínios conhecidos — API de servidor
Security Headers Analyzer
Nota CSP, HSTS — API de servidor
URL Reputation Check
Consulta de malware/phishing — API de servidor
Attack Surface Discovery
Enumeração passiva de subdomínios — API de servidor
Address Risk Check
Verificação de sanções da OFAC (EVM, Bitcoin) — API de servidor
Cosmos Tx Decoder
Decodifica transações Cosmos SDK brutas — API de servidor
RPC Check
Audita um endpoint RPC do CometBFT — API de servidor
EXIF Remover
Remove GPS e metadados de fotos (no cliente)
PDF Compress
Reduz o tamanho de arquivos PDF (no cliente)
Password Generator
Senhas criptograficamente seguras (no cliente)
Pacote npm
Um cliente JS sem dependências que envolve todos os endpoints acima.
npm install presend-api
const presend = require('presend-api');
const { uuids } = await presend.generateUuid(3);
Widget incorporável
Adicione uma ferramenta funcional diretamente no seu site — sem iframe, alimentada diretamente pela nossa API. Suporta: url-cleaner, uuid, color.
<div data-presend-tool="url-cleaner"></div> <script src="https://presend.pages.dev/widget.js" async></script>
Adicione data-badge="false" para ocultar o link de crédito "Powered by Presend".
Especificação OpenAPI
Especificação legível por máquina para todos os endpoints de servidor: openapi.json
RapidAPI
Também disponível no RapidAPI, em fichas separadas por área se você só precisa de uma parte do catálogo:
- Presend API -- o catálogo completo (Cybersecurity)
- Presend Blockchain & Crypto Compliance API -- verificações OFAC, decodificação de transações Cosmos SDK, auditoria de RPC (Finance)
- Presend Email & Phone Verification API -- verificação de e-mail e telefone (Email)
- Presend Developer Tools API -- UUID, Base64, timestamp, geolocalização de IP, ferramentas de PDF e imagem (Tools)
Status
Disponibilidade ao vivo, monitorada de forma independente a partir de 4 regiões (UE, EUA, Ásia, Austrália), verificada a cada 3 minutos.
Coleção do Postman
Coleção pronta para importar cobrindo os 48 endpoints, gerada a partir da especificação OpenAPI acima.
Ou baixe o arquivo bruto: postman_collection.json.
Código aberto
Todas as ferramentas são de código aberto. Contribua no GitHub ou faça um fork para seus próprios projetos. github.com/presendapp/presend-source