開発者向け Presend API
一般的なタスク向けの無料サーバーサイドエンドポイントと、埋め込み可能なクライアントサイドツール。APIキー不要。登録不要。
サーバーサイドエンドポイント
Cloudflareのエッジネットワーク上で動作し、JSONを返します。フェアユースのみ — 公式SLAはなく、大量または自動化されたトラフィックは予告なく制限される場合があります。
Python をお使いの方へ: urllib の既定の User-Agent(Python-urllib/3.x)で送信したリクエストは、Cloudflare によって HTTP 403、本文 error code: 1010 で拒否されます。任意の User-Agent を明示的に設定してください。requests、curl、Node が送る User-Agent は受け付けられます。
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
20MB までのファイルの SHA-256、SHA-1、SHA-512 を返します。
curl -X POST --data-binary @file.pdf \
https://presend.pages.dev/api/hash
# {"size_bytes":17,"hashes":{"sha256":"...","sha1":"...","sha512":"..."}}
POST /api/file-type
ファイルのバイナリシグネチャから実際の種類を判定し、申告された Content-Type との不一致を検出します。単純なアップロードフィルターをすり抜ける偽装ファイル(写真に見せかけた実行ファイルなど)を見つけられます。
curl -X POST --data-binary @suspicious.jpg -H "Content-Type: image/jpeg" https://presend.pages.dev/api/file-type
POST /api/malware-check
アップロードされたファイルのハッシュ(SHA-256)を計算し、既知のマルウェア検体を集めた無料データベース MalwareBazaar(abuse.ch)と照合します。ハッシュ計算と照合を 1 回の呼び出しで行います。
curl -X POST --data-binary @file.exe https://presend.pages.dev/api/malware-check
GET /api/url-clean
URL から 60 種類以上のトラッキングパラメーター(utm_*、fbclid、gclid...)を取り除きます。
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
同じ処理をまとめて実行します。1 リクエストで最大 100 件の URL。
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
呼び出し元の IP を、位置情報、通貨、言語、EU・VPN フラグとともに返します。
curl https://presend.pages.dev/api/ip
GET /api/uuid
ランダムな UUID(v4)を 1 リクエストで最大 100 件生成します。
curl "https://presend.pages.dev/api/uuid?count=5"
GET /api/base64
テキストを Base64 でエンコード・デコードします。
curl "https://presend.pages.dev/api/base64?action=encode&text=hello"
GET /api/jwt-decode
JWT のヘッダーとペイロードをデコードします(署名は検証しません。検証には jwt-verify を使ってください)。
curl "https://presend.pages.dev/api/jwt-decode?token=eyJhbGci..."
POST /api/jwt-verify
Workers ネイティブの Web Crypto API で JWT の暗号署名(HS256/384/512、RS/PS256/384/512、ES256/384/512)を実際に検証し、exp/nbf クレームも確認します。HMAC には「secret」、非対称アルゴリズムには「jwk」または「jwks_url」を指定してください。
curl -X POST -H "Content-Type: application/json" -d '{"token":"...","secret":"..."}' https://presend.pages.dev/api/jwt-verify
GET /api/timestamp
現在時刻の取得、または Unix タイムスタンプと ISO 日付の相互変換を行います。
curl "https://presend.pages.dev/api/timestamp?unix=1700000000"
GET /api/color
hex、RGB、HSL の色形式を相互に変換します。
curl "https://presend.pages.dev/api/color?hex=ff5733"
GET /api/user-agent
User-Agent 文字列を解析し、ブラウザー、OS、デバイスの種類を判定します。
curl "https://presend.pages.dev/api/user-agent"
GET /api/password
暗号学的に安全なパスワードを、エントロピーの推定値付きで生成します。
curl "https://presend.pages.dev/api/password?length=20&symbols=1"
GET /api/email-validate
メールアドレスの構文と、ドメインに MX レコードがあるかを確認します。メールボックスへの問い合わせは行わないため、アドレスが実在するかは確認できません。使い捨てドメインや役割アカウントも検出するには email-verify を使ってください。
curl "https://presend.pages.dev/api/email-validate?email=foo@example.com"
GET /api/favicon
任意のドメインのファビコン URL を取得します。
curl "https://presend.pages.dev/api/favicon?domain=github.com"
GET/POST /api/csv-json
JSON と CSV を相互に変換します。ネストしたオブジェクトは平坦化されず、文字列になります。
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
パスワードが既知のデータ漏えいに含まれるかを確認します(Have I Been Pwned)。HIBP に送られるのは SHA-1 ハッシュの先頭 5 文字だけで(k-匿名性)、Presend はパスワードを記録しません。ただし GET リクエストのため、パスワードは URL に含まれて送信され、ブラウザー、プロキシ、サーバーのログに記録される可能性があります。実際のパスワードには POST /api/password-check を使ってください。
curl "https://presend.pages.dev/api/password-breach?password=..."
POST /api/password-check
強度・エントロピーのスコアリングと、任意の漏洩チェックを1回の呼び出しで組み合わせます。パスワードはPOSTボディで送信され、URLには含まれません。password-breachと同じk-匿名性保証を提供します。
curl -X POST -H "Content-Type: application/json" -d '{"password":"..."}' https://presend.pages.dev/api/password-check
GET /api/email-disposable
576 以上の既知ドメインのリストから、使い捨てメールサービスを検出します。
curl "https://presend.pages.dev/api/email-disposable?email=foo@mailinator.com"
GET /api/email-verify
構文チェック、MXレコード検索、使い捨てドメイン検出、汎用アカウント検出(info@、admin@など)を1回の呼び出しで組み合わせます。
curl "https://presend.pages.dev/api/email-verify?email=foo@example.com"
GET /api/phone-verify
libphonenumber-jsを使用して電話番号を検証し、フォーマットします(E.164、国際形式、国内形式)。「+」が付いていない番号に国が指定されていない場合、発信者のIPから推定された国が自動的に使用されます。
curl "https://presend.pages.dev/api/phone-verify?number=%2B14155552671"
GET /api/email-security
ドメインのメールなりすまし対策を確認します: SPF の強度、DMARC ポリシー、一般的なセレクターでのベストエフォートの DKIM 検索。
curl "https://presend.pages.dev/api/email-security?domain=example.com"
GET /api/security-scan
security-headers、url-reputation、subdomains を 1 つのレポートにまとめ、総合スコアと判定を返します。3 回の呼び出しが 1 回で済みます。
curl "https://presend.pages.dev/api/security-scan?url=https://example.com"
POST /api/qr-scan
アップロードされた画像の QR コードをデコードし、URL を含む場合は URLhaus でマルウェアやフィッシングの兆候を確認します。デコードと評判チェックを 1 回の呼び出しで行います。QR コードを使ったフィッシング(「クイッシング」)は、最も急増しているフィッシング手口の一つです。
curl -X POST -F "file=@qrcode.png" https://presend.pages.dev/api/qr-scan
GET /api/security-headers
HTTP セキュリティヘッダー(CSP、HSTS、X-Frame-Options...)を監査し、アルファベットの評価を付けます。
curl "https://presend.pages.dev/api/security-headers?url=https://example.com"
GET /api/url-reputation
公開のマルウェア・フィッシングデータベース URLhaus で URL を確認します。
curl "https://presend.pages.dev/api/url-reputation?url=https://example.com"
GET /api/subdomains
Certificate Transparency ログ(crt.sh)による受動的なサブドメイン探索です。自分の攻撃対象領域の監査に使います。注意: crt.sh に依存しており、当方では制御できない停止が時折発生します。
curl "https://presend.pages.dev/api/subdomains?domain=example.com"
GET /api/ai-crawler-check
robots.txt を取得し、既知の AI クローラー(GPTBot、ClaudeBot、PerplexityBot、Google-Extended、CCBot など)が許可されているかブロックされているかを報告します。無料・登録不要です。
curl "https://presend.pages.dev/api/ai-crawler-check?domain=example.com"
GET /api/ip-reputation
IPv4 または IPv6 アドレスを、乗っ取られた、またはスパム・サイバー犯罪集団に支配されていることが知られているネットブロックの厳選リストと照合します。特定の 1 つのリストであり、総合的な評判スコアではありません。コピーの更新は 1 日 1 回までです。レスポンスにはリストの日付、出典表示、そしてコピーが 48 時間以上古くなるほど提供元に接続できなかった場合の stale フラグが含まれます。自分のミドルウェアで毎リクエストを確認する場合は、通常リストをローカルに読み込むほうが良い設計です。
curl "https://presend.pages.dev/api/ip-reputation?ip=1.2.3.4"
GET /api/dns-lookup
A、AAAA、CNAME、MX、TXT、NS レコードを Cloudflare の DNS over HTTPS リゾルバー経由で 1 回の呼び出しで取得します。type= で 1 種類だけを指定することもできます。
curl "https://presend.pages.dev/api/dns-lookup?domain=example.com"
GET /api/whois-lookup
レジストラ、登録日と有効期限、ドメインの年齢、ネームサーバーを、従来の WHOIS の後継である HTTPS ベースの RDAP で取得します。
curl "https://presend.pages.dev/api/whois-lookup?domain=example.com"
GET /api/redirect-trace
URL のリダイレクトチェーン全体(最大 15 ホップ)をたどり、最終 URL だけでなく各ホップのステータスコードと転送先を記録します。
curl "https://presend.pages.dev/api/redirect-trace?url=http://github.com"
サプライチェーンセキュリティ
依存関係のリスクチェックです。typosquat-check と maintainer-change-check はヒューリスティックであり、判定ではなく確認の優先順位付けのためのシグナルです。
GET /api/typosquat-check
よく知られた npm・PyPI パッケージの厳選リストの名前に酷似したパッケージ名を検出します(4〜7 文字の名前は 1 文字違い、8 文字以上は 2 文字違いまで。3 文字以下の名前はあいまい比較しません)。PyPI の名前は正規化されます(PEP 503)。確認済みの正当な類似名には known_legitimate が付きます。
curl "https://presend.pages.dev/api/typosquat-check?ecosystem=npm&package=lodahs"
POST /api/typosquat-check
バッチモード: 1 リクエストで最大 100 件の名前を送れ、レート制限上は 1 リクエストとして数えます。無効な項目はその項目だけエラーを返し、バッチ全体は失敗しません。
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 と PyPI。npm では、過去 365 日以内に、180 日以上更新のなかったパッケージを、これまで見られなかった人間の公開者が引き継いだ場合に検出します。event-stream 侵害(2018 年)の背後にあったパターンです。週 10 万ダウンロード以上の別パッケージを既に保守している公開者への引き継ぎや、npm の trusted publishing への移行は、フラグを立てずに別途報告します。公開者の ID は変わらないため、既存のメンテナーアカウントの乗っ取りや、元のメンテナーによる悪意あるリリースは検出しません。PyPI では存在と経過日数のみを返します。PyPI は各リリースの公開者を公開していないため、公開者の分析は maintainer_analysis: "npm_only" を返します。両レジストリで、first_published と package_age_days がパッケージの経過日数を示し、初回公開から 30 日未満のパッケージでは new_package が true になります。PyPI では PyPI に残っている最も古いファイルを基準にするため、リリースが削除されているとプロジェクトが実際より新しく見えます。
curl "https://presend.pages.dev/api/maintainer-change-check?ecosystem=npm&package=lodash"
POST /api/maintainer-change-check
バッチモード: 1 リクエストで同じレジストリ(npm または PyPI)のパッケージを最大 20 件送れ、レート制限上は 1 リクエストとして数えます。存在しないパッケージやレジストリの障害は項目ごとに報告され、バッチ全体は失敗しません。
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
パッケージのバージョンを OSV.dev で確認します: npm、PyPI、Go、crates.io、Maven、RubyGems、Packagist、NuGet。CVE や GHSA の識別子を直接調べるには cve-lookup を使ってください。バージョンを指定しない場合は、すべてのバージョンに関する勧告が数えられます(scope)。npm と PyPI では、存在しない名前には found: false と vulnerable: null を返し、「問題なし」とは判定しません。
curl "https://presend.pages.dev/api/vulnerability-check?ecosystem=npm&package=lodash&version=4.17.15"
GET /api/repo-health-check
GitHub REST API 経由で、GitHub リポジトリのスター数、フォーク数、未解決の Issue 数、ライセンス、アーカイブ状態、最終 push からの日数を取得します。
curl "https://presend.pages.dev/api/repo-health-check?repo=lodash/lodash"
GET /api/supply-chain-check
maintainer-change-check(公開者の分析、npm のみ)、vulnerability-check、typosquat-check、repo-health-check(可能な場合はレジストリのメタデータからリポジトリを特定)を 1 回の呼び出しにまとめ、総合判定を返します。初回公開から 30 日未満のパッケージには new_package フラグが付き、総合判定は少なくとも review_recommended になります。脆弱性は任意の version パラメーターで指定したバージョン、指定がなければ最新の公開バージョンについて確認します(version_checked、version_source)。
curl "https://presend.pages.dev/api/supply-chain-check?ecosystem=npm&package=lodash"
ブロックチェーン
Cosmos と EVM のエコシステム向けの無料ツールです。登録不要、API キー不要です。
GET /api/address-risk
暗号資産アドレスを、OFAC の SDN(Specially Designated Nationals)に含まれるすべてのデジタル通貨アドレスリストと照合します。EVM(0x...)と Bitcoin(bc1...、1...、3...)のアドレスは完全に対応しています。その他のチェーンのアドレスは、リストに載っていれば検出されます。Cosmos SDK(bech32)のアドレスは、リストにない場合 sanctioned: null を返します。OFAC は Cosmos SDK チェーンのエントリを一件も公開していないためです。
curl "https://presend.pages.dev/api/address-risk?address=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
GET /api/tx-decode
署名済みの生の Cosmos SDK トランザクション(protobuf の TxRaw バイト列、base64)を読みやすい JSON にデコードします -- メッセージ、手数料、ガス、署名者情報、署名。外部依存なしで、ネストした MsgExec を含む一般的な bank/staking/gov/authz のメッセージ型をデコードします。
curl "https://presend.pages.dev/api/tx-decode?tx=CpwBCpEBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEnEK..."
GET /api/rpc-check
Cosmos SDK チェーンの公開 CometBFT RPC エンドポイントを監査します: ノードの状態、ヘルス、ピア接続、そして安全でない管理メソッド(dial_seeds、dial_peers、unsafe_flush_mempool)が公開されているように見えるかどうか。読み取り専用です -- 安全でないメソッドを自ら呼び出すことはありません。
curl "https://presend.pages.dev/api/rpc-check?url=https://cosmos-rpc.publicnode.com"
ユーティリティ
できる限り外部依存のない、小さく用途を絞ったツールです。
GET /api/iban-validate
ISO 7064 mod-97 チェックサムと国ごとの桁数チェックで IBAN を検証します。純粋なアルゴリズムで、外部データソースは使いません。
curl "https://presend.pages.dev/api/iban-validate?iban=DE89370400440532013000"
GET /api/vat-validate
欧州委員会の公式 VIES サービスで EU の VAT 番号をリアルタイムに検証します -- 有効な場合は登録済みの会社名と住所を返します。
curl "https://presend.pages.dev/api/vat-validate?country=IE&vat=6388047V"
GET /api/link-metadata
URL から Open Graph、Twitter Card、基本的な <head> のメタデータを抽出します -- チャットアプリがリンクプレビューのカードを表示するのと同じデータです。ファビコンと、リダイレクト(それぞれ検証)をたどった後の最終 URL も返します。
curl "https://presend.pages.dev/api/link-metadata?url=https://github.com/presendapp/presend-source"
GET /api/cve-lookup
OSV.dev で識別子から CVE/GHSA を直接検索します。スキャナーのレポートなどで既に識別子がある場合に、vulnerability-check(パッケージ・エコシステム・バージョンが必要)を補完します。
curl "https://presend.pages.dev/api/cve-lookup?id=CVE-2021-44228"
連携ワークフロー
これら2つのエンドポイントは、サーバー側で複数の処理を1回の呼び出しに連携させます 。処理はステートレスです:ディスクへの書き込みなし、ログなし、レスポンス送信直後にファイルは破棄されます。
POST /api/merge-and-compress-pdf
2つ以上のPDFファイルを1つの文書に結合し、結果を圧縮してメタデータ(タイトル、作成者、作成ソフト)を削除します — 2回のリクエストではなく1回で完了します。
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
直接バイナリ解析により、JPEGのEXIF/GPSとPNGのテキストメタデータを削除します — ピクセルデータは再エンコードされないため、画質の劣化は一切ありません(常に再圧縮されるcanvasベースの方式とは異なります)。
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
JPEG/PNG 画像 1 枚または 2 枚の知覚ハッシュ(dHash)です。暗号学的ハッシュと違い、再圧縮や軽微な編集に強く、2 枚送れば類似度スコアと判定で直接比較できます。
curl -X POST -F "files=@a.jpg" -F "files=@b.png" https://presend.pages.dev/api/image-similarity
POST /api/text-similarity
テキスト 1 件または 2 件の SimHash です。image-similarity のテキスト版にあたります。暗号学的ハッシュと違い、言い換えや軽微な編集を加えた重複に近い内容を検出します。無関係なテキストでも偶然 50% 前後になるのが普通で、0% にはなりません。
curl -X POST -H "Content-Type: application/json" -d '{"texts":["text a","text b"]}' https://presend.pages.dev/api/text-similarity
クライアントサイドツール(埋め込み)
ほとんどのファイル処理ツール(EXIF削除、PDF圧縮など)は、独立したウィジェットとしてブラウザ内でも完結し、何もアップロードされません。サーバー呼び出しではなく、すぐに使えるUIが必要な場合は、上記のAPIの代わりにこちらを使ってください。直接埋め込んでください:
<iframe src="https://presend.pages.dev/tools/exif-remover?embed=1" width="100%" height="600" frameborder="0" ></iframe>
利用可能なツール
File Hash Checker
SHA-256 / SHA-1 / SHA-512 — サーバー API あり
URL Cleaner
トラッキングパラメーターを除去 — サーバー API あり
IP Geolocation
IP、所在地、通貨 — サーバー API あり
UUID Generator
ランダムな UUID — サーバー API あり
Base64 Encoder/Decoder
テキストのエンコード/デコード — サーバー API あり
JWT Decoder
JWT トークンをデコード — サーバー API あり
Timestamp Converter
Unix/ISO 日付の変換 — サーバー API
Color Converter
Hex/RGB/HSL — サーバー API
User-Agent Parser
ブラウザー/OS の判定 — サーバー API
Password Generator API
エントロピー付きの安全なパスワード — サーバー API
Email Validator
構文 + MX レコードのチェック — サーバー API
Favicon Fetcher
任意のサイトのファビコンを取得 — サーバー API
CSV/JSON Converter
双方向 — サーバー API
Password Breach Check
HIBP を利用 — サーバー API
Disposable Email Detector
576 以上の既知ドメイン — サーバー API
Security Headers Analyzer
CSP・HSTS の評価 — サーバー API
URL Reputation Check
マルウェア/フィッシングの照会 — サーバー API
Attack Surface Discovery
受動的なサブドメイン列挙 — サーバー API
Address Risk Check
OFAC 制裁チェック(EVM、Bitcoin) — サーバー API
Cosmos Tx Decoder
生の Cosmos SDK トランザクションをデコード — サーバー API
RPC Check
CometBFT RPC エンドポイントを監査 — サーバー API
EXIF Remover
写真から GPS とメタデータを削除(ブラウザー内)
PDF Compress
PDF のファイルサイズを縮小(ブラウザー内)
Password Generator
暗号学的に安全なパスワード(ブラウザー内)
npmパッケージ
上記すべてのエンドポイントをラップする依存関係のないJSクライアント。
npm install presend-api
const presend = require('presend-api');
const { uuids } = await presend.generateUuid(3);
埋め込みウィジェット
iframeなしで、当社APIによって直接動作するツールをサイトに追加できます。対応:url-cleaner、uuid、color。
<div data-presend-tool="url-cleaner"></div> <script src="https://presend.pages.dev/widget.js" async></script>
data-badge="false" を追加すると「Powered by Presend」のクレジットリンクを非表示にできます。
OpenAPI仕様
すべてのサーバーサイドエンドポイントの機械可読な仕様: openapi.json
RapidAPI
RapidAPI にも掲載しています。カタログの一部だけが必要な場合に備えて、分野別に分けています:
- Presend API -- 全カタログ(Cybersecurity)
- Presend Blockchain & Crypto Compliance API -- OFAC チェック、Cosmos SDK トランザクションのデコード、RPC 監査(Finance)
- Presend Email & Phone Verification API -- メールアドレスと電話番号の検証(Email)
- Presend Developer Tools API -- UUID、Base64、タイムスタンプ、IP ジオロケーション、PDF・画像ツール(Tools)
ステータス
稼働状況をリアルタイムで表示します。4 つの地域(EU、米国、アジア、オーストラリア)から独立して監視し、3 分ごとに確認しています。
Postman コレクション
48 のエンドポイントすべてを収録した、すぐにインポートできるコレクションです。上記の OpenAPI 仕様から生成しています。
または元のファイルをダウンロード: postman_collection.json。
オープンソース
すべてのツールはオープンソースです。GitHubで貢献するか、ご自身のプロジェクト用にフォークしてください。 github.com/presendapp/presend-source