開発者向け 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"

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);

npm で見る

埋め込みウィジェット

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 にも掲載しています。カタログの一部だけが必要な場合に備えて、分野別に分けています:

ステータス

稼働状況をリアルタイムで表示します。4 つの地域(EU、米国、アジア、オーストラリア)から独立して監視し、3 分ごとに確認しています。

presend.betteruptime.com

Postman コレクション

48 のエンドポイントすべてを収録した、すぐにインポートできるコレクションです。上記の OpenAPI 仕様から生成しています。

Run in Postman

または元のファイルをダウンロード: postman_collection.json。

オープンソース

すべてのツールはオープンソースです。GitHubで貢献するか、ご自身のプロジェクト用にフォークしてください。 github.com/presendapp/presend-source