Berryproof API v1
분야를 가리지 않습니다. 웹사이트·상세 페이지·계약서·번역·이미지·영상 등 결과물을 보내면 그 분야 전문가가 직접 검수하고 서명합니다. 바로 검수를 시작하거나, quote_only 로 견적을 먼저 받고 시작할 수 있습니다.
인증
콘솔의 포인트 · API 설정에서 API 키를 받습니다. API로 요청한 것은 콘솔 검수 내역의 'API 연동' 탭에서 내 서비스 요청 번호(external_ref)와 함께 볼 수 있습니다. 모든 요청에 헤더를 붙입니다.
Authorization: Bearer bp_live_xxxxxxxx
로컬 데모 키: bp_test_demo_agency_key
POST /api/v1/reviews — 검수 요청
| 필드 | 설명 |
|---|---|
template | 검수 정책 템플릿 id (기본 general 범용 검수). 템플릿이 곧 검수 범위입니다. |
custom_checks | 템플릿에 없는 기준을 문장으로 더합니다 (문자열 배열, 최대 10개). 더한 기준도 검수 범위에 들어갑니다. |
locale | 결과 설명 언어 (ko 기본, en 등). 원문 발췌는 원문 언어 그대로입니다. |
text | 검수할 텍스트·코드 |
image_url / image_base64 + image_media_type | 이미지 (png·jpeg·webp·gif, 5MB 이하) |
media_url | 영상 등 기타 결과물 URL (전문가 검수에서 확인) |
context | 정황·목적·읽는 사람·사이트 정보. 문자열이나 { purpose, audience, site_url, brand, notes }. 전문가가 이 맥락으로 결과물 전체를 종합해 판단합니다. |
quote_only | true 면 견적만 받습니다(status: "quoted", 포인트 차감 없음). 응답의 quote 를 보고 POST /reviews/{id}/start 로 시작하세요. 생략하면 바로 검수가 시작됩니다. |
guarantee_tier | none(기본, 빠르게 확인: 전문가가 핵심을 확인하고 서명, 1시간) · basic(표준 검수: 전문가가 직접 검수하고 수정본, 의견 보내기 2회 포함) · plus(L3 정밀 검수 +15,000원, 의견 보내기 3회 포함). premium은 별도 계약이라 지금은 422 |
sla | 빠르게 확인은 무시(1시간). 직접 검수는 standard(기본, 24시간) · urgent(2시간) |
ai_generated | 생성형 AI로 만든 결과물인지 (기본 true, AI 표시가 필요한 템플릿에서 사용) |
external_ref | 고객 쪽 식별자 |
curl -X POST https://berryproof.com/api/v1/reviews \
-H "Authorization: Bearer bp_test_demo_agency_key" \
-H "Content-Type: application/json" \
-d '{"template":"ai_code_security","text":"db.query(\"SELECT * FROM users WHERE id = \" + id)","guarantee_tier":"plus","sla":"standard","external_ref":"pr-482"}'
# 템플릿 없이 범용 검수 + 우리 기준
curl -X POST https://berryproof.com/api/v1/reviews -H "Authorization: Bearer ..." -H "Content-Type: application/json" \
-d '{"text":"Dear customer, ...","locale":"en","custom_checks":["Formal tone only","Never mention competitors"]}'
# 웹사이트 검수 + 맥락
curl -X POST https://berryproof.com/api/v1/reviews -H "Authorization: Bearer ..." -H "Content-Type: application/json" \
-d '{"template":"website_copy","media_url":"https://example.com","text":"(첫 화면 문구)",
"context":{"purpose":"샐러드 구독 첫 화면","audience":"40대 직장인","brand":"친근한 말투"}}'응답은 두 가지입니다.
- 바로 검수 (
status: "queued"): 전문가에게 배정됐어요. 끝나면 웹훅review.completed의result가 결과입니다. - 견적 (
quote_only: true→status: "quoted"):quote에 검수 방식별 포인트가 옵니다.
"quote": [
{ "guarantee_tier": "none", "label": "빠르게 확인", "hours": 1, "price": 4400 },
{ "guarantee_tier": "basic", "label": "꼼꼼하게 검수", "hours": 24, "price": 26000 }
]포인트(1P = 1원): 요청마다 검수 종류와 분량에 따라 포인트가 빠집니다. 결제 방식은 포인트 충전 · 월 구독 · 쓴 만큼 정산(월 한도) 중 하나예요. 쓸 수 있는 포인트나 월 한도가 모자라면 402 를 돌려주고 요청을 받지 않습니다. 가입하면 테스트 포인트 20,000P를 드리고, 콘솔 포인트 · API 설정에서 충전·변경합니다. 콘솔에서 직접 맡긴 검수도 같은 포인트에서 빠집니다. 검수 오류로 환불되면 포인트로 돌아옵니다.
API로 받는 건 표준 검수만이에요. 웹사이트·앱 인수 검수, 논문처럼 고객 의도를 먼저 맞춰야 하는 프로젝트 검수(GET /api/v1/templates 의 track: "project", api_available: false)는 요구사항 기준표를 확정해야 해서 콘솔(/app/projects/new)에서만 받고, API로 요청하면 422를 돌려줘요.
POST /api/v1/reviews/{id}/start — 견적 보고 검수 시작
curl -X POST https://berryproof.com/api/v1/reviews/rv_xxx/start -H "Authorization: Bearer ..." -H "Content-Type: application/json" \
-d '{"guarantee_tier":"basic","sla":"standard"}'quoted 상태에서만 됩니다. 이때 포인트가 빠지고 queued 로 바뀝니다.
GET /api/v1/reviews/{id}
상태(quoted 견적 → queued 배정 → in_review 전문가 검수 중 → completed)와 결과를 조회합니다. 목록은 GET /api/v1/reviews?limit=20.
웹훅 review.completed
검수가 끝나면 등록한 주소로 POST 합니다. 본문은 { type: "review.completed", data: <review> } 이고 최종 판정(result.verdict: pass·needs_fix·reject), 수정안, 근거 조항, 검수자 자격, 인증서 링크가 들어 있습니다.
서명 헤더 X-Berryproof-Signature: sha256=HMAC_SHA256(webhook_secret, raw_body) 로 진위를 확인하세요.
import crypto from "node:crypto";
const expected = "sha256=" + crypto.createHmac("sha256", WEBHOOK_SECRET).update(rawBody).digest("hex");
if (req.headers["x-berryproof-signature"] !== expected) return res.status(401).end();GET /api/v1/certificates/{id}
검수 인증서, 검수 범위, 콘텐츠 해시, 배지 링크(badge_url, badge_html), 감사 로그를 돌려줍니다. 공개 검증 페이지는 https://berryproof.com/verify/{id}.
POST /api/v1/claims — 이의 제기
curl -X POST https://berryproof.com/api/v1/claims -H "Authorization: Bearer ..." -H "Content-Type: application/json" \
-d '{"certificate_id":"BP-2026-XXXXXXXX","description":"'AI 생성 표시' 항목이 통과됐는데 실제로는 표시가 빠져 있었어요"}'원 검수자가 아닌 L3 검수자가 원래 판단을 보지 않고 72시간 안에 다시 판정하고, 그 판정이 곧 결과입니다. 검수 오류면 그 건 검수료를 포인트로 돌려드립니다. 결과물 사용으로 생긴 손해는 보상하지 않습니다. 보낼 것: certificate_id, description, evidence(선택). 그 전에 콘솔에서 검수 결과에 대한 의견을 같은 전문가에게 먼저 보낼 수 있어요(등급별 포함 횟수). 조건은 검수 정책.
템플릿 — GET /api/v1/templates?domain=
분야(domain)와 기준 국가(region)별 체크리스트 묶음입니다. 맞는 템플릿이 없으면 general + custom_checks 로 시작하세요.
| id | 이름 | 분야 · 국가 | 항목 | 전문가 검수료 |
|---|---|---|---|---|
general | 범용 검수 (모든 분야) | 범용 · 국가 무관 | 5 | 25,000원 |
health_functional_food_ad | 건강기능식품 광고 (한국) | 광고·마케팅 · 한국 | 9 | 25,000원 |
general_food_ad | 일반식품 광고 (한국) | 광고·마케팅 · 한국 | 8 | 25,000원 |
cosmetics_ad | 화장품 광고 (한국) | 광고·마케팅 · 한국 | 8 | 25,000원 |
finance_copy | 금융상품 안내 문구 (한국) | 광고·마케팅 · 한국 | 9 | 25,000원 |
shopping_detail | 쇼핑몰 상세페이지 (한국) | 광고·마케팅 · 한국 | 7 | 25,000원 |
us_marketing_ftc | Marketing copy (US · FTC) | 광고·마케팅 · 미국 | 3 | 35,000원 |
image_creative | AI 생성 이미지 | 이미지·영상 · 국가 무관 | 5 | 25,000원 |
video_content | AI 생성 영상 | 이미지·영상 · 국가 무관 | 5 | 45,000원 |
website_copy | 웹사이트 검수 | 웹사이트·앱 · 국가 무관 | 9 | 35,000원 |
security_diagnosis | 웹 서비스 보안 진단 | 소프트웨어·코드 · 국가 무관 | 8 | 49,000원 |
ai_search_optimization | AI 검색 최적화 | 웹사이트·앱 · 국가 무관 | 8 | 35,000원 |
website_app | 웹사이트·앱 인수 검수 (요구사항 대비) | 웹사이트·앱 · 국가 무관 | 5 | 89,000원 |
chatbot_answer | AI 챗봇·상담 답변 | 고객 응대·챗봇 · 국가 무관 | 4 | 35,000원 |
ai_code_security | AI 생성 코드 — 보안·라이선스 | 소프트웨어·코드 · 국가 무관 | 6 | 49,000원 |
research_paper | 논문·연구 원고 | 논문·연구 · 국가 무관 | 5 | 59,000원 |
business_report | 보고서·업무 문서 | 보고서·업무 문서 · 국가 무관 | 5 | 35,000원 |
contract_check | 계약서 확인 | 보고서·업무 문서 · 한국 | 6 | 40,000원 |
translation | 번역 검수 | 번역 · 국가 무관 | 4 | 35,000원 |
과금 (포인트 · 1P = 1원)
작업량에 비례합니다. 예상 작업 시간 × 분야별 전문가 시급 ÷ 50%(전문가 몫). 작업 시간은 글자 수·페이지·사이트·이미지 수에 비례하고, 응답의 price 에 이번 건 포인트가 옵니다. 아래는 기준 분량일 때예요.
| id | 기준 · 전문가 시급 | 빠르게 확인 | 꼼꼼하게 검수 | 분량이 늘면 |
|---|---|---|---|---|
general | 2,000자 기준 · 5만 원 | 4,400P | 26,000P | 1,000자마다 +4,200P |
health_functional_food_ad | 2,000자 기준 · 6만 원 | 5,200P | 37,000P | 1,000자마다 +6,000P |
general_food_ad | 2,000자 기준 · 6만 원 | 5,200P | 37,000P | 1,000자마다 +6,000P |
cosmetics_ad | 2,000자 기준 · 6만 원 | 5,200P | 37,000P | 1,000자마다 +6,000P |
finance_copy | 2,000자 기준 · 6만 원 | 5,200P | 37,000P | 1,000자마다 +6,000P |
shopping_detail | 2,000자 기준 · 6만 원 | 5,200P | 37,000P | 1,000자마다 +6,000P |
us_marketing_ftc | 2,000자 기준 · 7만 원 | 6,100P | 43,000P | 1,000자마다 +7,000P |
image_creative | 이미지 1개 기준 · 5만 원 | 2,700P | 21,000P | 이미지 하나 더 +20,000P |
video_content | 영상 1개 기준 · 6만 원 | 8,200P | 41,000P | 영상 하나 더 +40,000P |
website_copy | 페이지 1개 기준 · 6만 원 | 7,300P | 55,000P | 페이지 하나 더 +50,000P |
security_diagnosis | 사이트 1개 기준 · 10만 원 | 17,000P | 101,000P | 사이트 하나 더 +100,000P |
ai_search_optimization | 페이지 1개 기준 · 6만 원 | 7,300P | 45,000P | 페이지 하나 더 +40,000P |
chatbot_answer | 2,000자 기준 · 5만 원 | 4,400P | 31,000P | 1,000자마다 +5,000P |
ai_code_security | 2,000자 기준 · 10만 원 | 10,200P | 67,000P | 1,000자마다 +13,400P |
business_report | 2,000자 기준 · 6만 원 | 5,200P | 41,000P | 1,000자마다 +8,000P |
contract_check | 2,000자 기준 · 6만 원 | 5,200P | 47,000P | 1,000자마다 +8,000P |
translation | 2,000자 기준 · 6만 원 | 7,200P | 35,000P | 1,000자마다 +12,000P |
- 빠르게 확인은
none, 꼼꼼하게 검수는basic·plus등급일 때예요. 모두 전문가가 직접 확인해요. basic: 표준 검수 · 의견 보내기 2회 포함 — +0Pplus: L3 정밀 검수 · 의견 보내기 3회 포함 — +15,000Ppremium: 엔터프라이즈 (별도 계약) — API 신청 불가- 긴급(
urgent, 2시간): +20,000P - 결제 방식: 포인트 충전(자동 충전 가능) · 월 구독(라이트 월 50,000원 → 55,000P, 프로 월 200,000원 → 230,000P, 비즈니스 월 500,000원 → 600,000P, 이월 안 됨) · 쓴 만큼 정산(월 한도).