공개 검증 API
현재 웹 검증기는 /api/verify를 호출합니다. 모델별 리콜 데이터는 /api/devices/[modelId]/recalls 및 /api/recalls에서 사용할 수 있습니다. 항공사 정책 엔드포인트는 익명 요청에 공개 프리뷰 필드만 노출하며, 전체 policy fields, 규칙 로직, 인용, 변경 이력은 partner 또는 authenticated access가 필요합니다.
CertiWatt는 블로그 답변이 아니라 기계가 읽을 수 있는 여행 판정을 반환합니다: 노선별 배터리 결정, 정확한 모델 해석, 활성 리콜 정보, 시리얼 확인, 출처 인용, 규칙 버전, 명시적 제약.
공개 verifier 엔드포인트는 계정 없이 테스트할 수 있습니다. 파트너 키는 한도, 허용 origin, 지원 조건만 바꾸며 판정 계약은 바꾸지 않습니다.
curl -s https://certiwatt.app/api/verify \
-H 'content-type: application/json' \
-d '{
"model_id": "anker-737",
"ccc_mark": "present",
"trip": {
"origin": "CN",
"destination": "CN",
"airline": "CA",
"compartment_intent": "carry_on"
},
"options": { "language": "en" }
}'{
"verdict": "conditional",
"verdict_id": "vdt_01JZ8EXAMPLETRIP00000001",
"ruleset_version": "2026-05-15",
"generated_at": "2026-06-06T08:40:12.000Z",
"expires_at": "2026-06-13T08:40:12.000Z",
"summary": "Carry-on only. Airline approval may be required.",
"device_resolved": {
"model_id": "anker-737",
"brand": "Anker",
"model_name": "737 Power Bank",
"watt_hour": 86.4,
"recall_status": "not_affected",
"recall_check_method": "model_match"
},
"constraints": [
{ "code": "carry_on_only", "message": "Carry-on only — never in checked baggage." },
{ "code": "max_units_2", "message": "Maximum 2 power banks per passenger." }
],
"warnings": [
{ "code": "airline_approval_review", "severity": "advisory", "message": "Confirm airline handling before departure." }
],
"citations": [
{ "kind": "regulator", "authority": "CAAC", "jurisdiction": "CN", "url": "https://...", "pulled_at": "2026-05-29" },
{ "kind": "airline", "authority": "Singapore Airlines", "jurisdiction": "SG", "url": "https://...", "pulled_at": "2026-05-29" }
],
"verdict_path": ["iata_spare_lithium_battery", "cn_3c_screening", "sq_power_bank_policy"]
}제품 흐름이 단일 경로가 아니라 전체 여정을 판단해야 할 때 POST /api/trips/verify를 사용합니다. CertiWatt는 origin, transit, destination을 세그먼트별 판정으로 확장한 뒤 임베디드 워크플로용 aggregate verdict를 반환합니다.
POST /api/trips/verify
{
"device": { "model_id": "anker-737" },
"trip": {
"origin": "CN",
"transit": ["SG"],
"destination": "US",
"airline": "SQ",
"compartment_intent": "carry_on"
},
"options": { "language": "en" }
}
{
"public_name": "Trip Battery Pass",
"trip_verdict_id": "trip_lx5t9d3a_q8z1r2p4",
"verdict": "conditional",
"summary": "Trip requires conditions or approval on at least one of 2 segments.",
"segments": [
{
"index": 1,
"origin": "CN",
"destination": "SG",
"airline": "SQ",
"verdict": { "verdict": "conditional", "ruleset_version": "2026-05-15", "verdict_id": "vdt_..." }
},
{
"index": 2,
"origin": "SG",
"destination": "US",
"airline": "SQ",
"verdict": { "verdict": "allowed", "ruleset_version": "2026-05-15", "verdict_id": "vdt_..." }
}
],
"device_resolved": { "model_id": "anker-737", "watt_hour": 86.4 },
"citation_count": 4,
"ruleset_version": "2026-05-15",
"generated_at": "2026-06-06T08:40:12.000Z",
"expires_at": "2026-06-13T08:40:12.000Z"
}워크플로, route corridor, 항공사 그룹, 예상 월간 요청량을 보내면 CertiWatt가 파일럿 응답 형태와 운영 지원 범위를 정할 수 있습니다.
Trip API 파일럿 신청Pilot CTA 클릭은 익명 운영 신호로만 기록됩니다. CertiWatt는 미리 채워진 이메일 본문을 받거나 저장하지 않습니다. 개인정보 처리 안내.
Public answers can summarize policy. Platform integrations need freshness, request preservation, source-change visibility, and reviewable evidence for support and operations.
The public API surface is useful for discovery and testing. Partner traffic uses an agreed pilot scope, credential setup, and failure-mode review.
현재 웹 검증기는 /api/verify를 호출합니다. 모델별 리콜 데이터는 /api/devices/[modelId]/recalls 및 /api/recalls에서 사용할 수 있습니다. 항공사 정책 엔드포인트는 익명 요청에 공개 프리뷰 필드만 노출하며, 전체 policy fields, 규칙 로직, 인용, 변경 이력은 partner 또는 authenticated access가 필요합니다.
에이전트는 공개 MCP 패키지를 로컬 stdio로 실행하고 라이브 CertiWatt API를 호출할 수 있습니다.
MCP 패키지호스팅 위젯 또는 파일럿 통합은 파트너 페이지에서 시작하세요.
임베드 및 파일럿이 공개 엔드포인트는 OpenAPI 계약으로 보호되며 에이전트가 /developers, /mcp, llms.txt, AEO manifest에서 발견할 수 있습니다.
여행자나 에이전트가 시리얼 또는 배치 근거를 제공하면 선택적 serial 쿼리 파라미터를 사용합니다. 패턴 기반 리콜은 로컬에서 판정하고 제조사 목록 리콜은 추측하지 않고 external_list_required를 반환합니다.
GET /api/recalls?model_id=iniu-bi-b41&serial=000G21
{
"public_name": "Battery Recall Intelligence",
"recalls": [
{
"recall_id": "iniu.2025-12.BI-B41-affected",
"model_id": "iniu-bi-b41",
"affected_serials": {
"pattern": "^(000G21|000H21|000I21|000L21)$",
"explicit_list_url": "https://iniushop.com/pages/recall-b41"
},
"verdict_impact": {
"applies_to": "exact_model_only",
"if_affected_serial": "banned",
"if_serial_unknown": "warning",
"if_not_affected_serial": "normal_rules_apply"
},
"serial_evaluation": {
"provided_serial": "000G21",
"match_status": "affected",
"match_method": "pattern",
"verdict_if_used_for_flight": "banned"
}
}
]
}투명성과 기계 발견을 위해 CertiWatt는 제한된 정적 JSON 프리뷰만 공개합니다. 전체 항공사 정책 필드, 규칙 로직, 변경 이력, 파트너급 export는 제품/API 표면에 남습니다.
{
"long_tail_verdicts": [
{
"route_factors": [
"capacity check is tied to this exact catalog model",
"Citation sources: CAAC (regulator, CN, 2026-05-29)"
],
"article_body": "Summary plus route factors. Citation sources: CAAC (regulator, CN, 2026-05-29).",
"ruleset_version": "2026-05-15",
"citation_count": 3,
"sources": [
{ "authority": "CAAC", "url": "https://...", "pulled_at": "2026-05-29" }
]
}
]
}답변 엔진과 에이전트는 AEO manifest에서 CertiWatt의 2026 질문 가이드, 브랜드 허브, 롱테일 판정 페이지, 데이터셋을 읽을 수 있습니다. 최상위에는 manifest_version, content_hash, ruleset_version, cache_policy, counts가 포함되며, 응답은 같은 hash의 X-CertiWatt-Content-Hash와 quoted ETag도 노출합니다. manifest 응답은 rel="describedby"로 schema를 링크하고, schema 응답도 X-CertiWatt-Schema-Hash와 quoted schema ETag를 노출합니다. 각 질문 가이드 항목에는 localized_urls, short_answer, source_count, 절대 인용 URL이 포함된 sources가 들어 있어 에이전트가 사용자 언어에 맞는 URL을 인용할 수 있습니다. 각 브랜드 hub 항목에는 브랜드 수준 카탈로그 발견을 위한 model counts와 representative_models가 들어 있습니다. 각 롱테일 판정 항목에는 verdict, summary, route_factors, article_body, ruleset_version, citation_count, sources가 들어 있습니다. Verifier API는 현재 ruleset_version만 허용합니다. 지원하지 않는 historical pin은 silent fallback 대신 400을 반환합니다. 데이터셋 항목은 Battery Recall Intelligence와 Airline Policy Intelligence discovery를 노출하며, policy_changes_api_url, 집계된 출처 모니터링 카운트, public-preview와 partner-detail API 경계를 포함합니다. 프로그램형 판정 페이지도 Article JSON-LD articleBody에서 판정 요약, 노선 신호, citation source metadata(authority, kind, jurisdiction, URL, citation_kind, citation_jurisdiction, pulled_at)를 노출합니다. Manifest는 에이전트가 직접 소비하기 적합하도록 제한됩니다. /aeo-manifest.json은 512KB 이하, schema는 64KB 이하, 각 long-tail article_body는 1600자 이하입니다.
API 출력은 출처가 있는 정보 제공 판정입니다. 법률 자문, 공식 인증, 공항·항공사·보안 직원의 수락 보장으로 표시해서는 안 됩니다.