Kontrola plagiátů API pro vývojáře
REST endpoint pro detekci plagiátů a AI. OpenAPI 3.0, Python i Node SDK, referenční implementace Apache 2.0. Od prvního curlu po webhookovou integraci — stejný engine jako na noplag.com.
Od nuly k podobnostnímu skóre v jednom curlu.
Pošlete POST s textem, dostanete zpět intervaly se skóre. SDK není potřeba, žádný compile krok, žádný proprietární formát.
$ 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 } ]}Čtyři endpointy. Jedna smlouva. Verza v URL.
Stejná OpenAPI 3.0 specifikace je dostupná v open source repozitáři i na engine.noplag.app. SDK se z ní generují při každém označeném vydání.
Bearer tokeny. Idempotenční klíče. Upřímné rate-limit hlavičky.
Nic speciálního. Standardní HTTP postupy — dodržujeme je, takže vaše retry middleware funguje bez úprav.
Bearer tokeny. Jedna hlavička, žádný podpisový tanec.
Authorization: Bearer nplg_live_a82f...Idempotency-Key: 0e8f9c44-...Na klíč a za minutu. Hlavičky ukazují přesně, kde jste.
X-RateLimit-Limit: 60X-RateLimit-Remaining: 41X-RateLimit-Reset: 1747920480Retry-After: 19 (only on 429)Dvě SDK. Generovaná ze stejné OpenAPI 3.0 specifikace.
Python a Node SDK vychází při každém tagu enginu. Další jazyky (Go, Ruby, Java) lze generovat z openapi.yaml — pull requesty od komunity vítány.
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,});Dlouhé kontroly zavolají zpátky. Retry, které vás nezblázní.
Čtyři typy událostí. JSON tělo. HMAC-SHA256 podpis v hlavičce.
Exponenciální retry 24 hodin. Zázn. lze přehrát z dashboardu.
Ověřte podpis. Odhazujte vše, co nesedí.
Každá doručenka má X-Noplag-Signature: t=<unix>,v1=<hex>. Spočtěte HMAC-SHA256 přes timestamp + tělo s vaším webhook tajemstvím, porovnávejte v konstantním čase.
h = hmac.new(secret, f"{t}.{body}".encode(), hashlib.sha256).hexdigest()assert hmac.compare_digest(h, v1)Držíme se HTTP. To je celé API zadání.
POST je idempotentní. Verze v URL. Chybové zprávy říkají, co dělat dál. Hlavičky ukazují přesně, kde jste v limitu. Paginace přes kurzor, ne offset. Timestamps v UTC ISO 8601. Nemáme vlastní HATEOAS, nevracíme 200 OK u chyb, a nevyžadujeme OAuth pro server-server hovory. Dokumentace API je RFC 9110 a OpenAPI 3.0 — není žádná zvláštní „Noplag cesta“, kterou byste museli chápat.
Přečtěte si poznámky k návrhuSkutečné dotazy našich integračních inženýrů.
- Jaká je latence běžného volání?
- p50 přibližně 600 ms pro kontrolu 500 slov proti indexovanému korpusu; p95 asi 1,8 s. Při zapnuté funkci Layer W (ověření na webu v reálném čase) připočtěte asi 2 s — probíhá dotazování přes Google + Brave. U dlouhých dokumentů (očekávaná doba zpracování nad 8 s) se vrací check_id ihned a výsledek je zaslán zpět přes webhook.
- Jak se účtuje API provoz?
- Jedna zpoplatněná volání /v1/checks za každé podání, bez ohledu na délku dokumentu do limitu (1500 slov Pro, 50 000 Premium, Enterprise vlastní). Retry se stejným Idempotency-Key a tělem do 24h se nepočítají znovu. /v1/checks/{id} a vedlejší SDK volání jsou zdarma.
- Lze API spustit samostatně?
- Ano — github.com/NoplagLabs/noplag-engine je stejná referenční implementace pod licencí Apache-2.0, která běží na engine.noplag.app. Pomocí docker compose up získáte lokální endpoint /v1/checks. Cloudová verze přidává spravovaný korpus a API klíče pro Google/Brave; pro plně self-hostované řešení si klíče zajistěte sami.
- Vrací se rate-limit retry hlavička, které lze věřit?
- Na 429 vždy vracíme Retry-After v sekundách. Hlavičky X-RateLimit-* jsou na každé odpovědi — lze je použít pro předběžné omezení (throttling), nečekat až na 429. Obojí je přesné, nezávisí na deployi.
- Jak často vychází SDK?
- Python i Node SDK se regenerují z openapi.yaml při každém tagu enginu. Hlavní vydání enginu (v0.x → v0.y) dostane SDK týž den. Patche do týdne. SDK drží semver; API se láme jen na /v1 → /v2.
- Co když se změní korpus v průběhu měsíce?
- Každá kontrola má X-Engine-Commit a čas snapshotu korpusu. Zopakování původní kontroly na novém korpusu je jeden query parametr (?corpus_snapshot=…). Originál reportu se nemění — nikdy tiše neupravujeme již vydané skóre.
- Jak testovat, aniž bych vyčerpal měsíční limit?
- Testovací klíče (nplg_test_…) jdou do sandboxu: celé API, nic se neukládá, nepočítá se do limitu. Webhooky střílí i ze sandboxu, takže end-to-end testy nic nestojí.
- Jak správně udělat hromadné kontroly?
- Posílejte paralelně podle svého rate-limit stropu — dávkový endpoint schválně neexistuje (500 dokumentů v dávce, selže 312., horší než 500 samostatných volání). Pro velké dávky použijte webhooks: odeslat, dostat check_id hned, rozběhnout další vlny, výsledek přijde asynchronně.
- Lze omezit kontrolu jen na mé složky?
- Ano — corpora: [] a folder_id v těle žádosti porovnávají jen privátní složky uživatele. Můžete kombinovat s corpora: ["academic"] pro „jen akademické + mé složky“. Nastavuje se po volání — není potřeba zvláštní tarif.
- Co když potřebuji EU lokalizaci nebo on-premise řešení?
- Enterprise tarif přidá dedikovaný endpoint s EU lokalizací (api.eu.noplag.com), stejné OpenAPI, data zůstanou v EHP. Nebo referenční implementaci hostujte jen ve vlastní síti — stejný engine, stejná /v1 smlouva, nic neodchází ven. (Firma se relaunchuje jako open-core; SOC 2 teprve chystáme — audituje se engine, ne compliance standardy.)
Získejte API klíč. Udělejte první volání.
Zkušebních 100 volání zdarma. Pro tarif 23 USD/měsíc za 1 000. Referenční Apache 2.0 implementace, pokud si chcete API provozovat sami.