Publishable Keys
Bezpieczne dla przeglądarki wywołania API. Bez własnego backendu.
Publishable Key (po_pk_) może znajdować się we frontendzie: ograniczony zakresem, powiązany z originem i limitowany budżetem.
Dla artefaktów Claude, Canvas ChatGPT, Grok oraz każdej własnej aplikacji webowej.
- Własna infrastruktura UE Państwa dane pozostają w Europie.
- ISO 27001 aktywny Zaufanie certyfikowane.
- SOC 2 Typ II aktywny Międzynarodowe standardy audytu.
- Ponad 24 lata doświadczenia Sprawdzone. Stabilne. Bezpieczne dla przyszłości.
Bezpośrednio z przeglądarki
Od AI-Canvas bezpośrednio do wywołania API
Budują Państwo aplikację PDF-to-Text w Claude Artifacts, ChatGPT Canvas lub Grok. Bez backendu wywołanie API było niemożliwe: CORS blokuje, klucz tajny byłby widoczny w kodzie źródłowym, a otwarty klucz obciążałby Państwa konto. Dokładnie tę lukę zamykają klucze publiczne.
Wklejenie w Claude, ChatGPT lub Grok
Prompt, który zamienia każdą AI-Canvas w prawdziwą demonstrację opartą na API — bez backendu.
Przeczytaj ten dokument API:
https://api.paperoffice.ai/latest/docs/llms-full.txt Zbuduj jednoplikową aplikację React (Claude Artifact / ChatGPT Canvas / Grok):
Użytkownik przesyła plik PDF, aplikacja wywołuje
/job/add/paperoffice_aiocr___generate bezpośrednio z przeglądarki
i wyświetla wyekstrahowany tekst. Autoryzacja: Bearer po_pk_MY_PUBLISHABLE_KEY (poproś użytkownika o klucz).
Użyj processing_lane=instant dla wyników synchronicznych. Nagłówek Origin jest ustawiany przez przeglądarkę. Wybór presetu, utworzenie i wklejenie klucza.
Dashboard dostarcza presetów dla zakresów i budżetu. Origin pozostaje pusty — wprowadź nagłówek Origin z narzędzi deweloperskich przeglądarki, a następnie skopiuj klucz do swojego promptu.
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" Pierwsze wywołanie
fetch z przeglądarki, Origin ustawiany przez przeglądarkę
Wywołanie kierowane jest do POST /latest/job/add/{pipeline} — ten sam endpoint co przy użyciu klucza tajnego (Secret Key). Nowością są tylko typ klucza oraz nagłówek Origin, który przeglądarka wysyła automatycznie.
- Origin pochodzi od przeglądarki
fetch ustawia nagłówek Origin samodzielnie. Skrypty spoza przeglądarki (cURL, Node) muszą go wysłać wyraźnie — w przeciwnym razie API zwróci błąd 403 ORIGIN_HEADER_REQUIRED.
- Wynik inline
Dzięki ustawieniu processing_lane=instant i client_wait=true API utrzymuje połączenie i zwraca wynik bezpośrednio w odpowiedzi.
- Wyraźne kody błędów
402 BUDGET_EXHAUSTED, 403 DOMAIN_NOT_ALLOWED, 403 SCOPE_NOT_GRANTED, 429 RATE_LIMIT_EXCEEDED — każda granica zgłasza się własnym kodem.
Macierz bezpieczeństwa
Sześć kontroli, wszystkie wymuszane po stronie serwera
Ograniczony zakresem, powiązany z originem, limitowany budżetem, odwołalny w dowolnym momencie. Każda kontrola jest egzekwowana po stronie serwera — dlatego klucz może znajdować się w kodzie frontendowym.
-
Ograniczony zakres
Klucze mają dostęp tylko do tych grup endpointów, które Państwo jawnie udostępnią:
ocr:read,llm:generate,translate:texti inne. Wywołania poza zakresem zwracają HTTP 403. -
Powiązany z originem
Każde żądanie musi zawierać nagłówek Origin, który pasuje do listy dozwolonych dla klucza (dokładny host lub wildcard subdomeny). Jeśli nie pasuje, API zwraca HTTP 403.
-
Brak dodatkowego limitu minut
Nie ma osobnego limitu minut wyłącznie dla po_pk_. Obowiązują normalne limity szybkości tokenów konta; zużycie jest limitowane przez budżet lifetime.
-
Limitowany budżet
Każdy klucz posiada limit budżetu w czasie życia klucza (lifetime). Gdy zostanie on wyczerpany, API zwraca HTTP 402 BUDGET_EXHAUSTED — zużycie kończy się natychmiast, a nie dopiero przy rozliczeniu.
-
Unieważnienie w dowolnym momencie
Klucze można unieważnić w dowolnym momencie w ustawieniach konta. Unieważniony klucz nie jest już akceptowany przez API.
-
Trwale zablokowane
HTTP DELETE oraz logowanie do konta, zarządzanie kluczami, OAuth, administracja partnerów, modyfikacje płatności i łamanie haseł pozostają stale zablokowane dla każdego po_pk_. Udokumentowane produkty API — w tym usuwanie POST, webhooks, odczyt rozliczeń i CRM — są dozwolone.
Hierarchia kluczy
Trzy typy kluczy, jasne odpowiedzialności
Klucz Secret Key dla serwera, Klucz Publishable Key dla przeglądarki — plus token użytkownika (User Token) dla dostępu związanego z użytkownikiem, objętego limitami częstotliwości.
| Prefiks | Type | Przypadek użycia | Przeglądarka bezpieczna | Domyślny-Zakres |
|---|---|---|---|---|
po_sk_ | Tajny klucz | Server-to-Server, pełny dostęp API | Nie | Wszystkie endpointy |
po_ut_ | User Token | Użytkownik, limit warstwowy | Nie | Warstwowy |
po_pk_ | Publishable Key | Przeglądarka / AI-Canvas (Claude, ChatGPT, Grok) | Tak | Lista zakresów |
Trzy ustawienia wstępne
Jedno kliknięcie. Jeden klucz. Jeden cel.
Każdy preset jest skonfigurowany pod konkretny przypadek użycia — bezpieczne domyślne ustawienia, starannie dobrane zakresy (scopes), realistyczne budżety. Wszystko można w dowolnym momencie dostosować w panelu.
-
DEFAULTBezpieczne odczytywanieBezpieczne uprawnienia domyślne do prostych demonstracji i narzędzi wewnętrznych: OCR, LLM, Translate, Documents, Search.
Zakresy uprawnień (scopes)
Start z tym presetem -
AIDEMOAI Playground PolecanyDla Claude Artifacts, ChatGPT Canvas i dem Grok. Wszystko, czego Państwo potrzebują do uruchomienia demo AI na żywo.
Zakresy uprawnień (scopes)
Start z tym presetem -
WIDGETPubliczna strona internetowaDla formularzy kontaktowych, widgetów czatu i przycisków rezerwacji na własnej stronie firmowej.
Zakresy uprawnień (scopes)
Start z tym presetem
Pierwsze połączenie API
Gotowy na pierwsze wywołanie z przeglądarki?
Utworzenie klucza, otwarcie llms-full.txt, wklejenie promptu — Państwa aplikacja wywołuje API bezpośrednio z Claude, ChatGPT lub Grok.
Klucze Publikowalne w Działaniu
Proszę zobaczyć w filmie, jak PaperOffice Publishable Keys działają w praktyce.
Często zadawane pytania
Wszystko ważne na jednym miejscu
Jakie jest różnica między po_pk_ a po_sk_?
po_sk_ (Klucz tajny) jest przeznaczony do integracji serwer-serwer — pełny dostęp do API, nigdy nie należy go umieszczać w przeglądarce. po_pk_ (Klucz publiczny) został zaprojektowany dla kodu przeglądarkowego: ograniczony zakresem, powiązany z źródłem (origin), z limitem budżetu. Ten sam API, inny profil bezpieczeństwa.
Dlaczego nie użyć po prostu reverse proxy z własnego backendu?
To jest klasyczna ścieżka — wymaga ona jednak nadal backendu. AI-Artifacts (Claude, ChatGPT, Grok) są zaprojektowane do działania bez własnego backendu. Klucze publiczne (Publishable Keys) umożliwiają to, nie ujawniając Państwa klucza tajnego (Secret Key): granice są egzekwowane po stronie serwera.
Czy to działa w Artifactach Claude, pomimo ich piaskownicy CORS?
Tak. Wywołanie odbywa się bezpośrednio z przeglądarki, nagłówek Origin jest ustawiany automatycznie przez przeglądarkę. PaperOffice nie dostarcza listy dozwolonych dostawców; origin wprowadzasz podczas tworzenia klucza z narzędzi deweloperskich.
Co się stanie, jeśli mój po_pk_ stanie się publicznie widoczny?
Szkoda pozostanie ograniczona: Blokada źródła (Origin Lock) uniemożliwia użycie na obcych domenach, limit budżetu zatrzymuje zużycie, limit szybkości spowalnia automatyczne dostęp. Unieważ klucz w swoim koncie — API przestanie go akceptować.
Czy mogę dodać własną domenę jako dozwolone źródło?
Tak. Przy tworzeniu klucza dodają Państwo każde źródło do listy dozwolonych — jako dokładny host lub jako wildcard dla subdomeny. Preset WIDGET został stworzony właśnie pod to: proszę zarejestrować swoją domenę i osadzić widżety czatu, rezerwacji lub kontaktu bez backendu.
Jak ustawić budżet na klucz?
Podczas tworzenia proszę wybrać limit Lifetime; presety zawierają własne ustawienia domyślne. Po osiągnięciu limitu API zwraca HTTP 402 BUDGET_EXHAUSTED. Wartość można w dowolnym momencie dostosować w ustawieniach konta.
Czy klucz po_pk_ wymaga własnego taryfu?
Nie. Publishable Key to dodatkowa warstwa ochronna wokół Państwa istniejącego konta: ogranicza zakresy, origin i budżet. Który plan pasuje do Państwa konfiguracji, pokazuje przegląd cenowy.
Które endpointy są zablokowane dla po_pk_?
HTTP DELETE oraz logowanie do konta, administracja użytkownikami, zarządzanie kluczami, OAuth, administracja partnerów, Stripe Checkout i łamanie haseł są stale zablokowane. Udokumentowane produkty API są dozwolone, w tym usuwanie POST, webhooks, odczyt rozliczeń, import i CRM. Usuwanie Workspace, opróżnianie kosza na śmieci i zwalnianie Legal Hold pozostają tylko w interfejsie użytkownika (403 UI_ONLY_ENDPOINT).
Eksploatacja i zaufanie
Co zespoły enterprise sprawdzają przed pierwszym połączeniem
Umowy, bezpieczeństwo, wsparcie i limity – wszystko w jednym miejscu.
- Bezpieczeństwo i zgodność ISO 27001, SOC 2 Type II, własna infrastruktura UE.
- SLA 99,9% Dostępność w każdym kalendarzowym miesiącu, gwarantowana umownie.
- Przetwarzanie danych w imieniu klienta (DPA) Umowa o przetwarzaniu danych zgodna z RODO.
- Lista podwykonawców Wszyscy podwykonawcy, jawno wymienieni.
- Wsparcie techniczne Bezpośredni kontakt z zespołem wsparcia, poprzez zgłoszenie.
- Limity szybkości i nagłówki Dokumentowane minimalne wartości na token, nagłówki limitu szybkości w każdej odpowiedzi.
- Ceny i kredyty Przejrzyste ceny kredytów za wywołanie.
Następny przystanek
Jak dalej
Zalecany następny krok w lejku deweloperskim i dwa odpowiednie odgałęzienia.