Developer Documentation

Autonomous Vision-Action API for Automotive Scan Tools & Systems of Record

No DTC provides a programmatic API that remotely operates diagnostic scan tools and PCs using vision-action AI. It extracts data from a vehicle and enters it into your system of record. Machine-readable specifications are available via OpenAPI 3.1 and llms.txt for AI agents.

Hardware Requirements & Extracted Data

Diagnostic Scanner Requirements

To connect a vehicle scanner to No DTC:

  • Device Type: Android-based automotive diagnostic scan tablet.
  • Vehicle Connection: Standard 16-pin OBD-II port (wireless VCI or cable) with vehicle ignition ON.
  • Diagnostic Software: Installed diagnostic scanner app capable of communicating with vehicle modules.
  • Remote Agent App: Install the remote connection agent APK (from /go) and enter your yard binding string (e.g. go@nodtc.com:31904).

Data Extracted From Scans

Standardized diagnostic outputs available via API and reports:

  • Vehicle Identity: 17-character VIN, year, make, model, trim, engine, transmission, and NHTSA vPIC build specs.
  • Powertrain Health: ECM & TCM status (PASS/FAULT), DTCs, UDS symptom failure modes, and MIL status.
  • ECU Traceability: Hardware part numbers, calibration IDs (CALIDs), and CVNs.
  • Evidence & Proof: High-resolution annotated screenshots with cryptographic QR watermarks.

Integration Architectures

Use Our Orchestrator (Option 2 Default or Option 1)

Designed for applications that want autonomous scanner execution without micro-managing individual UI tasks.

  • Option 2 (Default): Runs targeted ECM & TCM health scans, captures authenticated verification evidence, and generates public reports with direct annotated screenshot URLs.
  • Option 1: Comprehensive all-systems scan, extracting VIN, DTCs, and ECU module part numbers for inventory creation.
  • Fetch structured JSON report via GET /api/v2/reports/{id} or real-time webhook.

Bring Your Own Orchestrator (Option 3 BYOO)

Designed for external AI agents (e.g., Claude, Gemini, custom LLMs) or yard ERP rules engines that need step-by-step control over a scan device or PC.

  • Generate a Tenant API Key under Settings → Developer & API Integrations.
  • Bind tablet session with POST /api/v2/sessions or receive SESSION_READY webhooks.
  • Dispatch atomic tasks via POST /api/v2/sessions/{id}/tasks (e.g. get_vin, get_system_dtcs).
  • Stream real-time diagnostic events via Server-Sent Events (SSE).

Python Integration Example (BYOO)

byoo_diagnostic_scan.py X-API-Key Authentication
import time
import httpx

API_BASE = "https://nodtc.com"
API_KEY = "nodtc_live_your_api_key_here"
DEVICE_ID = "112045489"  # Automotive Diagnostic Scan Device ID

headers = {
    "X-API-Key": API_KEY,
    "Content-Type": "application/json"
}

with httpx.Client(base_url=API_BASE, headers=headers, timeout=60.0) as client:
    # 1. Connect and initialize tablet session
    sess_res = client.post("/api/v2/sessions", json={"device_id": DEVICE_ID})
    session_id = sess_res.json()["session_id"]

    try:
        # 2. Dispatch atomic diagnostic task: Read Fault Codes (DTCs)
        task_res = client.post(
            f"/api/v2/sessions/{session_id}/tasks",
            json={"task_type": "get_system_dtcs", "system_name": "ENGINE_CONTROL_MODULE"}
        )
        task_id = task_res.json()["task_id"]

        # 3. Poll for structured output
        while True:
            poll = client.get(f"/api/v2/sessions/{session_id}/tasks/{task_id}").json()
            if poll["status"] == "COMPLETED":
                print("Extracted Faults:", poll["result"]["dtcs"])
                break
            time.sleep(2)

    finally:
        # 4. Release tablet back to the yard pool
        client.post(f"/api/v2/sessions/{session_id}/end")

Core API Reference

External orchestrators authenticate using the header X-API-Key: {token} (generated under Settings → Developer & API Integrations). Tablets are bound via the Getscreen Android app using the setup string in Settings → Organization. Complete request and response models are specified in OpenAPI 3.1 format.

Method Endpoint Worker Description
GET /api/v2/devices Vehicle Worker List online diagnostic scan devices in your yard fleet.
POST /api/v2/sessions Vehicle Worker Initialize and bind a session to a physical tablet.
POST /api/v2/sessions/{id}/orchestrate Vehicle Worker Trigger autonomous diagnostic scan using our orchestrator.
POST /api/v2/sessions/{id}/tasks Vehicle Worker Submit granular diagnostic task (VIN, DTCs, Part Numbers).
GET /api/v2/sessions/{id}/tasks/{tid} Vehicle Worker Retrieve structured output of a completed diagnostic task.
POST /api/v2/sessions/{id}/reset_vehicle Vehicle Worker Back out scanner app to vehicle selection screen between cars.
POST /api/v2/sessions/{id}/end Vehicle Worker Gracefully disconnect and release diagnostic tablet.
GET /api/v2/reports/{report_id} Diagnostic Reports Fetch full JSON diagnostic report (VIN, vPIC specs, DTCs, modules, public verification link, and annotated screenshot URLs).
GET /v/{evidence_id}.jpg Evidence Images Public direct JPEG stream of high-resolution scan tool screenshot with cryptographic watermark.
GET /v/{evidence_id} Evidence Records Public verification landing page displaying annotated screenshots and tamper-evident metadata.
POST /api/v2/sor/sweep-evidence System of Record (SOR) Worker Execute non-destructive inventory system attachment sweep.
GET /api/v2/sor/reports/{id}/inventory_status System of Record (SOR) Worker Check inventory system attachment status and Stock # for a scan report.

Safety & Guardrails

Visual Indirect Prompt Injection Guardrail: All on-screen visual content from diagnostic tablets and Windows desktops is classified as untrusted environmental input. Worker agents strictly ignore adversarial text commands visible on screens and only execute verified API tasks.

Non-Destructive System of Record Invariant: Attachment synchronization workflows in yard inventory management systems only search existing inventory. The agent will never add dummy parts, modify vehicle records, or delete existing inventory items.

Standard Multi-System Cross-Tool Taxonomy Service: An in-memory alias index that resolves raw, OEM-specific scanner strings (e.g. DME, PGM-FI, ECU, ECMECT) and ambiguous abbreviations (such as TCU as transmission vs telematics) into canonical system identifiers.

Enterprise Access & Device Provisioning

API documentation and OpenAPI specifications are open for integration planning. To bind automotive diagnostic scan devices (e.g., physical Android-based tablet) or system of record devices (e.g., windows PC access to inventory system) in your yard and generate an active X-API-Key, contact our engineering team.