Discover/CarsForSale API
live

CarsForSale APIcarsforsale.com

Search car listings by zip code, browse makes/models/trims, and fetch listing details including price history and market analytics from CarsForSale.com.

Endpoint health
verified 3d ago
search_listings
get_makes
get_models_by_make
get_trims_by_make_model
get_listing_details
5/5 passing latest checkself-healing
Endpoints
5
Updated
26d ago

What is the CarsForSale API?

The CarsForSale.com API gives developers access to 5 endpoints covering vehicle inventory search, make/model/trim browsing, and individual listing detail retrieval. The search_listings endpoint returns up to ~24 recently added vehicle listings near a given US zip code, each with price, mileage, dealer info, and image URLs. Listing detail responses include market analytics such as national average price, days on market, and depreciation data.

Try it
Filter results by vehicle make (e.g. Toyota, Honda, Ford). Case-insensitive partial match.
US zip code to search near. Omitting returns listings from a default/national scope.
api.parse.bot/scraper/2afee011-a6ca-481e-8fa9-cb59db7733be/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/2afee011-a6ca-481e-8fa9-cb59db7733be/search_listings?make=Toyota&zip_code=84010' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace carsforsale-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: CarsForSale SDK — search listings, browse makes/models/trims, get analytics."""
from parse_apis.carsforsale.com_api import CarsForSale, ListingNotFound

cfs = CarsForSale()

# List available makes and popular categories
for name in cfs.makes.list(limit=10):
    print(name)

# Search for Toyota listings near a zip code
for listing in cfs.listings.search(make="Toyota", zip_code="84010", limit=3):
    print(listing.make, listing.model, listing.model_year, listing.price, listing.mileage)

# Drill into one listing's market analytics
listing = cfs.listings.search(zip_code="84010", limit=1).first()
if listing:
    profile = listing.details()
    print(profile.national_average_price, profile.days_on_market, profile.popularity_description)
    for dp in profile.depreciation_prices[:3]:
        print(dp.date, dp.price)

# Browse models for a specific make (constructible)
for model in cfs.make("Honda").models(limit=5):
    print(model.slug, model.display_name)

# Get trims for a make/model via sub-resource
for trim in cfs.make("Toyota").trims.list(model="Camry", limit=10):
    print(trim)

# Handle a missing listing gracefully
try:
    bad_listing = cfs.listings.search(zip_code="00000", limit=1).first()
    if bad_listing:
        bad_listing.details()
except ListingNotFound as exc:
    print(f"listing not found: {exc.listing_id}")

print("exercised: makes.list / listings.search / listing.details / make.models / make.trims.list")
All endpoints · 5 totalmissing one? ·

Search for newly listed vehicle listings near a zip code. Returns recently added vehicles, optionally filtered by make. Results are not paginated and typically return up to ~24 listings. Each listing includes price, mileage, dealer info, and image URLs.

Input
ParamTypeDescription
makestringFilter results by vehicle make (e.g. Toyota, Honda, Ford). Case-insensitive partial match.
zip_codestringUS zip code to search near. Omitting returns listings from a default/national scope.
Response
{
  "type": "object",
  "fields": {
    "count": "integer total number of listings returned",
    "listings": "array of listing objects with globalInventoryId, make, model, modelYear, trim, price, mileage, dealer info, and image URLs"
  },
  "sample": {
    "data": {
      "count": 24,
      "listings": [
        {
          "make": "Chevrolet",
          "trim": "AWD LT 4dr SUV w/2LT",
          "model": "Traverse",
          "price": 7000,
          "dealer": {
            "zip": "84097",
            "city": "Orem",
            "state": "UT",
            "address": "1800 S State St",
            "displayName": "CR Cars",
            "phoneNumber": "+1 (555) 012-3456"
          },
          "mileage": "124,628",
          "forSaleBy": "CR Cars",
          "modelYear": 2015,
          "globalInventoryId": 126359288
        }
      ]
    },
    "status": "success"
  }
}

About the CarsForSale API

Search and Browse Inventory

search_listings accepts an optional zip_code and make parameter, returning an array of listing objects that each contain globalInventoryId, make, model, modelYear, trim, price, mileage, dealer information, and image URLs. Results reflect recently added vehicles and are capped at roughly 24 listings per call — there is no pagination. The get_makes endpoint requires no inputs and returns a flat array of make names and popular search categories sourced from the site homepage.

Make, Model, and Trim Hierarchy

get_models_by_make takes a make string and returns an array of model objects, each with a Value (slug used in subsequent requests) and a Text field that includes the display name and current listing count. Pass the Value from that response as the model parameter to get_trims_by_make_model, which returns the available trim strings for that make/model combination. This three-level hierarchy lets you build filtered search UIs or enumerate available inventory by vehicle configuration.

