Publishable Keys
Nettlesersikre API-kall. Uten eget backend.
En Publishable Key (po_pk_) kan stå i frontend: scope-begrenset, opprinnelsesbundet og budsjettbegrenset.
For Claude-artefakter, ChatGPT Canvas, Grok og enhver egen webapp.
- Egen EU-infrastruktur Din data forblir i Europa.
- ISO 27001 aktiv Sikkerhetssertifisert.
- SOC 2 Type II aktiv Internasjonale revisjonsstandarder.
- 24+ års erfaring Prøvd og sann. Stabil. Fremtidssikker.
Direkte fra nettleseren
Fra AI-Canvas direkte til API-kall
Du bygger en PDF-til-tekst-app i Claude, ChatGPT Canvas eller Grok. Uten backend har API-kallet hittil uteblitt: CORS blokkerer, et hemmelig nøkkel ville stått synlig i kildekoden, og en åpen nøkkel belaster kontoen din. Nettopp denne gapet fyller Publishable Keys.
Lim inn i Claude, ChatGPT eller Grok
En prompt som forvandler enhver AI-Canvas til en ekte demo støttet av API — uten backend.
Les denne API-dokumentet:
https://api.paperoffice.ai/latest/docs/llms-full.txt Bygg en enkeltfil React-app (Claude Artifact / ChatGPT Canvas / Grok):
Bruker laster opp en PDF, appen kaller
/job/add/paperoffice_aiocr___generate direkte fra nettleseren
og viser den uttrukne teksten. Autentisering: Bearer po_pk_MY_PUBLISHABLE_KEY (be brukeren om nøkkelen).
Bruk processing_lane=instant for synkrone resultater. Origin-headeren settes av nettleseren. Velg et preset, lag en nøkkel, lim inn.
Dashbordet leverer presets for scopes og budsjett. Opprinnelser forblir tomme — skriv inn opprinnelseshodet fra nettleserens utviklerverktøy, kopier deretter nøkkelen til prompten din.
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 kall
fetch fra nettleseren, Origin settes av nettleseren
Anropet går til POST /latest/job/add/{pipeline} — samme endepunkt som med en hemmelig nøkkel. Det nye er kun nøkkeltypen og Origin-headeren som nettleseren automatisk sender.
- Origin kommer fra nettleseren
fetch setter Origin-headeren automatisk. Skript utenfor nettleseren (cURL, Node) må sende den eksplisitt — ellers returnerer API 403 ORIGIN_HEADER_REQUIRED.
- Resultat inline
Med processing_lane=instant og client_wait=true holder API tilkoblingen åpen og leverer resultatet direkte i svaret.
- Klare feilkoder
402 BUDGET_EXHAUSTED, 403 DOMAIN_NOT_ALLOWED, 403 SCOPE_NOT_GRANTED, 429 RATE_LIMIT_EXCEEDED — hver grense melder seg med sin egen kode.
Sikkerhetsmatrise
Seks kontroller, alle tvunget gjennom på serveren
Scope-begrenset, opprinnelsesbundet, budsjettbegrenset, når som helst tilbakekallelig. Hver kontroll håndheves på serversiden — derfor kan nøkkelen stå i frontend-koden.
-
Scope-begrenset
Nøkler når kun de endpoint-gruppene du eksplisitt gir tilgang til:
ocr:read,llm:generate,translate:textog flere. Forespørsler utenfor scope returnerer HTTP 403. -
Opprinnelsesbundet
Hver forespørsel må inneholde en Origin-header som matcher nøklens tillatelsesliste (eksakt vert eller subdomene-wildcard). Hvis den ikke matcher, returnerer API HTTP 403.
-
Ingen ekstra minuttgrense
Det finnes ingen egen minuttgrense kun for po_pk_. Kontots normale token-rate-grenser gjelder; forbruket begrenses av livstidsbudsjettet.
-
Budsjettbegrensning
Hver nøkkel har en livstidsbudsjett. Når det er brukt opp, returnerer API HTTP 402 BUDGET_EXHAUSTED — forbruket stopper der, ikke først ved fakturering.
-
Tilbakekalling når som helst
Nøkler kan til enhver tid tilbakekalles i kontoen. En tilbakekalt nøkkel aksepteres ikke lenger av API.
-
Fast sperret
HTTP DELETE samt kontoinnlogging, nøkkeladministrasjon, OAuth, partner-administrasjon, betalingsmutasjoner og passordknusing forblir permanent sperret for alle po_pk_. Dokumenterte produkt-APIs — inkludert POST-sletting, webhooks, faktureringslesing og CRM — er tillatt.
Nøkkelhierarki
Tre nøkkeltyper, klare ansvar
Secret Key for serveren, Publishable Key for nettleseren — pluss et brukertoken for brukerrelatert, ratebegrenset tilgang.
| Prefiks | Type | Brukstilfelle | Nettleser-sikker | Standard-omfang |
|---|---|---|---|---|
po_sk_ | Hemmelig nøkkel | Server-til-server, full API-tilgang | Nei | Alle endepunkter |
po_ut_ | User Token | Brukerspesifikk, Tier-begrenset | Nei | Tier-basert |
po_pk_ | Publishable Key | Nettleser / AI-Canvas (Claude, ChatGPT, Grok) | Yes | Scope-liste |
Tre forhåndsinnstillinger
Et klikk. En nøkkel. Ett formål.
Hvert preset er tilpasset en spesifikk brukssak — sikre standardverdier, kuraterte omfang, realistiske budsjetter. Alt kan tilpasses når som helst i dashbordet.
-
DEFAULTSikker lesingSikre standardrettigheter for enkle demoer og interne verktøy: OCR, LLM, oversettelse, dokumenter, søk.
Tilgangsrom (scopes)
Start med dette presetet -
AIDEMOAI-lekeplass AnbefaltFor Claude Artifacts, ChatGPT Canvas og Grok-demoer. Alt du trenger for å kjøre AI-demoer i sanntid.
Tilgangsrom (scopes)
Start med dette presetet -
WIDGETOffentlig nettsideFor kontaktskjemaer, chat-widget og bestillingsknapper på din egen bedriftsnettside.
Tilgangsrom (scopes)
Start med dette presetet
Første API-kall
Klar for det første kall fra nettleseren?
Opprett nøkkel, åpne llms-full.txt, lim inn prompt — appen din kaller API direkte fra Claude, ChatGPT eller Grok.
Publishable Keys i aksjon
Se hvordan PaperOffice Publishable Keys fungerer i praksis — i videoen.
Ofte stilte spørsmål
Alt viktig på ett sted
Hva er forskjellen mellom po_pk_ og po_sk_?
po_sk_ (Secret Key) er ment for server-til-server-integrasjon — full tilgang til API, aldri inkludert i nettleserkode. po_pk_ (Publishable Key) er bygget for nettleserkode: scope-begrenset, opprinnelsesbundet, budsjettbegrenset. Samme API, annet sikkerhetsprofil.
Hvorfor ikke bare bruke en reverse-proxy fra eget backend?
Dette er den klassiske veien — men den forutsetter fortsatt et backend. AI-artefakter (Claude, ChatGPT, Grok) er designet for drift uten eget backend. Publishable Keys gjør dette mulig uten å utsette din Secret Key: Grensene håndteres på serveren.
Fungerer det i Claude-artefakter, til tross for deres CORS-sandbox?
Ja. Oppkallet skjer direkte fra nettleseren, og nettleseren setter selv opprinnelseshodet. PaperOffice leverer ingen vendor-tillatelsesliste; du skriver inn opprinnelsen når du oppretter nøkkelen fra utviklerverktøyene.
Hva skjer hvis min po_pk_ blir offentlig synlig?
Skaden holdes begrenset: Origin-låsen blokkerer bruk på fremmede domener, budsjettgrensen stopper forbruket, og rate-grensen demper automatiserte tilgangsforsøk. Tilbakekall nøkkelen i kontoen — deretter aksepterer API den ikke lenger.
Kan jeg legge til min egen domene som en tillatt opprinnelse?
Ja. Ved oppretting av nøkkelen legger du til hver opprinnelse i tillatelseslisten — som vert eller som subdomene-wildcard. WIDGET-presetet er bygget nettopp for dette: Registrer din egen domene og integrer chat-, booking- eller kontaktwidgets uten backend.
Hvordan setter jeg budsjett per nøkkel?
Når du oppretter, velger du et livstidsbegrensning; forhåndsinnstillingene har hver sin standardverdi. Når begrensningen er nådd, returnerer API HTTP 402 BUDGET_EXHAUSTED. Du kan tilpasse verdien i kontoen når som helst.
Trenger en po_pk_ sin egen prisplan?
Nei. Publishable Key er et ekstra beskyttelseslag rundt din eksisterende konto: Den begrenser scopes, opprinnelser og budsjett. Hvilken plan som passer til ditt oppsett, vises i prisoversikten.
Hvilke endepunkter er låst for po_pk_?
HTTP DELETE samt kontoinnlogging, brukeradministrasjon, nøkkeladministrasjon, OAuth, partner-administrasjon, Stripe-kasse og passordknusing er permanent sperret. Dokumenterte produkt-APIs er tillatt, inkludert POST-sletting, webhooks, faktureringslesing, import og CRM. Workspace-sletting, tømming av papirkurv og Legal-Hold-frigivelse forblir kun i UI (403 UI_ONLY_ENDPOINT).
Drift og tillit
Hva enterprise-team sjekker før det første møtet
Kontrakter, sikkerhet, støtte og grenser, alle lenket på ett sted.
- Sikkerhet og etterlevelse ISO 27001, SOC 2 Type II, eget EU-infrastruktur.
- SLA 99,9 % Tilgjengelighet per kalendermåned, kontraktsmessig garantert.
- Oppdragsgiverbehandling (DPA) GDPR-kontrakt for oppdragsgiverbehandling.
- Underleverandørliste Alle underleverandører, gjennomsiktig oppført.
- Teknisk støtte Direkte vei til supportteamet, med sak.
- Rateregler og overskrifter Dokumenterte minimumverdier per token, RateLimit-overskrift i hvert svar.
- Priser og Credits Transparente Credit-priser per kall.
Neste stasjon
Slik fortsetter du
Det anbefalte neste steget i developer-funnelen og to passende avveininger.