본문으로 이동
개요 개요 뉴스 뉴스
공유

Publishable Keys

브라우저 안전한 API 호출. 자체 백엔드 불필요.

프론트엔드에 Publishable Key (po_pk_)를 배치할 수 있습니다: 스코프 제한, 오리진 바인딩, 예산 캡.

Claude 아티팩트, ChatGPT 캔버스, Grok 및 모든 자체 웹 앱용.

자체 접두사 po_pk_ 기본적으로 Origin에 바인딩됨 언제든지 취소 가능
브라우저 안전한 API 호출. 자체 백엔드 불필요.

브라우저에서 직접

AI 캔버스에서 API 호출로 바로 이동

Claude, ChatGPT 또는 Grok에서 PDF-to-Text 앱을 구축하고 있습니다. 백엔드가 없으면 API 호출이 이루어지지 않았습니다: CORS가 차단되고, 시크릿 키가 소스 코드에 노출되며, 공개 키는 계정에 부하를 줍니다. 바로 이 격차를 Publishable Keys가 메꿉니다.

지원 플랫폼 Claude ArtifactsChatGPT CanvasGrok모든 브라우저 앱

Claude, ChatGPT 또는 Grok에 삽입

모든 AI Canvas를 백엔드 없이 실제 API 기반 데모로 변환하는 프롬프트입니다.

AI-캔버스 프롬프트
이 API 문서를 읽으세요:
https://api.paperoffice.ai/latest/docs/llms-full.txt 단일 파일 React 앱(Claude 아티팩트 / ChatGPT 캔버스 / Grok)을 구축하세요:
사용자가 PDF를 업로드하면 앱이 브라우저에서 직접
/job/add/paperoffice_aiocr___generate를 호출하고
추출된 텍스트를 표시합니다. 인증: Bearer po_pk_MY_PUBLISHABLE_KEY (사용자에게 키 요청).
동기식 결과를 위해 processing_lane=instant을 사용하세요. Origin 헤더는 브라우저에 의해 설정됩니다.

프리셋을 선택하고 키를 생성하여 붙여넣으세요.

대시보드는 스코프와 예산을 위한 프리셋을 제공합니다. 오리는 비워두세요 — 브라우저 개발자 도구에서 오리진 헤더를 입력한 후 키를 프롬프트에 복사하세요.

키 생성
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());

첫 번째 호출

브라우저에서 fetch, Origin는 브라우저가 설정

요청이 POST /latest/job/add/{pipeline}로 전송됩니다 — 시크릿 키를 사용할 때와 동일한 엔드포인트입니다. 새로 추가된 것은 키 유형과 브라우저가 자동으로 함께 보내는 Origin 헤더뿐입니다.

  • Origin은 브라우저에서 제공됨

    fetch는 Origin 헤더를 자동으로 설정합니다. 브라우저 외부의 스크립트(cURL, Node 등)는 명시적으로 이 헤더를 전송해야 합니다 — 그렇지 않으면 API이 403 ORIGIN_HEADER_REQUIRED로 응답합니다.

  • 인라인 결과

    processing_lane=instant 및 client_wait=true를 사용하면 API이 연결을 유지하고 결과를 응답 본문에 직접 반환합니다.

  • 명확한 오류 코드

    402 BUDGET_EXHAUSTED, 403 DOMAIN_NOT_ALLOWED, 403 SCOPE_NOT_GRANTED, 429 RATE_LIMIT_EXCEEDED — 각 제한은 고유한 코드로 보고됩니다.

보안 매트릭스

6가지 통제, 모두 서버 측에서 강제 적용

