Verifier and trip APIs
POST /api/verify returns one route verdict. POST /api/trips/verify expands origin, transit, and destination into segment verdicts and an aggregate Trip Battery Pass for embedded flows.
CertiWatt returns machine-readable travel verdicts, not blog answers: route-aware battery decisions with exact-model resolution, recall coverage signals, serial-level checks where evidence exists, source citations, ruleset versions, and explicit constraints that partners can test and, after approval, embed and audit.
The public verifier endpoint can be tested without an account. Partner keys only change limits, allowed origins, and support terms; they do not change the verdict contract.
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"]
}Use POST /api/trips/verify when the product flow needs a whole itinerary, not a single route. CertiWatt expands origin, transit, and destination into segment verdicts, then returns an aggregate verdict that can be shown in booking, baggage, insurance, support, or agent workflows.
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"
}Send one workflow, route corridor, airline group, and expected monthly volume so CertiWatt can scope the pilot response shape and operational support.
Request trip API pilotPilot CTA clicks are recorded as anonymous operator signals; CertiWatt does not receive or store the prefilled email body. Privacy details.
A public answer layer can summarize policy. A platform integration needs a decision service with 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 before launch.
POST /api/verify returns one route verdict. POST /api/trips/verify expands origin, transit, and destination into segment verdicts and an aggregate Trip Battery Pass for embedded flows.
Exact-model recall data is available through /api/devices/[modelId]/recalls and /api/recalls. Pattern-backed serials resolve locally; manufacturer-list recalls return external_list_required rather than guessing.
Use CertiWatt inside booking, baggage, insurance, support, airport-precheck, or agent workflows after approval. Full policy fields, change history, response targets, and production support are agreement terms, not anonymous API guarantees.
Partner pilotsThese endpoints are the integration surface behind the public verifier. Anonymous responses remain useful for discovery; partner or authenticated access unlocks deeper policy fields, change history, and operational support.
Public AI answers can summarize battery rules. Travel platforms need to know whether a specific recalled model or serial range should trigger a warning or block in a live workflow. CertiWatt keeps recall impact exact-model-only and exposes serial_evaluation when evidence is available.
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"
}
}
]
}For transparency and machine discovery, CertiWatt publishes limited static JSON previews. Full airline policy fields, rule logic, change history, audit export, and partner-grade exports remain product/API surfaces.
{
"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" }
]
}
]
}Answer engines and agents can read the AEO manifest for CertiWatt’s curated 2026 question guides, brand hubs, long-tail verdict pages, and datasets. The top level includes manifest_version, content_hash, ruleset_version, cache_policy, and counts, and the response exposes X-CertiWatt-Content-Hash plus a quoted ETag with the same hash. The manifest response also links its schema with rel="describedby"; the schema response exposes X-CertiWatt-Schema-Hash plus a quoted schema ETag. Each question guide entry includes localized_urls, short_answer, source_count, and sources with absolute citation URLs so agents can cite the URL matching the user language; each brand_hubs entry includes model counts and representative_models for brand-level catalog discovery; each long_tail_verdicts entry includes verdict, summary, route_factors, article_body, ruleset_version, citation_count, and sources. The verifier API accepts only the current ruleset_version; unsupported historical pins return 400 rather than silently falling back. The datasets entries expose Battery Recall Intelligence with model_specific_only and no_brand_level_inference policy flags plus Airline Policy Intelligence discovery, including policy_changes_api_url, aggregate source-monitoring counts, and the public-preview versus partner-detail API boundary. Programmatic verdict pages also expose Article JSON-LD articleBody with the verdict summary, route-specific signals, and citation source metadata: authority, kind, jurisdiction, URL, citation_kind, citation_jurisdiction, and pulled_at. The manifest is guarded for direct agent consumption: /aeo-manifest.json stays under 512KB, schema under 64KB, and each long-tail article_body under 1600 characters.
API outputs are cited informational verdicts with a documented decision trail. They must not be presented as legal advice, official certification, or guaranteed acceptance by airport, airline, or security staff.