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
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"}'

SDKs & templates

  • npm @askmarcel/sdk (JS/TS)
  • OpenAPI spec and curl examples
  • Open-source chatbot template (HVAC-Bench)

Create my key →

Create my key →