스코프 제한, 오리진 바인딩, 예산 캡, 언제든지 취소 가능. 모든 제어는 서버 측에서 강제됩니다 — 따라서 키가 프론트엔드 코드에 있을 수 있습니다.

  • 범위 제한

    키는 명시적으로 허용한 엔드포인트 그룹에만 접근할 수 있습니다: ocr:read, llm:generate, translate:text 등. 범위를 벗어난 호출은 HTTP 403을 반환합니다.

  • 원본 바인딩

    각 요청은 키의 허용 목록과 일치하는 Origin 헤더를 포함해야 합니다(정확한 호스트 또는 서브도메인 와일드카드). 일치하지 않으면 API HTTP 403을 반환합니다.

  • 추가 분 제한 없음

    po_pk_ 전용 고유한 분당 제한은 없습니다. 계정의 일반 토큰 속도 제한이 적용되며, 소비는 평생 예산으로 캡됩니다.

  • 예산 제한

    각 키에는 수명 주기 예산이 할당됩니다. 예산이 소진되면 API은 HTTP 402 BUDGET_EXHAUSTED를 반환하며, 소비는 청구 시점이 아닌 즉시 중단됩니다.

  • 언제든지 취소 가능

    키는 계정에서 언제든지 취소할 수 있습니다. 취소된 키는 API에서 더 이상 허용되지 않습니다.

  • 고정 차단

    HTTP DELETE 및 계정 로그인, 키 관리, OAuth, 파트너 관리자, 결제 변경 및 비밀번호 크래킹은 모든 po_pk_에 대해 영구적으로 차단됩니다. 문서화된 제품-API(POST 삭제, 웹훅, 청구 읽기 및 CRM 포함)은 허용됩니다.

키 계층 구조

세 가지 키 유형, 명확한 책임

서버용 Secret Key, 브라우저용 Publishable Key — 그리고 사용자 관련 접근 및 속도 제한이 적용된 User Token 추가.

접두사 유형 사용 사례 브라우저 안전 기본 범위
po_sk_ 비밀 키 서버 간, 전체 API 접근 권한 아니요 모든 엔드포인트
po_ut_ User Token 사용자 범위, 티어 제한 아니요 티어 기반
po_pk_ Publishable Key 브라우저 / AI-Canvas (Claude, ChatGPT, Grok) 예 범위 목록

인증 및 키

세 가지 프리셋

한 번의 클릭. 하나의 키. 하나의 목적.

각 프리셋은 구체적인 사용 사례에 맞게 구성되어 있습니다 — 안전한 기본값, 선별된 스코프, 현실적인 예산. 모든 설정은 대시보드에서 언제든지 조정 가능합니다.

  • DEFAULT 안전한 읽기 전용

    간단한 데모 및 내부 도구용 안전한 기본 권한: OCR, LLM, 번역, 문서, 검색.

    권한 범위 (Scopes)

    ocr:readllm:generatetranslate:textdocuments:uploaddocuments:readsearch:query
    이 프리셋으로 시작하기
  • WIDGET 공개 웹사이트

    자사 웹사이트의 연락처 양식, 채팅 위젯 및 예약 버튼용.

    권한 범위 (Scopes)

    knowledge:readwidget:chatwidget:bookingwidget:formswidget:contactwidget:leadwidget:fingerprint
    이 프리셋으로 시작하기

첫 번째 API 호출

브라우저에서 첫 번째 호출을 준비하셨나요?

키 생성, llms-full.txt 열기, 프롬프트 삽입 — 앱이 API을 Claude, ChatGPT 또는 Grok에서 직접 호출합니다.

자체 접두사 백엔드 불필요 언제든지 취소 가능

자주 묻는 질문

모든 중요 사항 한눈에 보기

po_pk_와 po_sk_의 차이점은 무엇입니까?

po_sk_(Secret Key)는 서버 간 통합을 위해 설계되었으며 API에 대한 전체 접근 권한을 제공합니다. 브라우저에서는 절대 사용해서는 안 됩니다. po_pk_(Publishable Key)는 브라우저 코드를 위해 구축되었습니다: 범위 제한, 원본 바인딩, 예산 제한이 적용됩니다. 동일한 API이지만 보안 프로필이 다릅니다.

왜 자체 백엔드에서 리버스 프록시를 사용하지 않습니까?

이것은 고전적인 방법이지만 여전히 백엔드가 필요합니다. AI 아티팩트(Claude, ChatGPT, Grok)는 자체 백엔드 없이 운영되도록 설계되었습니다. Publishable Keys를 사용하면 Secret Key를 노출하지 않고도 이를 가능하게 합니다: 경계는 서버 측에서 강제됩니다.

