Aller au contenu principal
Aperçu Aperçu Actualités Actualités
Partager

Publishable Keys

Appels API sécurisés côté navigateur. Sans backend propre.

Un Publishable Key (po_pk_) peut figurer dans le frontend: limité par la portée, lié à l'origine et plafonné par le budget.

Pour les artefacts Claude, Canvas ChatGPT, Grok et toute application web personnalisée.

Préfixe propre po_pk_ Par défaut lié à l'origine Révocable à tout moment

Directement depuis le navigateur

De l'AI-Canvas directement à l'appel API

Vous construisez une application PDF-to-texte dans Claude Artifacts, ChatGPT Canvas ou Grok. Sans backend, l'appel API restait impossible : CORS bloque, une clé secrète serait visible dans le code source, et une clé ouverte surchargerait votre compte. C'est exactement ce vide que comblent les clés publiable.

Fonctionne dans Claude ArtifactsChatGPT CanvasGrokToute application de navigateur

À insérer dans Claude, ChatGPT ou Grok

Un prompt qui transforme n'importe quelle AI-Canvas en une véritable démo soutenue par API — sans backend.

Toile IA Prompt
Lisez ce document API :
https://api.paperoffice.ai/latest/docs/llms-full.txt Créez une application React en un seul fichier (Artifact Claude / Canvas ChatGPT / Grok) :
L'utilisateur télécharge un PDF, l'appelle
/job/add/paperoffice_aiocr___generate directement depuis le navigateur
et affiche le texte extrait. Auth : Bearer po_pk_MY_PUBLISHABLE_KEY (demander la clé à l'utilisateur).
Utiliser processing_lane=instant pour des résultats synchrones. L'en-tête Origin est défini par le navigateur.

Choisissez un preset, créez une clé, collez-la.

Le tableau de bord fournit des préréglages pour les portées et le budget. Les origines restent vides — saisissez l'en-tête Origin depuis les outils de développement du navigateur, puis copiez la clé dans votre invite.

Créer la clé
JavaScript
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());

Premier appel

fetch depuis le navigateur, l'Origin est défini par le navigateur

L'appel est adressé à POST /latest/job/add/{pipeline} — le même point de terminaison qu'avec une clé secrète. Seuls le type de clé et l'en-tête Origin, envoyé automatiquement par le navigateur, sont nouveaux.

  • Origin provient du navigateur

    fetch définit automatiquement l'en-tête Origin. Les scripts en dehors du navigateur (cURL, Node) doivent l'envoyer explicitement — sinon la réponse sera API avec un code 403 ORIGIN_HEADER_REQUIRED.

  • Résultat en ligne

    Avec processing_lane=instant et client_wait=true, la API maintient la connexion et renvoie le résultat directement dans la réponse.

  • Codes d'erreur clairs

    402 BUDGET_EXHAUSTED, 403 DOMAIN_NOT_ALLOWED, 403 SCOPE_NOT_GRANTED, 429 RATE_LIMIT_EXCEEDED — chaque limite signale avec son propre code.

Matrice de sécurité

Six contrôles, tous appliqués côté serveur

Limité par la portée, lié à l'origine, plafonné par le budget, révocable à tout moment. Chaque contrôle est appliqué côté serveur — c'est pourquoi la clé peut figurer dans le code frontend.

  • Limité au périmètre

    Les clés n'accèdent qu'aux groupes de points de terminaison que vous autorisez explicitement : ocr:read, llm:generate, translate:text et d'autres. Les appels hors périmètre renvoient HTTP 403.

  • Lié à l'origine

    Chaque requête doit inclure un en-tête Origin correspondant à la liste autorisée de la clé (hôte exact ou joker de sous-domaine). Si cela ne correspond pas, API renvoie HTTP 403.

  • Aucune limite de minutes supplémentaire

    Il n'existe pas de limite de minutes spécifique à po_pk_. Les limites normales de taux de jetons du compte s'appliquent; la consommation est plafonnée par le budget à vie.

  • Budget plafonné

    Chaque clé dispose d'un budget à vie. Une fois épuisé, API renvoie HTTP 402 BUDGET_EXHAUSTED — la consommation s'arrête immédiatement, et non pas lors de la facturation.

  • Révocation à tout moment

    Les clés peuvent être révoquées à tout moment depuis le compte. Une clé révoquée n'est plus acceptée par API.

  • Bloqué de manière fixe

    HTTP DELETE, ainsi que la connexion au compte, la gestion des clés, OAuth, l'administration partenaire, les mutations de paiement et le crack de mot de passe restent strictement bloqués pour tout po_pk_. Les API produits documentés — y compris la suppression POST, les webhooks, la lecture de facturation et CRM — sont autorisés.

Hiérarchie des clés

Trois types de clés, responsabilités claires

Clé secrète pour le serveur, clé publiable pour le navigateur — plus un jeton utilisateur pour un accès utilisateur avec limitation de débit.

Préfixe Type Cas d'utilisation Navigateur sécurisé Portée par défaut
po_sk_ Clé secrète Serveur-à-Serveur, accès complet API Non Toutes les extrémités
po_ut_ User Token Utilisateur, Limité par niveau Non Basé sur le niveau
po_pk_ Publishable Key Navigateur / AI-Canvas (Claude, ChatGPT, Grok) Oui Liste de portée

