{"openapi":"3.1.0","info":{"title":"Motor Row public car API","version":"1.0.0","description":"Motor Row is an online marketplace for used cars in Indianapolis, Indiana. Local dealers list the cars they have for sale; shoppers browse free and contact the dealer directly. Motor Row does not own the cars and is not a party to any sale. Listing details are entered by dealers and are not verified by Motor Row. No authentication. Please respect robots.txt and cache results for a few minutes. An MCP endpoint is also available at https://offerlaneauto.com/mcp.","contact":{"url":"https://offerlaneauto.com/contact","name":"Motor Row (317) 853-6700"},"termsOfService":"https://offerlaneauto.com/terms"},"servers":[{"url":"https://offerlaneauto.com"}],"paths":{"/cars.json":{"get":{"operationId":"searchCars","summary":"List cars for sale, with optional filters","parameters":[{"name":"make","in":"query","schema":{"type":"string"}},{"name":"model","in":"query","schema":{"type":"string"}},{"name":"year","in":"query","schema":{"type":"integer"}},{"name":"under","in":"query","description":"Maximum price in US dollars","schema":{"type":"integer"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["newest","price","price-desc","miles"]}}],"responses":{"200":{"description":"Matching cars","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer"},"generated_at":{"type":"string"},"cars":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"summary":{"type":"string","description":"One plain-English sentence describing the listing"},"status":{"type":"string","enum":["available","sold","removed"]},"year":{"type":"integer"},"make":{"type":"string"},"model":{"type":"string"},"trim":{"type":"string","nullable":true},"vin":{"type":"string","nullable":true},"mileage_miles":{"type":"integer","nullable":true},"price_usd":{"type":"number"},"location":{"type":"object","properties":{"city":{"type":"string"},"state":{"type":"string"},"zip":{"type":"string","nullable":true},"country":{"type":"string"}}},"description":{"type":"string","nullable":true},"photos":{"type":"array","items":{"type":"string","format":"uri"}},"seller":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"phone":{"type":"string","nullable":true},"email":{"type":"string","nullable":true}}},"listed_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}}}}}}}},"/cars/{id}.json":{"get":{"operationId":"getCar","summary":"One listing by id","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The listing","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"summary":{"type":"string","description":"One plain-English sentence describing the listing"},"status":{"type":"string","enum":["available","sold","removed"]},"year":{"type":"integer"},"make":{"type":"string"},"model":{"type":"string"},"trim":{"type":"string","nullable":true},"vin":{"type":"string","nullable":true},"mileage_miles":{"type":"integer","nullable":true},"price_usd":{"type":"number"},"location":{"type":"object","properties":{"city":{"type":"string"},"state":{"type":"string"},"zip":{"type":"string","nullable":true},"country":{"type":"string"}}},"description":{"type":"string","nullable":true},"photos":{"type":"array","items":{"type":"string","format":"uri"}},"seller":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"phone":{"type":"string","nullable":true},"email":{"type":"string","nullable":true}}},"listed_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}}},"404":{"description":"Unknown id"},"410":{"description":"Listing was removed by the seller"}}}},"/llms.txt":{"get":{"operationId":"getLlmsTxt","summary":"Plain-text index of the site for language models","responses":{"200":{"description":"text/plain"}}}},"/llms-full.txt":{"get":{"operationId":"getLlmsFull","summary":"Every current listing in full, as Markdown-flavoured text","responses":{"200":{"description":"text/plain"}}}},"/api/feeds/push":{"post":{"operationId":"pushInventory","summary":"Dealers: push an inventory file (CSV, TSV, XML or JSON) to add, update and sell off your cars","security":[{"feedKey":[]}],"description":"For dealers with a Motor Row seller account. The body is the raw inventory export; any column order and the usual column names (vin, stock_number, year, make, model, trim, price, mileage, photo_urls, description…) are recognized. Cars are matched by VIN, then stock number, within your account. Import runs in the background. Docs: https://offerlaneauto.com/dealers/feed","parameters":[{"name":"mode","in":"query","schema":{"type":"string","enum":["full","partial"],"default":"full"},"description":"full = the file is your complete inventory (feed-imported cars missing from it are marked sold); partial = add/update only"},{"name":"dry_run","in":"query","schema":{"type":"string","enum":["0","1"]},"description":"Return what would happen without changing anything"},{"name":"filename","in":"query","schema":{"type":"string"},"description":"Optional file name hint, e.g. inventory.xml"}],"requestBody":{"required":true,"content":{"text/csv":{"schema":{"type":"string"}},"text/plain":{"schema":{"type":"string"}},"application/xml":{"schema":{"type":"string"}},"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Dry run result"},"202":{"description":"Accepted; import queued","content":{"application/json":{"schema":{"type":"object","properties":{"accepted":{"type":"boolean"},"run_id":{"type":"string"},"rows":{"type":"integer"},"valid":{"type":"integer"},"status_url":{"type":"string","format":"uri"}}}}}},"400":{"description":"File could not be read"},"401":{"description":"Missing or bad feed key"},"429":{"description":"More than 60 pushes in an hour"}}}},"/api/feeds/push/{run_id}":{"get":{"operationId":"pushStatus","summary":"Dealers: status of an inventory push","security":[{"feedKey":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Run status","content":{"application/json":{"schema":{"type":"object","properties":{"run_id":{"type":"string"},"status":{"type":"string","enum":["queued","running","ok","partial","failed"]},"added":{"type":"integer"},"updated":{"type":"integer"},"unchanged":{"type":"integer"},"marked_sold":{"type":"integer"},"skipped":{"type":"integer"},"photos_downloaded":{"type":"integer"},"issues":{"type":"array","items":{"type":"string"}},"message":{"type":"string","nullable":true}}}}}},"404":{"description":"Unknown run"}}}}},"components":{"securitySchemes":{"feedKey":{"type":"http","scheme":"bearer","description":"Per-dealer feed key from Seller mode → Inventory feed → API. Only the two /api/feeds endpoints need it; everything else is public."}}}}