Listing Detail and Market Data

get_listing_details accepts a listing_id (the globalInventoryId from search results) and returns a profile object with market analytics: NationalAveragePrice, Price, DaysOnMarket, PopularityDescription, and DepreciationPrices. A core_info object is populated only when the listing is present in the newly-listed feed; otherwise it returns an empty object. This makes the endpoint most reliable when the listing_id was obtained directly from search_listings results.

Coverage Notes

All zip code filtering applies to US locations. Make and model strings are case-insensitive for search but must match the Value slug from get_models_by_make when passed to get_trims_by_make_model. The API does not expose seller contact forms, saved search functionality, or VIN decoder data.

Reliability & maintenanceVerified

The CarsForSale API is a managed, monitored endpoint for carsforsale.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when carsforsale.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official carsforsale.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3d ago
Latest check
5/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a local used-car alert tool that polls search_listings by zip code and notifies users of new listings matching a target make.
  • Populate a vehicle configurator dropdown by chaining get_makes, get_models_by_make, and get_trims_by_make_model to render a full make/model/trim selector.
  • Compare a specific listing's Price against the NationalAveragePrice field from get_listing_details to surface deal quality scores.
  • Track DaysOnMarket across multiple listings to identify slow-moving inventory for price negotiation research.
  • Aggregate listing counts from get_models_by_make to visualize which models have the most available inventory in a region.
  • Feed DepreciationPrices data from listing detail responses into a vehicle value forecasting model.
  • Audit dealer inventory breadth by searching search_listings across multiple makes and grouping results by dealer info fields.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does CarsForSale.com offer an official developer API?+
CarsForSale.com does not publish a public developer API or documentation for third-party access. This Parse API provides structured access to the data available on the site.
What does `get_listing_details` return, and when is `core_info` populated?+
The endpoint returns a profile object with market analytics fields including NationalAveragePrice, Price, DaysOnMarket, PopularityDescription, and DepreciationPrices. The core_info object — which contains basic listing info like make, model, price, and dealer — is only populated when the listing_id corresponds to a listing present in the newly-listed feed. If you pass a listing ID sourced from search_listings, core_info will generally be available.
Can I paginate through all listings in a region or filter by price range?+
search_listings returns up to roughly 24 listings per call and does not support pagination or price-range filtering. The only available filters are make and zip_code. You can fork this API on Parse and revise it to add pagination or additional filter parameters if the underlying data supports it.
Does the API return vehicle history reports, VIN details, or seller contact information?+
It does not. The API covers listing metadata (price, mileage, make, model, trim, dealer name, images) and market analytics from the detail endpoint. VIN decoding, Carfax/AutoCheck history links, and seller contact forms are not exposed. You can fork this API on Parse and revise it to add a VIN-focused endpoint if that data is accessible on listing pages.
Does the API cover listings outside the United States?+
The zip_code parameter is US-specific, and CarsForSale.com primarily serves the US market. Omitting zip_code returns listings from a default national scope, but there is no support for Canadian postal codes or international locations. You can fork this API on Parse and revise it to adjust geographic scope if needed.
Page content last updated . Spec covers 5 endpoints from carsforsale.com.
Related APIs in AutomotiveSee all →
carsales.com API
Search for cars on Carsales and retrieve detailed listings with technical specifications, makes, and models. Filter and browse available vehicles by make to find exactly what you're looking for.
cars.com API
Search for vehicles on Cars.com using filters like price, make, and model, then get detailed specifications and dealer inventory information for any listing you're interested in. Access comprehensive vehicle details including pricing, features, and dealer contact information all in one place.
autotrader.com API
Search Autotrader.com vehicle listings and access detailed information like pricing, specifications, and VIN data with flexible filtering options. Browse all available vehicle makes and models to refine your search across thousands of listings.
carvana.com API
Search Carvana's used car inventory by make, model, price, fuel type, and more. Retrieve paginated listings with pricing, specs, and delivery details, or fetch comprehensive information for a specific vehicle by ID.
edmunds.com API
Search new and used car inventory on Edmunds by make, model, year, condition, and location. Retrieve detailed specs, pricing, history, and dealer info by VIN, and browse all available car makes.
carfax.com API
carfax.com API
carmax.com API
Search CarMax's inventory to find vehicles by make, model, price, and features, then access detailed specs, photos, and pricing for any car that interests you. Locate nearby CarMax stores, view their hours and contact information, and browse the specific inventory available at each location.
autotrader.com.au API
Search and browse car listings on AutoTrader Australia with filters by make and model, then view detailed information about specific vehicles. Find available cars with full specs and compare options across thousands of listings using customizable filters.