Skip to content

Fleet Quoting ​

Best practices for requesting multiple vehicle quotes programmatically.

Requesting Multiple Quotes ​

The QuoteFox API processes one quote per request. For fleet orders, submit individual requests per vehicle/dealer combination:

python
import requests
import time

API_KEY = "qfx_your_api_key"
BASE = "https://app.quotefox.au/api/v1"
headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json",
}

vehicles = [
    {"model": "MG ZS", "version": "Excite 1.5L Auto"},
    {"model": "MG HS", "version": "Essence 1.5T Auto"},
    {"model": "MG 3", "version": "Excite 1.5L Auto"},
]

dealer_id = "your-preferred-dealer-uuid"
quotes = []

for vehicle in vehicles:
    response = requests.post(f"{BASE}/quotes", headers=headers, json={
        "dealershipId": dealer_id,
        "model": vehicle["model"],
        "version": vehicle["version"],
        "clientName": "Fleet Corp ",
        "clientEmail": "fleet@corp.com.au",
        "quantity": 10,
        "notes": f"Fleet order — 10x {vehicle['model']}",
        "callbackUrl": "https://your-system.com/webhooks/quotefox",
    })
    quotes.append(response.json())
    time.sleep(0.5)  # Respect rate limits

for q in quotes:
    print(f"Quote {q['quoteId']} — {q['status']}")

Comparing Dealers ​

Request the same vehicle from multiple dealers to compare pricing:

python
# Search for dealers that carry the MG ZS
inventory = requests.get(
    f"{BASE}/inventory",
    headers=headers,
    params={"model": "MG ZS"}
).json()

# Get unique dealers
dealers = requests.get(f"{BASE}/dealers", headers=headers).json()

# Request quotes from each dealer
for dealer in dealers["dealers"][:5]:  # Top 5 dealers
    response = requests.post(f"{BASE}/quotes", headers=headers, json={
        "dealershipId": dealer["id"],
        "model": "MG ZS",
        "version": "Excite 1.5L Auto",
        "clientName": "Fleet Corp ",
        "clientEmail": "fleet@corp.com.au",
        "postcode": "3000",
        "callbackUrl": "https://your-system.com/webhooks/quotefox",
    })
    quote = response.json()
    print(f"{dealer['name']}: {quote['status']}")

Rate Limiting Considerations ​

The default rate limit is 100 requests per hour. For large fleet operations:

  • Space your requests with short delays (0.5–1 second)
  • Cache dealer and inventory data — refresh hourly
  • Use webhooks instead of polling for quote status
  • Contact support if you need a higher rate limit

Using the quantity Field ​

The quantity field provides fleet context to the dealer. It doesn't create multiple quotes — it informs the dealer that the request is for multiple vehicles of the same spec:

json
{
  "dealershipId": "...",
  "model": "MG ZS",
  "version": "Excite 1.5L Auto",
  "clientName": "Fleet Corp ",
  "clientEmail": "fleet@corp.com.au",
  "quantity": 25,
  "notes": "Q3 fleet refresh — 25 units needed by September"
}

QuoteFox API Documentation