REST API
In brief
Contractual host api.askmarcel.app. v1 = sourced lookup. v2 = strict SKU provenance (diagnostic null if no exact manual).
Pick the right surface
REST v1, v2 lookup, Harness sessions, and MCP serve different intents.
Which API to choose?
Before integrating, read the v1 / v2 / Harness / MCP matrix: /api/docs/which-api
Contractual host
https://api.askmarcel.app is the contractual host. Prefixes: https://api.askmarcel.app/v1 (v1) and https://api.askmarcel.app/v2 (SKU provenance). The equivalent path on the app domain is a non-contractual internal rewrite.
OpenAPI
Machine spec: https://api.askmarcel.app/v1/openapi.json
v1 endpoints
- POST https://api.askmarcel.app/v1/diagnostic
- POST https://api.askmarcel.app/v1/diagnostic/turn
- GET https://api.askmarcel.app/v1/search
- GET https://api.askmarcel.app/v1/procedure/:chunkId
- GET https://api.askmarcel.app/v1/error-codes/:brand/:code
- GET https://api.askmarcel.app/v1/products/:brand/:model
- GET https://api.askmarcel.app/v1/pdf-snapshot/:documentId/:page
- GET https://api.askmarcel.app/v1/registry
- GET https://api.askmarcel.app/v1/me
SKU provenance (v2)
Answer only from an approved exact-model manual. Otherwise status = no_exact_source and diagnostic = null — not billable. Resolve is exact or alias, never a product-range name.
- POST https://api.askmarcel.app/v2/diagnostic
- POST https://api.askmarcel.app/v2/models/resolve
- GET https://api.askmarcel.app/v2/models/:model_id/coverage
Harness Beta — sessions (v2)
Stateful Air/Water + Air/Air loop: create (single quota charge), typed responses, close and summary. Beta channel — hypotheses, discriminating action, citations when applicable.
- POST https://api.askmarcel.app/v2/diagnostic-sessions
- GET https://api.askmarcel.app/v2/diagnostic-sessions/:session_id
- POST https://api.askmarcel.app/v2/diagnostic-sessions/:session_id/responses
- POST https://api.askmarcel.app/v2/diagnostic-sessions/:session_id/close
- GET https://api.askmarcel.app/v2/diagnostic-sessions/:session_id/summary
SDK
npm install @askmarcel/sdk@beta — startDiagnosticSession, respondToDiagnosticSession, closeDiagnosticSession, getDiagnosticSessionSummary.
POST /diagnostic
One-shot sourced search: manual excerpt, steps and citation. For multi-turn Air/Water HP troubleshooting, use POST /diagnostic/turn.
curl -s https://api.askmarcel.app/v1/diagnostic \
-H "Authorization: Bearer ak_live_..." \
-H "Content-Type: application/json" \
-d '{"brand":"Mitsubishi","model":"Ecodan PUHZ-W85","error_code":"E7"}'GET /search
Document search in the technical corpus. Required parameter: q.
curl -s "https://api.askmarcel.app/v1/search?q=defaut+communication+mitsubishi" \
-H "Authorization: Bearer ak_live_..."SDKs & templates
- npm @askmarcel/sdk (JS/TS)
- OpenAPI spec and curl examples
- Open-source chatbot template (HVAC-Bench)
