---
title: "Lookup technique sourcé (one-shot)"
method: POST
path: "/v1/diagnostic"
---

# Lookup technique sourcé (one-shot)

`POST /v1/diagnostic`

## Request

- Base URL: `https://api.askmarcel.app`
- URL: `https://api.askmarcel.app/v1/diagnostic`
- Auth: HTTP bearer

Recherche sourcée en un aller-retour : extrait de manuel, étapes et citation. `confidence.score` est une similarité vectorielle, pas une certitude diagnostique. Pour un dépannage multi-tours PAC Air/Eau, utiliser POST /v1/diagnostic/turn. N’écrit aucun diagnostic_event et n’expose pas de decision_trace.

## Request body

- object
  - `symptom` string
  - `brand` string
  - `model` string
  - `error_code` string
  - `source_policy` SourcePolicy
    - `applicability` 'explicit_model'
    - `authority` 'manufacturer' | 'any'
    - `allow_family_substitution` boolean
    - `allow_regional_substitution` boolean

## Response `200`

Diagnostic structuré + envelope

- DiagnosePublicResponse
  - `status` 'found' | 'no_exact_source' | 'model_ambiguous'
  - `diagnostic` string, required
  - `steps` object[], required
    - `order` integer, required
    - `text` string, required
    - `safety` string, nullable, required
  - `part` object, required
    - `name` string, nullable, required
    - `reference` string, nullable, required
  - `source` object, required
    - `brand` string, nullable, required
    - `model` string, nullable, required
    - `doc_title` string, nullable, required
    - `page_start` integer, nullable, required
    - `page_end` integer, nullable, required
    - `document_id` string, nullable, required
    - `chunk_id` string, nullable, required
    - `source_type` 'manual' | 'community', nullable, required
  - `confidence` object, required
    - `score` number, required
    - `band` 'high' | 'medium' | 'low', required
    - `deterministic` boolean, required
  - `citation` Citation, nullable
    - `sourceId` string, required
    - `documentId` string, uuid, nullable, required
    - `documentVersion` string, nullable, required
    - `chunkId` string, uuid, required
    - `chunkHash` string, required
    - `pageStart` integer, nullable, required
    - `pageEnd` integer, nullable, required
    - `title` string, required
    - `sourceType` 'manual' | 'community', required
    - `authority` 'manufacturer' | 'regulatory' | 'internal_curated' | 'community' | 'unknown', required
    - `snapshotAvailable` boolean, required
  - `retrieval` DiagnosticRetrieval
    - `strategy` string, required
    - `relevanceScore` number, nullable, required
    - `exactMatch` boolean, required
    - `error_code_match` 'exact' | 'none'
  - `source_validation` SourceValidation
    - `brand` 'exact' | 'alias' | 'mismatch' | 'unknown', required
    - `error_code` 'exact' | 'alias' | 'mismatch' | 'unknown', required
    - `model` 'exact' | 'alias' | 'mismatch' | 'unknown', required
    - `family` 'exact' | 'alias' | 'mismatch' | 'unknown', required
    - `market` 'exact' | 'alias' | 'mismatch' | 'unknown', required
    - `document_applicability` 'exact_model' | 'explicit_series' | 'family_only' | 'none', required
    - `strict_pass` boolean, required
    - `reason` 'model_unknown' | 'model_ambiguous' | 'exact_document_missing' | 'error_code_not_found' | 'market_not_verified' | 'source_not_approved' | 'document_not_applicable', nullable, required
  - `follow_up_questions` string[]
  - `request_id` string, required
  - `session_id` string, required
  - `turn` integer, required
  - `engine_version` string, required

---

[API](https://skmtc.dev/askmarcel/apis/askmarcel-api.md) · [All operations](https://skmtc.dev/askmarcel/apis/askmarcel-api/llms.txt) · [OpenAPI document](https://skmtc.dev/askmarcel/apis/askmarcel-api/revisions/6865e207410e?raw)