Claude 아티팩트의 CORS 샌드박스에도 불구하고 작동합니까?

예. 호출은 브라우저에서 직접 실행되며, 오리진 헤더는 브라우저가 자동으로 설정합니다. PaperOffice는 벤더 허용 목록을 제공하지 않습니다 — 키 생성 시 개발자 도구에서 오리진을 입력하세요.

po_pk_가 공개적으로 노출되면 어떻게 됩니까?

피해는 제한됩니다: Origin 잠금은 타사 도메인에서의 사용을 차단하고, 예산 제한은 소비를 종료하며, 속도 제한은 자동화된 접근을 늦춥니다. 계정에서 키를 무효화하십시오 — 이후 API은 해당 키를 더 이상 수락하지 않습니다.

자신의 도메인을 허용된 원본으로 추가할 수 있습니까?

네. 키 생성 시 허용 목록에 각 원본을 추가합니다 — 정확한 호스트 또는 하위 도메인 와일드카드로 사용할 수 있습니다. WIDGET 프리셋은 이를 위해 설계되었습니다: 자신의 도메인을 등록하고 백엔드 없이 채팅, 예약 또는 연락처 위젯을 임베딩하십시오.

키별로 예산을 어떻게 설정합니까?

생성 시 라이프타임 리밋을 선택합니다. 프리셋에는 각각 기본값이 포함되어 있습니다. 리밋에 도달하면 API에서 HTTP 402 BUDGET_EXHAUSTED를 반환합니다. 계정 내에서 언제든지 값을 조정할 수 있습니다.

po_pk_는 별도의 요금제가 필요한가요?

아니요. Publishable Key는 기존 계정 주변의 추가 보호 계층입니다: 스코프, 오리진 및 예산을 제한합니다. 어떤 플랜이 설정에 적합한지는 가격표를 참조하세요.

po_pk_에 대해 차단된 엔드포인트는 무엇인가요?

HTTP DELETE 및 계정 로그인, 사용자 관리자, 키 관리, OAuth, 파트너 관리자, Stripe 체크아웃 및 비밀번호 크래킹은 영구적으로 차단됩니다. 문서화된 제품-API이 허용되며, 여기에는 POST 삭제, 웹훅, 청구 읽기, 가져오기 및 CRM이 포함됩니다. Workspace 삭제, 휴지통 비우기 및 법적 보유 해제는 UI 전용(403 UI_ONLY_ENDPOINT)으로 유지됩니다.

PaperOffice AI · Problem Solver

저희에게 말씀해 주세요, 매일 시간을 많이 소요하는 일을.

간단히 설명해 주세요. 전문 용어는 필요 없습니다.

또는 예제로 시작하세요

PaperOffice를 어떻게 사용하시겠습니까?

컴퓨터와 스마트폰 연결 완료: 컴퓨터에서 워크스페이스 사용, 전화기로 문서 캡처.

체험판이 준비되었습니다

어디서 시작하시겠습니까?

풀 워크스페이스는 컴퓨터에 최적화되어 있습니다. 모바일 버전은 문서 캡처, 검토 및 승인에 적합합니다.

app.paperoffice.ai

컴퓨터에서 시작

개인 접근 링크를 이메일로 보내드립니다.

무료 등록 앱 열기 PaperOffice 앱 전체 제품: 웹, 데스크톱, 모바일. 문서를 캡처하고 정리하며 검색하고 팀과 함께 작업하십시오. 무료 계정이 필요합니다
Claude에서 작동 · Anthropic 검증 완료 Claude 및 AI 어시스턴트 Claude에서 문서를 검색하고 분석하십시오. 계정 없이 체험할 수 있습니다. ChatGPT, Grok, Le Chat에서도 사용할 수 있습니다. Claude에서 사용
Playground 열기 Playground 선택한 기능을 즉시 체험하십시오 — 등록 없이 제한된 데모 API 키로. 등록 없음, 다만 제한된 데모 API 키