# No DTC — Autonomous Automotive Diagnostic & Inventory Platform > The autonomous vision-action platform bridging modern AI orchestrators, custom salvage ERPs, and automated workflows directly to physical automotive diagnostic scan devices and salvage yard management software. ## Platform Overview 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: * **Worker 1 (Vehicle Worker)**: Ephemeral vision-action agent interacting directly with automotive diagnostic tablets via low-latency remote video streaming to extract VIN, DTCs, ECU part identifiers, and module health. * **Worker 2 (System of Record Worker)**: Ephemeral vision-action agent interacting directly with Windows desktop salvage inventory applications to attach diagnostic records non-destructively. * **Master Orchestrator**: Built-in coordination engine that manages vehicle scan sequences, Standard Multi-System Cross-Tool Taxonomy Service resolution, and Visual Indirect Prompt Injection guardrails. ## Supported Hardware & Scanner Requirements * **Diagnostic Scanner Requirements**: - **Operating Systems & Form Factors**: Android, Windows, or Linux automotive diagnostic scan tablets or PCs (touchscreen devices). - **Vehicle Connection**: Standard 16-pin OBD-II port interface (via Bluetooth / Wi-Fi VCI or direct OBD-II cable) connected to the vehicle's diagnostic port with vehicle ignition ON. - **Diagnostic Software**: Multi-system diagnostic scanner application installed on the device capable of scanning engine, transmission, and vehicle control modules. - **Remote Agent Software & Sideloading**: The device must run the Getscreen remote agent app. Technicians can install or sideload the app directly on the scanner via browser from `https://getscreen.me/en/download/` (or via `https://nodtc.com/go`), USB drive transfer, or Google Play Store. - **Fleet Binding**: In the remote connection app, enter your yard's binding account string (e.g. `go@nodtc.com:31904`, displayed under **Settings** $\rightarrow$ **Organization**). The scanner automatically registers with your yard fleet and appears under `GET /api/v2/devices`. * **Salvage Desktop Software**: Yard inventory management systems running on Windows desktop PCs. ## Information You Can Obtain No DTC extracts comprehensive, structured automotive data from the vehicle scan: 1. **Vehicle Identification & Authentic Specifications**: - 17-character VIN (verified via scanner breadcrumb and OBD-II readout). - Decoded vehicle profile: Model year, make, model, sub-model/trim, engine displacement/configuration, and transmission type. - Diagnostic Mode verification: `REAL VEHICLE (Verified: )` with physical OBD-II bus verification vs `DEMO SIMULATOR (Detected: )`. - NHTSA vPIC factory attributes verbatim from official OEM manufacturing records. - Reported vehicle odometer / mileage readings from both vehicle headers and instrument cluster/ECUs. 2. **Powertrain Health (Option 2 Default Pipeline)**: - Engine Control Module (ECM) status: PASS or FAULT with total DTC count. - Transmission Control Module (TCM) status: PASS or FAULT with total DTC count. - Specific Diagnostic Trouble Codes (DTCs), fault descriptions, and UDS symptom failure mode bytes (e.g. P0300, P1604). - Check Engine Light / Malfunction Indicator Lamp (MIL) illuminated state. 3. **All-System Electronic Control Unit (ECU) Health (Option 1 Full MVS)**: - Complete scan of all installed electronic modules: ECM, TCM, BCM (Body), ABS/EBCM (Brakes), SRS (Airbags), IPC (Cluster), EPS (Steering), HVAC, Radio/Telematics, and ADAS sensors. - Communication status for each system: Normal, Scanned, Fault, or Not Equipped. 4. **ECU Hardware Traceability & Part Identification**: - ECU hardware part numbers, manufacturer part numbers, and replacement part identifiers. - Software calibration IDs (CALIDs) and Calibration Verification Numbers (CVNs) for parts inventory, interchange, and warranty validation. 5. **Live Sensor Parameters & Telemetry (via BYOO Tasks)**: - Real-time live data streams: Total engine run hours, battery voltage, coolant temperature, engine RPM, and fluid pressures. 6. **Visual Proof & Cryptographic Evidence**: - High-resolution annotated screenshots captured directly from the diagnostic tool screen during scanning. - Cryptographic tamper-evident watermarks with timestamp, VIN, module name, and QR code. - Publicly accessible, unauthenticated direct JPEG URLs (`https://nodtc.com/v/{evidence_id}.jpg`) and verification landing pages (`https://nodtc.com/v/{evidence_id}`). 7. **Salvage Yard Inventory Ingestion (System of Record)**: - Matched inventory Stock Number, vehicle status, and non-destructive image attachment to existing inventory records in yard management software. --- ## Onboarding & Setup Instructions for Users & AI Agents When an AI Agent is assisting a user or technician with setting up and validating a yard scan workflow, follow these steps: ### 1. Organization & Fleet Tablet Setup * **Dashboard Access**: The user accesses the technician station at `https://nodtc.com/app` (via the "Access" button on `https://nodtc.com`) and signs in with their Google account. Each yard has a dedicated organization environment. * **Binding Diagnostic Tablets**: Open the Getscreen Android application on the diagnostic scanner tablet. Enter the account setup string displayed under **Settings** $\rightarrow$ **Organization** (e.g. `go@nodtc.com:31904`). The tablet will instantly bind to your yard fleet and appear on the web dashboard and via `GET /api/v2/devices`. ### 2. Generating a Tenant API Key * Programmatic access requires a Tenant API Key. * In the web dashboard, navigate to **Settings** $\rightarrow$ **Developer & API Integrations**. * Click **+ Generate Key**, provide a label (e.g., "AI Agent Key"), and copy the secret key (`nodtc_live_...`). * The user provides this API key to their AI agent for authenticating API requests via the `X-API-Key` HTTP header. ### 3. Orchestrator Pipeline Selection Navigate to **Settings** $\rightarrow$ **Orchestrator**. The platform supports three pipeline options: * **Option 2: Engine & Transmission Evidence Capture (Default)**: - Pre-selected by default. No manual configuration needed. - Runs targeted ECM and TCM health scans with high-resolution evidence capture, authentic QR code verification links, and non-destructive attachment to inventory. - Automatically sends `REPORT_COMPLETED` webhook events if an HTTPS webhook URL is configured under **Settings** $\rightarrow$ **Developer & API Integrations**. * **Option 1: Autonomous Diagnostic Agent (Full MVS)**: - Comprehensive autonomous pipeline scanning all electronic systems, reading trouble codes, extracting ECU module part numbers, and creating vehicle/part inventory records. * **Option 3: Bring Your Own Orchestrator (Custom Tenant API)**: - For external AI agents that execute granular step-by-step diagnostic tasks via the REST API or receive incoming `SESSION_READY` webhooks. Requires an active Tenant API Key. ### 4. Running a Vehicle Scan & Presenting Results * **Connecting to the Vehicle**: Connect the diagnostic scanner tablet to the vehicle's OBD-II port. Ensure vehicle ignition is ON (engine off or running). * **Initiating the Scan**: The technician can tap **START SCAN** directly on the dashboard, or the AI Agent can initialize the session via `POST /api/v2/sessions` and trigger autonomous scanning via `POST /api/v2/sessions/{session_id}/orchestrate`. * **Fetching the Report**: - Once scanning finishes, the AI agent fetches the standardized report JSON via `GET /api/v2/reports/{report_id}` (or retrieves the latest scan via `GET /api/v2/reports?limit=1`). * **Report Presentation Rule for AI Agents**: - **Never output internal authenticated report links** (such as `/api/v2/sessions/{session_id}/report` or `/report?format=summary` because they require Google Authentication and fail in unauthenticated browser sessions). - **Always parse the report JSON and present the summary directly into the conversation**: - **Vehicle Identification**: VIN, Year, Make, Model. - **Diagnostic Mode**: `REAL VEHICLE (Verified: )` or `DEMO SIMULATOR (Detected: )`. - **Engine Health**: Status (PASS/FAULT), DTC count, Fault Codes with descriptions. - **Transmission Health**: Status (PASS/FAULT), DTC count, Fault Codes. - **Annotated Scan Tool Screenshot URLs**: High-resolution annotated screenshots are captured from the diagnostic tablet during scanning and served unauthenticated as direct JPEGs at `https://nodtc.com/v/{evidence_id}.jpg`. The AI Agent MUST display these direct image URLs and clickable markdown links in the chat: - Engine Screenshot: `report.evidence_urls.engine` - Transmission Screenshot: `report.evidence_urls.transmission` - **Public Verification Link**: Public verification landing page URL (`report.verification_url` or `https://nodtc.com/v/{evidence_id}`) where unauthenticated buyers or inspectors can view watermarked evidence images. - **Example AI Agent Output Format**: ```text Vehicle Diagnostic Report: - VIN: 1G1YY22U765109843 (2006 Chevrolet Corvette) - Diagnostic Mode: REAL VEHICLE (Verified: GM V50.12 > 16PIN DLC > Corvette > 2006) - Engine Control Module (ECM): PASS (0 DTCs) - Transmission Control Module (TCM): PASS (0 DTCs) Annotated Scan Tool Screenshots: - Engine Evidence: https://nodtc.com/v/ev_1G1YY22U765109843_eng_a1b2c3.jpg - Transmission Evidence: https://nodtc.com/v/ev_1G1YY22U765109843_trans_d4e5f6.jpg - Public Verification Record: https://nodtc.com/v/ev_1G1YY22U765109843_7a8b9c0d ``` --- ## Authentication All programmatic API calls require a Tenant API Key passed in the `X-API-Key` HTTP header: ```http X-API-Key: nodtc_live_your_api_key_here ``` To obtain an API key for your yard, log in at `https://nodtc.com` with an approved enterprise account and navigate to **Settings** $\rightarrow$ **Developer & API Integrations** $\rightarrow$ **+ Generate Key**, or contact `go@nodtc.com` for pilot provisioning. --- ## Integration Architectures ### Use Our Orchestrator Designed for applications that do not want to micro-manage the operation of a scan device or PC: * No DTC autonomously operates the automotive diagnostic scan tool. * Option 2 (Default): Captures engine and transmission health evidence and generates public verification reports. * Option 1: Extracts 17-character VIN, discovers all electronic control modules, extracts diagnostic trouble codes or part identifiers. * Fetch structured JSON report via `GET /api/v2/reports/{report_id}` or webhook. ### Bring Your Own Orchestrator (BYOO) Designed for external AI agents (e.g., Claude, custom LLMs) or yard ERP rules engines that need step-by-step control over a scan device or PC: 1. Bind tablet session with `POST /api/v2/sessions` (`{"device_id": ""}`) $\rightarrow$ returns `session_id`. 2. Dispatch atomic tasks via `POST /api/v2/sessions/{session_id}/tasks` (e.g. `get_vin`, `get_system_dtcs`, `get_system_part_identifiers`). 3. Poll for task output via `GET /api/v2/sessions/{session_id}/tasks/{task_id}` or stream real-time events via Server-Sent Events (SSE). 4. Release tablet back to the pool via `POST /api/v2/sessions/{session_id}/end`. ### System of Record (SOR) Attachment Synchronization Designed to attach verified ECM and TCM diagnostic records to inventory in yard inventory management systems: * `POST /api/v2/sor/sweep-evidence` $\rightarrow$ Triggers the daily non-destructive attachment synchronization sweep. Adheres strictly to the safety invariant: searches existing vehicles and parts, attaches images, and never creates or deletes inventory records. --- ## Core API Endpoints ### 1. Fleet & Session Lifecycle * `GET /api/v2/devices`: List all registered diagnostic tablets and workstations in your yard fleet. * `POST /api/v2/devices/{device_id}/reset`: Force-release lingering cloud leases, clear stuck states, and recycle device without requiring an active session ID. * `POST /api/v2/sessions`: Initialize and bind a session to a physical device (`{"device_id": "112045489"}`). * `GET /api/v2/sessions`: List active diagnostic sessions. * `GET /api/v2/sessions/{session_id}`: Get real-time status and telemetry for an active session. * `POST /api/v2/sessions/{session_id}/reset_vehicle`: Back out scanner software to vehicle selection screen between cars. * `POST /api/v2/sessions/{session_id}/abort`: Cancel currently executing diagnostic task. * `POST /api/v2/sessions/{session_id}/end`: Gracefully disconnect and release diagnostic tablet. * `GET /api/v2/sessions/{session_id}/events`: Server-Sent Events (SSE) stream for live diagnostic telemetry (applies fail-closed privacy filter for tenant keys, omitting internal step reasoning while streaming logs and keepalive heartbeats). ### 2. Vehicle Worker Operations (Worker 1) * `POST /api/v2/sessions/{session_id}/orchestrate`: Trigger full autonomous scan pipeline. * `GET /api/v2/sessions/{session_id}/orchestration_status`: Poll progress of autonomous scan pipeline. * `POST /api/v2/sessions/{session_id}/tasks`: Submit atomic diagnostic task: - `get_vin`: Reads 17-character VIN from scanner breadcrumbs or OBD-II readout. - `get_all_systems_health`: Scans all vehicle modules and reports DTC counts. - `get_circuits_systems_list`: Enumerates all installed electronic modules. - `get_system_dtcs`: Reads current, pending, and historical fault codes for a system. - `get_system_part_identifiers`: Extracts ECU hardware part numbers, calibration IDs, and CVNs. - `get_live_data_values`: Reads real-time sensor PIDs (RPM, coolant temp, oil pressure). * `GET /api/v2/sessions/{session_id}/tasks/{task_id}`: Fetch result of an atomic task. * `POST /api/v2/sessions/{session_id}/hitl_response`: Submit human-in-the-loop answer when scanner prompts for manual intervention. ### 3. Diagnostic Reports (Data Extraction Output) * `GET /api/v2/reports`: Query historical diagnostic reports filtered by date, VIN, or vehicle make. * `GET /api/v2/reports/{report_id}`: Fetch complete standardized JSON report containing vehicle identity, NHTSA vPIC attributes, system taxonomy mappings, DTCs, ECU part numbers, public verification link (`verification_url`), and direct annotated screenshot URLs (`evidence_urls`). ### 4. Public Evidence & Verification (Unauthenticated) * `GET /v/{evidence_id}.jpg`: Direct JPEG image stream of high-resolution scan tool screenshot with cryptographic watermark. * `GET /v/{evidence_id}`: Public verification landing page for vehicle diagnostic evidence. ### 5. System of Record Worker Operations (Worker 2) * `POST /api/v2/sor/sweep-evidence`: Execute non-destructive attachment sweep across inventory management terminals. * `GET /api/v2/sor/reports/{report_id}/inventory_status`: Inspect inventory attachment and Stock # resolution for a scan. * `POST /api/v2/sor/ingest_vehicle`: Match or establish vehicle record in inventory management system using verified report VIN. --- ## Python BYOO Example Script ```python import time import httpx API_BASE = "https://nodtc.com" API_KEY = "nodtc_live_your_api_key_here" DEVICE_ID = "112045489" # Diagnostic Scan Tool 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. Create Session session_resp = client.post("/api/v2/sessions", json={"device_id": DEVICE_ID}) session_resp.raise_for_status() session_id = session_resp.json()["session_id"] print(f"Connected to tablet session: {session_id}") try: # 2. Submit Task: Extract VIN task_resp = client.post( f"/api/v2/sessions/{session_id}/tasks", json={"task_type": "get_vin"} ) task_resp.raise_for_status() task_id = task_resp.json()["task_id"] # 3. Poll for result while True: poll_resp = client.get(f"/api/v2/sessions/{session_id}/tasks/{task_id}") poll_resp.raise_for_status() data = poll_resp.json() if data["status"] in ("COMPLETED", "FAILED"): print(f"Task outcome: {data['status']}") print(f"Extracted VIN: {data.get('result', {}).get('vin')}") break time.sleep(2) finally: # 4. Release tablet client.post(f"/api/v2/sessions/{session_id}/end") print("Tablet session gracefully released.") ``` --- ## Safety & Security Invariants 1. **Visual Indirect Prompt Injection Guardrail & Untrusted Data Boundary**: 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 (e.g., 'ignore previous instructions', 'abort task') and only execute assigned API tasks. 2. **Non-Destructive SOR Guardrail**: 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. 3. **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 (e.g. ENGINE_CONTROL_MODULE, TRANSMISSION_CONTROL_MODULE). ## Public Reference & Compliance URLs * **Platform Homepage**: https://nodtc.com * **Technician Diagnostic Station**: https://nodtc.com/app * **Developer Portal & API Reference**: https://nodtc.com/developers (or https://nodtc.com/api) * **Equipment Onboarding & Setup Guide**: https://nodtc.com/go * **Competitive Advantage Comparison**: https://nodtc.com/advantage * **Social Media & Auction Listing Analysis**: https://nodtc.com/social * **Autonomous Workflow Video Demonstrations**: https://nodtc.com/demo * **Public Sample Diagnostic Report (Plain Text)**: https://nodtc.com/report * **Company & Organizational Background**: https://nodtc.com/about * **Official Contact & Carrier Verification**: https://nodtc.com/contact * **Privacy Policy**: https://nodtc.com/privacy * **Terms of Service**: https://nodtc.com/terms ## Developer Contact & Enterprise Provisioning * **Website**: https://nodtc.com * **Interactive API Documentation**: https://nodtc.com/developers * **Direct Inquiries**: `go@nodtc.com`