Publishable Keys
Webbläsarsäkra API-anrop. Utan eget backend.
En Publishable Key (po_pk_) får stå i frontend: scope-begränsad, origin-bunden och budget-kapad.
För Claude-artefakter, ChatGPT Canvas, Grok och varje egen webbapp.
- Egen EU-infrastruktur Dina data stannar i Europa.
- ISO 27001 aktiv Säkerhet certifierad.
- SOC 2 Typ II aktiv Internationella revisionsstandarder.
- 24+ års erfarenhet Beprövad. Stabil. Framtidssäker.
Direkt från webbläsaren
Från AI-canvas direkt till API-anropet
Du bygger i Claude Artifacts, ChatGPT Canvas eller Grok en PDF-till-text-app. Utan backend har API-anropet hittills uteblivit: CORS blockerar, en hemlig nyckel skulle synas i källkoden, och en öppen nyckel belastar ditt konto. Just denna lucka fylls med Publishable Keys.
Klistra in i Claude, ChatGPT eller Grok
En prompt som förvandlar varje AI-canvas till en riktig demo med stöd av API — utan backend.
Läs denna API-dokument:
https://api.paperoffice.ai/latest/docs/llms-full.txt Bygg en single-file React-app (Claude Artifact / ChatGPT Canvas / Grok):
Användaren laddar upp en PDF, appen anropar
/job/add/paperoffice_aiocr___generate direkt från webbläsaren
och visar den extraherade texten. Autentisering: Bearer po_pk_MY_PUBLISHABLE_KEY (be användaren om nyckeln).
Använd processing_lane=instant för synkrona resultat. Origin-huvudet sätts av webbläsaren. Välj ett preset, skapa en nyckel, klistra in.
Dashboarden tillhandahåller presets för scopes och budget. Origins lämnas tomma — ange Origin-huvudet från webbläsarens utvecklarverktyg, kopiera sedan nyckeln till 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örsta anropet
fetch från webbläsaren, Origin sätts av webbläsaren
Anropet skickas till POST /latest/job/add/{pipeline} — samma slutpunkt som med en hemlig nyckel. Det nya är endast nyckeltypen och Origin-huvudet som webbläsaren automatiskt skickar.
- Origin kommer från webbläsaren
fetch sätter Origin-huvudet automatiskt. Skript utanför webbläsaren (cURL, Node) måste skicka det explicit — annars returnerar API 403 ORIGIN_HEADER_REQUIRED.
- Resultat inline
Med processing_lane=instant och client_wait=true håller API anslutningen öppen och levererar resultatet direkt i svaret.
- Tydliga felkoder
402 BUDGET_EXHAUSTED, 403 DOMAIN_NOT_ALLOWED, 403 SCOPE_NOT_GRANTED, 429 RATE_LIMIT_EXCEEDED — varje gräns rapporterar med en egen kod.
Säkerhetsmatris
Sex kontroller, alla server-side tvingade
Scope-begränsad, origin-bunden, budget-kapad, när som helst återkallelig. Varje kontroll genomförs server-side — därför får nyckeln stå i frontend-koden.
-
Scope-begränsad
Nycklar når endast de endpoint-grupper du explicit godkänner:
ocr:read,llm:generate,translate:textoch fler. Anrop utanför scope ger HTTP 403. -
Origin-bunden
Varje begäran måste innehålla en Origin-header som matchar nyckelns tillåtna lista (exakt värd eller subdomän-wildcard). Matchar den inte returnerar API HTTP 403.
-
Ingen extra minutgräns
Det finns ingen egen minutbegränsning endast för po_pk_. Kontots normala token-rate-begränsningar gäller; förbrukningen kapas av lifetime-budgeten.
-
Budgetbegränsning
Varje nyckel har en livstidsbudget. När den är slut returnerar API HTTP 402 BUDGET_EXHAUSTED — förbrukningen upphör där, inte först vid fakturering.
-
Återkallelse när som helst
Nycklar kan återkallas när som helst i kontot. En återkallad nyckel accepteras inte längre av API.
-
Permanent blockerad
HTTP DELETE samt kontoinloggning, nyckelhantering, OAuth, partner-administrering, betalningsmutationer och lösenordsknäckning förblir permanent blockerade för varje po_pk_. Dokumenterade produkt-APIs — inklusive POST-radering, webhooks, billing-läsning och CRM — är tillåtna.
Nyckelhierarki
Tre nyckeltyper, tydliga ansvarsområden
Secret Key för servern, Publishable Key för webbläsaren — plus en användartoken för användarrelaterad åtkomst med ratebegränsning.
| Prefix | Type | Användningsfall | Webbläsarsäker | Standardomfång |
|---|---|---|---|---|
po_sk_ | Hemlig nyckel | Server-till-server, fullt API-åtkomst | Nej | Alla slutpunkter |
po_ut_ | User Token | Användarspecifik, Tier-begränsad | Nej | Tier-baserad |
po_pk_ | Publishable Key | Webbläsare / AI-Canvas (Claude, ChatGPT, Grok) | Yes | Scope-lista |
Tre förinställningar
Ett klick. En nyckel. Ett syfte.
Varje förinställning är anpassad för ett specifikt användningsfall — säkra standardvärden, kuraterade omfattningar, realistiska budgetar. Allt kan justeras när som helst i dashboarden.
-
DEFAULTSäker läsningSäkra standardbehörigheter för enkla demonstrationer och interna verktyg: OCR, LLM, Översättning, Dokument, Sök.
Behörighetsområden (scopes)
Starta med denna förinställning -
AIDEMOAI-lekplats RekommenderadFör Claude-artefakter, ChatGPT Canvas och Grok-demonstrationer. Allt du behöver för att köra AI-demonstrationer i realtid.
Behörighetsområden (scopes)
Starta med denna förinställning -
WIDGETOffentlig webbplatsFör kontaktformulär, chat-widgetar och bokningsknappar på företagets egen webbplats.
Behörighetsområden (scopes)
Starta med denna förinställning
Första API-anropet
Redo för det första anropet från webbläsaren?
Skapa nyckel, öppna llms-full.txt, klistra in prompt — din app anropar API direkt från Claude, ChatGPT eller Grok.
Publishbara nycklar i Aktion
Se hur PaperOffice Publishable Keys fungerar i praktiken — i videon.
Vanliga frågor
Allt viktigt på en översikt
Hur skiljer sig po_pk_ från po_sk_?
po_sk_ (Secret Key) är avsedd för server-till-server-integration — fullständig åtkomst till API, bör aldrig integreras i webbläsaren. po_pk_ (Publishable Key) är byggd för webbläsarkod: scope-begränsad, origin-bunden, budgetkapad. Samma API, annat säkerhetsprofil.
Varför inte helt enkelt använda en reverse-proxy från det egna backendet?
Det är den klassiska vägen — men den förutsätter fortfarande ett backend. AI-artefakter (Claude, ChatGPT, Grok) är utformade för drift utan eget backend. Publishable Keys gör detta möjligt utan att avslöja din Secret Key: gränserna tillämpas server-side.
Fungerar det i Claude-artefakter, trots deras CORS-sandlåda?
Ja. Anropet sker direkt från webbläsaren, webbläsaren sätter Origin-huvudet själv. PaperOffice tillhandahåller ingen vendor-allow-list; du anger Origin vid skapandet av nyckeln från utvecklarverktygen.
Vad händer om min po_pk_ blir offentligt synlig?
Skadan begränsas: Origin-låsen blockerar användning på främmande domäner, budgetgränsen stoppar förbrukningen, rate-limitet bromsar automatiska åtkomster. Återkalla nyckeln i kontot — därefter accepterar API den inte längre.
Kan jag lägga till min egen domän som tillåten origin?
Ja. Vid skapandet av nyckeln lägger du till varje origin på tillåtlistan — som exakt värd eller som subdomän-wildcard. WIDGET-presetet är byggt exakt för detta: registrera din egen domän och integrera chatt-, boknings- eller kontaktwidgets utan backend.
Hur ställer jag in budgeten per nyckel?
Vid skapande väljer du en Lifetime-begränsning; förinställningarna innehåller respektive standardvärde. När begränsningen är uppnådd returnerar API HTTP 402 BUDGET_EXHAUSTED. Du kan justera värdet i kontot när som helst.
Behöver en po_pk_ sin egen tariff?
Nej. Publishable Key är ett extra skyddslager runt ditt befintliga konto: det begränsar scopes, origins och budget. Vilken plan som passar din konfiguration visas i prisöversikten.
Vilka endpoints är blockerade för po_pk_?
HTTP DELETE samt kontoinloggning, användar-administrering, nyckelhantering, OAuth, partner-administrering, Stripe-checkout och lösenordsknäckning är permanent blockerade. Dokumenterade produkt-APIs är tillåtna, inklusive POST-radering, webhooks, billing-läsning, import och CRM. Workspace-radering, tömning av papperskorgen och Legal-Hold-befrielse förblir endast i UI (403 UI_ONLY_ENDPOINT).
Drift och förtroende
Vad enterprise-team kontrollerar före det första samtalet
Kontrakt, säkerhet, support och gränser, allt länkat på ett ställe.
- Säkerhet och efterlevnad ISO 27001, SOC 2 Typ II, egen EU-infrastruktur.
- SLA 99,9 % Tillgänglighet per kalendermånad, avtalsenligt garanterad.
- Uppdragsgivarbehandling (DPA) GDPR-kontrakt för uppgiftsbehandling.
- Lista över underleverantörer Alla underleverantörer, transparent listade.
- Teknisk support Direkt väg till supportteamet, med ärendesystem.
- Tak för frekvens och rubriker Dokumenterade minimivärden per token, RateLimit-rubrik i varje svar.
- Priser och Credits Transparenta Credit-priser per anrop.
Nästa station
Så här går det vidare
Det rekommenderade nästa steget i developer-funneln och två passande avdelningar.