盗作検出 API: テキストを提出し、レポートをポールします。
少数のエンドポイント、持ち主認証、透明なクレジット価格。機関、編集パイプライン、LMSに隣接するツールのために作成。
エンドポイント
POST /api/v1/check/
チェックするテキストを送信します。check_id と共に 202 を返します。ボディ: JSON とテキストフィールド、オプションのディープブール値。
curl -X POST https://plagiarism.free/api/v1/check/ \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "The text you want to check..."}'
GET /api/v1/check/<check_id>/
また,検索結果の全体像を示すために,検索結果の全体像を表す表を作成した。
curl https://plagiarism.free/api/v1/check/CHECK_ID/ \ -H "Authorization: Bearer YOUR_KEY"
GET /api/v1/checks/
最近のチェックを一覧に表示します。最近のチェックは最初に表示されます。オプションのクエリパラメータは、限界 (1-100, 標準 20) と状態 (キュー、完了、失敗... ) です。すべての check_id を保存しないで、提出を調整し、自分のダッシュボードをバックアップします。
curl "https://plagiarism.free/api/v1/checks/?limit=20&status=done" \ -H "Authorization: Bearer YOUR_KEY"
Pythonの例
import time
import requests
API = "https://plagiarism.free/api/v1/check/"
HEADERS = {"Authorization": "Bearer YOUR_KEY"}
r = requests.post(API, json={"text": open("essay.txt").read()}, headers=HEADERS)
check_id = r.json()["check_id"]
while True:
report = requests.get(f"{API}{check_id}/", headers=HEADERS).json()
if report["status"] in ("done", "failed"):
break
time.sleep(3)
print(report["score_pct"], "% matched")
for source in report["sources"]:
print(source["pct_of_document"], source["url"])
JavaScript の例
const API = "https://plagiarism.free/api/v1/check/";
const headers = { "Authorization": "Bearer YOUR_KEY", "Content-Type": "application/json" };
const { check_id } = await fetch(API, {
method: "POST", headers, body: JSON.stringify({ text })
}).then(r => r.json());
let report;
do {
await new Promise(res => setTimeout(res, 3000));
report = await fetch(`${API}${check_id}/`, { headers }).then(r => r.json());
} while (!["done", "failed"].includes(report.status));
価格
サイトと同じ: 1 クレジット = 1,000 単語スキャン、チェックごとに丸め、ディープチェックは2倍のコスト。クレジットパックは 365 日有効で、サブスクリプションは月ごとにリフィルされ、すべてのレベルの API を含む。別の API 階層もなく、シートごとの料金もありません。 プランとパッケージを見る
チェックは非同期的に実行されます。実際の速度制限のあるウェブ検索は 20-45 秒かかります。接続を開いているままにするのではなく、状態エンドポイントをポールします。HTTP 402はクレジットが不足していることを意味します。チェックのコストを含む返事です。
よくある質問
Two endpoints. POST /api/v1/check/ with your text returns a check_id; GET /api/v1/check/check_id/ returns status while the check runs and the full report JSON (score, matched sentences, sources) when done. Auth is a Bearer key from your account page. Code samples in curl, Python and JavaScript are below.
The same transparent unit as the site: 1 credit per 1,000 words scanned, rounded up per check. Credit packs start at $4.99 for 30 credits and are valid a full year; the $7.99/month Starter plan includes 60 credits and API access. No per-seat fees, no separate API pricing tier.
A check takes roughly 20-45 seconds because it performs real, rate-limited web retrieval and page comparison - the API is asynchronous for that reason. Submissions queue fairly; paid checks get priority. Poll the status endpoint every few seconds rather than holding the connection open.
Everything the web report shows: overall matched percentage, per-sentence match type (exact / near / none) with confidence, the matched source excerpt for each flagged sentence, and the source list with URLs and per-source match percentages. Enough to render your own report UI or gate a workflow.
Yes - that is what it is for: LMS-adjacent tools, editorial workflows, agency content pipelines. Volume is metered purely by credits, and the per-check word cap is 25000 words. If you need sustained high volume, contact us and we will provision for it rather than let queues degrade.