Cek plagiarisme API open-source dan OpenAPI 3.0
REST endpoint langsung untuk cek plagiarisme + deteksi AI. Spesifikasi OpenAPI 3.0, SDK Python dan Node, implementasi referensi Apache 2.0. Mulai dari curl pertama sampai volume berbasis webhook — mesin yang sama digunakan di noplag.com.
Dari nol ke skor kemiripan dengan satu curl.
POST teks, dapatkan interval skor balik. Tidak perlu SDK, tidak perlu kompilasi, bukan format wire proprietary.
$ curl https://engine.noplag.app/v1/checks \ -H "Authorization: Bearer $NOPLAG_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: $(uuidgen)" \ -d '{ "text": "The rain in Spain falls...", "corpora": ["web", "academic"], "ai_detection": true, "webhook_url": "https://you.example/hook" }'{ "check_id": "chk_01HX9R2Y4...", "status": "complete", "similarity_pct": 23.4, "ai_score": 0.08, "engine_commit": "v0.4.2", "sources": [ { "url": "https://en.wikipedia...", "matched_chars": 142, "similarity_pct": 100.0 } ]}Empat endpoint. Satu kontrak. Versi di URL.
Spesifikasi OpenAPI 3.0 yang sama tersedia di repositori open source dan di engine.noplag.app. SDK akan dibuat ulang dari spesifikasi ini pada setiap rilis yang diberi tag.
Bearer token. Idempotency key. Header rate-limit transparan.
Biasa saja. HTTP standar — kami ikuti supaya middleware retry yang sudah ada bisa jalan.
Bearer token. Satu header, tanpa repot tanda tangan.
Authorization: Bearer nplg_live_a82f...Idempotency-Key: 0e8f9c44-...Per-key, per-menit. Header kasih posisi tepat.
X-RateLimit-Limit: 60X-RateLimit-Remaining: 41X-RateLimit-Reset: 1747920480Retry-After: 19 (only on 429)Dua SDK. Dibuat dari spesifikasi OpenAPI 3.0 yang sama.
Python + Node rilis setiap tag engine. Bahasa lain (Go, Ruby, Java) bisa dibuat dari openapi.yaml — kontribusi komunitas terbuka.
from noplag import Noplagclient = Noplag(api_key="nplg_live_…")report = client.checks.create( text="...", corpora=["web", "academic"], ai_detection=True,)print(report.similarity_pct)import Noplag from "@noplag/sdk";const client = new Noplag({ apiKey: process.env.NOPLAG_KEY,});const report = await client.checks.create({ text: "...", corpora: ["web", "academic"], aiDetection: true,});Cek panjang akan callback. Retry tanpa bikin stres.
Empat tipe event. Body JSON. Tanda tangan HMAC-SHA256 di header.
Retry eksponensial 24 jam. Bisa replay dari dashboard.
Periksa tanda tangannya. Tolak jika gagal dihitung.
Setiap pengiriman membawa X-Noplag-Signature: t=<unix>,v1=<hex>. Hitung HMAC-SHA256 pada timestamp + body dengan secret webhook Anda dan compare berdurasi konstan.
h = hmac.new(secret, f"{t}.{body}".encode(), hashlib.sha256).hexdigest()assert hmac.compare_digest(h, v1)Kami pakai HTTP. Itu dokumen desain API-nya.
POST idempoten. Versi di URL. Error jelas langkah berikutnya. Header info posisi rate-limit. Paginasi pakai cursor, bukan offset. Timestamp UTC ISO 8601. Tidak ada HATEOAS khusus, tidak return 200 OK untuk error, dan tidak wajib OAuth untuk server-to-server. Desain API: RFC 9110 dan spesifikasi OpenAPI 3.0 — tidak perlu belajar 'cara Noplag' khusus.
Baca catatan desainPertanyaan dari engineer integrasi.
- Berapa latensi panggilan untuk dokumen biasa?
- p50 sekitar 600ms untuk pemeriksaan 500 kata terhadap korpus terindeks; p95 ~1,8 detik. Tambah ~2 detik jika Layer W (verifikasi web langsung) diaktifkan — proses ini bolak-balik ke Google + Brave. Dokumen panjang (pekerjaan diperkirakan lebih dari 8 detik) langsung mengembalikan check_id dan akan memanggil kembali lewat webhook.
- Bagaimana perhitungan tagihan di API?
- Satu panggilan ditagih per submission /v1/checks, terlepas dari ukuran dokumen hingga batas kata plan (1.500 kata Pro, 50.000 Premium, kustom Enterprise). Retry idempoten dengan Idempotency-Key + body sama dalam 24 jam tidak terhitung ulang. Baca /v1/checks/{id} dan panggilan bantu SDK gratis.
- Bisa self-host API-nya?
- Ya — github.com/NoplagLabs/noplag-engine adalah implementasi referensi Apache-2.0 yang sama dengan yang berjalan di engine.noplag.app. docker compose up akan menyediakan endpoint /v1/checks secara lokal. Layanan cloud menambahkan korpus terkelola + API key Google/Brave; untuk self-host penuh, Anda perlu menyediakan sendiri.
- Ada header retry rate-limit yang valid?
- Di 429 kami return Retry-After detik. Header X-RateLimit-* ada di tiap response — bisa throttle dari X-RateLimit-Remaining tanpa menunggu 429. Dua-duanya valid dan konsisten antar deploy.
- Seberapa sering rilis SDK?
- SDK Python dan Node dibuat ulang dari openapi.yaml di setiap tag engine. Rilis besar engine (v0.x → v0.y) langsung SDK di hari sama. Patch mingguan. Semver di dua SDK; API utama hanya berubah saat /v1 → /v2.
- Apa yang terjadi kalau korpus diganti di tengah bulan?
- Setiap cek mencatat X-Engine-Commit dan timestamp snapshot korpus. Replay cek lama terhadap korpus terbaru cukup tambah satu parameter query (?corpus_snapshot=…). Report awal tetap dengan snapshot asli — kami tak pernah ubah skor kemiripan yang sudah dikembalikan sebelumnya.
- Bagaimana pengujian tanpa menghabiskan kuota bulanan?
- Key pengujian (nplg_test_…) ke sandbox: seluruh permukaan API, tak simpan data, tak dihitung ke kuota bulanan atau rate-limit. Webhook dari sandbox juga, jadi integrasi penuh gratis.
- Cara tepat bulk check?
- Submit paralel hingga batas rate-limit — tidak ada endpoint batch (500 dokumen batch lalu gagal di dokumen ke-312 lebih buruk daripada 500 panggilan sendiri-sendiri). Pipeline volume tinggi: pasangkan API dan webhook, submit, dapat check_id langsung, lanjut submit berikutnya, tangani hasil out-of-order.
- Bisa cek terbatas hanya ke folder saya sendiri?
- Bisa — corpora: [] dengan folder_id di body hanya cocokkan ke folder privat pengguna. Gabungkan dengan corpora: ["academic"] untuk "hanya academic + folder saya". Scoping per-panggilan; tidak perlu billing tier terpisah.
- Apa efek permintaan EU residency atau setup on-prem?
- Tier Enterprise menyediakan endpoint khusus residensi EU (api.eu.noplag.com) dengan permukaan OpenAPI sama; data pribadi tetap di EEA. Atau self-host sepenuhnya di VPC Anda — engine dan kontrak /v1 sama, tak ada data keluar jaringan. (Kami sedang relaunch sebagai open-core; sertifikasi seperti SOC 2 di roadmap, belum tersedia — saat ini kami tawarkan engine dapat diaudit.)
Dapatkan API key. Mulai panggilan pertama.
Uji coba gratis 100 panggilan API. Pro $23/bulan untuk 1.000 panggilan. Implementasi referensi Apache 2.0 jika ingin data tetap di jaringan Anda.