Authentification et clés

Trois préréglages

Un clic. Une clé. Un objectif.

Chaque preset est configuré pour un cas d'utilisation spécifique — des paramètres par défaut sécurisés, des étendues sélectionnées, des budgets réalistes. Tout peut être ajusté à tout moment dans le tableau de bord.

  • DEFAULT Lecture sécurisée

    Droits par défaut sécurisés pour des démos simples et des outils internes : OCR, LLM, Traduction, Documents, Recherche.

    Étendues d'autorisation (Scopes)

    ocr:readllm:generatetranslate:textdocuments:uploaddocuments:readsearch:query
    Commencer avec ce preset
  • WIDGET Site Web public

    Pour les formulaires de contact, les widgets de chat et les boutons de réservation sur votre site web d'entreprise.

    Étendues d'autorisation (Scopes)

    knowledge:readwidget:chatwidget:bookingwidget:formswidget:contactwidget:leadwidget:fingerprint
    Commencer avec ce preset

Premier appel API

Prêt à effectuer votre premier appel depuis le navigateur ?

Créer une clé, ouvrir llms-full.txt, insérer le prompt — Votre application appelle directement API depuis Claude, ChatGPT ou Grok.

Préfixe personnalisé Sans backend Révocable à tout moment
Vidéo

Publishable Keys en action

Découvrez Publishable Keys de PaperOffice en pratique — en vidéo.

Publishable Keys en action

Questions fréquentes

Tout l'essentiel en un coup d'œil

En quoi po_pk_ diffère-t-il de po_sk_?

po_sk_ (Clé secrète) est conçu pour les intégrations serveur-à-serveur — accès complet à la API, ne jamais intégrer dans le navigateur. po_pk_ (Clé publiable) est conçu pour le code côté navigateur : portée limitée, lié à l'origine, plafonné par budget. Même API, profil de sécurité différent.

Pourquoi ne pas simplement utiliser un proxy inverse depuis son propre backend ?

C'est la voie classique — elle nécessite toutefois toujours un backend. Les AI-Artifacts (Claude, ChatGPT, Grok) sont conçus pour fonctionner sans backend propre. Les Publishable Keys le rendent possible sans révéler votre Secret Key : les limites sont appliquées côté serveur.

Cela fonctionne-t-il dans les Artifacts Claude, malgré leur bac à sable CORS ?

Oui. L'appel s'effectue directement depuis le navigateur, l'en-tête Origin est défini par le navigateur lui-même. PaperOffice ne fournit pas de liste d'autorisation fournisseur; saisissez l'origine lors de la création de la clé depuis les outils de développement.

Que se passe-t-il si ma po_pk_ devient publiquement visible ?

Les dégâts restent limités : le verrouillage d'origine bloque l'utilisation sur des domaines tiers, la limite de budget arrête la consommation, la limite de débit ralentit les accès automatisés. Révoquez la clé dans votre compte — après cela, la API ne l'acceptera plus.

Puis-je ajouter ma propre domaine à la liste d'origines autorisées ?

Oui. Lors de la création de la clé, ajoutez chaque origine à la liste d'autorisation — sous forme d'hôte exact ou de joker de sous-domaine. Le preset WIDGET est conçu exactement pour cela : enregistrez votre propre domaine et intégrez des widgets de chat, réservation ou contact sans backend.

Comment définir le budget par clé ?

Lors de la création, vous définissez une limite à vie ; les préréglages incluent chacun une valeur par défaut. Une fois la limite atteinte, API renvoie HTTP 402 BUDGET_EXHAUSTED. Vous pouvez modifier cette valeur à tout moment depuis votre compte.

Un po_pk_ nécessite-il son propre tarif ?

Non. Le Publishable Key est une couche de protection supplémentaire autour de votre compte existant: il limite les portées, les origines et le budget. Le tableau comparatif des prix indique quel plan convient à votre configuration.

Quels endpoints sont bloqués pour un po_pk_ ?

HTTP DELETE, ainsi que la connexion au compte, l'administration utilisateur, la gestion des clés, OAuth, l'administration partenaire, Stripe Checkout et le crack de mot de passe sont strictement bloqués. Les API produits documentés sont autorisés, y compris la suppression POST, les webhooks, la lecture de facturation, l'importation et CRM. La suppression de Workspace, le vidage de la corbeille et la levée du hold légal restent réservés à l'interface utilisateur uniquement (403 UI_ONLY_ENDPOINT).

Où souhaitez-vous essayer PaperOffice ?

Ordinateur et smartphone sont connectés : espace de travail sur l'ordinateur, capture sur le téléphone.

Votre période d'essai est prête

Où souhaitez-vous commencer ?

L'espace de travail complet est optimisé pour l'ordinateur. La version mobile convient pour capturer, vérifier et approuver des documents.

app.paperoffice.ai

Commencer sur l'ordinateur

Nous vous envoyons votre lien d'accès personnel par e-mail.

S’inscrire gratuitement Ouvrir l’application Application PaperOffice Le produit complet : web, bureau et mobile. Capturez, organisez, recherchez et travaillez sur des documents avec votre équipe. Compte gratuit requis Ouvrir le Playground Playground Essayez des fonctions sélectionnées immédiatement — avec une clé API de démonstration restreinte. Avec une clé API de démonstration restreinte