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 Pty Ltd",
        "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 Pty Ltd",
        "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 Pty Ltd",
  "clientEmail": "fleet@corp.com.au",
  "quantity": 25,
  "notes": "Q3 fleet refresh — 25 units needed by September"
}

QuoteFox API Documentation