Publishable Keys
Browser-sikre API-opkald. Uden eget backend.
En Publishable Key (po_pk_) må stå i frontend: scope-begrænset, origin-bundet og budget-kaplet.
Til Claude-artefakter, ChatGPT Canvas, Grok og enhver egen web-app.
- Eget EU-infrastruktur Dine data forbliver i Europa.
- ISO 27001 aktiv Sikkerhed certificeret.
- SOC 2 Type II aktiv Internationale auditstandarder.
- 24+ års erfaring Prøvet. Stabil. Fremtidssikret.
Direkte fra browseren
Fra AI-Canvas direkte til API-opkald
Du bygger en PDF-til-tekst-app i Claude Artifacts, ChatGPT Canvas eller Grok. Uden backend har API-opkaldet hidtil manglet: CORS blokerer, et hemmeligt nøgle ville stå synligt i kildekoden, og en åben nøgle belaster din konto. Netop denne kløft fylder Publishable Keys.
Indsæt i Claude, ChatGPT eller Grok
Et prompt, der omdanner enhver AI-Canvas til en ægte demo understøttet af API — uden backend.
Læs denne API doc:
https://api.paperoffice.ai/latest/docs/llms-full.txt Byg en single-file React app (Claude Artifact / ChatGPT Canvas / Grok):
Bruger uploader en PDF, appen kalder
/job/add/paperoffice_aiocr___generate direkte fra browseren
og viser den udtrukne tekst. Auth: Bearer po_pk_MY_PUBLISHABLE_KEY (bed brugeren om nøglen).
Brug processing_lane=instant for synkrone resultater. Origin header sættes af browseren. Vælg et preset, opret en key, indsæt den.
Dashboardet leverer presets til scopes og budget. Origins forbliver tomme — indtast Origin-headeren fra browserens udviklerværktøjer, kopér derefter nøglen til din prompt.
const form = new FormData();form.append("file_1", fileInput.files[0]);form.append("processing_lane", "instant");form.append("client_wait", "true");const response = await fetch("https://api.paperoffice.ai/latest/job/add/paperoffice_aiocr___generate", { method: "POST", headers: { Authorization: "Bearer po_pk_YOUR_PUBLISHABLE_KEY" }, body: form,});console.log(await response.json()); curl -X POST "https://api.paperoffice.ai/latest/job/add/paperoffice_aiocr___generate" \ -H "Authorization: Bearer po_pk_YOUR_PUBLISHABLE_KEY" \ -H "Origin: https://app.example.com" \ -F "[email protected]" \ -F "processing_lane=instant" \ -F "client_wait=true" Første opkald
fetch fra browseren, Origin sættes af browseren
Anropet går til POST /latest/job/add/{pipeline} — samme endpoint som med en Secret Key. Det nye er kun key-typen og Origin-headeren, som browseren automatisk sender med.
- Origin kommer fra browseren
fetch sætter Origin-headeren selv. Scripts uden for browseren (cURL, Node) skal sende den eksplicit — ellers svarer API med 403 ORIGIN_HEADER_REQUIRED.
- Resultat inline
Med processing_lane=instant og client_wait=true holder API forbindelsen åben og leverer resultatet direkte i svaret.
- Klare fejlkode
402 BUDGET_EXHAUSTED, 403 DOMAIN_NOT_ALLOWED, 403 SCOPE_NOT_GRANTED, 429 RATE_LIMIT_EXCEEDED — hver grænse giver besked med sin egen kode.
Sikkerhedsmatrix
Seks kontroller, alle tvunget server-side
Scope-begrænset, origin-bundet, budget-kaplet, når som helst tilbagekaldelig. Hver kontrol håndhæves server-side — derfor må nøglen stå i frontend-koden.
-
Scope-begrænset
Nøgler når kun de endpoint-grupper, du eksplicit giver adgang til:
ocr:read,llm:generate,translate:textog flere. Anrop uden for scope returnerer HTTP 403. -
Origin-bundet
Hver anmodning skal indeholde en Origin-header, der matcher nøgleens tilladelsesliste (nøjagtig vært eller subdomain-wildcard). Hvis den ikke matcher, returnerer API HTTP 403.
-
Ingen ekstra minutgrænse
Der er ingen separat minutbegrænsning kun for po_pk_. De normale token-rate-begrænsninger for kontoen gælder; forbruget kaples af lifetime-budgettet.
-
Budget-begrænset
Hver nøgle har et livstidsbudget. Når det er opbrugt, returnerer API HTTP 402 BUDGET_EXHAUSTED — forbruget stopper her, ikke først ved faktureringen.
-
Tilbagekaldelse til enhver tid
Nøgler kan tilbagetrækkes i kontoen til enhver tid. En tilbagetrukket nøgle accepteres ikke længere af API.
-
Permanent låst
HTTP DELETE samt kontologin, nøglehåndtering, OAuth, partner-administrering, betalingsmutation og adgangskodeknækning forbliver permanent blokeret for enhver po_pk_. Dokumenterede produkt-API'er — inklusive POST-sletning, webhooks, billing-læsning og CRM — er tilladt.
Nøgle-hierarki
Tre nøgletyper, klare ansvarsområder
Secret Key til serveren, Publishable Key til browseren — plus et user token til brugerrelateret adgang med ratebegrænsning.
| Præfiks | Type | Anvendelsestilfælde | Browser-sikker | Standard-område |
|---|---|---|---|---|
po_sk_ | Hemmelig nøgle | Server-til-server, fuld API-adgang | Nej | Alle endpoints |
po_ut_ | User Token | Brugerdefineret, Tier-begrænset | Nej | Tier-baseret |
po_pk_ | Publishable Key | Browser / AI-canvas (Claude, ChatGPT, Grok) | Yes | Scope-liste |
Tre forudindstillinger
Et klik. En nøgle. Et formål.
Hvert preset er indstillet til en konkret use-case — sikre standardindstillinger, kuraterede scopes, realistiske budgetter. Alt kan tilpasses når som helst i dashboardet.
-
DEFAULTSikker læsningSikre standardrettigheder til simple demos og interne værktøjer: OCR, LLM, Translate, Documents, Search.
Berechtigelsesområder (scopes)
Brug af dette preset -
AIDEMOKI-legesandkasse AnbefaletTil Claude Artifacts, ChatGPT Canvas og Grok-demos. Alt hvad du behøver for at køre AI-demos live.
Berechtigelsesområder (scopes)
Brug af dette preset -
WIDGETOffentlig hjemmesideTil kontaktformularer, chat-widgets og booking-knapper på din egen virksomhedshjemmeside.
Berechtigelsesområder (scopes)
Brug af dette preset
Første API-opkald
Klar til det første opkald fra browseren?
Opret nøgle, åbn llms-full.txt, indsæt prompt — din app kalder API direkte fra Claude, ChatGPT eller Grok.
Publishable keys i aktion
Se, hvordan PaperOffice publishable keys fungerer i praksis — i videoen.
Ofte stillede spørgsmål
Alt vigtigt på et overblik
Hvad er forskellen på po_pk_ og po_sk_?
po_sk_ (Secret Key) er beregnet til server-til-server-integration — fuld adgang til API, må aldrig inkluderes i browseren. po_pk_ (Publishable Key) er bygget til browser-kode: scope-begrænset, origin-bundet, budget-begrænset. Samme API, andet sikkerhedsprofil.
Hvorfor ikke blot bruge en reverse-proxy fra eget backend?
Det er den klassiske vej — men den kræver stadig et backend. AI-artefakter (Claude, ChatGPT, Grok) er designet til drift uden eget backend. Publishable Keys gør dette muligt, uden at du afslører din Secret Key: Grænserne håndhæves server-side.
Fungerer det i Claude artefakter, på trods af deres CORS-sandbox?
Ja. Kaldet sker direkte fra browseren, browseren sætter selv Origin-headeren. PaperOffice leverer ingen vendor-allow-liste; du indtaster Origin ved oprettelse af nøglen fra udviklerværktøjerne.
Hvad sker der, hvis min po_pk_ bliver offentligt synlig?
Skaden begrænses: Origin-låsen blokerer brug på fremmede domæner, budgetgrænsen stopper forbruget, rate-limited bremser automatiserede adgangsforsøg. Tilbagekald nøglen i kontoen — derefter accepterer API den ikke længere.
Kan jeg tilføje min egen domæne som tilladt origin?
Ja. Ved oprettelse af nøglen tilføjer du enhver origin til allow-listen — som eksakt vært eller som subdomain-wildcard. WIDGET-presetet er bygget netop hertil: Registrer din egen domæne og indlejre chat-, booking- eller kontakt-widgets uden backend.
Hvordan sætter jeg budgettet pr. nøgle?
Ved oprettelse vælger du en Lifetime-grænse; forindstillingerne medbringer hver især et standardværdi. Når grænsen er nået, returnerer API HTTP 402 BUDGET_EXHAUSTED. Du kan tilpasse værdien på kontoen til enhver tid.
Har en po_pk_ brug for sin egen tarif?
Nej. Publishable Key er et ekstra beskyttelseslag omkring din eksisterende konto: Det begrænser scopes, origins og budget. Hvilken plan der passer til dit setup, vises i prisoversigten.
Hvilke endpoints er låst for po_pk_?
HTTP DELETE samt kontologin, bruger-administrering, nøglehåndtering, OAuth, partner-administrering, Stripe-checkout og adgangskodeknækning er permanent blokeret. Dokumenterede produkt-API'er er tilladt, herunder POST-sletning, webhooks, billing-læsning, import og CRM. Workspace sletning, tømming af papirkurv og Legal-Hold-frigivelse forbliver kun i UI (403 UI_ONLY_ENDPOINT).
Drift og tillid
Hvad enterprise-teams tjekker før det første opkald
Kontrakter, sikkerhed, support og grænser, alle linket ét sted.
- Sikkerhed og overholdelse ISO 27001, SOC 2 Type II, eget EU-infrastruktur.
- SLA på 99,9 % Tilgængelighed pr. kalendermåned, kontraktmæssigt garanteret.
- Behandling på vegne af anden (DPA) GDPR-overensstemmende kontrakt om behandling på vegne af anden.
- Liste over underleverandører Alle underleverandører, gennemsigtigt opstillet.
- Teknisk support Direkte vej til supportteamet, med ticket.
- Rate-begrænsninger og headers Dokumenterede minimumsværdier pr. token, RateLimit-header i hvert svar.
- Priser og Credits Gennemsigtige Credit-priser pr. anmodning.
Næste station
Sådan går det videre
Det anbefalede næste skridt i developer-funnelen og to passende sideveje.