diff --git a/.gitignore b/.gitignore index 5d8f2f71..d76eaebb 100644 --- a/.gitignore +++ b/.gitignore @@ -172,3 +172,6 @@ days/013-016-css-basics/demos/selectorville/.idea/encodings.xml days/013-016-css-basics/demos/selectorville/.idea/selectorville.iml **.DS_Store days/041-044-react/**node_modules +.idea/100web-course.iml +.idea/ruff.xml +ruff.xml diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 73f69e09..00000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml -# Editor-based HTTP Client requests -/httpRequests/ diff --git a/.idea/.name b/.idea/.name deleted file mode 100644 index f016463b..00000000 --- a/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -100 days web course \ No newline at end of file diff --git a/.idea/100 days web course.iml b/.idea/100web-course.iml similarity index 90% rename from .idea/100 days web course.iml rename to .idea/100web-course.iml index 96687562..761d974c 100644 --- a/.idea/100 days web course.iml +++ b/.idea/100web-course.iml @@ -4,7 +4,7 @@ - + diff --git a/.idea/ruff.xml b/.idea/ruff.xml new file mode 100644 index 00000000..91a8f716 --- /dev/null +++ b/.idea/ruff.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/days/001-004-flask-intro/code/demo.py b/days/001-004-flask-intro/code/demo.py index 64dbd6fb..3e4db8a9 100644 --- a/days/001-004-flask-intro/code/demo.py +++ b/days/001-004-flask-intro/code/demo.py @@ -1 +1 @@ -from program import app +from program import app # noqa: F401 diff --git a/days/001-004-flask-intro/code/program/__init__.py b/days/001-004-flask-intro/code/program/__init__.py index cbda944c..a5a53e07 100644 --- a/days/001-004-flask-intro/code/program/__init__.py +++ b/days/001-004-flask-intro/code/program/__init__.py @@ -1,5 +1,6 @@ from flask import Flask +from program import routes # noqa: F401 app = Flask(__name__) -from program import routes + diff --git a/days/001-004-flask-intro/code/requirements.piptools b/days/001-004-flask-intro/code/requirements.piptools new file mode 100644 index 00000000..c07ec65d --- /dev/null +++ b/days/001-004-flask-intro/code/requirements.piptools @@ -0,0 +1,7 @@ +click +Flask +itsdangerous +Jinja2 +MarkupSafe +python-dotenv +werkzeug diff --git a/days/001-004-flask-intro/code/requirements.txt b/days/001-004-flask-intro/code/requirements.txt index be3088b7..f9bbe5e1 100644 --- a/days/001-004-flask-intro/code/requirements.txt +++ b/days/001-004-flask-intro/code/requirements.txt @@ -1,7 +1,33 @@ -click==6.7 -Flask==1.0.2 -itsdangerous==0.24 -Jinja2>=2.10.1 -MarkupSafe==1.0 -python-dotenv==0.9.1 -werkzeug>=0.15.3 +# +# This file is autogenerated by pip-compile with Python 3.11 +# by the following command: +# +# pip-compile requirements.piptools +# +blinker==1.7.0 + # via flask +click==8.1.7 + # via + # -r requirements.piptools + # flask +flask==3.0.0 + # via -r requirements.piptools +itsdangerous==2.1.2 + # via + # -r requirements.piptools + # flask +jinja2==3.1.2 + # via + # -r requirements.piptools + # flask +markupsafe==2.1.3 + # via + # -r requirements.piptools + # jinja2 + # werkzeug +python-dotenv==1.0.0 + # via -r requirements.piptools +werkzeug==3.0.1 + # via + # -r requirements.piptools + # flask diff --git a/days/005-008-html5/demos/yahoo_clone/.idea/dictionaries/mkennedy.xml b/days/005-008-html5/demos/yahoo_clone/.idea/dictionaries/mkennedy.xml deleted file mode 100644 index 72132aac..00000000 --- a/days/005-008-html5/demos/yahoo_clone/.idea/dictionaries/mkennedy.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - yaahoo - yahooligans - - - \ No newline at end of file diff --git a/days/005-008-html5/demos/yahoo_clone/.idea/encodings.xml b/days/005-008-html5/demos/yahoo_clone/.idea/encodings.xml deleted file mode 100644 index 15a15b21..00000000 --- a/days/005-008-html5/demos/yahoo_clone/.idea/encodings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/days/009-012-modern-apis-starred/demo/app.py b/days/009-012-modern-apis-starred/demo/app.py deleted file mode 100644 index 78a00228..00000000 --- a/days/009-012-modern-apis-starred/demo/app.py +++ /dev/null @@ -1,85 +0,0 @@ -import json -from typing import List - -from apistar import App, Route, types, validators -from apistar.http import JSONResponse - - -# helpers - -def _load_cars_data(): - with open('cars.json') as f: - cars = json.loads(f.read()) - return {car["id"]: car for car in cars} - - -cars = _load_cars_data() -VALID_MANUFACTURERS = set([car["manufacturer"] - for car in cars.values()]) -CAR_NOT_FOUND = 'Car not found' - -# definition - - -class Car(types.Type): - id = validators.Integer(allow_null=True) # assign in POST - manufacturer = validators.String(enum=list(VALID_MANUFACTURERS)) - model = validators.String(max_length=50) - year = validators.Integer(minimum=1900, maximum=2050) - vin = validators.String(max_length=50, default='') - - -# API methods - -def list_cars() -> List[Car]: - return [Car(car[1]) for car in sorted(cars.items())] - - -def create_car(car: Car) -> JSONResponse: - car_id = max(cars.keys())+1 - car.id = car_id - cars[car_id] = car - return JSONResponse(Car(car), status_code=201) - - -def get_car(car_id: int) -> JSONResponse: - car = cars.get(car_id) - if not car: - error = {'error': CAR_NOT_FOUND} - return JSONResponse(error, status_code=404) - - return JSONResponse(Car(car), status_code=200) - - -def update_car(car_id: int, car: Car) -> JSONResponse: - if not cars.get(car_id): - error = {'error': CAR_NOT_FOUND} - return JSONResponse(error, status_code=404) - - car.id = car_id - cars[car_id] = car - return JSONResponse(Car(car), status_code=200) - - -def delete_car(car_id: int) -> JSONResponse: - if not cars.get(car_id): - error = {'error': CAR_NOT_FOUND} - return JSONResponse(error, status_code=404) - - del cars[car_id] - return JSONResponse({}, status_code=204) - - -routes = [ - Route('/', method='GET', handler=list_cars), - Route('/', method='POST', handler=create_car), - Route('/{car_id}/', method='GET', handler=get_car), - Route('/{car_id}/', method='PUT', handler=update_car), - Route('/{car_id}/', method='DELETE', handler=delete_car), -] - -app = App(routes=routes) - - -if __name__ == '__main__': - app.serve('127.0.0.1', 5000, debug=True) diff --git a/days/009-012-modern-apis-starred/demo/cars.json b/days/009-012-modern-apis-starred/demo/cars.json deleted file mode 100644 index be4101b2..00000000 --- a/days/009-012-modern-apis-starred/demo/cars.json +++ /dev/null @@ -1,1000 +0,0 @@ -[{"id":1,"manufacturer":"Mercedes-Benz","model":"500SEC","year":1993,"vin":"1FTEW1CM9CF529793"}, -{"id":2,"manufacturer":"Holden","model":"VS Commodore","year":1997,"vin":"JH4CU26629C292950"}, -{"id":3,"manufacturer":"Studebaker","model":"Avanti","year":1963,"vin":"WAUKGBFB9AN389926"}, -{"id":4,"manufacturer":"Lotus","model":"Elise","year":2004,"vin":"1G6DU6EA8A0508229"}, -{"id":5,"manufacturer":"Mercury","model":"Cougar","year":1970,"vin":"WAUBH78E67A391232"}, -{"id":6,"manufacturer":"Chevrolet","model":"Corsica","year":1996,"vin":"JTHBE5C28A2729081"}, -{"id":7,"manufacturer":"Toyota","model":"Tacoma","year":2009,"vin":"WP0CA2A85AU727056"}, -{"id":8,"manufacturer":"Mitsubishi","model":"Chariot","year":1985,"vin":"1G6AC1R33F0126900"}, -{"id":9,"manufacturer":"Pontiac","model":"G3","year":2009,"vin":"WAUCD54B44N778012"}, -{"id":10,"manufacturer":"Oldsmobile","model":"Toronado","year":1992,"vin":"SCBEC9ZA6FC727912"}, -{"id":11,"manufacturer":"Chevrolet","model":"Express 2500","year":2008,"vin":"JTDKDTB37F1135033"}, -{"id":12,"manufacturer":"Acura","model":"Integra","year":1998,"vin":"WAUUL78E18A196518"}, -{"id":13,"manufacturer":"Isuzu","model":"Rodeo Sport","year":2001,"vin":"2T2BK1BA4AC732004"}, -{"id":14,"manufacturer":"Toyota","model":"Sienna","year":2006,"vin":"1G6DH8E50C0907965"}, -{"id":15,"manufacturer":"Toyota","model":"Venza","year":2009,"vin":"WBADN53471G093359"}, -{"id":16,"manufacturer":"BMW","model":"7 Series","year":2012,"vin":"1GT022CG1EF306854"}, -{"id":17,"manufacturer":"Mitsubishi","model":"L300","year":1988,"vin":"2T1KE4EE7BC144594"}, -{"id":18,"manufacturer":"Chevrolet","model":"Monte Carlo","year":2001,"vin":"WAUEKBFB2BN932515"}, -{"id":19,"manufacturer":"Pontiac","model":"Bonneville","year":2004,"vin":"WAUVT58E04A356908"}, -{"id":20,"manufacturer":"Mercury","model":"Mountaineer","year":1999,"vin":"JM1BL1K57B1774256"}, -{"id":21,"manufacturer":"Toyota","model":"Sequoia","year":2002,"vin":"JN1CV6FE9EM125280"}, -{"id":22,"manufacturer":"Audi","model":"riolet","year":1995,"vin":"3GYFNEE32CS904077"}, -{"id":23,"manufacturer":"Chevrolet","model":"Astro","year":2003,"vin":"2B3CL5CT0BH451601"}, -{"id":24,"manufacturer":"Pontiac","model":"Bonneville","year":1966,"vin":"SALFR2BG7EH746243"}, -{"id":25,"manufacturer":"Acura","model":"MDX","year":2001,"vin":"WA1DGAFP3EA217514"}, -{"id":26,"manufacturer":"Lincoln","model":"MKZ","year":2009,"vin":"WBAAX13455P280191"}, -{"id":27,"manufacturer":"Mercedes-Benz","model":"CL-Class","year":2004,"vin":"5N1AN0NU7CC898757"}, -{"id":28,"manufacturer":"Toyota","model":"Sequoia","year":2007,"vin":"WP0AB2A9XAS482019"}, -{"id":29,"manufacturer":"Chevrolet","model":"Blazer","year":2004,"vin":"1FTWF3A57AE579719"}, -{"id":30,"manufacturer":"Land Rover","model":"Range Rover","year":1993,"vin":"WBAPK5C54AA472451"}, -{"id":31,"manufacturer":"Dodge","model":"Nitro","year":2010,"vin":"JM1BL1H4XA1443670"}, -{"id":32,"manufacturer":"Lincoln","model":"Town Car","year":1984,"vin":"1GYS3HEF4DR884158"}, -{"id":33,"manufacturer":"GMC","model":"Savana 2500","year":1999,"vin":"JH4DC53845S090187"}, -{"id":34,"manufacturer":"Toyota","model":"Tercel","year":1995,"vin":"WBAKN9C58ED901510"}, -{"id":35,"manufacturer":"Lexus","model":"LX","year":2009,"vin":"WBADX1C5XCE887637"}, -{"id":36,"manufacturer":"Chevrolet","model":"Astro","year":2000,"vin":"WBALM73549E564846"}, -{"id":37,"manufacturer":"Honda","model":"Civic","year":1989,"vin":"1D7RB1CT4AS682969"}, -{"id":38,"manufacturer":"Jensen","model":"Interceptor","year":1966,"vin":"JN1BJ0HR5EM051800"}, -{"id":39,"manufacturer":"Ford","model":"Mustang","year":2006,"vin":"WBANF335X6C576471"}, -{"id":40,"manufacturer":"Suzuki","model":"Aerio","year":2004,"vin":"1GYS4AKJXFR531598"}, -{"id":41,"manufacturer":"GMC","model":"Yukon","year":2002,"vin":"JH4NA21614S251202"}, -{"id":42,"manufacturer":"Nissan","model":"Sentra","year":1998,"vin":"JTDKN3DU0F0367742"}, -{"id":43,"manufacturer":"Volvo","model":"XC90","year":2012,"vin":"JA32X2HU0CU364650"}, -{"id":44,"manufacturer":"Toyota","model":"Previa","year":1996,"vin":"5TDDK3DC9ES913667"}, -{"id":45,"manufacturer":"Ford","model":"Escort","year":1996,"vin":"YV126MFD8F1343502"}, -{"id":46,"manufacturer":"Jaguar","model":"XJ","year":2011,"vin":"ZHWGU5BZ7DL246776"}, -{"id":47,"manufacturer":"Isuzu","model":"Space","year":1994,"vin":"KNADH5A30A6399603"}, -{"id":48,"manufacturer":"Lincoln","model":"Town Car","year":2011,"vin":"WA1FFCFS6FR840432"}, -{"id":49,"manufacturer":"Scion","model":"xD","year":2009,"vin":"JM1NC2SF5F0030744"}, -{"id":50,"manufacturer":"Ford","model":"LTD Crown Victoria","year":1993,"vin":"WAUVFAFH0BN409349"}, -{"id":51,"manufacturer":"Acura","model":"RSX","year":2004,"vin":"1FTEW1CF6FF952627"}, -{"id":52,"manufacturer":"Land Rover","model":"Range Rover","year":1988,"vin":"2G4GW5EVXB9505790"}, -{"id":53,"manufacturer":"Cadillac","model":"SRX","year":2007,"vin":"WAUFFBFL1BN177357"}, -{"id":54,"manufacturer":"Aston Martin","model":"DBS","year":2011,"vin":"WAUEF78E96A053356"}, -{"id":55,"manufacturer":"Jeep","model":"Patriot","year":2009,"vin":"JN8AZ1MU9CW879114"}, -{"id":56,"manufacturer":"Lincoln","model":"Town Car","year":2007,"vin":"JTEBC3EH5B2430111"}, -{"id":57,"manufacturer":"Audi","model":"A4","year":2007,"vin":"WAUKGAFB3AN313533"}, -{"id":58,"manufacturer":"Isuzu","model":"Hombre Space","year":1998,"vin":"ZHWGU5AU4CL284874"}, -{"id":59,"manufacturer":"Chrysler","model":"PT Cruiser","year":2001,"vin":"WAUBFAFL2BA460365"}, -{"id":60,"manufacturer":"Chevrolet","model":"G-Series 2500","year":1997,"vin":"3FA6P0LUXFR249831"}, -{"id":61,"manufacturer":"Chevrolet","model":"Corvette","year":1996,"vin":"JN1CV6AP0CM424629"}, -{"id":62,"manufacturer":"Kia","model":"Sedona","year":2003,"vin":"WA1CFBFP7DA437855"}, -{"id":63,"manufacturer":"Land Rover","model":"Sterling","year":1991,"vin":"YV126MEC2F1579040"}, -{"id":64,"manufacturer":"Chevrolet","model":"Camaro","year":2002,"vin":"YV126MEB8F1325730"}, -{"id":65,"manufacturer":"Ford","model":"Focus","year":2000,"vin":"4JGDF2EE1FA859886"}, -{"id":66,"manufacturer":"Cadillac","model":"Seville","year":2003,"vin":"5GNRNJEE6A8781399"}, -{"id":67,"manufacturer":"Mercedes-Benz","model":"M-Class","year":2012,"vin":"WAUEG74F16N572437"}, -{"id":68,"manufacturer":"Lincoln","model":"Town Car","year":1993,"vin":"TRURD38J981321332"}, -{"id":69,"manufacturer":"Dodge","model":"Dakota","year":1996,"vin":"1GYUKCEF7AR395022"}, -{"id":70,"manufacturer":"Chevrolet","model":"Sportvan G30","year":1994,"vin":"1G6DK8ED8B0235175"}, -{"id":71,"manufacturer":"Mazda","model":"RX-8","year":2006,"vin":"JHMFB4F28CS596504"}, -{"id":72,"manufacturer":"MINI","model":"MINI","year":2002,"vin":"WAUMV94E09N197133"}, -{"id":73,"manufacturer":"Alfa Romeo","model":"164","year":1993,"vin":"WVGAV3AXXDW063785"}, -{"id":74,"manufacturer":"Isuzu","model":"i-370","year":2008,"vin":"WBADN63493G292289"}, -{"id":75,"manufacturer":"Mercury","model":"Grand Marquis","year":2004,"vin":"5N1AN0NW6FN330719"}, -{"id":76,"manufacturer":"Dodge","model":"Ram Van 1500","year":2003,"vin":"WAUCFAFR4DA430070"}, -{"id":77,"manufacturer":"Chevrolet","model":"Silverado 2500","year":2001,"vin":"WDDPK4HA5FF551761"}, -{"id":78,"manufacturer":"Ferrari","model":"612 Scaglietti","year":2009,"vin":"4T3BA3BB1BU151546"}, -{"id":79,"manufacturer":"Hyundai","model":"Elantra","year":2006,"vin":"WBABV13404J599235"}, -{"id":80,"manufacturer":"Chrysler","model":"PT Cruiser","year":2007,"vin":"1FBNE3BL0AD523370"}, -{"id":81,"manufacturer":"Cadillac","model":"DTS","year":2009,"vin":"2T1KU4EE0DC393731"}, -{"id":82,"manufacturer":"Dodge","model":"Ram 2500","year":2006,"vin":"3VWJX7AJ4AM033630"}, -{"id":83,"manufacturer":"Dodge","model":"Ram Van 1500","year":1997,"vin":"WUADU98E58N511408"}, -{"id":84,"manufacturer":"Oldsmobile","model":"Aurora","year":2003,"vin":"2G4GR5GX8F9377111"}, -{"id":85,"manufacturer":"Hyundai","model":"Scoupe","year":1995,"vin":"KNAFX6A8XE5971334"}, -{"id":86,"manufacturer":"Acura","model":"RSX","year":2006,"vin":"1D7RW3GK0AS131715"}, -{"id":87,"manufacturer":"Saturn","model":"Outlook","year":2007,"vin":"KNAFT4A22A5867197"}, -{"id":88,"manufacturer":"Maybach","model":"62","year":2003,"vin":"JH4CU2F64AC929678"}, -{"id":89,"manufacturer":"Ford","model":"Thunderbird","year":2006,"vin":"WBAHN83546D226728"}, -{"id":90,"manufacturer":"Hyundai","model":"Sonata","year":2010,"vin":"WBAPK5C50AA540793"}, -{"id":91,"manufacturer":"Ford","model":"Mustang","year":1992,"vin":"5N1AT2MK5FC383696"}, -{"id":92,"manufacturer":"Suzuki","model":"Forenza","year":2007,"vin":"1FTEX1CM3BK928069"}, -{"id":93,"manufacturer":"Mazda","model":"Familia","year":1990,"vin":"1GD21ZCG6CZ403818"}, -{"id":94,"manufacturer":"Honda","model":"CR-V","year":2007,"vin":"WA1LKAFP2AA786567"}, -{"id":95,"manufacturer":"Nissan","model":"Versa","year":2010,"vin":"5TDDK3DC8BS411955"}, -{"id":96,"manufacturer":"Acura","model":"MDX","year":2006,"vin":"1GD020CG7DZ461888"}, -{"id":97,"manufacturer":"Honda","model":"Odyssey","year":2011,"vin":"WA1EV74L57D866715"}, -{"id":98,"manufacturer":"Porsche","model":"Panamera","year":2011,"vin":"1D7CW2GK6AS881975"}, -{"id":99,"manufacturer":"Lamborghini","model":"Reventón","year":2008,"vin":"WBSBL93495P991354"}, -{"id":100,"manufacturer":"GMC","model":"Sonoma","year":1996,"vin":"WAULC58E54A588329"}, -{"id":101,"manufacturer":"Honda","model":"del Sol","year":1997,"vin":"5LMJJ3J51CE346474"}, -{"id":102,"manufacturer":"Maserati","model":"GranSport","year":2006,"vin":"JTDKDTB35D1863172"}, -{"id":103,"manufacturer":"Chevrolet","model":"Avalanche 1500","year":2004,"vin":"1GYUCFEJ8AR474055"}, -{"id":104,"manufacturer":"Honda","model":"Prelude","year":1986,"vin":"1FTEW1CM5EK750799"}, -{"id":105,"manufacturer":"Mercedes-Benz","model":"SLK-Class","year":1999,"vin":"1D4PT5GK4AW389298"}, -{"id":106,"manufacturer":"Jeep","model":"Cherokee","year":1995,"vin":"WBAWC735X9E303740"}, -{"id":107,"manufacturer":"Buick","model":"Riviera","year":1988,"vin":"1FTSS3EL8AD009303"}, -{"id":108,"manufacturer":"Ferrari","model":"458 Italia","year":2011,"vin":"5FRYD3H8XEB446392"}, -{"id":109,"manufacturer":"Chevrolet","model":"Suburban 1500","year":2006,"vin":"1GD22ZCG9CZ008433"}, -{"id":110,"manufacturer":"Mitsubishi","model":"Endeavor","year":2011,"vin":"5N1AN0NUXBC069292"}, -{"id":111,"manufacturer":"Ford","model":"Excursion","year":2003,"vin":"1G4CU541344123576"}, -{"id":112,"manufacturer":"Jeep","model":"Cherokee","year":1993,"vin":"WBA3B9C54DJ461315"}, -{"id":113,"manufacturer":"Lotus","model":"Evora","year":2010,"vin":"1N4AL2AP0CN130621"}, -{"id":114,"manufacturer":"Aston Martin","model":"Vantage","year":2009,"vin":"WAUSFAFLXBA547799"}, -{"id":115,"manufacturer":"Ford","model":"Club Wagon","year":1996,"vin":"3N1CN7AP1FL832612"}, -{"id":116,"manufacturer":"Ford","model":"Mustang","year":1967,"vin":"JTJBC1BA0A2935839"}, -{"id":117,"manufacturer":"Land Rover","model":"Range Rover","year":1986,"vin":"WA1CYAFE6AD226787"}, -{"id":118,"manufacturer":"Volkswagen","model":"Eos","year":2012,"vin":"5NPDH4AE8DH915229"}, -{"id":119,"manufacturer":"Ford","model":"Ranger","year":1988,"vin":"JN1EY1AP3DM607561"}, -{"id":120,"manufacturer":"Buick","model":"Park Avenue","year":1997,"vin":"1G6AB5S3XD0088650"}, -{"id":121,"manufacturer":"Chrysler","model":"Town & Country","year":1997,"vin":"1C3CDWBA4CD707355"}, -{"id":122,"manufacturer":"Volkswagen","model":"Eurovan","year":2001,"vin":"WAUDT94F25N614809"}, -{"id":123,"manufacturer":"GMC","model":"Savana 2500","year":2009,"vin":"1FTSS3EL3AD659611"}, -{"id":124,"manufacturer":"Audi","model":"A6","year":2010,"vin":"WBASP0C55DC670477"}, -{"id":125,"manufacturer":"Land Rover","model":"Range Rover","year":1987,"vin":"3C63D3LLXCG580325"}, -{"id":126,"manufacturer":"Lotus","model":"Exige","year":2008,"vin":"1G4HE5EM8AU385424"}, -{"id":127,"manufacturer":"Buick","model":"Regal","year":1992,"vin":"2T1BU4EE6BC883152"}, -{"id":128,"manufacturer":"Infiniti","model":"M","year":2012,"vin":"1FTWX3B57AE360710"}, -{"id":129,"manufacturer":"Ford","model":"Mustang","year":1968,"vin":"1G4GA5ER7CF584121"}, -{"id":130,"manufacturer":"Mercedes-Benz","model":"CL-Class","year":2011,"vin":"SALSF2D46DA165320"}, -{"id":131,"manufacturer":"Chevrolet","model":"Corvette","year":1988,"vin":"WAULD54B53N332000"}, -{"id":132,"manufacturer":"Mitsubishi","model":"Sigma","year":1989,"vin":"1D7RE2GK5BS571086"}, -{"id":133,"manufacturer":"BMW","model":"7 Series","year":2008,"vin":"1FMJK1G55BE954084"}, -{"id":134,"manufacturer":"Acura","model":"TL","year":2009,"vin":"1D7RB1GT5BS546801"}, -{"id":135,"manufacturer":"Mercury","model":"Villager","year":1993,"vin":"1C3CDFBB2ED555829"}, -{"id":136,"manufacturer":"Hummer","model":"H3","year":2008,"vin":"1FTEX1CM1BF676492"}, -{"id":137,"manufacturer":"Toyota","model":"Yaris","year":2009,"vin":"WBA3B1C57DF477531"}, -{"id":138,"manufacturer":"Mitsubishi","model":"GTO","year":1996,"vin":"WAUMFAFL7CA438579"}, -{"id":139,"manufacturer":"Buick","model":"Rendezvous","year":2005,"vin":"1C4SDJET2CC203772"}, -{"id":140,"manufacturer":"Mercedes-Benz","model":"500SL","year":1993,"vin":"2D4RN5DG1BR777067"}, -{"id":141,"manufacturer":"Audi","model":"S4","year":2007,"vin":"1GYS4KEF5ER213108"}, -{"id":142,"manufacturer":"Volkswagen","model":"Touareg","year":2012,"vin":"3N1CE2CP4FL335506"}, -{"id":143,"manufacturer":"Toyota","model":"Land Cruiser","year":2013,"vin":"WAULT54B43N914706"}, -{"id":144,"manufacturer":"Ford","model":"Taurus","year":2002,"vin":"5N1AN0NW1FN908838"}, -{"id":145,"manufacturer":"Dodge","model":"Neon","year":2003,"vin":"WAUAH68D21A938274"}, -{"id":146,"manufacturer":"Pontiac","model":"Bonneville","year":1997,"vin":"JN1BJ0HP4EM842608"}, -{"id":147,"manufacturer":"Chrysler","model":"PT Cruiser","year":2006,"vin":"1VWAS7A34FC864537"}, -{"id":148,"manufacturer":"Infiniti","model":"Q","year":1997,"vin":"WAU4FAFRXBA936178"}, -{"id":149,"manufacturer":"Toyota","model":"Previa","year":1994,"vin":"WAUSGAFC8CN024580"}, -{"id":150,"manufacturer":"Mercedes-Benz","model":"SL-Class","year":1987,"vin":"2C3CCABG4FH043284"}, -{"id":151,"manufacturer":"Lexus","model":"LS","year":1997,"vin":"YV4852CT5A1728900"}, -{"id":152,"manufacturer":"Bentley","model":"Continental Flying Spur","year":2008,"vin":"1G4PT5SV9E4040777"}, -{"id":153,"manufacturer":"Austin","model":"Mini Cooper","year":1964,"vin":"WBAAN37451N780255"}, -{"id":154,"manufacturer":"Ford","model":"Escort","year":2004,"vin":"1N4AA5AP1AC815923"}, -{"id":155,"manufacturer":"Cadillac","model":"Eldorado","year":1994,"vin":"1FTSW2A54AE740200"}, -{"id":156,"manufacturer":"Hummer","model":"H3T","year":2009,"vin":"WA1AY74L89D661804"}, -{"id":157,"manufacturer":"Mitsubishi","model":"Montero Sport","year":2004,"vin":"1C6RD7PT2CS221667"}, -{"id":158,"manufacturer":"Mercury","model":"Grand Marquis","year":2002,"vin":"KMHGH4JH0CU910517"}, -{"id":159,"manufacturer":"Pontiac","model":"G5","year":2009,"vin":"4T1BF1FK2CU714114"}, -{"id":160,"manufacturer":"Buick","model":"Enclave","year":2010,"vin":"WBA3B9C58EP248236"}, -{"id":161,"manufacturer":"Nissan","model":"300ZX","year":1993,"vin":"JTDKDTB3XD1382432"}, -{"id":162,"manufacturer":"Buick","model":"LeSabre","year":2005,"vin":"WP0AA2A89CS133074"}, -{"id":163,"manufacturer":"Dodge","model":"Ramcharger","year":1993,"vin":"1YVHZ8BHXD5087919"}, -{"id":164,"manufacturer":"Saturn","model":"S-Series","year":1996,"vin":"2C3CDXBG5FH177415"}, -{"id":165,"manufacturer":"Toyota","model":"Tundra","year":2001,"vin":"19XFB2E55CE903650"}, -{"id":166,"manufacturer":"Land Rover","model":"Range Rover Sport","year":2006,"vin":"WA1CGAFP0FA879564"}, -{"id":167,"manufacturer":"Toyota","model":"4Runner","year":2012,"vin":"5TDBKRFH2FS108744"}, -{"id":168,"manufacturer":"Audi","model":"TT","year":2010,"vin":"3GYFNCE34DS439811"}, -{"id":169,"manufacturer":"Lexus","model":"LS","year":1989,"vin":"3VW4S7AT1EM100803"}, -{"id":170,"manufacturer":"Pontiac","model":"Firebird","year":1989,"vin":"NM0KS9BN9AT554148"}, -{"id":171,"manufacturer":"Mercury","model":"Sable","year":2003,"vin":"JH4KA966X2C602541"}, -{"id":172,"manufacturer":"Buick","model":"Century","year":1997,"vin":"SAJWA1EKXEM421474"}, -{"id":173,"manufacturer":"Ford","model":"Explorer Sport Trac","year":2004,"vin":"WBSDE934X2C328316"}, -{"id":174,"manufacturer":"Toyota","model":"T100","year":1994,"vin":"1N4AA5APXCC263793"}, -{"id":175,"manufacturer":"Ford","model":"Escape","year":2008,"vin":"5TDBW5G15DS615116"}, -{"id":176,"manufacturer":"Audi","model":"RS4","year":2008,"vin":"1GYS4DEF7BR144882"}, -{"id":177,"manufacturer":"Geo","model":"Prizm","year":1996,"vin":"JN1BJ0HR7EM713697"}, -{"id":178,"manufacturer":"Mazda","model":"Miata MX-5","year":1996,"vin":"WAUNF98P78A475948"}, -{"id":179,"manufacturer":"Volkswagen","model":"GTI","year":2006,"vin":"WBXPC93597W767096"}, -{"id":180,"manufacturer":"Ford","model":"Bronco","year":1995,"vin":"WAUPL58E55A875589"}, -{"id":181,"manufacturer":"Mazda","model":"Miata MX-5","year":2009,"vin":"2HKRM3H3XCH830908"}, -{"id":182,"manufacturer":"Toyota","model":"Prius c","year":2012,"vin":"3VW1K7AJXBM406329"}, -{"id":183,"manufacturer":"Nissan","model":"JUKE","year":2011,"vin":"WAUVC68E85A875535"}, -{"id":184,"manufacturer":"Volvo","model":"C70","year":2013,"vin":"WBAGJ03441D528660"}, -{"id":185,"manufacturer":"Chevrolet","model":"S10 Blazer","year":1993,"vin":"WBAVM5C52FV161182"}, -{"id":186,"manufacturer":"Eagle","model":"Talon","year":1990,"vin":"WP0AA2A87BU461130"}, -{"id":187,"manufacturer":"Pontiac","model":"6000","year":1990,"vin":"5TDBW5G11AS316153"}, -{"id":188,"manufacturer":"Mercedes-Benz","model":"M-Class","year":2011,"vin":"5LMJJ2HT2FE635463"}, -{"id":189,"manufacturer":"Dodge","model":"Ram 2500 Club","year":1998,"vin":"2T1BURHEXFC832137"}, -{"id":190,"manufacturer":"Pontiac","model":"Vibe","year":2005,"vin":"1FTEW1CM7BK667113"}, -{"id":191,"manufacturer":"Mercedes-Benz","model":"S-Class","year":1998,"vin":"5FPYK1F64EB407639"}, -{"id":192,"manufacturer":"Mazda","model":"MX-5","year":2006,"vin":"JN1CV6EK5CM158264"}, -{"id":193,"manufacturer":"Dodge","model":"Ram Van 3500","year":2002,"vin":"WVWAN7AN7EE083008"}, -{"id":194,"manufacturer":"BMW","model":"Z4 M","year":2006,"vin":"KM8JT3AB7DU995934"}, -{"id":195,"manufacturer":"Kia","model":"Sorento","year":2008,"vin":"KMHHT6KD8AU824895"}, -{"id":196,"manufacturer":"Mitsubishi","model":"Truck","year":1993,"vin":"SCBDR33W98C113743"}, -{"id":197,"manufacturer":"Cadillac","model":"Allante","year":1992,"vin":"5NPDH4AE9CH826686"}, -{"id":198,"manufacturer":"Dodge","model":"Ram Van B350","year":1993,"vin":"1G4HP54K844979882"}, -{"id":199,"manufacturer":"Buick","model":"Century","year":2005,"vin":"3C4PDCBB9FT962411"}, -{"id":200,"manufacturer":"Ford","model":"E-Series","year":2003,"vin":"WAULFAFR0DA591869"}, -{"id":201,"manufacturer":"Mazda","model":"RX-7","year":1994,"vin":"1N6AF0LY8FN997259"}, -{"id":202,"manufacturer":"Porsche","model":"Boxster","year":2003,"vin":"1G6DN57S450338924"}, -{"id":203,"manufacturer":"Volkswagen","model":"Fox","year":1988,"vin":"1FTEX1CM4CF501431"}, -{"id":204,"manufacturer":"Daihatsu","model":"Rocky","year":1992,"vin":"3N6CM0KN5DK701428"}, -{"id":205,"manufacturer":"Nissan","model":"Maxima","year":1993,"vin":"3LN6L2G98DR094065"}, -{"id":206,"manufacturer":"Buick","model":"Century","year":2004,"vin":"WBANB33575C129252"}, -{"id":207,"manufacturer":"Suzuki","model":"SX4","year":2010,"vin":"WAUKF78E55A835073"}, -{"id":208,"manufacturer":"Ford","model":"Explorer Sport","year":2000,"vin":"JM3TB2MAXA0836672"}, -{"id":209,"manufacturer":"Pontiac","model":"Grand Prix","year":1967,"vin":"1G4HD5EM7AU038704"}, -{"id":210,"manufacturer":"Lexus","model":"ES","year":1993,"vin":"SCBZU25E31C079971"}, -{"id":211,"manufacturer":"Porsche","model":"Panamera","year":2013,"vin":"19VDE3F37DE344646"}, -{"id":212,"manufacturer":"Isuzu","model":"Ascender","year":2009,"vin":"JH4DC530X4S221101"}, -{"id":213,"manufacturer":"Dodge","model":"Avenger","year":2012,"vin":"KNAFX6A80F5571901"}, -{"id":214,"manufacturer":"Kia","model":"Rio","year":2013,"vin":"WAUFL54D01N908932"}, -{"id":215,"manufacturer":"Plymouth","model":"Neon","year":2001,"vin":"YV4902DZ8B2451919"}, -{"id":216,"manufacturer":"Toyota","model":"MR2","year":2004,"vin":"WAUKF98E87A664527"}, -{"id":217,"manufacturer":"Nissan","model":"Frontier","year":2011,"vin":"KNDJT2A1XB7497180"}, -{"id":218,"manufacturer":"Mercedes-Benz","model":"Sprinter 2500","year":2012,"vin":"2C3CCACG6CH648563"}, -{"id":219,"manufacturer":"Pontiac","model":"Grand Prix","year":1976,"vin":"WAUWGAFB7BN241576"}, -{"id":220,"manufacturer":"Isuzu","model":"Ascender","year":2008,"vin":"2B3CA7CW3AH920769"}, -{"id":221,"manufacturer":"Mitsubishi","model":"Expo","year":1993,"vin":"5FRYD4H68EB970225"}, -{"id":222,"manufacturer":"Ford","model":"Ranger","year":2003,"vin":"1FAHP2DWXCG998572"}, -{"id":223,"manufacturer":"Dodge","model":"Viper","year":2002,"vin":"3D7JB1EK1AG281999"}, -{"id":224,"manufacturer":"Mercedes-Benz","model":"S-Class","year":2000,"vin":"1FTSW3A51AE341864"}, -{"id":225,"manufacturer":"Kia","model":"Sephia","year":2001,"vin":"JN1CV6EK3BM856225"}, -{"id":226,"manufacturer":"Chevrolet","model":"Lumina","year":1992,"vin":"WAUEFAFL6CN922031"}, -{"id":227,"manufacturer":"Ram","model":"2500","year":2011,"vin":"KNADM4A39D6907948"}, -{"id":228,"manufacturer":"Mazda","model":"B-Series","year":2009,"vin":"WP0CB2A88CS445828"}, -{"id":229,"manufacturer":"Ford","model":"GT500","year":2009,"vin":"WAUKF68E25A408203"}, -{"id":230,"manufacturer":"Kia","model":"Optima","year":2003,"vin":"WAULT68E44A601383"}, -{"id":231,"manufacturer":"Lexus","model":"LX","year":2011,"vin":"SCBDC47L49C611728"}, -{"id":232,"manufacturer":"Acura","model":"NSX","year":1998,"vin":"2HNYD18755H763126"}, -{"id":233,"manufacturer":"Buick","model":"Park Avenue","year":1993,"vin":"1G4GB5GR6FF373068"}, -{"id":234,"manufacturer":"Hyundai","model":"Elantra","year":2010,"vin":"JA4AD3A30FZ898097"}, -{"id":235,"manufacturer":"Scion","model":"xD","year":2012,"vin":"1GYFK56249R376911"}, -{"id":236,"manufacturer":"Scion","model":"tC","year":2009,"vin":"3D7JB1ET6BG500918"}, -{"id":237,"manufacturer":"GMC","model":"Yukon","year":2012,"vin":"2G61R5S36D9324101"}, -{"id":238,"manufacturer":"Chevrolet","model":"Colorado","year":2012,"vin":"JN8AE2KP6B9821926"}, -{"id":239,"manufacturer":"Maserati","model":"Quattroporte","year":2012,"vin":"2G4WB52K521688421"}, -{"id":240,"manufacturer":"Lamborghini","model":"Gallardo","year":2009,"vin":"WP0AB2A80CU389007"}, -{"id":241,"manufacturer":"Mercedes-Benz","model":"G-Class","year":2008,"vin":"JHMZF1C44CS030944"}, -{"id":242,"manufacturer":"Mercury","model":"Milan","year":2007,"vin":"WBA6B4C5XFD242425"}, -{"id":243,"manufacturer":"Mercury","model":"Mountaineer","year":2004,"vin":"3D73Y4HL1BG799626"}, -{"id":244,"manufacturer":"Chrysler","model":"Cirrus","year":1995,"vin":"SCFAD02A95G754495"}, -{"id":245,"manufacturer":"Cadillac","model":"DeVille","year":1998,"vin":"WP0AB2A85CS751070"}, -{"id":246,"manufacturer":"Chevrolet","model":"Malibu","year":2012,"vin":"1GT010CG1CF324677"}, -{"id":247,"manufacturer":"Dodge","model":"Stratus","year":2001,"vin":"1B3CB5HA9AD996007"}, -{"id":248,"manufacturer":"Mitsubishi","model":"Endeavor","year":2006,"vin":"1VWAP7A34EC359680"}, -{"id":249,"manufacturer":"Volkswagen","model":"Jetta","year":2000,"vin":"WBSKG9C51DJ503335"}, -{"id":250,"manufacturer":"Dodge","model":"Viper","year":2000,"vin":"1G6AL5SX3D0244527"}, -{"id":251,"manufacturer":"Chevrolet","model":"Sportvan G20","year":1994,"vin":"2B3CK4CV1AH642330"}, -{"id":252,"manufacturer":"Chevrolet","model":"Camaro","year":1985,"vin":"1C6RD6FK6CS013875"}, -{"id":253,"manufacturer":"BMW","model":"8 Series","year":1996,"vin":"VNKKTUD37FA505474"}, -{"id":254,"manufacturer":"BMW","model":"6 Series","year":2007,"vin":"1G4GE5EV4AF528135"}, -{"id":255,"manufacturer":"Audi","model":"RS 4","year":2008,"vin":"KNDJN2A24E7325699"}, -{"id":256,"manufacturer":"Chevrolet","model":"Equinox","year":2009,"vin":"3D73Y4CL8BG837165"}, -{"id":257,"manufacturer":"Pontiac","model":"Grand Prix","year":2002,"vin":"137FA90341E529092"}, -{"id":258,"manufacturer":"Subaru","model":"Legacy","year":1989,"vin":"WBA3F9C52EK121886"}, -{"id":259,"manufacturer":"Geo","model":"Tracker","year":1997,"vin":"WBAWC73539E450658"}, -{"id":260,"manufacturer":"Chevrolet","model":"Silverado 3500","year":2004,"vin":"JH4DC53816S373292"}, -{"id":261,"manufacturer":"Ferrari","model":"599 GTB Fiorano","year":2008,"vin":"SCFFDCCD0CG935109"}, -{"id":262,"manufacturer":"Mazda","model":"Mazdaspeed 3","year":2008,"vin":"5UXZV4C56BL576487"}, -{"id":263,"manufacturer":"BMW","model":"5 Series","year":2007,"vin":"2T1BURHE0EC243872"}, -{"id":264,"manufacturer":"Volkswagen","model":"GTI","year":1989,"vin":"WBAWR3C5XAP181946"}, -{"id":265,"manufacturer":"Suzuki","model":"Esteem","year":1999,"vin":"3N1CN7AP3FL961922"}, -{"id":266,"manufacturer":"Isuzu","model":"Trooper","year":1998,"vin":"1FTEW1C83FK289705"}, -{"id":267,"manufacturer":"Subaru","model":"Outback","year":2011,"vin":"1D7RB1CT4BS570559"}, -{"id":268,"manufacturer":"BMW","model":"5 Series","year":2004,"vin":"WBAPL5C55BA183769"}, -{"id":269,"manufacturer":"Nissan","model":"Pathfinder","year":1999,"vin":"1C4NJPBA0CD896833"}, -{"id":270,"manufacturer":"Ford","model":"Festiva","year":1989,"vin":"5N1AA0NC0FN616440"}, -{"id":271,"manufacturer":"Honda","model":"Accord","year":1996,"vin":"1N6AA0CC2EN356271"}, -{"id":272,"manufacturer":"Mitsubishi","model":"Diamante","year":2001,"vin":"1G6KD57Y49U219090"}, -{"id":273,"manufacturer":"Volkswagen","model":"Routan","year":2009,"vin":"3VWML7AJ3CM458817"}, -{"id":274,"manufacturer":"Geo","model":"Prizm","year":1993,"vin":"WBAUL7C53CV303724"}, -{"id":275,"manufacturer":"Buick","model":"Electra","year":1989,"vin":"2T2BK1BA8EC617668"}, -{"id":276,"manufacturer":"Chevrolet","model":"Blazer","year":2001,"vin":"WBAEV53453K560170"}, -{"id":277,"manufacturer":"Acura","model":"ZDX","year":2010,"vin":"SCBCP73W49C107410"}, -{"id":278,"manufacturer":"Toyota","model":"Land Cruiser","year":2003,"vin":"1VWAS7A33FC264172"}, -{"id":279,"manufacturer":"Mercury","model":"Villager","year":1993,"vin":"19UUA9F7XEA744084"}, -{"id":280,"manufacturer":"Dodge","model":"Ram 3500","year":1999,"vin":"WBAPH73539E067227"}, -{"id":281,"manufacturer":"Honda","model":"Accord Crosstour","year":2010,"vin":"1GYEC63T43R656007"}, -{"id":282,"manufacturer":"Ford","model":"Excursion","year":2005,"vin":"3N1CE2CPXEL607670"}, -{"id":283,"manufacturer":"Volkswagen","model":"CC","year":2011,"vin":"WBAFR9C59DC101440"}, -{"id":284,"manufacturer":"Mitsubishi","model":"Galant","year":1990,"vin":"WAUDF48H39K026432"}, -{"id":285,"manufacturer":"Toyota","model":"Celica","year":1976,"vin":"KMHFH4JG5EA296278"}, -{"id":286,"manufacturer":"Mazda","model":"Miata MX-5","year":2002,"vin":"WBAYA6C55FG799183"}, -{"id":287,"manufacturer":"Volvo","model":"S40","year":2005,"vin":"WAUJT58E02A009008"}, -{"id":288,"manufacturer":"Chevrolet","model":"3500","year":1993,"vin":"2FMDK3AC5AB053310"}, -{"id":289,"manufacturer":"Ford","model":"Crown Victoria","year":2008,"vin":"WAUJC68E33A838338"}, -{"id":290,"manufacturer":"Chevrolet","model":"Tahoe","year":2001,"vin":"1FMJU1F5XAE379622"}, -{"id":291,"manufacturer":"Land Rover","model":"Discovery","year":1999,"vin":"JTDKDTB34C1955260"}, -{"id":292,"manufacturer":"Ford","model":"Taurus","year":2000,"vin":"2D4JN1AG8BR217783"}, -{"id":293,"manufacturer":"Nissan","model":"370Z","year":2009,"vin":"WAUDH48H17K009359"}, -{"id":294,"manufacturer":"Ford","model":"F150","year":2009,"vin":"2C3CDZAG9FH475673"}, -{"id":295,"manufacturer":"Chevrolet","model":"Monte Carlo","year":2007,"vin":"JN8AF5MR3CT598035"}, -{"id":296,"manufacturer":"Honda","model":"FCX Clarity","year":2012,"vin":"1GYFK43539R129372"}, -{"id":297,"manufacturer":"GMC","model":"Rally Wagon G3500","year":1995,"vin":"WVGAV7AX1CW177583"}, -{"id":298,"manufacturer":"Mercury","model":"Villager","year":1994,"vin":"1HGCR6F39EA940033"}, -{"id":299,"manufacturer":"Buick","model":"Coachbuilder","year":1990,"vin":"3VWKX7AJ1CM272849"}, -{"id":300,"manufacturer":"Oldsmobile","model":"Silhouette","year":1995,"vin":"JH4KB16517C397866"}, -{"id":301,"manufacturer":"Dodge","model":"Charger","year":2007,"vin":"WVWAB7AJ0CW840389"}, -{"id":302,"manufacturer":"Chrysler","model":"New Yorker","year":1993,"vin":"1G6DK5EY2B0431095"}, -{"id":303,"manufacturer":"Lotus","model":"Elise","year":2006,"vin":"JTDZN3EUXFJ322069"}, -{"id":304,"manufacturer":"Chrysler","model":"Fifth Ave","year":1993,"vin":"1FTNF1E84AK996544"}, -{"id":305,"manufacturer":"BMW","model":"3 Series","year":2006,"vin":"WAUSFAFL6CA557487"}, -{"id":306,"manufacturer":"Volkswagen","model":"Fox","year":1988,"vin":"1FTEX1CM3BF660973"}, -{"id":307,"manufacturer":"Oldsmobile","model":"88","year":1993,"vin":"1D4PU6GX9BW293327"}, -{"id":308,"manufacturer":"Chevrolet","model":"Avalanche","year":2009,"vin":"YV140MEB5F1903387"}, -{"id":309,"manufacturer":"Nissan","model":"Xterra","year":2012,"vin":"1FMJK1FT6FE017671"}, -{"id":310,"manufacturer":"Jeep","model":"Wrangler","year":2000,"vin":"WBA3B5C59FF875513"}, -{"id":311,"manufacturer":"Mazda","model":"Tribute","year":2005,"vin":"1FBSS3BL5AD777247"}, -{"id":312,"manufacturer":"Ford","model":"E250","year":2006,"vin":"JH4DC54884S820325"}, -{"id":313,"manufacturer":"Honda","model":"Civic","year":2003,"vin":"1GD220CG4CZ694585"}, -{"id":314,"manufacturer":"Ford","model":"Festiva","year":1991,"vin":"3N1AB6AP9AL100330"}, -{"id":315,"manufacturer":"Dodge","model":"Caravan","year":1999,"vin":"WA1CGAFE0ED737243"}, -{"id":316,"manufacturer":"Buick","model":"Riviera","year":1997,"vin":"1N4AB7AP8EN231683"}, -{"id":317,"manufacturer":"Pontiac","model":"Grand Prix","year":1996,"vin":"WBAUC7C59AV144043"}, -{"id":318,"manufacturer":"Toyota","model":"Highlander","year":2008,"vin":"1D4PU5GK3AW715511"}, -{"id":319,"manufacturer":"BMW","model":"5 Series","year":1995,"vin":"JN8AS5MT7FW923733"}, -{"id":320,"manufacturer":"Land Rover","model":"Range Rover","year":1990,"vin":"WBA3C1C55CF081111"}, -{"id":321,"manufacturer":"Mercedes-Benz","model":"M-Class","year":2011,"vin":"1FTSW2A5XAE112299"}, -{"id":322,"manufacturer":"Cadillac","model":"Escalade","year":2008,"vin":"KMHHT6KDXAU216084"}, -{"id":323,"manufacturer":"Lincoln","model":"Continental","year":1990,"vin":"WAUAC48H44K697287"}, -{"id":324,"manufacturer":"Volkswagen","model":"Golf","year":2000,"vin":"WDDEJ7EB9EA600044"}, -{"id":325,"manufacturer":"Chevrolet","model":"Uplander","year":2005,"vin":"2V4RW3D13AR649640"}, -{"id":326,"manufacturer":"Porsche","model":"Boxster","year":2011,"vin":"5J8TB18268A707307"}, -{"id":327,"manufacturer":"Bentley","model":"Continental GTC","year":2010,"vin":"1G6DN57S750166954"}, -{"id":328,"manufacturer":"Chevrolet","model":"Tracker","year":2002,"vin":"WDDHF0EB9FB529820"}, -{"id":329,"manufacturer":"Volkswagen","model":"GTI","year":2008,"vin":"1FTWW3A52AE126866"}, -{"id":330,"manufacturer":"Chevrolet","model":"Lumina","year":1998,"vin":"JTEBU4BF2DK227041"}, -{"id":331,"manufacturer":"MINI","model":"Cooper Clubman","year":2012,"vin":"19UYA42451A409972"}, -{"id":332,"manufacturer":"Cadillac","model":"Escalade","year":2004,"vin":"2G4WS55JX31535375"}, -{"id":333,"manufacturer":"Buick","model":"Hearse","year":1996,"vin":"JH4KC1F50EC795385"}, -{"id":334,"manufacturer":"Mitsubishi","model":"Pajero","year":1995,"vin":"1FAHP2DW2AG936001"}, -{"id":335,"manufacturer":"Suzuki","model":"Esteem","year":1997,"vin":"WVWAA7AJ9CW928750"}, -{"id":336,"manufacturer":"Honda","model":"Prelude","year":1984,"vin":"JH4CU2F69AC616853"}, -{"id":337,"manufacturer":"Dodge","model":"Ram Van 1500","year":1996,"vin":"SALWG2WF2EA141062"}, -{"id":338,"manufacturer":"Scion","model":"tC","year":2008,"vin":"1G6DP5ED4B0830265"}, -{"id":339,"manufacturer":"Pontiac","model":"LeMans","year":1992,"vin":"WAUNF78P56A798476"}, -{"id":340,"manufacturer":"Toyota","model":"FJ Cruiser","year":2011,"vin":"1FTSW3B51AE330961"}, -{"id":341,"manufacturer":"Toyota","model":"Matrix","year":2004,"vin":"3VW507AT2EM114087"}, -{"id":342,"manufacturer":"Audi","model":"A5","year":2010,"vin":"1G6DK8EV0A0154419"}, -{"id":343,"manufacturer":"Audi","model":"S4","year":1994,"vin":"JTDKTUD39ED813431"}, -{"id":344,"manufacturer":"Mercedes-Benz","model":"300SD","year":1993,"vin":"WBAWC33538P013500"}, -{"id":345,"manufacturer":"Buick","model":"LeSabre","year":1987,"vin":"5TDBW5G18FS134246"}, -{"id":346,"manufacturer":"Scion","model":"xA","year":2005,"vin":"2T1BPRHE2FC506095"}, -{"id":347,"manufacturer":"Toyota","model":"Avalon","year":2006,"vin":"WA1WMBFE9CD799667"}, -{"id":348,"manufacturer":"GMC","model":"Savana 3500","year":1996,"vin":"WAUGFAFR2EA194294"}, -{"id":349,"manufacturer":"Buick","model":"LeSabre","year":1986,"vin":"1G4GG5G34DF704496"}, -{"id":350,"manufacturer":"Plymouth","model":"Voyager","year":1985,"vin":"5TDBM5G17AS961198"}, -{"id":351,"manufacturer":"Suzuki","model":"Swift","year":2005,"vin":"WVWAN7AN1EE833521"}, -{"id":352,"manufacturer":"Subaru","model":"Loyale","year":1992,"vin":"1G6AM1R39F0563734"}, -{"id":353,"manufacturer":"Honda","model":"Passport","year":1997,"vin":"WBAGL63433D053308"}, -{"id":354,"manufacturer":"BMW","model":"6 Series","year":2009,"vin":"WAUGF98K49A452903"}, -{"id":355,"manufacturer":"BMW","model":"5 Series","year":2007,"vin":"2FMDK3AK4BB099770"}, -{"id":356,"manufacturer":"Ford","model":"Crown Victoria","year":1998,"vin":"1G6AT5SX2E0695725"}, -{"id":357,"manufacturer":"Volvo","model":"XC60","year":2010,"vin":"WVWAA7AH7BV468201"}, -{"id":358,"manufacturer":"BMW","model":"7 Series","year":2000,"vin":"WAULF78K59N953164"}, -{"id":359,"manufacturer":"Ford","model":"Focus","year":2005,"vin":"WBAVC53538F767848"}, -{"id":360,"manufacturer":"Mercedes-Benz","model":"CLK-Class","year":2003,"vin":"19XFB4F25FE542330"}, -{"id":361,"manufacturer":"Fiat","model":"500","year":2012,"vin":"WAUYGBFC2CN257676"}, -{"id":362,"manufacturer":"Volvo","model":"940","year":1993,"vin":"WAULC58E52A454563"}, -{"id":363,"manufacturer":"Ford","model":"Fusion","year":2013,"vin":"WBAGL63493D928195"}, -{"id":364,"manufacturer":"Ford","model":"E250","year":2011,"vin":"WAUWGBFCXEN304396"}, -{"id":365,"manufacturer":"Chevrolet","model":"Silverado","year":2006,"vin":"19VDE2E58EE679428"}, -{"id":366,"manufacturer":"Volkswagen","model":"GTI","year":2004,"vin":"WAUDFAFC2CN755050"}, -{"id":367,"manufacturer":"Land Rover","model":"Discovery","year":1994,"vin":"JM3TB2MA1A0096722"}, -{"id":368,"manufacturer":"Isuzu","model":"Space","year":1994,"vin":"JH4CL95964C614313"}, -{"id":369,"manufacturer":"Ford","model":"F-Series","year":2006,"vin":"5GAKRAKD2EJ446450"}, -{"id":370,"manufacturer":"Lincoln","model":"Navigator","year":2000,"vin":"WAUDGBFL2BA715477"}, -{"id":371,"manufacturer":"Pontiac","model":"Sunbird","year":1985,"vin":"KNAGM4A73B5423471"}, -{"id":372,"manufacturer":"Lincoln","model":"Continental","year":2002,"vin":"JN8AZ1MU4CW682934"}, -{"id":373,"manufacturer":"Buick","model":"Enclave","year":2011,"vin":"JA4AS2AW7CU027636"}, -{"id":374,"manufacturer":"Chevrolet","model":"Beretta","year":1995,"vin":"3D4PG9FV2AT903873"}, -{"id":375,"manufacturer":"Land Rover","model":"Defender","year":1992,"vin":"WBALW7C55CD086007"}, -{"id":376,"manufacturer":"GMC","model":"Savana 2500","year":2005,"vin":"WVGFF9BP1BD894508"}, -{"id":377,"manufacturer":"Chrysler","model":"PT Cruiser","year":2001,"vin":"2G4WD582X91781575"}, -{"id":378,"manufacturer":"BMW","model":"X5","year":2008,"vin":"SAJWA8JH9EM532889"}, -{"id":379,"manufacturer":"GMC","model":"Rally Wagon G2500","year":1995,"vin":"JA32X8HW0AU041023"}, -{"id":380,"manufacturer":"Toyota","model":"Corolla","year":2004,"vin":"WAULV94E78N750547"}, -{"id":381,"manufacturer":"Toyota","model":"Echo","year":2004,"vin":"SCFBB04CX9G334467"}, -{"id":382,"manufacturer":"Toyota","model":"TundraMax","year":2007,"vin":"WBAPK5C55BA976900"}, -{"id":383,"manufacturer":"Mazda","model":"Miata MX-5","year":2002,"vin":"WVGEF9BP1FD201728"}, -{"id":384,"manufacturer":"Hyundai","model":"Sonata","year":2009,"vin":"WAURMAFD7EN210419"}, -{"id":385,"manufacturer":"Lexus","model":"ES","year":2005,"vin":"2B3CJ7DW1AH315793"}, -{"id":386,"manufacturer":"Land Rover","model":"Discovery","year":2011,"vin":"1G6KD57Y36U194050"}, -{"id":387,"manufacturer":"Honda","model":"S2000","year":2000,"vin":"3LN6L2LU1DR926212"}, -{"id":388,"manufacturer":"Hyundai","model":"Santa Fe","year":2003,"vin":"5N1AR1NB2AC384448"}, -{"id":389,"manufacturer":"Ford","model":"E150","year":2006,"vin":"1N4AL2AP9CC709019"}, -{"id":390,"manufacturer":"GMC","model":"Envoy XL","year":2002,"vin":"2G4WB55K331559574"}, -{"id":391,"manufacturer":"Audi","model":"S8","year":2009,"vin":"1C4SDHCT5EC024589"}, -{"id":392,"manufacturer":"Subaru","model":"Legacy","year":1990,"vin":"WAUYP64B81N298215"}, -{"id":393,"manufacturer":"GMC","model":"Envoy XL","year":2006,"vin":"2T1KU4EE2BC649123"}, -{"id":394,"manufacturer":"Audi","model":"S5","year":2011,"vin":"5UXFG43509L798367"}, -{"id":395,"manufacturer":"Toyota","model":"Avalon","year":1998,"vin":"3N1CN7AP0EK068708"}, -{"id":396,"manufacturer":"Infiniti","model":"Q","year":2006,"vin":"JTHBK1EG8B2801067"}, -{"id":397,"manufacturer":"Mitsubishi","model":"Montero Sport","year":1999,"vin":"5TDDK3DC4CS563460"}, -{"id":398,"manufacturer":"Mitsubishi","model":"Galant","year":1999,"vin":"JM1CW2BL9D0240801"}, -{"id":399,"manufacturer":"Chevrolet","model":"Cobalt","year":2005,"vin":"3D73M4EL2BG270086"}, -{"id":400,"manufacturer":"Toyota","model":"Highlander","year":2005,"vin":"4USBT33504L083078"}, -{"id":401,"manufacturer":"Buick","model":"Riviera","year":1999,"vin":"WAUBH78E46A751385"}, -{"id":402,"manufacturer":"Isuzu","model":"i-290","year":2008,"vin":"1FTEW1C88FK976694"}, -{"id":403,"manufacturer":"Hyundai","model":"Tiburon","year":2006,"vin":"2G4WS55J341661904"}, -{"id":404,"manufacturer":"Nissan","model":"240SX","year":1992,"vin":"JN1CV6EK9BM396116"}, -{"id":405,"manufacturer":"Acura","model":"RDX","year":2011,"vin":"SCFFDABE4CG724557"}, -{"id":406,"manufacturer":"Pontiac","model":"Grand Am","year":2002,"vin":"WBALX3C58CC552007"}, -{"id":407,"manufacturer":"Audi","model":"Q7","year":2009,"vin":"1G6DM577490963439"}, -{"id":408,"manufacturer":"Mazda","model":"Tribute","year":2002,"vin":"JN8AZ2KR5DT869770"}, -{"id":409,"manufacturer":"Chevrolet","model":"HHR Panel","year":2006,"vin":"WAUAFAFL3EN827556"}, -{"id":410,"manufacturer":"Audi","model":"riolet","year":1996,"vin":"2G4GR5EK7C9285541"}, -{"id":411,"manufacturer":"Dodge","model":"Ram 1500","year":2003,"vin":"1N4AB7AP0EN822316"}, -{"id":412,"manufacturer":"Toyota","model":"Camry","year":2008,"vin":"1GYUKEEJ6AR384819"}, -{"id":413,"manufacturer":"Dodge","model":"Charger","year":2008,"vin":"JH4CU2F40CC924057"}, -{"id":414,"manufacturer":"Volkswagen","model":"Eurovan","year":1997,"vin":"WVGEF9BP9FD610608"}, -{"id":415,"manufacturer":"Nissan","model":"Quest","year":1994,"vin":"4T1BK3DB6BU911716"}, -{"id":416,"manufacturer":"Jaguar","model":"XJ Series","year":1993,"vin":"JHMZF1C48BS477839"}, -{"id":417,"manufacturer":"Land Rover","model":"Discovery","year":1996,"vin":"5N1AA0NC2FN643736"}, -{"id":418,"manufacturer":"Mercedes-Benz","model":"E-Class","year":2004,"vin":"KM8NU4CC1BU526197"}, -{"id":419,"manufacturer":"Subaru","model":"Outback Sport","year":2002,"vin":"1D4RD5GG7BC671875"}, -{"id":420,"manufacturer":"Chevrolet","model":"Suburban 2500","year":1993,"vin":"WAUJC68E34A420475"}, -{"id":421,"manufacturer":"Mitsubishi","model":"Chariot","year":1991,"vin":"5N1AA0NCXDN318412"}, -{"id":422,"manufacturer":"Cadillac","model":"Seville","year":1993,"vin":"1N6AF0LY6EN720513"}, -{"id":423,"manufacturer":"Hyundai","model":"Tucson","year":2011,"vin":"WBA6A0C52DD736917"}, -{"id":424,"manufacturer":"Mazda","model":"B-Series","year":2006,"vin":"WBAAV53481F579719"}, -{"id":425,"manufacturer":"Mercedes-Benz","model":"SLS-Class","year":2011,"vin":"TRUXD38J891667672"}, -{"id":426,"manufacturer":"Volvo","model":"V90","year":1997,"vin":"3D7JB1EK7BG159701"}, -{"id":427,"manufacturer":"Cadillac","model":"Seville","year":1993,"vin":"JTEBU5JR8A5893705"}, -{"id":428,"manufacturer":"Mitsubishi","model":"Eclipse","year":2002,"vin":"WBAKF5C59DJ807187"}, -{"id":429,"manufacturer":"Land Rover","model":"LR3","year":2006,"vin":"WAUEFBFL3EA425356"}, -{"id":430,"manufacturer":"Chevrolet","model":"Suburban 1500","year":2000,"vin":"JN8AZ1FY8BW975315"}, -{"id":431,"manufacturer":"Ford","model":"Focus","year":2013,"vin":"1FT7W2A63EE400587"}, -{"id":432,"manufacturer":"Dodge","model":"Ram Van 2500","year":2000,"vin":"SCFFDABM5DG563502"}, -{"id":433,"manufacturer":"Volvo","model":"S40","year":2003,"vin":"WBAWC73568E223060"}, -{"id":434,"manufacturer":"Saturn","model":"S-Series","year":1992,"vin":"19UUA8F73CA070366"}, -{"id":435,"manufacturer":"Dodge","model":"Ram Van B350","year":1993,"vin":"WA1CM94L09D017682"}, -{"id":436,"manufacturer":"Lexus","model":"LX","year":1997,"vin":"3C6TD4KT7CG768484"}, -{"id":437,"manufacturer":"Pontiac","model":"Safari","year":1989,"vin":"JN8AZ2NC0F9491722"}, -{"id":438,"manufacturer":"Saturn","model":"Relay","year":2005,"vin":"1D7RV1GT8BS095757"}, -{"id":439,"manufacturer":"Ford","model":"Mustang","year":1985,"vin":"1D4PT4GK8BW591766"}, -{"id":440,"manufacturer":"Dodge","model":"Grand Caravan","year":2005,"vin":"1N6AD0CU2DN044238"}, -{"id":441,"manufacturer":"Ford","model":"Escape","year":2008,"vin":"3VW4T7AT0DM785016"}, -{"id":442,"manufacturer":"BMW","model":"6 Series","year":2006,"vin":"KMHTC6ADXCU745419"}, -{"id":443,"manufacturer":"Mazda","model":"MX-3","year":1994,"vin":"WAUBH64B81N209570"}, -{"id":444,"manufacturer":"Jaguar","model":"XK","year":2006,"vin":"3VW507ATXFM417961"}, -{"id":445,"manufacturer":"Buick","model":"Enclave","year":2012,"vin":"WBALZ5C59CC610504"}, -{"id":446,"manufacturer":"Lincoln","model":"MKS","year":2010,"vin":"2LMDJ6JK3FB105883"}, -{"id":447,"manufacturer":"Mercedes-Benz","model":"300SE","year":1992,"vin":"WBAUP93509V415731"}, -{"id":448,"manufacturer":"Honda","model":"Element","year":2004,"vin":"1C6RD6NT6CS339895"}, -{"id":449,"manufacturer":"Toyota","model":"Supra","year":1997,"vin":"WBAYG6C59FD058566"}, -{"id":450,"manufacturer":"Infiniti","model":"QX","year":2000,"vin":"1GYUCHEF9AR696692"}, -{"id":451,"manufacturer":"Pontiac","model":"Aztek","year":2003,"vin":"YV1612FS6E2711591"}, -{"id":452,"manufacturer":"Jeep","model":"Wrangler","year":2004,"vin":"1N4AA5AP9BC232534"}, -{"id":453,"manufacturer":"GMC","model":"1500","year":1993,"vin":"WP0AA2A93BS243626"}, -{"id":454,"manufacturer":"Daewoo","model":"Nubira","year":2000,"vin":"WBAYF8C56ED543535"}, -{"id":455,"manufacturer":"Nissan","model":"Maxima","year":1994,"vin":"WBAUN93509V564811"}, -{"id":456,"manufacturer":"Dodge","model":"Ram","year":1994,"vin":"1GD312CG0CF757900"}, -{"id":457,"manufacturer":"Mazda","model":"Mazdaspeed 3","year":2007,"vin":"2C3CCABG5CH938925"}, -{"id":458,"manufacturer":"Maybach","model":"57","year":2003,"vin":"WBA3R1C56EF616240"}, -{"id":459,"manufacturer":"Plymouth","model":"Laser","year":1991,"vin":"19UUA962X9A240015"}, -{"id":460,"manufacturer":"Volvo","model":"V50","year":2009,"vin":"SCFBB04B27G746273"}, -{"id":461,"manufacturer":"Mercedes-Benz","model":"C-Class","year":1994,"vin":"1GD022CG0CZ939739"}, -{"id":462,"manufacturer":"Audi","model":"V8","year":1994,"vin":"5UXFB93563L397926"}, -{"id":463,"manufacturer":"Chrysler","model":"PT Cruiser","year":2005,"vin":"4T3BA3BB3FU364343"}, -{"id":464,"manufacturer":"Porsche","model":"911","year":2000,"vin":"WBAYE8C53DD686363"}, -{"id":465,"manufacturer":"Chevrolet","model":"Bel Air","year":1967,"vin":"1HGCR6F54FA748103"}, -{"id":466,"manufacturer":"Mercury","model":"Mariner","year":2005,"vin":"5YMKW8C54F0862960"}, -{"id":467,"manufacturer":"Infiniti","model":"Q","year":1998,"vin":"1G6AL5S39D0488115"}, -{"id":468,"manufacturer":"Mercury","model":"Sable","year":1999,"vin":"1G6DG8E56D0963414"}, -{"id":469,"manufacturer":"Kia","model":"Sephia","year":2000,"vin":"3LN6L2LU1ER392744"}, -{"id":470,"manufacturer":"Ford","model":"Tempo","year":1994,"vin":"2G4WF551911009725"}, -{"id":471,"manufacturer":"Toyota","model":"Tercel","year":1996,"vin":"YV1672MK0C2387648"}, -{"id":472,"manufacturer":"Mercedes-Benz","model":"GL-Class","year":2008,"vin":"WAU2GBFC9CN985937"}, -{"id":473,"manufacturer":"Lexus","model":"RX","year":2013,"vin":"JTHBK1GG4F2328660"}, -{"id":474,"manufacturer":"Volkswagen","model":"Jetta III","year":1994,"vin":"JH4NA12694T486031"}, -{"id":475,"manufacturer":"Aston Martin","model":"V8 Vantage","year":2009,"vin":"5UXFA93576L512489"}, -{"id":476,"manufacturer":"Pontiac","model":"Tempest","year":1961,"vin":"JN1CV6EK1AM559937"}, -{"id":477,"manufacturer":"Ford","model":"Bronco","year":1990,"vin":"5N1AA0NC6DN741780"}, -{"id":478,"manufacturer":"Audi","model":"A4","year":1998,"vin":"1C4RDJAG7EC574629"}, -{"id":479,"manufacturer":"Dodge","model":"Caravan","year":2003,"vin":"WBA4C9C54FD272103"}, -{"id":480,"manufacturer":"Audi","model":"A4","year":1997,"vin":"1G6AH5SX5E0211340"}, -{"id":481,"manufacturer":"Pontiac","model":"Sunfire","year":2000,"vin":"2LMHJ5AT5EB740705"}, -{"id":482,"manufacturer":"Mercedes-Benz","model":"SL-Class","year":1987,"vin":"5UXFA93516L710095"}, -{"id":483,"manufacturer":"Hyundai","model":"Sonata","year":2003,"vin":"WA1LMAFE8AD131434"}, -{"id":484,"manufacturer":"Panoz","model":"Esperante","year":2007,"vin":"4A31K3DTXAE065637"}, -{"id":485,"manufacturer":"GMC","model":"Sonoma","year":2002,"vin":"2HNYD18716H506949"}, -{"id":486,"manufacturer":"Chevrolet","model":"Silverado","year":2002,"vin":"WAURFAFR7DA898322"}, -{"id":487,"manufacturer":"Saturn","model":"VUE","year":2010,"vin":"3C6JD7CT6CG793397"}, -{"id":488,"manufacturer":"GMC","model":"Envoy XUV","year":2005,"vin":"2G4GS5EV5C9186506"}, -{"id":489,"manufacturer":"BMW","model":"6 Series","year":2010,"vin":"5N1AN0NU4AC021107"}, -{"id":490,"manufacturer":"Pontiac","model":"Grand Prix","year":1965,"vin":"WBAPK7C55AA305494"}, -{"id":491,"manufacturer":"Acura","model":"MDX","year":2011,"vin":"3D7TT2CT6AG034775"}, -{"id":492,"manufacturer":"Maybach","model":"62","year":2009,"vin":"1G6KY54973U013948"}, -{"id":493,"manufacturer":"Maybach","model":"57","year":2010,"vin":"TRUXD38J991557777"}, -{"id":494,"manufacturer":"Hyundai","model":"Tucson","year":2006,"vin":"1GD220CG5CZ372442"}, -{"id":495,"manufacturer":"Ford","model":"GT500","year":2008,"vin":"SCFPDCGP8EG256426"}, -{"id":496,"manufacturer":"Chevrolet","model":"Tahoe","year":1996,"vin":"5J8TB4H50GL091067"}, -{"id":497,"manufacturer":"BMW","model":"Z3","year":1997,"vin":"WAUZL54B41N241830"}, -{"id":498,"manufacturer":"Mercury","model":"Tracer","year":1998,"vin":"W04GP5EC6B1272652"}, -{"id":499,"manufacturer":"Honda","model":"Passport","year":1996,"vin":"JTHBC1KS6A5269126"}, -{"id":500,"manufacturer":"Chevrolet","model":"Silverado 2500","year":1999,"vin":"1FTEW1E88AF261171"}, -{"id":501,"manufacturer":"Pontiac","model":"Aztek","year":2003,"vin":"WDDJK6FA9FF903745"}, -{"id":502,"manufacturer":"Ford","model":"E250","year":2006,"vin":"5J6TF2H56DL954435"}, -{"id":503,"manufacturer":"Jeep","model":"Liberty","year":2010,"vin":"1LNHL9DK7EG327323"}, -{"id":504,"manufacturer":"BMW","model":"X6","year":2011,"vin":"WP0AB2A98AS082086"}, -{"id":505,"manufacturer":"Ferrari","model":"612 Scaglietti","year":2008,"vin":"1D7RV1CT3BS911733"}, -{"id":506,"manufacturer":"Mitsubishi","model":"Chariot","year":1995,"vin":"1C4SDHCT0CC993813"}, -{"id":507,"manufacturer":"Hyundai","model":"Accent","year":2002,"vin":"1N6AF0LX1FN535696"}, -{"id":508,"manufacturer":"Buick","model":"Regal","year":1996,"vin":"5GAER23D59J355471"}, -{"id":509,"manufacturer":"Acura","model":"NSX","year":2005,"vin":"5XXGM4A75CG568575"}, -{"id":510,"manufacturer":"Volkswagen","model":"Passat","year":2005,"vin":"WBAEV53473K029861"}, -{"id":511,"manufacturer":"Maserati","model":"Spyder","year":1989,"vin":"2LMDJ6JK4BB973417"}, -{"id":512,"manufacturer":"Lamborghini","model":"Murciélago LP640","year":2008,"vin":"WAUVT58EX5A548161"}, -{"id":513,"manufacturer":"Mitsubishi","model":"Mirage","year":1987,"vin":"1G4HP54K31U374079"}, -{"id":514,"manufacturer":"Chrysler","model":"Town & Country","year":1992,"vin":"1C4AJWAG8CL566152"}, -{"id":515,"manufacturer":"Ford","model":"F150","year":1995,"vin":"19UUA8F54DA144183"}, -{"id":516,"manufacturer":"Pontiac","model":"Firebird","year":1999,"vin":"WAUDG98E56A664120"}, -{"id":517,"manufacturer":"Kia","model":"Spectra","year":2009,"vin":"WAUBF78E17A460821"}, -{"id":518,"manufacturer":"Nissan","model":"Frontier","year":2001,"vin":"19UUA56763A023332"}, -{"id":519,"manufacturer":"Suzuki","model":"Grand Vitara","year":1999,"vin":"1G6DA5EG3A0481237"}, -{"id":520,"manufacturer":"Toyota","model":"RAV4","year":2008,"vin":"1G6DL67A880018898"}, -{"id":521,"manufacturer":"Chevrolet","model":"Suburban 1500","year":2012,"vin":"WAUNF68P36A079849"}, -{"id":522,"manufacturer":"Chevrolet","model":"G-Series G10","year":1995,"vin":"1D4PU7GX1AW345652"}, -{"id":523,"manufacturer":"Suzuki","model":"Kizashi","year":2010,"vin":"WDDNG7BB6BA686704"}, -{"id":524,"manufacturer":"Chevrolet","model":"Corvette","year":1992,"vin":"WAUSF98K39A177986"}, -{"id":525,"manufacturer":"Hummer","model":"H2","year":2003,"vin":"2FMDK3AK2DB543408"}, -{"id":526,"manufacturer":"Lamborghini","model":"Countach","year":1989,"vin":"1HGCP2F3XAA855386"}, -{"id":527,"manufacturer":"Oldsmobile","model":"Silhouette","year":2001,"vin":"5N1BA0NEXFN893053"}, -{"id":528,"manufacturer":"Bentley","model":"Continental GT","year":2012,"vin":"WBAVA33587P382210"}, -{"id":529,"manufacturer":"Suzuki","model":"SJ","year":1987,"vin":"WAUGL98E16A232729"}, -{"id":530,"manufacturer":"Oldsmobile","model":"Ciera","year":1996,"vin":"WBAWR3C54AP856366"}, -{"id":531,"manufacturer":"Mitsubishi","model":"Galant","year":2007,"vin":"WBABD53416P361114"}, -{"id":532,"manufacturer":"Buick","model":"Skylark","year":1988,"vin":"WAUPFAFM6AA628263"}, -{"id":533,"manufacturer":"Lincoln","model":"Aviator","year":2003,"vin":"WVWAA7AJ5CW005519"}, -{"id":534,"manufacturer":"Mazda","model":"626","year":1989,"vin":"JTHKD5BHXC2669834"}, -{"id":535,"manufacturer":"GMC","model":"Canyon","year":2008,"vin":"WAUEG78E56A790647"}, -{"id":536,"manufacturer":"Mercedes-Benz","model":"G-Class","year":2002,"vin":"WP1AE2A2XBL321803"}, -{"id":537,"manufacturer":"Pontiac","model":"Firebird","year":1999,"vin":"1G4HR54K214642193"}, -{"id":538,"manufacturer":"Toyota","model":"MR2","year":1985,"vin":"3GYFNAE32DS477428"}, -{"id":539,"manufacturer":"Ford","model":"Edge","year":2012,"vin":"3D73Y4EL0AG163847"}, -{"id":540,"manufacturer":"Honda","model":"Element","year":2005,"vin":"1G6DL8E32D0720872"}, -{"id":541,"manufacturer":"Hyundai","model":"Elantra","year":2012,"vin":"1N6AF0KY1FN769685"}, -{"id":542,"manufacturer":"Toyota","model":"Corolla","year":2009,"vin":"1C3CDZAB8DN231022"}, -{"id":543,"manufacturer":"Pontiac","model":"GTO","year":2004,"vin":"5N1AL0MM0DC559850"}, -{"id":544,"manufacturer":"Acura","model":"CL","year":2001,"vin":"3D73M4ELXAG548389"}, -{"id":545,"manufacturer":"GMC","model":"3500","year":1998,"vin":"WAUWFAFH5DN823380"}, -{"id":546,"manufacturer":"Oldsmobile","model":"Silhouette","year":1998,"vin":"W04GV5EV9B1861220"}, -{"id":547,"manufacturer":"Chevrolet","model":"Express 3500","year":2004,"vin":"3GTU2YEJ4DG253089"}, -{"id":548,"manufacturer":"Ford","model":"Expedition","year":1998,"vin":"WAUUL98E47A572560"}, -{"id":549,"manufacturer":"Porsche","model":"911","year":2006,"vin":"WBA3X5C53FD294652"}, -{"id":550,"manufacturer":"Toyota","model":"Sienna","year":2011,"vin":"KL4CJFSB2FB079464"}, -{"id":551,"manufacturer":"Chevrolet","model":"G-Series 1500","year":1996,"vin":"3VWKX7AJ5CM773131"}, -{"id":552,"manufacturer":"Ford","model":"Expedition EL","year":2010,"vin":"WAU2GAFCXCN679825"}, -{"id":553,"manufacturer":"BMW","model":"760","year":2003,"vin":"5GADV23W67D712340"}, -{"id":554,"manufacturer":"Mercury","model":"Capri","year":1994,"vin":"KMHCT4AEXFU857364"}, -{"id":555,"manufacturer":"Honda","model":"S2000","year":2003,"vin":"KM8JT3AFXFU499533"}, -{"id":556,"manufacturer":"Buick","model":"Regal","year":1988,"vin":"1G4GG5E35DF896742"}, -{"id":557,"manufacturer":"Dodge","model":"Aries","year":1981,"vin":"WUALNAFG0EN161695"}, -{"id":558,"manufacturer":"Chevrolet","model":"Camaro","year":1968,"vin":"WBAEN33452P390625"}, -{"id":559,"manufacturer":"Buick","model":"Skyhawk","year":1985,"vin":"5NPDH4AE7EH947624"}, -{"id":560,"manufacturer":"Toyota","model":"Sequoia","year":2008,"vin":"1FTSW3B59AE241848"}, -{"id":561,"manufacturer":"Volkswagen","model":"Golf III","year":1993,"vin":"JHMZF1C69CS154161"}, -{"id":562,"manufacturer":"Shelby","model":"GT500","year":1968,"vin":"TRURD38J891015675"}, -{"id":563,"manufacturer":"Ford","model":"Focus","year":2005,"vin":"TRUTC28N341545843"}, -{"id":564,"manufacturer":"Suzuki","model":"SJ 410","year":1986,"vin":"2C3CCAKT8CH806917"}, -{"id":565,"manufacturer":"Porsche","model":"944","year":1989,"vin":"1GYUCJEF7AR811460"}, -{"id":566,"manufacturer":"Suzuki","model":"Verona","year":2006,"vin":"5UXFB53515L696641"}, -{"id":567,"manufacturer":"Mitsubishi","model":"Mighty Max","year":1995,"vin":"19UUA9F20EA454764"}, -{"id":568,"manufacturer":"Mercedes-Benz","model":"CLK-Class","year":2009,"vin":"3GTXCYEJ7AG611193"}, -{"id":569,"manufacturer":"Honda","model":"Pilot","year":2012,"vin":"1FTSW2B5XAE324537"}, -{"id":570,"manufacturer":"Ford","model":"Aspire","year":1997,"vin":"JN8AF5MR5ET063694"}, -{"id":571,"manufacturer":"Pontiac","model":"Grand Prix","year":1997,"vin":"2G4GV5GV3D9678957"}, -{"id":572,"manufacturer":"Suzuki","model":"SX4","year":2008,"vin":"WDDGF4HB1EA384789"}, -{"id":573,"manufacturer":"Ford","model":"E350","year":2004,"vin":"3GYVKLEF1AG036964"}, -{"id":574,"manufacturer":"Mitsubishi","model":"Lancer Evolution","year":2006,"vin":"1LNHL9FT9FG988214"}, -{"id":575,"manufacturer":"Toyota","model":"Highlander","year":2002,"vin":"JM3KE2BE1F0825950"}, -{"id":576,"manufacturer":"Pontiac","model":"Firebird","year":1994,"vin":"1G6AL5S38E0849268"}, -{"id":577,"manufacturer":"GMC","model":"2500 Club Coupe","year":1994,"vin":"WAUWFAFH5EN236114"}, -{"id":578,"manufacturer":"GMC","model":"Yukon XL 1500","year":2001,"vin":"JH4CU2F63BC562242"}, -{"id":579,"manufacturer":"Ford","model":"GT","year":2006,"vin":"1G6AA5RX5D0936655"}, -{"id":580,"manufacturer":"Pontiac","model":"Bonneville","year":2000,"vin":"1G6DL5EG1A0022556"}, -{"id":581,"manufacturer":"Ford","model":"Escort","year":1985,"vin":"WDDLJ7DB5CA619695"}, -{"id":582,"manufacturer":"Mercedes-Benz","model":"CL-Class","year":2010,"vin":"2G61N5S32D9397509"}, -{"id":583,"manufacturer":"Toyota","model":"Sienna","year":1998,"vin":"2T1BURHE3FC458373"}, -{"id":584,"manufacturer":"Volvo","model":"C70","year":2013,"vin":"WAUDL54F25N593257"}, -{"id":585,"manufacturer":"Toyota","model":"Camry Hybrid","year":2007,"vin":"WAULC58E64A803877"}, -{"id":586,"manufacturer":"Lexus","model":"SC","year":2000,"vin":"1G4HD57207U504719"}, -{"id":587,"manufacturer":"Mazda","model":"Millenia","year":1999,"vin":"WAUYP54B71N520298"}, -{"id":588,"manufacturer":"Mazda","model":"B-Series Plus","year":2003,"vin":"5TDBY5G15FS541094"}, -{"id":589,"manufacturer":"Toyota","model":"Celica","year":1998,"vin":"1GYFC26249R415279"}, -{"id":590,"manufacturer":"Oldsmobile","model":"Aurora","year":1996,"vin":"WA1DGBFE0FD575111"}, -{"id":591,"manufacturer":"Volvo","model":"XC70","year":2005,"vin":"3D4PH9FV2AT146289"}, -{"id":592,"manufacturer":"Plymouth","model":"Grand Voyager","year":1994,"vin":"JN8AF5MR8ET286960"}, -{"id":593,"manufacturer":"BMW","model":"M3","year":2004,"vin":"WA1YD64B95N159934"}, -{"id":594,"manufacturer":"Dodge","model":"Ram Van 3500","year":1998,"vin":"WBANW13528C237792"}, -{"id":595,"manufacturer":"Volkswagen","model":"Eurovan","year":2000,"vin":"1C3CCBBB8EN868440"}, -{"id":596,"manufacturer":"Scion","model":"tC","year":2010,"vin":"1D4PT4GX1BW901994"}, -{"id":597,"manufacturer":"Dodge","model":"Dakota","year":2004,"vin":"19XFB4F22EE582041"}, -{"id":598,"manufacturer":"Ford","model":"EXP","year":1987,"vin":"5N1CR2MN0EC172955"}, -{"id":599,"manufacturer":"Chevrolet","model":"APV","year":1993,"vin":"WBAGL63443D944773"}, -{"id":600,"manufacturer":"Bentley","model":"Arnage","year":2009,"vin":"2LMHJ5AT7FB689435"}, -{"id":601,"manufacturer":"Buick","model":"Park Avenue","year":1993,"vin":"3D7LP2ET4AG965776"}, -{"id":602,"manufacturer":"BMW","model":"525","year":2002,"vin":"3TMJU4GN7CM929637"}, -{"id":603,"manufacturer":"Eagle","model":"Talon","year":1990,"vin":"WAUJT68E72A905621"}, -{"id":604,"manufacturer":"Chevrolet","model":"Camaro","year":1978,"vin":"2HNYD18274H741339"}, -{"id":605,"manufacturer":"Jeep","model":"Liberty","year":2010,"vin":"JN8AS5MT8CW262175"}, -{"id":606,"manufacturer":"Bentley","model":"Continental GT","year":2007,"vin":"WAUJGBFC7DN908285"}, -{"id":607,"manufacturer":"Ford","model":"Mustang","year":1986,"vin":"JN1CV6FE7DM161290"}, -{"id":608,"manufacturer":"Buick","model":"Century","year":2002,"vin":"WBAPK7G54BN556575"}, -{"id":609,"manufacturer":"BMW","model":"M","year":2001,"vin":"WAUWFAFR7AA141404"}, -{"id":610,"manufacturer":"GMC","model":"Sierra 3500","year":2009,"vin":"JN8AZ1MU7CW681051"}, -{"id":611,"manufacturer":"Pontiac","model":"Bonneville","year":1997,"vin":"1N4AL2AP9BC455102"}, -{"id":612,"manufacturer":"Porsche","model":"Boxster","year":2005,"vin":"KM8NU4CC6AU139918"}, -{"id":613,"manufacturer":"Mitsubishi","model":"Precis","year":1990,"vin":"JN8AZ1MUXDW392263"}, -{"id":614,"manufacturer":"Suzuki","model":"Grand Vitara","year":2005,"vin":"WAUDF78E46A405934"}, -{"id":615,"manufacturer":"BMW","model":"5 Series","year":1992,"vin":"WAURFAFR2EA703051"}, -{"id":616,"manufacturer":"GMC","model":"Sierra","year":2007,"vin":"2T1BURHEXFC284947"}, -{"id":617,"manufacturer":"Kia","model":"Rondo","year":2007,"vin":"WBA3B9C5XEP925965"}, -{"id":618,"manufacturer":"Ford","model":"Escape","year":2008,"vin":"JN8AF5MV3FT113877"}, -{"id":619,"manufacturer":"Infiniti","model":"G","year":2001,"vin":"4A31K3DTXAE049955"}, -{"id":620,"manufacturer":"Ford","model":"Probe","year":1990,"vin":"3TMJU4GN1AM778257"}, -{"id":621,"manufacturer":"Ford","model":"Crown Victoria","year":1996,"vin":"WBANW53549C703277"}, -{"id":622,"manufacturer":"Suzuki","model":"Samurai","year":1993,"vin":"WBA3R5C52EF514599"}, -{"id":623,"manufacturer":"BMW","model":"M5","year":2010,"vin":"JHMZE2H30DS801331"}, -{"id":624,"manufacturer":"Lexus","model":"LX","year":2002,"vin":"2HKRM3H34EH915262"}, -{"id":625,"manufacturer":"Cadillac","model":"CTS","year":2003,"vin":"WAUHE78P09A274219"}, -{"id":626,"manufacturer":"Cadillac","model":"Fleetwood","year":1993,"vin":"WBA5A7C55FG750509"}, -{"id":627,"manufacturer":"Lexus","model":"HS","year":2011,"vin":"1GKS1GEJ3CR312995"}, -{"id":628,"manufacturer":"Buick","model":"Riviera","year":1995,"vin":"SCFBF04BX7G922023"}, -{"id":629,"manufacturer":"Ford","model":"Explorer Sport","year":2003,"vin":"WAUDN94F58N148808"}, -{"id":630,"manufacturer":"Dodge","model":"Stratus","year":1999,"vin":"3GYT4LEF7BG996096"}, -{"id":631,"manufacturer":"Land Rover","model":"Discovery","year":2004,"vin":"1G6KF54904U047317"}, -{"id":632,"manufacturer":"Volvo","model":"S80","year":2010,"vin":"WAUAFAFL4AA429970"}, -{"id":633,"manufacturer":"GMC","model":"Sonoma Club","year":1992,"vin":"KNAFZ6A30F5995416"}, -{"id":634,"manufacturer":"Geo","model":"Metro","year":1993,"vin":"5UXFG2C54E0436316"}, -{"id":635,"manufacturer":"GMC","model":"Sonoma","year":2003,"vin":"1FBAX2CM5FK486443"}, -{"id":636,"manufacturer":"Hyundai","model":"Santa Fe","year":2005,"vin":"1N4AL2EP5DC192085"}, -{"id":637,"manufacturer":"Volvo","model":"XC70","year":2010,"vin":"1D4PU2GK1BW123637"}, -{"id":638,"manufacturer":"Mercedes-Benz","model":"600SEC","year":1993,"vin":"1FAHP2D86DG644230"}, -{"id":639,"manufacturer":"Aptera","model":"2e","year":2009,"vin":"1GYUCHEF9AR765140"}, -{"id":640,"manufacturer":"Toyota","model":"Celica","year":1984,"vin":"5GTMNGEE7A8443578"}, -{"id":641,"manufacturer":"GMC","model":"Sierra 3500","year":2008,"vin":"JTEBU4BF9AK020531"}, -{"id":642,"manufacturer":"Subaru","model":"Legacy","year":1997,"vin":"WBAWB33508P570352"}, -{"id":643,"manufacturer":"GMC","model":"Yukon XL 1500","year":2000,"vin":"WBA1F5C52EV751471"}, -{"id":644,"manufacturer":"Chevrolet","model":"Express 3500","year":2006,"vin":"WAUJGAFD5FN790436"}, -{"id":645,"manufacturer":"GMC","model":"Safari","year":2002,"vin":"WBA3B9C5XFP636246"}, -{"id":646,"manufacturer":"Oldsmobile","model":"Bravada","year":2004,"vin":"ZHWGU6AU3CL669218"}, -{"id":647,"manufacturer":"Spyker","model":"C8 Laviolette","year":2004,"vin":"JN8AZ1MU9DW470466"}, -{"id":648,"manufacturer":"Plymouth","model":"Breeze","year":1996,"vin":"WBAHN83556D341161"}, -{"id":649,"manufacturer":"GMC","model":"Savana 1500","year":2000,"vin":"WBAVA33547F269134"}, -{"id":650,"manufacturer":"Volkswagen","model":"Cabriolet","year":1999,"vin":"2T1BPRHE6EC848325"}, -{"id":651,"manufacturer":"Volvo","model":"C70","year":2006,"vin":"2HNYD18963H165755"}, -{"id":652,"manufacturer":"Ford","model":"Transit Connect","year":2013,"vin":"KNDMG4C76B6804820"}, -{"id":653,"manufacturer":"Ford","model":"Focus","year":2013,"vin":"NM0AS8F7XE1760971"}, -{"id":654,"manufacturer":"Dodge","model":"Challenger","year":2010,"vin":"KMHTC6AD5EU119361"}, -{"id":655,"manufacturer":"Volvo","model":"C70","year":2010,"vin":"WBAEW53413P313213"}, -{"id":656,"manufacturer":"Mercedes-Benz","model":"SLK-Class","year":2002,"vin":"1GYS3MKJ8FR530860"}, -{"id":657,"manufacturer":"Ford","model":"Escort","year":1999,"vin":"WDDLJ7DBXEA724865"}, -{"id":658,"manufacturer":"Acura","model":"CL","year":2002,"vin":"1G4PP5SK1C4332494"}, -{"id":659,"manufacturer":"GMC","model":"Envoy","year":2009,"vin":"1N4AB7AP5DN021539"}, -{"id":660,"manufacturer":"Jaguar","model":"S-Type","year":2005,"vin":"SCBLC37F85C724771"}, -{"id":661,"manufacturer":"Toyota","model":"Tercel","year":1994,"vin":"JTJBM7FX3B5434989"}, -{"id":662,"manufacturer":"Saturn","model":"S-Series","year":1997,"vin":"1N4AL3AP5DC743059"}, -{"id":663,"manufacturer":"Volkswagen","model":"Passat","year":1991,"vin":"WAU3FAFR8CA342718"}, -{"id":664,"manufacturer":"Pontiac","model":"Aztek","year":2003,"vin":"5N1BA0NCXFN661857"}, -{"id":665,"manufacturer":"Volkswagen","model":"Corrado","year":1991,"vin":"KNDJT2A55C7102875"}, -{"id":666,"manufacturer":"Nissan","model":"350Z","year":2006,"vin":"1D7RB1CT6AS890013"}, -{"id":667,"manufacturer":"Mazda","model":"RX-7","year":1986,"vin":"1GKS2FFJ0BR189080"}, -{"id":668,"manufacturer":"Dodge","model":"Stratus","year":2005,"vin":"2T1BU4EE1DC983114"}, -{"id":669,"manufacturer":"Eagle","model":"Vision","year":1997,"vin":"WP1AA2AP0AL460652"}, -{"id":670,"manufacturer":"Buick","model":"Skylark","year":1993,"vin":"1GD010CG5BF480702"}, -{"id":671,"manufacturer":"Mercedes-Benz","model":"E-Class","year":1997,"vin":"3D7LT2ET4AG518053"}, -{"id":672,"manufacturer":"Jaguar","model":"XJ","year":2011,"vin":"2C3CA6CT6BH139930"}, -{"id":673,"manufacturer":"Pontiac","model":"GTO","year":1972,"vin":"2G4WE587081846246"}, -{"id":674,"manufacturer":"MINI","model":"Clubman","year":2009,"vin":"WAUBF98E18A037301"}, -{"id":675,"manufacturer":"Lincoln","model":"Continental","year":2002,"vin":"19UYA42762A332783"}, -{"id":676,"manufacturer":"Pontiac","model":"Fiero","year":1987,"vin":"1C4RDJEG3DC945097"}, -{"id":677,"manufacturer":"GMC","model":"Envoy XL","year":2004,"vin":"TRUTC28N221702985"}, -{"id":678,"manufacturer":"BMW","model":"3 Series","year":2012,"vin":"WBAVB73588V349743"}, -{"id":679,"manufacturer":"Chevrolet","model":"Silverado 2500","year":2005,"vin":"1C4RDJDG4DC810891"}, -{"id":680,"manufacturer":"Suzuki","model":"Grand Vitara","year":2009,"vin":"3D7TT2CT6BG502666"}, -{"id":681,"manufacturer":"Pontiac","model":"Safari","year":1986,"vin":"WBAGL63444D178058"}, -{"id":682,"manufacturer":"Chevrolet","model":"Monte Carlo","year":1995,"vin":"WAUKG68E35A601571"}, -{"id":683,"manufacturer":"Isuzu","model":"Hombre Space","year":2000,"vin":"SCFBB04B97G607726"}, -{"id":684,"manufacturer":"Lexus","model":"RX","year":2010,"vin":"1G6AU5S8XF0619872"}, -{"id":685,"manufacturer":"Pontiac","model":"Sunfire","year":2004,"vin":"JN1CV6FE8BM386220"}, -{"id":686,"manufacturer":"Nissan","model":"NX","year":1992,"vin":"WAUVVAFR0AA882797"}, -{"id":687,"manufacturer":"Nissan","model":"Pathfinder","year":2000,"vin":"WBS3U9C57FP643368"}, -{"id":688,"manufacturer":"Mazda","model":"B-Series","year":2005,"vin":"4JGDA0EB2FA711139"}, -{"id":689,"manufacturer":"Lamborghini","model":"Diablo","year":1996,"vin":"1G6AL5SX5E0649497"}, -{"id":690,"manufacturer":"Mercury","model":"Montego","year":2007,"vin":"SCFBF04B97G453376"}, -{"id":691,"manufacturer":"Toyota","model":"Corolla","year":1996,"vin":"5N1AR2MM6EC441426"}, -{"id":692,"manufacturer":"Buick","model":"Regal","year":1998,"vin":"WP1AA2A23CL473497"}, -{"id":693,"manufacturer":"Ford","model":"Edge","year":2008,"vin":"1GYFC56209R444960"}, -{"id":694,"manufacturer":"Ford","model":"E-Series","year":2004,"vin":"KMHGC4DD2CU109918"}, -{"id":695,"manufacturer":"Jaguar","model":"XK Series","year":1998,"vin":"WA1GFCFS8FR511803"}, -{"id":696,"manufacturer":"Infiniti","model":"M","year":2006,"vin":"WUAUUAFG5CN132519"}, -{"id":697,"manufacturer":"Hummer","model":"H1","year":1995,"vin":"WAUGL98E78A905929"}, -{"id":698,"manufacturer":"Pontiac","model":"Grand Prix","year":1995,"vin":"WAULC58E44A470790"}, -{"id":699,"manufacturer":"Mazda","model":"MPV","year":1998,"vin":"2T3BF4DVXAW542515"}, -{"id":700,"manufacturer":"Mazda","model":"MX-5","year":1995,"vin":"WA1LFBFP1BA020082"}, -{"id":701,"manufacturer":"Mazda","model":"MPV","year":2002,"vin":"SAJWA6E77E8868975"}, -{"id":702,"manufacturer":"Mitsubishi","model":"L300","year":1987,"vin":"WBAYA8C50DD874866"}, -{"id":703,"manufacturer":"Acura","model":"MDX","year":2004,"vin":"19VDE1F70EE943011"}, -{"id":704,"manufacturer":"Mitsubishi","model":"Galant","year":2002,"vin":"1B3CB7HB3AD924403"}, -{"id":705,"manufacturer":"Dodge","model":"Dakota","year":2009,"vin":"TRUDD38J981051142"}, -{"id":706,"manufacturer":"GMC","model":"Rally Wagon 3500","year":1993,"vin":"3C63DPAL7CG286908"}, -{"id":707,"manufacturer":"Mazda","model":"MX-3","year":1996,"vin":"5NPEB4AC7CH041524"}, -{"id":708,"manufacturer":"Mitsubishi","model":"L300","year":1987,"vin":"3N1CN7AP4FL529470"}, -{"id":709,"manufacturer":"Saab","model":"9-5","year":2011,"vin":"1N6AF0KY1FN352244"}, -{"id":710,"manufacturer":"Mercedes-Benz","model":"E-Class","year":1997,"vin":"3C63DPNL4CG707283"}, -{"id":711,"manufacturer":"Dodge","model":"Dakota","year":2001,"vin":"SCFEDEAN2CG340541"}, -{"id":712,"manufacturer":"Nissan","model":"Titan","year":2008,"vin":"YV1902AH9E1040483"}, -{"id":713,"manufacturer":"Ford","model":"LTD","year":1984,"vin":"JH4DC54884S429885"}, -{"id":714,"manufacturer":"Ford","model":"Explorer","year":1999,"vin":"WDDLJ7GB3FA561506"}, -{"id":715,"manufacturer":"Dodge","model":"Ram Van B150","year":1993,"vin":"WAULC68E14A335885"}, -{"id":716,"manufacturer":"Chevrolet","model":"Tahoe","year":2009,"vin":"3D7TT2CT1BG846177"}, -{"id":717,"manufacturer":"Dodge","model":"Ram 1500","year":2007,"vin":"5N1AA0NC5AN413875"}, -{"id":718,"manufacturer":"Volkswagen","model":"Golf","year":1985,"vin":"1FTWW3A53AE459593"}, -{"id":719,"manufacturer":"Fairthorpe","model":"Rockette","year":1960,"vin":"19XFB2E57FE293285"}, -{"id":720,"manufacturer":"BMW","model":"X5","year":2007,"vin":"WAUEKAFB6AN773216"}, -{"id":721,"manufacturer":"Mercury","model":"Cougar","year":1986,"vin":"5LMJJ2H51DE201243"}, -{"id":722,"manufacturer":"Buick","model":"Terraza","year":2007,"vin":"JH4CL95804C571191"}, -{"id":723,"manufacturer":"BMW","model":"M3","year":2002,"vin":"1GYS4CEF0DR704996"}, -{"id":724,"manufacturer":"Tesla","model":"Roadster","year":2010,"vin":"5N1BA0NE4FN153529"}, -{"id":725,"manufacturer":"Hyundai","model":"Elantra","year":2005,"vin":"WAUJC58E92A428250"}, -{"id":726,"manufacturer":"Chevrolet","model":"Cobalt","year":2010,"vin":"3GYFNBEY1AS533842"}, -{"id":727,"manufacturer":"Bentley","model":"Continental GT","year":2009,"vin":"JA32U1FU0AU303141"}, -{"id":728,"manufacturer":"Lotus","model":"Esprit","year":1987,"vin":"1C3BCBGG9CN358918"}, -{"id":729,"manufacturer":"Infiniti","model":"EX","year":2011,"vin":"WBANB53546C686794"}, -{"id":730,"manufacturer":"Ford","model":"Fusion","year":2012,"vin":"WBAEH73494B018784"}, -{"id":731,"manufacturer":"Buick","model":"Roadmaster","year":1994,"vin":"WA1WGBFPXEA146469"}, -{"id":732,"manufacturer":"Infiniti","model":"G","year":2003,"vin":"3D73Y3HL8AG020585"}, -{"id":733,"manufacturer":"Land Rover","model":"Freelander","year":2003,"vin":"1G6KF57965U104620"}, -{"id":734,"manufacturer":"Ford","model":"Thunderbird","year":2004,"vin":"WBAPT7C55AC911119"}, -{"id":735,"manufacturer":"Volkswagen","model":"GTI","year":2011,"vin":"WBAUP9C58DV739549"}, -{"id":736,"manufacturer":"Ferrari","model":"458 Italia","year":2012,"vin":"3VW1K7AJ2CM563130"}, -{"id":737,"manufacturer":"Mercedes-Benz","model":"S-Class","year":1994,"vin":"5UXFE8C58AL641008"}, -{"id":738,"manufacturer":"Chevrolet","model":"Silverado 2500","year":2007,"vin":"1C3CCBCB5CN816971"}, -{"id":739,"manufacturer":"Chevrolet","model":"2500","year":1999,"vin":"WBA5B1C52ED609147"}, -{"id":740,"manufacturer":"Lexus","model":"IS-F","year":2011,"vin":"WAUKH74F57N756555"}, -{"id":741,"manufacturer":"Chevrolet","model":"1500","year":1999,"vin":"WAUJC68E05A075892"}, -{"id":742,"manufacturer":"Spyker","model":"C8 Spyder Wide Body","year":2004,"vin":"JTHBL5EF4A5635347"}, -{"id":743,"manufacturer":"Chrysler","model":"Prowler","year":2002,"vin":"1G6DA5E5XC0102168"}, -{"id":744,"manufacturer":"Ford","model":"Galaxie","year":1966,"vin":"WAUML64B24N506202"}, -{"id":745,"manufacturer":"Nissan","model":"Rogue","year":2009,"vin":"3VWML7AJXEM894616"}, -{"id":746,"manufacturer":"Pontiac","model":"Sunfire","year":2003,"vin":"WBAYA6C59DC278651"}, -{"id":747,"manufacturer":"Land Rover","model":"Range Rover Sport","year":2010,"vin":"NM0KS9AN9AT647348"}, -{"id":748,"manufacturer":"Dodge","model":"Viper","year":1995,"vin":"1G6DK1E38C0067828"}, -{"id":749,"manufacturer":"Ford","model":"Bronco","year":1987,"vin":"1GYS4DEF8BR863218"}, -{"id":750,"manufacturer":"Subaru","model":"Forester","year":2010,"vin":"WUAPV54B03N000258"}, -{"id":751,"manufacturer":"GMC","model":"Yukon XL 2500","year":2005,"vin":"WBABD53466P020016"}, -{"id":752,"manufacturer":"Ford","model":"Escort","year":1984,"vin":"1C4RDHEG7EC576836"}, -{"id":753,"manufacturer":"Nissan","model":"240SX","year":1992,"vin":"1N6AF0LX3FN111842"}, -{"id":754,"manufacturer":"BMW","model":"X5","year":2006,"vin":"5TDDW5G16FS722929"}, -{"id":755,"manufacturer":"Nissan","model":"Pathfinder","year":2006,"vin":"5N1AN0NW5FN571803"}, -{"id":756,"manufacturer":"Ford","model":"Econoline E150","year":1997,"vin":"WAUDG78E96A049025"}, -{"id":757,"manufacturer":"Panoz","model":"Esperante","year":2006,"vin":"3VW467AT8DM665018"}, -{"id":758,"manufacturer":"Infiniti","model":"FX","year":2003,"vin":"JN8AZ1MU3CW292956"}, -{"id":759,"manufacturer":"Infiniti","model":"Q","year":2002,"vin":"YV440MDB8F2115489"}, -{"id":760,"manufacturer":"Eagle","model":"Summit","year":1993,"vin":"WDDGF4HB8CF744057"}, -{"id":761,"manufacturer":"Jaguar","model":"S-Type","year":2006,"vin":"1N6AA0CH4EN519501"}, -{"id":762,"manufacturer":"Kia","model":"Sportage","year":2007,"vin":"3GYEK63N32G333537"}, -{"id":763,"manufacturer":"Lincoln","model":"MKS","year":2011,"vin":"JTEBU4BF8BK605344"}, -{"id":764,"manufacturer":"Oldsmobile","model":"Ciera","year":1993,"vin":"19UYA42652A814054"}, -{"id":765,"manufacturer":"Lotus","model":"Elise","year":2007,"vin":"JM1NC2EF5A0484738"}, -{"id":766,"manufacturer":"Bentley","model":"Continental Flying Spur","year":2008,"vin":"2C3CDXEJ6EH690470"}, -{"id":767,"manufacturer":"Mazda","model":"MPV","year":1990,"vin":"3D4PH6FV7AT385688"}, -{"id":768,"manufacturer":"Lincoln","model":"Town Car","year":1986,"vin":"WUAPV54B53N478806"}, -{"id":769,"manufacturer":"Buick","model":"Enclave","year":2011,"vin":"55SWF4JB7FU200740"}, -{"id":770,"manufacturer":"Nissan","model":"Altima","year":2004,"vin":"WAUPL68E74A722927"}, -{"id":771,"manufacturer":"BMW","model":"6 Series","year":2006,"vin":"WAUEH78E57A930484"}, -{"id":772,"manufacturer":"Lincoln","model":"Town Car","year":2006,"vin":"WBA3B1G51EN032638"}, -{"id":773,"manufacturer":"Nissan","model":"Xterra","year":2005,"vin":"WBAYB6C58FG550499"}, -{"id":774,"manufacturer":"Mercedes-Benz","model":"500SEL","year":1992,"vin":"WBAEW53432P689068"}, -{"id":775,"manufacturer":"Chevrolet","model":"Express 2500","year":2004,"vin":"JN8AE2KP2D9055566"}, -{"id":776,"manufacturer":"Volkswagen","model":"Jetta III","year":1994,"vin":"WBANN73537B556998"}, -{"id":777,"manufacturer":"Ford","model":"Crown Victoria","year":2004,"vin":"1G6DG577890380184"}, -{"id":778,"manufacturer":"Land Rover","model":"Freelander","year":2009,"vin":"WP1AE2A27DL221516"}, -{"id":779,"manufacturer":"Chevrolet","model":"G-Series G20","year":1993,"vin":"WP0AB2A84CS708789"}, -{"id":780,"manufacturer":"Toyota","model":"Highlander","year":2003,"vin":"5TFBY5F1XAX237361"}, -{"id":781,"manufacturer":"Suzuki","model":"Aerio","year":2006,"vin":"JTDKTUD32DD645744"}, -{"id":782,"manufacturer":"Chrysler","model":"Sebring","year":2006,"vin":"2LMHJ5AT5FB313543"}, -{"id":783,"manufacturer":"Ford","model":"LTD","year":1984,"vin":"KM8NU4CC8AU321362"}, -{"id":784,"manufacturer":"Ford","model":"Mustang","year":1991,"vin":"WAUMR94E28N202092"}, -{"id":785,"manufacturer":"Chevrolet","model":"Lumina","year":1995,"vin":"1G4HP54K544290852"}, -{"id":786,"manufacturer":"Jaguar","model":"XK Series","year":2004,"vin":"JTHBE1KS1A0199543"}, -{"id":787,"manufacturer":"Lincoln","model":"Navigator","year":2011,"vin":"19UUA9F23CA724969"}, -{"id":788,"manufacturer":"Chevrolet","model":"Equinox","year":2007,"vin":"SCBFT7ZA1EC740042"}, -{"id":789,"manufacturer":"Nissan","model":"NV1500","year":2012,"vin":"WAUYGBFC9CN586665"}, -{"id":790,"manufacturer":"Toyota","model":"Land Cruiser","year":2003,"vin":"2T1BPRHE1EC960899"}, -{"id":791,"manufacturer":"Mitsubishi","model":"Montero Sport","year":2004,"vin":"3C63D3FL8CG429883"}, -{"id":792,"manufacturer":"GMC","model":"Yukon","year":2004,"vin":"3C3CFFDR2FT873563"}, -{"id":793,"manufacturer":"Mercedes-Benz","model":"300SL","year":1992,"vin":"1GD01XEG6FZ261094"}, -{"id":794,"manufacturer":"Ford","model":"Ranger","year":2003,"vin":"3C6JD6DK5CG550132"}, -{"id":795,"manufacturer":"Kia","model":"Rondo","year":2008,"vin":"3GYFNDEY3AS890144"}, -{"id":796,"manufacturer":"Chevrolet","model":"Colorado","year":2011,"vin":"WAUBFCFL7CN758545"}, -{"id":797,"manufacturer":"Infiniti","model":"G","year":2012,"vin":"WBAUP9C58AV656683"}, -{"id":798,"manufacturer":"Plymouth","model":"Grand Voyager","year":1996,"vin":"1FTEX1CM3BK646675"}, -{"id":799,"manufacturer":"BMW","model":"M3","year":2002,"vin":"5UXZV4C50BL662121"}, -{"id":800,"manufacturer":"GMC","model":"Sonoma","year":2003,"vin":"KMHEC4A40BA939776"}, -{"id":801,"manufacturer":"Infiniti","model":"QX","year":2003,"vin":"WAULT58E84A883439"}, -{"id":802,"manufacturer":"Lexus","model":"ES","year":2011,"vin":"JTEBC3EH7C2583767"}, -{"id":803,"manufacturer":"Mercury","model":"Sable","year":2002,"vin":"JM3ER2A5XB0381738"}, -{"id":804,"manufacturer":"Jaguar","model":"XK Series","year":2005,"vin":"W04GW5EV3B1635137"}, -{"id":805,"manufacturer":"GMC","model":"Suburban 2500","year":1994,"vin":"WBALL5C50EP454348"}, -{"id":806,"manufacturer":"Infiniti","model":"G","year":2000,"vin":"WBAPK5C53AA822314"}, -{"id":807,"manufacturer":"Ford","model":"F350","year":2012,"vin":"1N4AB7AP1DN658198"}, -{"id":808,"manufacturer":"Lamborghini","model":"Gallardo","year":2005,"vin":"1G4HR57Y56U799367"}, -{"id":809,"manufacturer":"Mitsubishi","model":"Eclipse","year":2008,"vin":"JH4KA965X4C282762"}, -{"id":810,"manufacturer":"Mazda","model":"MPV","year":1995,"vin":"5YMGY0C57BL213244"}, -{"id":811,"manufacturer":"Volvo","model":"S40","year":2009,"vin":"3VWF17AT6FM975033"}, -{"id":812,"manufacturer":"BMW","model":"750","year":2006,"vin":"1G4GE5G3XFF945441"}, -{"id":813,"manufacturer":"Cadillac","model":"Seville","year":2003,"vin":"WBABD33405P040345"}, -{"id":814,"manufacturer":"Porsche","model":"911","year":2002,"vin":"1C3BC5ED0AN381849"}, -{"id":815,"manufacturer":"Volvo","model":"V70","year":1998,"vin":"5N1AN0NU3CN286270"}, -{"id":816,"manufacturer":"BMW","model":"M3","year":1996,"vin":"1GD22XEG7FZ124669"}, -{"id":817,"manufacturer":"Dodge","model":"Spirit","year":1993,"vin":"WAUAF78E86A520653"}, -{"id":818,"manufacturer":"Lincoln","model":"Continental","year":1998,"vin":"1FTSF3A51AE029754"}, -{"id":819,"manufacturer":"Mitsubishi","model":"Challenger","year":1998,"vin":"WDCGG5GB1BF659391"}, -{"id":820,"manufacturer":"Land Rover","model":"Range Rover","year":1995,"vin":"WAUWGAFC0DN339831"}, -{"id":821,"manufacturer":"Ford","model":"Taurus","year":2010,"vin":"1N6AA0EC8EN962624"}, -{"id":822,"manufacturer":"Mercedes-Benz","model":"E-Class","year":2003,"vin":"YV1982BW1A1904491"}, -{"id":823,"manufacturer":"Dodge","model":"Dakota Club","year":1995,"vin":"3C4PDDGG6ET103172"}, -{"id":824,"manufacturer":"Cadillac","model":"DeVille","year":2004,"vin":"19UUA86209A547168"}, -{"id":825,"manufacturer":"Volvo","model":"XC90","year":2007,"vin":"WAUWFAFL9BA319942"}, -{"id":826,"manufacturer":"Pontiac","model":"Grand Prix","year":2002,"vin":"SCBLF34F33C453577"}, -{"id":827,"manufacturer":"Ford","model":"Windstar","year":1995,"vin":"JTEBU5JR0C5565116"}, -{"id":828,"manufacturer":"Saab","model":"900","year":1993,"vin":"WBALM53549E289399"}, -{"id":829,"manufacturer":"Maserati","model":"GranTurismo","year":2012,"vin":"2C3CDXDT8CH476760"}, -{"id":830,"manufacturer":"Nissan","model":"Murano","year":2012,"vin":"WBAWC73518E171952"}, -{"id":831,"manufacturer":"GMC","model":"Sierra 2500","year":2003,"vin":"1G6AA5RX4D0470815"}, -{"id":832,"manufacturer":"Saturn","model":"Ion","year":2004,"vin":"1GKMCAE36AR088314"}, -{"id":833,"manufacturer":"Mitsubishi","model":"GTO","year":1999,"vin":"WAUDH74F27N803470"}, -{"id":834,"manufacturer":"Isuzu","model":"Oasis","year":1997,"vin":"KMHCT4AE1CU364393"}, -{"id":835,"manufacturer":"MINI","model":"Cooper","year":2010,"vin":"1G4HR54K53U442296"}, -{"id":836,"manufacturer":"Dodge","model":"Viper","year":1998,"vin":"JHMZE2H5XES604704"}, -{"id":837,"manufacturer":"Isuzu","model":"Rodeo","year":2003,"vin":"JM3KE2BEXF0535612"}, -{"id":838,"manufacturer":"Volkswagen","model":"Passat","year":1991,"vin":"WDDLJ7DB2CA081103"}, -{"id":839,"manufacturer":"GMC","model":"Rally Wagon 2500","year":1993,"vin":"3VW1K7AJ7EM064858"}, -{"id":840,"manufacturer":"Subaru","model":"Outback","year":2001,"vin":"3D7TP2HT4AG307709"}, -{"id":841,"manufacturer":"Jeep","model":"Liberty","year":2007,"vin":"JN8AZ2KR8CT154836"}, -{"id":842,"manufacturer":"Chevrolet","model":"Suburban 2500","year":2007,"vin":"1G6AR5S33F0418384"}, -{"id":843,"manufacturer":"Jaguar","model":"XJ Series","year":1996,"vin":"WAUWGBFB0BN543331"}, -{"id":844,"manufacturer":"Ford","model":"Escape","year":2007,"vin":"WAUJC58E64A832223"}, -{"id":845,"manufacturer":"Oldsmobile","model":"Ciera","year":1995,"vin":"WBALX5C50CC870814"}, -{"id":846,"manufacturer":"Toyota","model":"Prius Plug-in Hybrid","year":2012,"vin":"4T1BD1EB0DU063817"}, -{"id":847,"manufacturer":"Suzuki","model":"SJ","year":1989,"vin":"YV1672MW2B2533713"}, -{"id":848,"manufacturer":"Buick","model":"LaCrosse","year":2006,"vin":"2C3CA2CV9AH049552"}, -{"id":849,"manufacturer":"GMC","model":"Savana 2500","year":2005,"vin":"JM1CW2BLXC0042887"}, -{"id":850,"manufacturer":"Aston Martin","model":"Vanquish S","year":2006,"vin":"2CTALMEC7B6213032"}, -{"id":851,"manufacturer":"Infiniti","model":"M","year":2003,"vin":"5UXWX9C55E0513414"}, -{"id":852,"manufacturer":"Suzuki","model":"Grand Vitara","year":2010,"vin":"1N6AA0EJ4FN064716"}, -{"id":853,"manufacturer":"Mazda","model":"Miata MX-5","year":2000,"vin":"SCBDR33W87C953513"}, -{"id":854,"manufacturer":"Toyota","model":"Tundra","year":2000,"vin":"WBAYE8C54ED192126"}, -{"id":855,"manufacturer":"Honda","model":"CR-X","year":1988,"vin":"WVGAV7AX8FW921068"}, -{"id":856,"manufacturer":"Audi","model":"S5","year":2009,"vin":"JTEBU4BF3DK309781"}, -{"id":857,"manufacturer":"Cadillac","model":"CTS","year":2012,"vin":"JTDKTUD3XED701379"}, -{"id":858,"manufacturer":"Infiniti","model":"FX","year":2011,"vin":"1G6KF54984U915418"}, -{"id":859,"manufacturer":"Toyota","model":"Celica","year":1992,"vin":"1G6DS57V690283062"}, -{"id":860,"manufacturer":"Mercury","model":"Cougar","year":1990,"vin":"3D73Y4CL5BG424796"}, -{"id":861,"manufacturer":"Mercedes-Benz","model":"M-Class","year":1999,"vin":"WAUNF98P26A994421"}, -{"id":862,"manufacturer":"Infiniti","model":"Q","year":1994,"vin":"2C4RDGCG9CR151569"}, -{"id":863,"manufacturer":"Honda","model":"CR-V","year":2002,"vin":"2G4WB55KX41328902"}, -{"id":864,"manufacturer":"Volkswagen","model":"New Beetle","year":2007,"vin":"WBAVA33518P250357"}, -{"id":865,"manufacturer":"Ferrari","model":"California","year":2010,"vin":"WBA3A5C57EP975766"}, -{"id":866,"manufacturer":"Chevrolet","model":"S10","year":2002,"vin":"WAUBC48H56K650079"}, -{"id":867,"manufacturer":"Mitsubishi","model":"Galant","year":1997,"vin":"2G4WS52J041374556"}, -{"id":868,"manufacturer":"Isuzu","model":"Rodeo Sport","year":2003,"vin":"19UUB2F32FA143531"}, -{"id":869,"manufacturer":"Plymouth","model":"Prowler","year":1999,"vin":"1C4SDHCT8DC681272"}, -{"id":870,"manufacturer":"Volvo","model":"S40","year":2008,"vin":"WBAYF4C56FD189915"}, -{"id":871,"manufacturer":"Volkswagen","model":"Routan","year":2012,"vin":"SCBLC37F44C022767"}, -{"id":872,"manufacturer":"Chevrolet","model":"Suburban 1500","year":1995,"vin":"WBAKF3C53CJ058406"}, -{"id":873,"manufacturer":"Volkswagen","model":"GLI","year":2008,"vin":"JM1BL1K58B1994571"}, -{"id":874,"manufacturer":"Buick","model":"Regal","year":1989,"vin":"WAUDK78T39A210180"}, -{"id":875,"manufacturer":"Chevrolet","model":"Express 1500","year":2002,"vin":"2V4RW3D16AR847757"}, -{"id":876,"manufacturer":"Chevrolet","model":"S10 Blazer","year":1993,"vin":"JH4KC1F97EC659886"}, -{"id":877,"manufacturer":"Dodge","model":"Stratus","year":2003,"vin":"1YVHZ8BH9C5875766"}, -{"id":878,"manufacturer":"Mercury","model":"Sable","year":1992,"vin":"5UXZV4C5XD0943671"}, -{"id":879,"manufacturer":"Nissan","model":"Armada","year":2010,"vin":"WBA5A7C56FG178446"}, -{"id":880,"manufacturer":"Ferrari","model":"F430","year":2007,"vin":"1G6DX67D180994472"}, -{"id":881,"manufacturer":"Toyota","model":"Sienna","year":2002,"vin":"SCFEBBAC3AG776895"}, -{"id":882,"manufacturer":"Suzuki","model":"Vitara","year":1999,"vin":"5N1AT2ML9FC976003"}, -{"id":883,"manufacturer":"Ford","model":"F-Series","year":1994,"vin":"2G4GP5EX6F9666299"}, -{"id":884,"manufacturer":"Suzuki","model":"SX4","year":2010,"vin":"WAUCFAFR9DA782738"}, -{"id":885,"manufacturer":"Nissan","model":"Pathfinder","year":2005,"vin":"JTHFF2C25F2751088"}, -{"id":886,"manufacturer":"Nissan","model":"370Z","year":2009,"vin":"3VW4S7ATXEM708934"}, -{"id":887,"manufacturer":"Chevrolet","model":"Suburban 2500","year":1993,"vin":"1G6DS8ED9B0777630"}, -{"id":888,"manufacturer":"Saab","model":"9-3","year":2002,"vin":"KM8JT3AB5DU516832"}, -{"id":889,"manufacturer":"Ford","model":"Taurus","year":2010,"vin":"WBA3A9C56FF618058"}, -{"id":890,"manufacturer":"Ford","model":"E-Series","year":2005,"vin":"2V4RW3D15AR582474"}, -{"id":891,"manufacturer":"BMW","model":"745","year":2004,"vin":"1G6DJ5EGXA0174129"}, -{"id":892,"manufacturer":"Toyota","model":"Corolla","year":2003,"vin":"SALWR2TF3FA968665"}, -{"id":893,"manufacturer":"Pontiac","model":"Grand Prix","year":1970,"vin":"3D73M3CL0BG769580"}, -{"id":894,"manufacturer":"Ford","model":"Flex","year":2012,"vin":"4JGCB2FB7AA124088"}, -{"id":895,"manufacturer":"Nissan","model":"Maxima","year":1993,"vin":"WP1AA2AP3AL536557"}, -{"id":896,"manufacturer":"Nissan","model":"Maxima","year":1999,"vin":"JH4KB16627C157167"}, -{"id":897,"manufacturer":"Pontiac","model":"Montana","year":2004,"vin":"SAJWA0JH9EM164070"}, -{"id":898,"manufacturer":"Dodge","model":"Grand Caravan","year":1999,"vin":"5N1AA0NC7BN343359"}, -{"id":899,"manufacturer":"Mercedes-Benz","model":"E-Class","year":1999,"vin":"2T1KE4EE0DC923578"}, -{"id":900,"manufacturer":"Volkswagen","model":"Touareg 2","year":2008,"vin":"WBA3A5C54DF633762"}, -{"id":901,"manufacturer":"Ford","model":"Mustang","year":2002,"vin":"WAUGVAFR6AA862353"}, -{"id":902,"manufacturer":"Pontiac","model":"Bonneville","year":1964,"vin":"WP0AB2A97FS190299"}, -{"id":903,"manufacturer":"Isuzu","model":"Hombre Space","year":1997,"vin":"1D7RB1CT8BS979471"}, -{"id":904,"manufacturer":"Lotus","model":"Exige","year":2011,"vin":"WAUWKAFR1AA501780"}, -{"id":905,"manufacturer":"Acura","model":"RSX","year":2002,"vin":"JN1AZ4EH8DM272636"}, -{"id":906,"manufacturer":"Jaguar","model":"S-Type","year":2005,"vin":"3VW467AT1CM879881"}, -{"id":907,"manufacturer":"Isuzu","model":"Oasis","year":1997,"vin":"1D7RW3BKXBS478591"}, -{"id":908,"manufacturer":"Lexus","model":"IS-F","year":2012,"vin":"JN1AZ4EH6DM287250"}, -{"id":909,"manufacturer":"Audi","model":"TT","year":2002,"vin":"3C4PDDEG7ET328770"}, -{"id":910,"manufacturer":"Ford","model":"F250","year":1996,"vin":"1GYS3JKJ3FR969527"}, -{"id":911,"manufacturer":"Volkswagen","model":"GTI","year":2001,"vin":"5TFBW5F14DX890679"}, -{"id":912,"manufacturer":"Oldsmobile","model":"Alero","year":2001,"vin":"WA1DGAFE2DD021401"}, -{"id":913,"manufacturer":"Pontiac","model":"Grand Prix","year":1984,"vin":"WBALY1C57ED533642"}, -{"id":914,"manufacturer":"GMC","model":"Sierra 3500","year":2010,"vin":"4T1BF1FK8CU251461"}, -{"id":915,"manufacturer":"Ford","model":"Aspire","year":1996,"vin":"WAULFAFR5AA641922"}, -{"id":916,"manufacturer":"GMC","model":"Savana 3500","year":2005,"vin":"1G4GF5G39FF470684"}, -{"id":917,"manufacturer":"Mazda","model":"MPV","year":1993,"vin":"KL4CJGSB9EB009044"}, -{"id":918,"manufacturer":"Ford","model":"Probe","year":1993,"vin":"KM8NU4CC1AU802716"}, -{"id":919,"manufacturer":"Pontiac","model":"Parisienne","year":1986,"vin":"JM1CR2W31A0262126"}, -{"id":920,"manufacturer":"Rolls-Royce","model":"Phantom","year":2005,"vin":"1C3CDZAB7DN463112"}, -{"id":921,"manufacturer":"Porsche","model":"Panamera","year":2011,"vin":"3GYEK63N53G915222"}, -{"id":922,"manufacturer":"Chrysler","model":"Crossfire","year":2004,"vin":"WBAUN7C52CV729091"}, -{"id":923,"manufacturer":"GMC","model":"2500 Club Coupe","year":1997,"vin":"5N1BA0NC5FN635635"}, -{"id":924,"manufacturer":"Mercedes-Benz","model":"500SL","year":1992,"vin":"WBAYP1C59ED351997"}, -{"id":925,"manufacturer":"Ford","model":"Windstar","year":2001,"vin":"1G6AW5SX1F0915378"}, -{"id":926,"manufacturer":"Lincoln","model":"Zephyr","year":2006,"vin":"WDDGF4HB4DF266950"}, -{"id":927,"manufacturer":"Ford","model":"Mustang","year":2010,"vin":"1C3BCBFG7DN892535"}, -{"id":928,"manufacturer":"Dodge","model":"Ram Wagon B150","year":1993,"vin":"3GYFNGEY6AS320317"}, -{"id":929,"manufacturer":"Chevrolet","model":"Avalanche","year":2010,"vin":"WAUVT68E95A484331"}, -{"id":930,"manufacturer":"Acura","model":"NSX","year":1994,"vin":"2G4WS55J851563338"}, -{"id":931,"manufacturer":"Mercedes-Benz","model":"R-Class","year":2009,"vin":"SALSF2D47BA892415"}, -{"id":932,"manufacturer":"Volkswagen","model":"Cabriolet","year":1998,"vin":"WAUJC58E03A196915"}, -{"id":933,"manufacturer":"Jeep","model":"Cherokee","year":1996,"vin":"3GTU1YEJ1BG103263"}, -{"id":934,"manufacturer":"Audi","model":"Allroad","year":2002,"vin":"KNADH4A38B6933426"}, -{"id":935,"manufacturer":"Lincoln","model":"Continental","year":1993,"vin":"WAURV78T09A146645"}, -{"id":936,"manufacturer":"Dodge","model":"Ram Van 3500","year":1999,"vin":"KNDPB3A23D7257791"}, -{"id":937,"manufacturer":"Ford","model":"F150","year":2005,"vin":"5UXFG2C56DL854440"}, -{"id":938,"manufacturer":"Toyota","model":"Camry Hybrid","year":2012,"vin":"1FMCU4K34CK136648"}, -{"id":939,"manufacturer":"GMC","model":"Savana 2500","year":2000,"vin":"SCFEBBEL5DG337017"}, -{"id":940,"manufacturer":"Mazda","model":"B-Series","year":2006,"vin":"WAUEF98EX8A190532"}, -{"id":941,"manufacturer":"Chevrolet","model":"Express 3500","year":1997,"vin":"WAUPEAFM9DA613926"}, -{"id":942,"manufacturer":"Toyota","model":"Sequoia","year":2007,"vin":"4T1BF3EKXAU708409"}, -{"id":943,"manufacturer":"Dodge","model":"Ram 1500","year":1996,"vin":"2C3CDXHG8EH940887"}, -{"id":944,"manufacturer":"Mazda","model":"Navajo","year":1992,"vin":"WBAEB53528C751046"}, -{"id":945,"manufacturer":"Dodge","model":"D350","year":1993,"vin":"WA1CFAFP1FA146930"}, -{"id":946,"manufacturer":"Audi","model":"80","year":1989,"vin":"3D7TT2CT6BG087526"}, -{"id":947,"manufacturer":"BMW","model":"M3","year":1998,"vin":"WAUKF78E37A036895"}, -{"id":948,"manufacturer":"BMW","model":"8 Series","year":1994,"vin":"3VWF17AT5FM697080"}, -{"id":949,"manufacturer":"Toyota","model":"RAV4","year":2008,"vin":"WAUMGAFLXDA059235"}, -{"id":950,"manufacturer":"Ford","model":"Econoline E150","year":1999,"vin":"1D7CE3BK3AS572383"}, -{"id":951,"manufacturer":"Nissan","model":"Altima","year":1999,"vin":"19UYA42771A029655"}, -{"id":952,"manufacturer":"Ford","model":"Mustang","year":1990,"vin":"5N1BA0NE9FN980782"}, -{"id":953,"manufacturer":"Mercedes-Benz","model":"G-Class","year":2003,"vin":"WAUNE78P58A913924"}, -{"id":954,"manufacturer":"Audi","model":"A8","year":2007,"vin":"1G6KY54971U597958"}, -{"id":955,"manufacturer":"Ford","model":"Taurus","year":2009,"vin":"3C6JD6AK5CG227817"}, -{"id":956,"manufacturer":"Honda","model":"Odyssey","year":1999,"vin":"WAU3GAFR2EA104928"}, -{"id":957,"manufacturer":"Scion","model":"tC","year":2010,"vin":"1HGCR2E59DA343054"}, -{"id":958,"manufacturer":"Subaru","model":"Legacy","year":2002,"vin":"19UUA9F27BA361672"}, -{"id":959,"manufacturer":"Jeep","model":"Patriot","year":2009,"vin":"TRUDD38J781256555"}, -{"id":960,"manufacturer":"Citroën","model":"2CV","year":1948,"vin":"JM1NC2LFXC0413928"}, -{"id":961,"manufacturer":"Ford","model":"F350","year":1992,"vin":"2C3CDXFG3FH287650"}, -{"id":962,"manufacturer":"Subaru","model":"Forester","year":2005,"vin":"19UUA9F7XEA240764"}, -{"id":963,"manufacturer":"Volvo","model":"C70","year":2004,"vin":"WBABD33476J656886"}, -{"id":964,"manufacturer":"Mercedes-Benz","model":"SLR McLaren","year":2006,"vin":"WBSWL93579P423684"}, -{"id":965,"manufacturer":"Ford","model":"Taurus","year":1991,"vin":"3VWKZ8AJ8BM254010"}, -{"id":966,"manufacturer":"Pontiac","model":"Torrent","year":2008,"vin":"1GYUCEEJ4AR855072"}, -{"id":967,"manufacturer":"Ford","model":"F350","year":2009,"vin":"5N1AA0NC2FN929537"}, -{"id":968,"manufacturer":"Infiniti","model":"Q","year":2000,"vin":"WBA3G7C5XFK549997"}, -{"id":969,"manufacturer":"Kia","model":"Sorento","year":2005,"vin":"4F2CY0C76BK342767"}, -{"id":970,"manufacturer":"Acura","model":"Integra","year":1992,"vin":"1FAHP3E24CL756384"}, -{"id":971,"manufacturer":"Ford","model":"Crown Victoria","year":1997,"vin":"5YMGZ0C50BL824178"}, -{"id":972,"manufacturer":"Mitsubishi","model":"Diamante","year":2000,"vin":"5UXFG8C58EL348290"}, -{"id":973,"manufacturer":"Audi","model":"TT","year":2012,"vin":"3C4PDCAB0CT791965"}, -{"id":974,"manufacturer":"Subaru","model":"Alcyone SVX","year":1995,"vin":"WP1AA2A27EL984844"}, -{"id":975,"manufacturer":"Cadillac","model":"Fleetwood","year":1994,"vin":"WBA3N5C5XFK535043"}, -{"id":976,"manufacturer":"Porsche","model":"Cayman","year":2007,"vin":"1FTEW1CMXEF929266"}, -{"id":977,"manufacturer":"Ford","model":"Ranger","year":1989,"vin":"WAUEFAFL9EA825934"}, -{"id":978,"manufacturer":"Suzuki","model":"SJ","year":1988,"vin":"1NXBU4EE3AZ893151"}, -{"id":979,"manufacturer":"Ford","model":"Thunderbird","year":1987,"vin":"WAUHE98P59A023255"}, -{"id":980,"manufacturer":"Ford","model":"F250","year":1984,"vin":"WAUUFAFH7BN322057"}, -{"id":981,"manufacturer":"Ford","model":"Escape","year":2012,"vin":"WAUKFAFLXBA290014"}, -{"id":982,"manufacturer":"Smart","model":"Fortwo","year":2008,"vin":"W04GU5GCXB1277715"}, -{"id":983,"manufacturer":"Mercedes-Benz","model":"CLS-Class","year":2007,"vin":"1G4HR57YX8U889648"}, -{"id":984,"manufacturer":"Mercedes-Benz","model":"SL-Class","year":2004,"vin":"SCBBR53W068432242"}, -{"id":985,"manufacturer":"Mitsubishi","model":"Montero","year":2003,"vin":"WBAUP7C55DV314780"}, -{"id":986,"manufacturer":"Chevrolet","model":"Corvette","year":2011,"vin":"1G6DC5E53C0245117"}, -{"id":987,"manufacturer":"Ford","model":"Mustang","year":2008,"vin":"3D7JB1EP6BG663443"}, -{"id":988,"manufacturer":"Saturn","model":"L-Series","year":2002,"vin":"4T1BF1FK8EU222738"}, -{"id":989,"manufacturer":"Ford","model":"F-Series","year":1992,"vin":"WAUHFAFL8FN257179"}, -{"id":990,"manufacturer":"Acura","model":"RL","year":1998,"vin":"WBASP2C57DC662165"}, -{"id":991,"manufacturer":"Volkswagen","model":"Rabbit","year":2007,"vin":"1N4AB7AP8DN434815"}, -{"id":992,"manufacturer":"Saturn","model":"Ion","year":2007,"vin":"3C4PDCDG5FT564282"}, -{"id":993,"manufacturer":"GMC","model":"Sonoma Club Coupe","year":1997,"vin":"3GYFNBEY4BS455882"}, -{"id":994,"manufacturer":"Oldsmobile","model":"Bravada","year":1994,"vin":"WP0AA2A8XCS332764"}, -{"id":995,"manufacturer":"Mitsubishi","model":"Outlander","year":2005,"vin":"WAUDF98E46A615817"}, -{"id":996,"manufacturer":"Dodge","model":"Ram Van B350","year":1992,"vin":"1N6AF0LX8FN622673"}, -{"id":997,"manufacturer":"Mitsubishi","model":"Raider","year":2006,"vin":"WA1AY74L38D568364"}, -{"id":998,"manufacturer":"Mercury","model":"Mariner","year":2009,"vin":"2C3CA4CD0AH728029"}, -{"id":999,"manufacturer":"Hyundai","model":"Veracruz","year":2007,"vin":"1FTNF2A57AE927279"}, -{"id":1000,"manufacturer":"Audi","model":"4000s","year":1986,"vin":"2T3BF4DV6CW676456"}] diff --git a/days/009-012-modern-apis-starred/demo/main.py b/days/009-012-modern-apis-starred/demo/main.py new file mode 100644 index 00000000..77f6f98f --- /dev/null +++ b/days/009-012-modern-apis-starred/demo/main.py @@ -0,0 +1,41 @@ +from typing import Optional + +import fastapi +import uvicorn + +api = fastapi.FastAPI() + + +@api.get('/') +def index(): + body = ( + '' + "" + '

Welcome to the API

' + '
' + "Try it: /api/calculate?x=7&y=11" + '
' + '' + '' + ) + + return fastapi.responses.HTMLResponse(content=body) + + +@api.get('/api/calculate') +def calculate(x: int, y: int, z: Optional[int] = None): + if z == 0: + return fastapi.responses.JSONResponse(content={'error': 'ERROR: Z cannot be zero.'}, status_code=400) + + value = x + y + + if z is not None: + value /= z + + return {'x': x, 'y': y, 'z': z, 'value': value} + + +# uvicorn was updated, and it's type definitions don't match FastAPI, +# but the server and code still work fine. So ignore PyCharm's warning: +# noinspection PyTypeChecker +uvicorn.run(api, port=8000, host='127.0.0.1') diff --git a/days/009-012-modern-apis-starred/demo/requirements.piptools b/days/009-012-modern-apis-starred/demo/requirements.piptools new file mode 100644 index 00000000..0af110b7 --- /dev/null +++ b/days/009-012-modern-apis-starred/demo/requirements.piptools @@ -0,0 +1,3 @@ +fastapi +uvicorn + diff --git a/days/009-012-modern-apis-starred/demo/requirements.txt b/days/009-012-modern-apis-starred/demo/requirements.txt index 9669f89f..c8b25f74 100644 --- a/days/009-012-modern-apis-starred/demo/requirements.txt +++ b/days/009-012-modern-apis-starred/demo/requirements.txt @@ -1,2 +1,27 @@ -apistar==0.5.41 -pytest +# This file was autogenerated by uv via the following command: +# uv pip compile requirements.piptools --output-file requirements.txt +annotated-types==0.6.0 + # via pydantic +anyio==4.3.0 + # via starlette +click==8.1.7 + # via uvicorn +fastapi==0.110.1 +h11==0.14.0 + # via uvicorn +idna==3.6 + # via anyio +pydantic==2.6.4 + # via fastapi +pydantic-core==2.16.3 + # via pydantic +sniffio==1.3.1 + # via anyio +starlette==0.37.2 + # via fastapi +typing-extensions==4.11.0 + # via + # fastapi + # pydantic + # pydantic-core +uvicorn==0.29.0 diff --git a/days/009-012-modern-apis-starred/demo/test_app.py b/days/009-012-modern-apis-starred/demo/test_app.py deleted file mode 100644 index 7bc37a43..00000000 --- a/days/009-012-modern-apis-starred/demo/test_app.py +++ /dev/null @@ -1,155 +0,0 @@ -from apistar import test - -from app import app, cars, CAR_NOT_FOUND - -client = test.TestClient(app) - - -def test_list_cars(): - response = client.get('/') - assert response.status_code == 200 - - json_resp = response.json() - car_count = len(cars) - assert len(json_resp) == car_count - - expected = {'id': 1, 'manufacturer': 'Mercedes-Benz', - 'model': '500SEC', 'year': 1993, - 'vin': '1FTEW1CM9CF529793'} - assert json_resp[0] == expected - - -def test_create_car(): - car_count = len(cars) - data = {'manufacturer': 'Honda', - 'model': 'some_model', - 'year': 2018} - - response = client.post('/', data=data) - assert response.status_code == 201 - assert len(cars) == car_count + 1 - - response = client.get('/1001/') - expected = {'id': 1001, 'manufacturer': 'Honda', - 'model': 'some_model', 'year': 2018, 'vin': ''} - assert response.json() == expected - - data = {'manufacturer': 'Lotus', - 'model': 'some_other_model', - 'year': 2019, - 'vin': 123} - response = client.post('/', data=data) - assert response.status_code == 201 - expected = {'id': 1002, 'manufacturer': 'Lotus', - 'model': 'some_other_model', 'year': 2019, - 'vin': '123'} - - response = client.get('/1002/') - assert response.json() == expected - assert len(cars) == car_count + 2 - - -def test_create_car_after_delete(): - """Test to fail create_car's len(cars)+1 (fix max(cars.keys())+1)""" - car_count = len(cars) - response = client.delete(f'/99/') - assert response.status_code == 204 - assert len(cars) == car_count - 1 - data = {'manufacturer': 'Honda', - 'model': 'blabla', - 'year': 2019} - response = client.post('/', data=data) - assert response.status_code == 201 - assert len(cars) == car_count - - -def test_create_car_missing_fields(): - data = {'key': 1} - response = client.post('/', data=data) - assert response.status_code == 400 - - errors = response.json() - assert errors['manufacturer'] == 'The "manufacturer" field is required.' - assert errors['model'] == 'The "model" field is required.' - assert errors['year'] == 'The "year" field is required.' - - -def test_create_car_field_validation(): - data = {'manufacturer': 'Opel', - 'model': 'x'*51, - 'year': 2051} - response = client.post('/', data=data) - assert response.status_code == 400 - - errors = response.json() - assert "Must be one of" in errors['manufacturer'] - assert errors['model'] == 'Must have no more than 50 characters.' - assert errors['year'] == 'Must be less than or equal to 2050.' - - -def test_get_car(): - response = client.get('/777/') - assert response.status_code == 200 - - expected = {'id': 777, 'manufacturer': 'Ford', - 'model': 'Crown Victoria', 'year': 2004, - 'vin': '1G6DG577890380184'} - assert response.json() == expected - - -def test_get_car_notfound(): - response = client.get('/11111/') - assert response.status_code == 404 - assert response.json() == {'error': CAR_NOT_FOUND} - - -def test_update_car(): - data = {'manufacturer': 'Honda', - 'model': 'some_model', - 'year': 2018} - response = client.put('/777/', data=data) - assert response.status_code == 200 - - # test put response - expected = {'id': 777, 'manufacturer': 'Honda', - 'model': 'some_model', 'year': 2018, 'vin': ''} - assert response.json() == expected - - # check if data persisted == wiped out previous data car 777 - response = client.get('/777/') - assert response.json() == expected - - -def test_update_car_notfound(): - data = {'manufacturer': 'Honda', - 'model': 'some_model', - 'year': 2018} - response = client.put('/11111/', data=data) - - assert response.status_code == 404 - assert response.json() == {'error': CAR_NOT_FOUND} - - -def test_update_car_validation(): - data = {'manufacturer': 'nonsense', - 'model': 's' * 51, - 'year': 1899} - response = client.put('/777/', data=data) - assert response.status_code == 400 - - errors = response.json() - assert "Must be one of" in errors['manufacturer'] - assert errors['year'] == 'Must be greater than or equal to 1900.' - assert errors['model'] == 'Must have no more than 50 characters.' - - -def test_delete_car(): - car_count = len(cars) - for i in (11, 22, 33): - response = client.delete(f'/{i}/') - assert response.status_code == 204 - - response = client.get(f'/{i}/') - assert response.status_code == 404 # car gone - - assert len(cars) == car_count - 3 diff --git a/days/009-012-modern-apis-starred/readme.md b/days/009-012-modern-apis-starred/readme.md index 44c0ba49..58ad8bf6 100644 --- a/days/009-012-modern-apis-starred/readme.md +++ b/days/009-012-modern-apis-starred/readme.md @@ -1,4 +1,6 @@ -# Days 09-12 Building APIs with Api Star (0.5.41) +# Days 09-12 Building APIs with FastAPI + + **Important**: at the time of recording the newest version of `apistar` was `0.5.41`, which let you build complete APIs. diff --git a/days/009-012-modern-apis-with-fastapi/demo/main.py b/days/009-012-modern-apis-with-fastapi/demo/main.py new file mode 100644 index 00000000..4a36a7e7 --- /dev/null +++ b/days/009-012-modern-apis-with-fastapi/demo/main.py @@ -0,0 +1,46 @@ +from typing import Optional + +import fastapi +import uvicorn + +api = fastapi.FastAPI() + + +@api.get('/') +def index(): + body = "" \ + "" \ + "

Welcome to the API

" \ + "
" \ + "Try it: /api/calculate?x=7&y=11" \ + "
" \ + "" \ + "" + + return fastapi.responses.HTMLResponse(content=body) + + +@api.get('/api/calculate') +def calculate(x: int, y: int, z: Optional[int] = None): + if z == 0: + return fastapi.responses.JSONResponse( + content={"error": "ERROR: Z cannot be zero."}, + status_code=400) + + value = x + y + + if z is not None: + value /= z + + return { + 'x': x, + 'y': y, + 'z': z, + 'value': value + } + + +# uvicorn was updated, and it's type definitions don't match FastAPI, +# but the server and code still work fine. So ignore PyCharm's warning: +# noinspection PyTypeChecker +uvicorn.run(api, port=8000, host="127.0.0.1") diff --git a/days/009-012-modern-apis-with-fastapi/demo/requirements.txt b/days/009-012-modern-apis-with-fastapi/demo/requirements.txt new file mode 100644 index 00000000..0af110b7 --- /dev/null +++ b/days/009-012-modern-apis-with-fastapi/demo/requirements.txt @@ -0,0 +1,3 @@ +fastapi +uvicorn + diff --git a/days/009-012-modern-apis-with-fastapi/readme.md b/days/009-012-modern-apis-with-fastapi/readme.md new file mode 100644 index 00000000..8ab15fb6 --- /dev/null +++ b/days/009-012-modern-apis-with-fastapi/readme.md @@ -0,0 +1,98 @@ +# Days 09-12 Building APIs with FastAPI + +This exercise section is going to have you laughing, no doubt. You're going to use FastAPI to create an API that will return a random programming-related joke. + +--- + +## Days 1-3: Watch the video lessons + +The first segment of this 4-day block is to watch the videos and study FastAPI. Consider downloading and trying out the [code sample developed during the course](https://github.com/talkpython/100daysofweb-with-python-course/tree/master/days/009-012-modern-apis-with-fastapi/demo). + +## Day 4: Funny Business + +Now you have seen the videos from this chapter, you're ready to build an API using FastAPI! + +We are going to use the [pyjokes](https://pyjok.es) package. This is usually marketed as a CLI tool to get a joke in your terminal. But it also [has an API](https://pyjok.es/api/). It's this API that we can use to build a joke API. + +### Foundations + +Before we talk about the details of your journey, let me give you a couple of foundational concepts from FastAPI so that you don't need to search the web *too* much (programming always involves some searching or AI-asking). + +**FastAPI Starter Structure** + +Simple FastAPI apps usually look something like this: + +```python +import fastapi +import uvicorn + +api = fastapi.FastAPI() + +@api.get('/') +def some_action(): + return {"message": "Hello"} + +if __name__ == '__main__': + uvicorn.run(api, port=8001, host="127.0.0.1") +``` + +Incredible how simple these web apps are these days in their bare form. + +**Passing data to actions** + +The above api endpoint `some_action` is fun, but takes no data. If we wanted to pass a number, say `start_index`, we could do it like this using the `{}` wrappers in the URL: + +```python +@api.get('/{start_index}') +def some_action(start_index): +``` + +But this is a string and index implies an integer. We could parse it ourselves, but FastAPI does that for us with validation by simply specifying the type in code, some_action(start_index: **int**): + +```python +@api.get('/{start_index}') +def some_action(start_index: int): +``` + +**Constrained enums and string values** + +Finally, in this exercise, you'll work with a small set of valid string values. For example, the pyjokes methods take a `category` of **neutral**, **all**, or **chuck** (as in Norris). We can express that way better with an enum (StrEnum specifically). Note: This type is only available in Python 3.11 or higher. + +```python +class JokeCategory(enum.StrEnum): + all = 'all' + chuck_norris = 'chuck' + neutral = 'neutral' +``` + +It's preferable to use this as the type in FastAPI because FastAPI will automatically reject all inputs that are not one of those three string values. + +### Your Joke API + +Use what we've given you above along with `pyjokes`, which you'll need to install as a dependency along with fastapi and uvicorn, to build a FastAPI that will listen at the URLs: + +- `http://127.0.0.1:8001/api/laugh/chuck/en` +- `http://127.0.0.1:8001/api/laugh/neutral/en` +- `http://127.0.0.1:8001/api/laugh/chuck/es` + +Passing in both the category and language (again see [the pyjokes API](https://pyjok.es/api/) for how to use it and valid inputs). + +The response should be a JSON value such as: + +```json +{ + "category": "chuck", + "language": "en", + "joke": "Every SQL statement that Chuck Norris codes has an implicit 'COMMIT' in its end." +} +``` + +Be creative, explore and have fun. Remember: _the learning is in the practice_. + +### Time to share what you've accomplished! + +Be sure to share your last couple of days work on Twitter or Facebook. Use the hashtag **#100DaysOfWeb**. + +Here are [some examples](https://twitter.com/search?q=%23100DaysOfCode) to inspire you. Consider including [@talkpython](https://twitter.com/talkpython) and [@pybites](https://twitter.com/pybites) in your tweets. + +*See a mistake in these instructions? Please [submit a new issue](https://github.com/talkpython/100daysofweb-with-python-course/issues) or fix it and [submit a PR](https://github.com/talkpython/100daysofweb-with-python-course/pulls).*