Publishable Keys
Llamadas API seguras para el navegador. Sin backend propio.
Un Publishable Key (po_pk_) puede estar en el frontend: limitado por alcance, vinculado al origen y acotado por presupuesto.
Para artefactos Claude, Canvas ChatGPT, Grok y cualquier aplicación web propia.
- Infraestructura propia de la UE Sus datos permanecen en Europa.
- ISO 27001 activo Seguridad certificada.
- SOC 2 Tipo II activo Estándares de auditoría internacionales.
- +24 años de experiencia Comprobado. Estable. Seguro para el futuro.
Directamente desde el navegador
Desde la AI-Canvas directamente a la llamada API
Están construyendo una aplicación de PDF a texto en Claude Artifacts, ChatGPT Canvas o Grok. Sin un backend, la llamada a la API ha fallado hasta ahora: CORS bloquea la solicitud, una clave secreta sería visible en el código fuente y una clave abierta afectaría su cuenta. Las claves publicables cierran exactamente esta brecha.
Insertar en Claude, ChatGPT o Grok
Un prompt que transforma cualquier AI-Canvas en una demo real respaldada por API, sin backend.
Lee este documento API:
https://api.paperoffice.ai/latest/docs/llms-full.txt Crea una aplicación React de un solo archivo (Claude Artifact / ChatGPT Canvas / Grok):
El usuario sube un PDF, la app llama
a /job/add/paperoffice_aiocr___generate directamente desde el navegador
y muestra el texto extraído. Autenticación: Bearer po_pk_MY_PUBLISHABLE_KEY (solicitar al usuario la clave).
Usar processing_lane=instant para resultados sincrónicos. El encabezado Origin lo establece el navegador. Elija un preset, cree una clave, péguela.
El panel de control proporciona ajustes preestablecidos para alcances y presupuestos. Los orígenes permanecen vacíos; ingrese el encabezado Origin desde las herramientas de desarrollo del navegador y luego copie la clave en su 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" Primera llamada
fetch desde el navegador, el navegador establece el Origin
La llamada se dirige a POST /latest/job/add/{pipeline} — el mismo punto final que con una clave secreta. Lo nuevo es solo el tipo de clave y el encabezado Origin, que el navegador envía automáticamente.
- El origen proviene del navegador
fetch establece automáticamente el encabezado Origin. Los scripts fuera del navegador (cURL, Node) deben enviarlo explícitamente; de lo contrario, API responderá con 403 ORIGIN_HEADER_REQUIRED.
- Resultado en línea
Con processing_lane=instant y client_wait=true, API mantiene la conexión y entrega el resultado directamente en la respuesta.
- Códigos de error claros
402 BUDGET_EXHAUSTED, 403 DOMAIN_NOT_ALLOWED, 403 SCOPE_NOT_GRANTED, 429 RATE_LIMIT_EXCEEDED — cada límite notifica con su propio código.
Matriz de seguridad
Seis controles, todos impuestos en el servidor
Limitado por alcance, vinculado al origen, acotado por presupuesto, revocable en cualquier momento. Cada control se aplica en el lado del servidor; por eso la clave puede estar en el código del frontend.
-
Limitado por alcance
Las claves solo acceden a los grupos de endpoints que usted libera explícitamente:
ocr:read,llm:generate,translate:texty otros. Las llamadas fuera del alcance devuelven HTTP 403. -
Vinculado al origen
Cada solicitud debe incluir un encabezado Origin que coincida con la lista permitida de la clave (host exacto o comodín de subdominio). Si no coincide, se devuelve HTTP 403 con el código API.
-
Sin límite de minutos adicionales
No existe un límite de minutos exclusivo solo para po_pk_. Se aplican los límites normales de tasa de tokens de la cuenta; el consumo está acotado por el presupuesto vitalicio.
-
Presupuesto limitado
Cada clave tiene un presupuesto de por vida. Una vez agotado, API devuelve HTTP 402 BUDGET_EXHAUSTED; el consumo se detiene allí, no solo al facturar.
-
Revocación en cualquier momento
Las claves pueden revocarse en cualquier momento desde la cuenta. Una clave revocada ya no será aceptada por API.
-
Bloqueo permanente
HTTP DELETE, así como inicio de sesión de cuenta, administración de claves, OAuth, administración de socios, mutación de pagos y crackeo de contraseñas permanecen bloqueados permanentemente para cada po_pk_. Las API documentadas del producto —incluyendo eliminación POST, webhooks, lectura de facturación y CRM— están permitidas.
Jerarquía de claves
Tres tipos de claves, responsabilidades claras
Clave secreta para el servidor, clave publicable para el navegador; además, un token de usuario para acceso relacionado con el usuario y sujeto a límites de tasa.
| Prefijo | Tipo | Caso de uso | Seguro para el navegador | Ámbito predeterminado |
|---|---|---|---|---|
po_sk_ | Clave secreta | Servidor-a-servidor, acceso completo a API | No | Todos los endpoints |
po_ut_ | User Token | Limitado por nivel, específico del usuario | No | Stufenbasiert |
po_pk_ | Publishable Key | Navegador / AI-Canvas (Claude, ChatGPT, Grok) | Sí | Lista de ámbitos |
Drei Voreinstellungen
Un clic. Una clave. Un propósito.
Cada preset está configurado para un caso de uso específico: valores predeterminados seguros, ámbitos curados y presupuestos realistas. Todo ajustable en cualquier momento desde el panel de control.
-
DEFAULTLectura seguraPermisos estándar seguros para demos simples y herramientas internas: OCR, LLM, Traducción, Documentos, Búsqueda.
Ámbitos de permiso (Scopes)
Comenzar con este preset -
AIDEMOJardín de pruebas de IA RecomendadoPara Claude Artifacts, ChatGPT Canvas y demos de Grok. Todo lo que necesita para activar demos de IA en vivo.
Ámbitos de permiso (Scopes)
Comenzar con este preset -
WIDGETSitio web públicoPara formularios de contacto, widgets de chat y botones de reserva en el sitio web corporativo.
Ámbitos de permiso (Scopes)
Comenzar con este preset
Primera llamada API
¿Listo para la primera llamada desde el navegador?
Crear clave, abrir llms-full.txt, insertar prompt — su aplicación llama directamente a API desde Claude, ChatGPT o Grok.
Publishable Keys en acción
Vea cómo funciona Publishable Keys de PaperOffice en la práctica — en vídeo.
Preguntas frecuentes
Todo lo importante a primera vista
¿En qué se diferencia po_pk_ de po_sk_?
po_sk_ (Clave secreta) está destinada a la integración de servidor a servidor: acceso completo a API, nunca debe integrarse en el navegador. po_pk_ (Clave publicable) está diseñada para código del navegador: alcance limitado, vinculada al origen y con límite presupuestario. Mismo API, diferente perfil de seguridad.
¿Por qué no usar simplemente un proxy inverso desde el propio backend?
Este es el camino clásico, pero sigue requiriendo un backend. Los AI-Artifacts (Claude, ChatGPT, Grok) están diseñados para operar sin un backend propio. Las claves publicables hacen esto posible sin revelar su clave secreta: los límites se aplican en el lado del servidor.
¿Funciona esto en los artefactos de Claude, a pesar de su sandbox CORS?
Sí. La llamada se realiza directamente desde el navegador; el navegador establece automáticamente el encabezado Origin. PaperOffice no proporciona una lista de proveedores permitidos; ingrese el origen al crear la clave desde las herramientas de desarrollo.
¿Qué ocurre si mi po_pk_ se vuelve públicamente visible?
El daño se mantiene contenido: el bloqueo de origen impide su uso en dominios ajenos, el límite presupuestario detiene el consumo y el límite de tasa ralentiza los accesos automatizados. Revogue la clave en su cuenta; después, API ya no la aceptará.
¿Puedo añadir mi propio dominio como origen permitido?
Sí. Al crear la clave, puede añadir cualquier origen a la lista de permitidos: como host exacto o como comodín de subdominio. El preset WIDGET está diseñado precisamente para esto: registre su propio dominio e incruste widgets de chat, reservas o contacto sin backend.
¿Cómo configuro el presupuesto por clave?
Al crear, seleccione un límite de por vida; las plantillas incluyen una configuración predeterminada. Una vez alcanzado el límite, API devuelve HTTP 402 BUDGET_EXHAUSTED. Puede ajustar este valor en su cuenta en cualquier momento.
¿Necesita un po_pk_ su propio plan tarifario?
No. El Publishable Key es una capa de protección adicional para su cuenta existente: limita alcances, orígenes y presupuesto. La tabla de precios muestra qué plan se adapta a su configuración.
¿Qué endpoints están bloqueados para po_pk_?
HTTP DELETE, así como inicio de sesión de cuenta, administración de usuarios, administración de claves, OAuth, administración de socios, Stripe Checkout y crackeo de contraseñas están bloqueados permanentemente. Están permitidas las API documentadas del producto, incluida la eliminación POST, webhooks, lectura de facturación, importación y CRM. La eliminación de Workspace, el vaciado del papelera y la liberación de retención legal permanecen solo en la interfaz (403 UI_ONLY_ENDPOINT).
Operaciones y confianza
Lo que los equipos empresariales verifican antes de la primera llamada
Contratos, seguridad, soporte y límites, todos enlazados en un solo lugar.
- Seguridad y Cumplimiento ISO 27001, SOC 2 Tipo II, infraestructura propia en la UE.
- SLA del 99,9 % Disponibilidad por mes calendario, garantizada contractualmente.
- Procesamiento de datos por encargo (DPA) Contrato conforme al RGPD para el procesamiento de datos por encargo.
- Lista de subprocesadores Todos los subcontratistas, listados de forma transparente.
- Soporte técnico Vía directa al equipo de soporte, con ticket.
- Límites de velocidad y encabezados Valores mínimos documentados por token, encabezado de límite de velocidad en cada respuesta.
- Precios y créditos Precios transparentes de créditos por llamada.
Siguiente parada
Así es como continúa
El siguiente paso recomendado en el embudo de desarrolladores y dos ramificaciones adecuadas.