Vehicles

CarGurus Signal Monitor Setup Guide

Time: 10 minutes | Difficulty: Moderate | Market: Vehicles Mode: Signal-only | API: No consumer API (dealer-only) | Docs: N/A

This guide configures a CarGurus vehicle market signal monitor using the botwir3 runtime. Connect to third-party vehicle pricing data, generate market signals locally, and review them before acting manually.


Signal-only mode

CarGurus does not provide a consumer-facing API. API access is limited to registered dealers. Vehicle transactions are inherently manual (test drives, financing, title transfer). This guide configures the botwir3 runtime in signal-only mode using third-party data: the bot monitors vehicle pricing data and generates signals. The user reviews the signals and acts manually.

botwir3 does not place offers, bids, or transactions on CarGurus. The user is responsible for all execution decisions.

Before you start

Verify that data access from third-party providers is permitted under the applicable terms of service before deploying. botwir3 provides tools for building structured automation. The user is responsible for compliance with all applicable terms and regulations.

CarGurus Terms of Use | Last verified: May 2026

What you need

  • A CarGurus account (for manual vehicle research)
  • A third-party data source for vehicle pricing (Marketcheck, CarAPI, or public listings data)
  • The botwir3 runtime downloaded and unzipped
  • A strategy config file from the builder (signal-only mode)

Step 1: Configure the data source

CarGurus has no consumer API. Vehicle pricing data is available through third-party providers:

ProviderDataAccess
MarketcheckVehicle listings, pricing, VIN decodePaid API
CarAPIVehicle specs, valuationsPaid API
NHTSARecalls, complaints, VIN decodeFree public API

Create adapter.json in the bot directory:

{
  "adapter": "cargurus",
  "mode": "signal_only",
  "data_source": {
    "type": "api",
    "provider": "marketcheck",
    "api_key": "paste-data-provider-api-key-here",
    "search": {
      "make": "Toyota",
      "model": "Camry",
      "year_min": 2020,
      "radius_miles": 50,
      "zip": "70301"
    }
  },
  "rate_limit_ms": 300000
}

API keys (for the data provider) are stored in a local config file on the machine running the bot. They are not transmitted to botwir3 or any third party. botwir3 never sees, stores, or has access to platform credentials.

Step 2: Configure signal output

{
  "signal_output": {
    "type": "file",
    "path": "./signals/cargurus.json"
  }
}

Step 3: Start the monitor

botwir3 start --config my-strategy.json --signal-only

Expected output:

[botwir3] Adapter: cargurus
[botwir3] Mode: signal-only
[botwir3] Data source: marketcheck (Toyota Camry 2020+ within 50mi of 70301)
[botwir3] Polling interval: 300s
[botwir3] Monitoring...

The runtime evaluates signals against the strategy and logs opportunities. It does not connect to CarGurus for any purpose. The gate function compares proposed signals against the configured spec. All signals are recorded in the local ledger.

Reading the signals

[botwir3] Signal: BELOW_MARKET | 2022 Toyota Camry SE | Listed: $19,800 | Market avg: $23,400
[botwir3] Signal logged to ./signals/cargurus.json

The user reviews each signal and decides whether to pursue the vehicle manually — contacting the dealer, scheduling a test drive, or negotiating a price.

Why signal-only?

CarGurus limits API access to registered dealers. No consumer-facing API exists. Vehicle transactions require manual processes: test drives, financing, inspections, and title transfer. Third-party data providers (Marketcheck, CarAPI) offer vehicle listing and pricing data for signal generation.

Related guides


One bot. $129. No subscription. No $749/mo platform. → Build for CarGurus


Build your CarGurus bot

Ready to build?