Plagiaat checker API voor REST en SDK's
Plug-and-play REST-endpoint voor plagiaat + AI-detectie. OpenAPI 3.0-specificatie, Python- en Node-SDKs, Apache 2.0-referentie-implementatie. Vanaf de eerste curl tot aan volumes via webhooks — dezelfde engine als noplag.com.
Van nul naar een gelijkenisscore met één curl.
POST tekst, ontvang gescoorde intervallen terug. Geen SDK nodig, geen compileerstap, geen eigen wireformat.
$ 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 } ]}Vier endpoints. Eén contract. Versies in de URL.
Dezelfde OpenAPI 3.0-specificatie staat zowel in de open-source repository als op engine.noplag.app. SDK’s worden bij elke getagde release opnieuw gegenereerd op basis hiervan.
Bearer-tokens. Idempotency keys. Duidelijke rate-limit headers.
Niets bijzonders. Standaard HTTP-principes — wij volgen ze zodat uw bestaande retry-middleware werkt.
Bearer-tokens. Eén header, geen handmatige ondertekening.
Authorization: Bearer nplg_live_a82f...Idempotency-Key: 0e8f9c44-...Per sleutel, per minuut. Headers laten u precies zien waar u bent.
X-RateLimit-Limit: 60X-RateLimit-Remaining: 41X-RateLimit-Reset: 1747920480Retry-After: 19 (only on 429)Twee SDKs. Gegeneerd uit dezelfde OpenAPI 3.0-specificatie.
Python + Node worden telkens bij een engine-release opnieuw uitgegeven. Andere talen (Go, Ruby, Java) genereren vanuit openapi.yaml — bijdragen welkom.
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,});Langlopende checks bellen u terug. Met retries die helder blijven.
Vier evenementtypes. JSON-body. HMAC-SHA256-handtekening in de header.
Exponentiële retries tot 24 uur. Opnieuw af te vuren vanuit het dashboard.
Controleer de handtekening. Weiger alles wat niet klopt.
Elke levering bevat X-Noplag-Signature: t=<unix>,v1=<hex>. Bereken HMAC-SHA256 over timestamp + body met uw webhook-geheim, vergelijk constant-time.
h = hmac.new(secret, f"{t}.{body}".encode(), hashlib.sha256).hexdigest()assert hmac.compare_digest(h, v1)Wij volgen HTTP. Dat is het complete API-document.
Idempotent op POST. Versies in de URL. Fouten uitleggen wat te doen. Headers informeren u precies over de rate-limit. Cursor-paginering, geen offset. Tijdstempels in UTC ISO 8601. Geen eigen HATEOAS-dialect, geen 200 OK bij fouten, geen OAuth-implementatie voor server-to-server calls. Het API-ontwerp is RFC 9110 + OpenAPI 3.0 — geen aparte 'Noplag Manier'.
Lees de ontwerpnotitiesDe vragen van onze integratie-engineers.
- Wat is de call-latentie bij een doorsnee document?
- p50 rond 600 ms voor een controle van 500 woorden tegen het geïndexeerde corpus; p95 ongeveer 1,8 s. Tel ongeveer 2 s extra als Layer W (live webverificatie) is ingeschakeld — dat maakt een round-trip via Google + Brave. Lange documenten (verwachte verwerkingstijd boven 8 s) krijgen direct een check_id en roepen terug via webhook.
- Hoe telt het prijsmodel bij de API?
- Eén betaalde call per /v1/checks, ongeacht documentgrootte tot het plan-plafond (1.500 woorden Pro, 50.000 Premium, custom Enterprise). Idempotente retries met dezelfde Idempotency-Key + body binnen 24u tellen niet dubbel. /v1/checks/{id}-reads en SDK-extra-calls zijn gratis.
- Kan ik de API zelf hosten?
- Ja — github.com/NoplagLabs/noplag-engine is dezelfde Apache-2.0 referentie-implementatie als op engine.noplag.app draait. Met docker compose up krijg je lokaal een /v1/checks-endpoint. De cloudlaag voegt het beheerde corpus en de Google/Brave API-sleutels toe; voor volledig self-host gebruik je je eigen sleutels.
- Is er een rate-limit-retry header die ik kan vertrouwen?
- Bij 429 krijgt u Retry-After in seconden. X-RateLimit-* headers zitten in elke response — u kunt proactief throttelen op X-RateLimit-Remaining zonder 429 af te wachten. Beide zijn accuraat en stabiel over deploys.
- Wat is het SDK-releasepatroon?
- Python- en Node-SDKs regenereren automatisch van openapi.yaml bij elk engine-tag. Grote releases (v0.x → v0.y) krijgen dezelfde dag een nieuwe SDK. Patches volgen in dezelfde week. Beide houden semver aan; onderliggende API breekt pas bij /v1 → /v2.
- Wat als het corpus halverwege de maand verandert?
- Elke check krijgt een X-Engine-Commit en een snapshot-tijdstempel. Herhalen op het laatste corpus kan via een queryparameter (?corpus_snapshot=…). Het originele rapport blijft bij zijn snapshot — we passen scores nooit stilzwijgend aan.
- Hoe test ik zonder mijn maandelijkse limiet te verbruiken?
- Testsleutels (nplg_test_…) werken in een sandbox: volledige API, geen persistente opslag, nooit meetellen voor limieten of rate-limits. Webhooks draaien ook op de sandbox, integratietesten zijn dus gratis.
- Wat is de juiste manier voor bulk-checks?
- Voer parallel uit tot uw rate-limit-plafond — er is bewust geen batch-endpoint (een batch van 500 waarbij nummer 312 faalt, is minder wenselijk dan 500 losse calls). Bij hoog volume combineer API met webhooks: indienen, direct check_id terug, doe volgende 200, resultaten asynchroon afhandelen.
- Kan ik een check beperken tot mijn eigen mappen?
- Ja — corpora: [] met folder_id in de body matcht alleen op privé mappen. Combineer met corpora: ["academic"] voor “alleen academic + mijn mappen”. Per call aan te geven; geen extra billing tier.
- Wat wijzigt bij EU-residentie of on-prem setup?
- Enterprise-levering regelt een aparte EU-endpoint (api.eu.noplag.com) met hetzelfde OpenAPI-aanzicht, zodat persoonsgegevens in de EER blijven. Of zelf hosten van de referentie in eigen VPC — zelfde engine, zelfde /v1, niets verlaat het netwerk. (We schakelen over naar open-core; formele attesten als SOC 2 staan op de planning, zijn nog niet rond — de engine zelf is nu het aanbod.)
Vraag een API-key aan. Doe uw eerste call.
Gratis proef bevat 100 API-calls. Pro €23/mnd voor 1.000. Apache 2.0-referentie voor lokaal draaien.