Plagiatkontroll API och AI-textdetektor
REST-endpoint för plagiat och AI-detektion. OpenAPI 3.0-spec, Python- och Node-SDK, Apache 2.0-referens. Samma motor som noplag.com. Från första curl till stora volymer med webhooks.
Från noll till en likhetspoäng med en curl.
POST:a text, få tillbaka poängintervall. Ingen SDK krävs, inget kompilationssteg, inget eget 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 } ]}Fyra endpoints. Ett kontrakt. Versionshantering i URL:en.
Samma OpenAPI 3.0-specifikation finns både i det open source-baserade repo:t och på engine.noplag.app. SDK:er återskapas från den vid varje taggad release.
Bearer-tokens. Idempotensnycklar. Ärliga rate-limit headers.
Inget exotiskt. Standard-HTTP — vi följer det, så er retry-middleware fungerar direkt.
Bearer-tokens. En header, ingen signeringsrutin.
Authorization: Bearer nplg_live_a82f...Idempotency-Key: 0e8f9c44-...Per nyckel, per minut. Headers visar exakt var ni är.
X-RateLimit-Limit: 60X-RateLimit-Remaining: 41X-RateLimit-Reset: 1747920480Retry-After: 19 (only on 429)Två SDK. Genereras från samma OpenAPI 3.0-spec.
Python och Node levereras vid varje taggad release. Andra språk (Go, Ruby, Java) kan genereras från openapi.yaml — community-PR välkomna.
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,});Långa kontroller ringer upp er. Med retry som inte stör logiken.
Fyra eventtyper. JSON-body. HMAC-SHA256-signatur i header.
Exponentiella retries i 24 timmar. Kan spelas om från dashboard.
Kontrollera signaturen. Avvisa allt som inte stämmer.
Varje webhook har X-Noplag-Signature: t=<unix>,v1=<hex>. Beräkna HMAC-SHA256 på timestamp + body med er webhook-nyckel och konstanttidsjämför.
h = hmac.new(secret, f"{t}.{body}".encode(), hashlib.sha256).hexdigest()assert hmac.compare_digest(h, v1)Vi följer HTTP. Det är hela API-dokumentet.
Idempotenta POST. Versionsnumret i URL. Felmeddelanden som säger vad som krävs härnäst. Headers visar tydligt vilken rate-limit som gäller. Paginering per cursor, inte offset. Tider i UTC ISO 8601. Ingen egen HATEOAS, vi returnerar inte 200 OK på fel, OAuth krävs inte för server-till-server. API-dokumentet är RFC 9110 och OpenAPI 3.0-spec — det finns inget särskilt “Noplag-sätt”.
Läs designanteckningarnaFrågor som våra integrationsingenjörer faktiskt ställer.
- Vad är svarstiden för ett normalt dokument?
- p50 cirka 600 ms för en kontroll av 500 ord mot det indexerade korpuset; p95 cirka 1,8 s. Lägg till cirka 2 s när Layer W (verifiering mot webben i realtid) är aktiverad — då sker en rundresa via Google + Brave. Långa dokument (förväntad bearbetningstid över 8 s) returnerar omedelbart ett check_id och återkopplar via webhook.
- Hur mäts och debiteras API-anrop?
- En debiterad anrop per POST /v1/checks, oavsett dokumentlängd upp till planens tak (1 500 ord Pro, 50 000 Premium, anpassat Enterprise). Idempotenta omförsök (samma idempotensnyckel + body inom 24 h) dubblar inte debiteringen. /v1/checks/{id}-hämtningar och SDK-helpanrop är gratis.
- Kan API:et köras självhostat?
- Ja — github.com/NoplagLabs/noplag-engine är samma Apache-2.0-referensimplementation som körs på engine.noplag.app. Med docker compose up får du ett lokalt /v1/checks-endpoint. Molnversionen lägger till det hanterade korpuset samt API-nycklar för Google/Brave; ta med egna nycklar för fullständig self-hosting.
- Finns en rate-limit-header som går att lita på?
- Vid 429 returneras Retry-After i sekunder. X-RateLimit-*-headers finns på varje svar — ni kan throttla mot X-RateLimit-Remaining i stället för att vänta på 429. Båda är korrekta och stabila över deploys.
- Hur ofta släpps nya SDK-versioner?
- Python och Node-SDK auto-genereras från openapi.yaml vid varje engine-tag. Huvudreleaser (v0.x → v0.y) ger SDK samma dag. Patchar släpps samma vecka. Båda följer semver; API bryts bara vid /v1 → /v2.
- Vad händer om corpus ändras mitt i månaden?
- Varje kontroll stämplar X-Engine-Commit och corpus-tidsstämpel. Kör om tidigare kontroll mot nytt corpus med en query-param (?corpus_snapshot=…). Ursprunglig rapport sparas alltid med sin snapshot — vi ändrar aldrig retroaktivt poäng.
- Hur testar jag utan att bränna månadsgränsen?
- Testnycklar (nplg_test_…) jobbar mot sandbox: hela API-ytan, ingen lagring, inga anrop räknas mot månads- eller ratelimit. Webhooks skjuts från sandbox också, så end-to-end-test är gratis.
- Vad är rätt sätt att batcha många kontroller?
- Kör parallellt upp till rate-limit. Det finns ingen batch-endpoint — 500 i batch som faller på nr 312 är sämre än 500 självständiga anrop. Vid stora jobb: använd webhooks för att hantera svar. Lämna in, få check_id direkt, gör nästa 200 submissioner, hantera utdata asynkront.
- Kan jag begränsa en kontroll till bara mina mappar?
- Ja — corpora: [] med folder_id i requesten matchar bara mot egen mapp. Kombinera med corpora: ["academic"] för ”bara akademiskt + egna mappar”. Ingen särskild prisskillnad.
- Vad gäller för EU-residens eller on-prem?
- Enterprise ger ett dedikerat EU-endpoint (api.eu.noplag.com) med identisk OpenAPI-yta — all data stannar inom EES. Eller självhosta hela referensen i eget VPC — samma motor, samma endpoint, inget lämnar nätet. (Vi relanserar open-core; SOC 2 och liknande är planerade men inte redo — motorn är det vi erbjuder).
Hämta en API-nyckel. Kör ert första anrop.
Gratis test ger 100 API-anrop. Pro-nivå 23 USD/månad för 1 000. Apache 2.0-referens för lokalt bruk inom egen miljö.