{"status":"success","api":{"slug":"copart-and-iaai-api","name":"Copart and IAAI","description":"Access active Copart and IAAI vehicle listings in the USA and Canada. Search by VIN or lot number and retrieve specifications, photos, auction prices, and available history. Built for vehicle importers, analytics, and AI applications using publicly accessible data.","host":"https://carstat-copart-iaai.jojapi.net","docs":"https://jojapi.com/hub/api/copart-and-iaai-api"},"request":{"enabled":true,"endpoints":[{"method":"GET","url_path":"/cars","name":"Search Active Auction Vehicles","description":"Search vehicles with active Copart or IAAI listings in our collected dataset. Use this endpoint for vehicle sourcing, importer inventory, auction monitoring, market analysis, and AI applications.\n\n**Filters**\nUse `domain_id=3` for Copart or `domain_id=1` for IAAI; omit it to search the sources available to your account. Filter by manufacturer, model, generation, year, mileage, price, location, damage, and auction details. All query parameters are optional. Omit unused parameters entirely instead of sending empty values.\n\n**Pagination and updates**\nThe default page size is 50; the maximum is 1000, subject to account limits. `page` starts at 1. Vehicles are ordered by their internal ID, ascending by default. Set `simple_paginate=1` to skip total counts or `0` to include them; the default depends on the account. Use `minutes` for updates within the last 4320 minutes (72 hours), and `/archived-lots` to track removals.\n\n**Response**\nReturns vehicles in `data`, with pagination in `links` and `meta`. Each vehicle includes specifications and a `lots` array with source identifiers, photos, mileage, prices, auction dates, and condition information where available. Add `prices_history=1` to include each lot's `prices` array. Listing filters select matching vehicles; nested `lots` may include other listings for the same vehicle. Inspect `lots[].domain.id` when selecting an individual source.\n\nAvailability reflects the latest collected data. An active listing is not a guarantee that bidding is currently open. See the `exclude_expired_auctions` parameter description for its current implementation limitation.\n\n**Example request**\n`GET /cars`\n\n**Optional filters**\n`GET /cars?domain_id=3&per_page=50&simple_paginate=1`","price_usd":0.05},{"method":"GET","url_path":"/search-vin/{vin}","name":"Get Auction Vehicle by VIN","description":"Retrieve a vehicle and its available Copart and IAAI listings by VIN. Searches active and archived listings, making it suitable for vehicle research and auction-history lookup.\n\nThe VIN lookup is case-insensitive and matches the complete stored value. It does not perform prefix or wildcard searches. A shortened VIN can match only if that exact shortened value is stored.\n\nReturns one vehicle in `data`, with specifications and available auction records in `lots`. Records can include lot numbers, source platform, photos, mileage, damage, auction dates, and prices. Set the optional `prices_history=1` parameter to include price-history entries for each lot; omit it for the standard response.\n\nReturns HTTP 404 when the VIN is not found or has no listings available to your account. A restricted record can return HTTP 423. Data availability reflects the latest collection.\n\n**Example request**\n`GET /search-vin/YV1MC67278J058366`","price_usd":0.5},{"method":"GET","url_path":"/search-lot/{lot}/{domain}","name":"Get Auction Vehicle by Lot Number","description":"Retrieve a vehicle and its matching auction records using a Copart or IAAI lot number. Searches active and archived listings.\n\nPass the source lot number from `lots[].lot` as `{lot}`. Use `copart_com` or `iaai_com` as `{domain}`. The lot number is a source identifier, distinct from the internal vehicle ID (`data.id`) and internal lot-record ID (`lots[].id`).\n\nReturns one vehicle in `data`, with specifications and matching listings in `lots`. Photos, mileage, damage, prices, and auction dates are included where available. Set `prices_history=1` to include the `prices` array.\n\nFor a source's external vehicle ID, such as the IAAI ID used in a listing URL, set `search_by_id=1` and pass that ID as `{lot}`. Numeric external IDs use prefix matching in the current implementation; nonnumeric external IDs use an exact match. Omit this parameter for a normal lot-number lookup.\n\nReturns HTTP 400 for an invalid lot-number format, HTTP 401 for a source unavailable to your account, or HTTP 404 when no matching vehicle is found.\n\n**Example request \u2014 Copart**\n`GET /search-lot/86246665/copart_com`","price_usd":0.4},{"method":"GET","url_path":"/manufacturers/{type}","name":"List Vehicle Manufacturers","description":"List manufacturers and the catalog IDs used by the vehicle-search and model endpoints.\n\nSet `{type}` to `cars`, `motorcycles`, or `all`. Each item includes `id`, `name`, a brand image where available, `models_qty`, and `cars_qty`. For example, BMW has manufacturer ID `16`.\n\nReturns `data`, `links`, and `meta`, sorted by manufacturer name with a fixed page size of 1000. `cars_qty` reflects active inventory for the sources available to your account; manufacturers with zero inventory may appear. This catalog is cached for up to 24 hours. It does not accept a source filter.\n\n**Example request**\n`GET /manufacturers/cars`\n\nUse an item's `id` in `/models/{manufacturer_id}/{type}` or the `manufacturer_id` filter on `/cars`.","price_usd":0.05},{"method":"GET","url_path":"/models/{manufacturer_id}/{type}","name":"List Models by Manufacturer","description":"List the vehicle models belonging to a manufacturer. Get `{manufacturer_id}` from `/manufacturers/{type}`; use `16` for BMW. Set `{type}` to `cars`, `motorcycles`, or `all`.\n\nReturns `data`, `links`, and `meta`. Each model includes `id`, `name`, `manufacturer_id`, `vehicle_type`, `generations_qty`, and `cars_qty`. Results are sorted by name and paginated at 500 models per page. Omit `page` for page 1.\n\nUse the returned model ID in `/generations/{model_id}/{type}` or the `model_id` filter on `/cars`. Inventory counts reflect the sources available to your account; zero-count entries may appear. No source filter is supported here.\n\n**Example request \u2014 BMW models**\n`GET /models/16/cars`","price_usd":0.05},{"method":"GET","url_path":"/generations/{model_id}/{type}","name":"List Generations by Model","description":"List generations of a vehicle model, including production-year ranges where available. Get `{model_id}` from the models endpoint. Set `{type}` to `cars` or `motorcycles`.\n\nReturns `data`, `links`, and `meta`. Each item includes `id`, `name`, `from_year`, `to_year`, `manufacturer_id`, `model_id`, and `cars_qty`. A null year means that value is unavailable.\n\nResults are sorted by name and paginated at 500 generations per page. Omit `page` for page 1. Inventory counts reflect the sources available to your account; zero-count entries may appear. Use an item's `id` as the `generation_id` filter on `/cars`.\n\n**Example request \u2014 BMW model 94**\n`GET /generations/94/cars`","price_usd":0.05},{"method":"GET","url_path":"/archived-lots","name":"List Archived Auction Listings","description":"Retrieve Copart and IAAI listings marked as archived in our dataset. Use this feed with `/cars` to synchronize inventory and remove listings that are no longer active.\n\nUse `minutes` for listings archived within the last N minutes, up to 4320 minutes (72 hours). Without a time filter, this feed can be bounded by a server-managed archive cutoff; it is not a guaranteed export of the complete archive. Use VIN or lot-number lookup to research an individual older listing.\n\nThe default page size is 100; the maximum is 1000, subject to account limits. `page` starts at 1. Set `simple_paginate=1` to skip total counts or `0` to include them; the default depends on the account. Results are ordered by internal lot ID.\n\nReturns `data`, `links`, and `meta`, including source lot numbers, internal IDs, VINs where available, archive timestamps, and price/status information. The current response groups bid, Buy Now, sale date, and final bid with their update timestamps; legacy accounts can receive the older shape documented in the response schema. An archived listing does not necessarily indicate a completed sale.\n\n**Example request**\n`GET /archived-lots`\n\n**Incremental update**\n`GET /archived-lots?minutes=60`","price_usd":0.5},{"method":"GET","url_path":"/statistics","name":"Get Auction Vehicle Statistics","description":"Retrieve stored auction statistics grouped by source platform, manufacturer, model, generation, year, engine, and vehicle type. Use this data for market comparisons and historical analysis.\n\nRecords include listing counts, average/minimum/maximum final-bid values, and calculation timestamps where available. Statistics are stored aggregates rather than live auction quotes or valuations.\n\nFilter by `manufacturer_id`, `model_id`, `generation_id`, `engine_id`, or `year`. The manufacturer filter accepts one ID or comma-separated IDs, for example `16` for BMW. Records cover sources available to your account; no `domain_id` query filter is supported. Inspect each record's `domain` to identify its source.\n\nReturns `data`, `links`, and `meta` using simple pagination without total counts. The default page size is 100, with a maximum of 500 subject to account limits. Results are ordered by internal record ID descending. Resend filters and `per_page` when requesting the next page.\n\n**Example request**\n`GET /statistics`","price_usd":0.5},{"method":"GET","url_path":"/usa/damages","name":"List Auction Damage Types","description":"Retrieve the damage-name dictionary used by Copart and IAAI vehicle records. Use it to interpret primary and secondary damage values and build damage-selection controls.\n\nEach record includes `id` and `name`. To filter `/cars`, pass a damage name or substring in the string parameter `damage`; the search endpoint does not take a damage ID.\n\nReturns `data` and native pagination fields such as `current_page` and `next_page_url`, rather than `links`/`meta`. Records are sorted by ID, with a fixed page size of 200. Omit `page` for page 1; a null `next_page_url` indicates the end.\n\n**Example request**\n`GET /usa/damages`","price_usd":0.01},{"method":"GET","url_path":"/usa/states","name":"List US States and Canadian Provinces","description":"Retrieve the state or province dictionary for auction locations. Omit `country` for the United States, or set `country=ca` for Canada. Accepted codes are `us` and `ca`, case-insensitively.\n\nEach record includes `id`, `name`, `code` where available, and `country_id`. Pass its internal `id` to `/usa/cities/{state_id}`. To filter vehicle listings, use its `code` in the `/cars` parameter `state_code`.\n\nReturns `data` and native pagination fields, including `next_page_url`. Results are sorted by ID with a fixed page size of 200. Omit `page` for page 1. A null `next_page_url` indicates the end. An unsupported country code returns HTTP 400.\n\n**Example request \u2014 US states**\n`GET /usa/states`\n\n**Canadian provinces**\n`GET /usa/states?country=ca`","price_usd":0.01},{"method":"GET","url_path":"/usa/cities/{state_id}","name":"List Cities by State or Province","description":"Retrieve cities belonging to a US state or Canadian province. Pass the internal state/province `id` returned by `/usa/states` as `{state_id}`; do not pass an abbreviation such as CA or FL.\n\nEach city includes `id`, `name`, `state_id`, and `country_id`. Results are sorted by ID with a fixed page size of 200. Returns `data` and native pagination fields, including `next_page_url`. Omit `page` for page 1. A state with no matching cities returns an empty `data` array.\n\n**Example request**\n`GET /usa/cities/12`\n\nUse the state lookup to select the correct ID for your intended location.","price_usd":0.01},{"method":"GET","url_path":"/usa/titles","name":"List Auction Document Titles","description":"Retrieve the document-title dictionary used by auction listings. Use it to interpret title and document information returned with a vehicle.\n\nEach record includes `id`, `name`, and `code` where available. To filter `/cars`, pass a document-title name or substring in `document_title`; the vehicle-search parameter accepts text rather than a dictionary ID. A dictionary entry is a source label, not a determination of a vehicle's legal or registration status.\n\nReturns `data` and native pagination fields, including `next_page_url`. Results are sorted by ID with a fixed page size of 200. Omit `page` for page 1; a null `next_page_url` indicates the end.\n\n**Example request**\n`GET /usa/titles`","price_usd":0.01},{"method":"GET","url_path":"/usa/branches","name":"List Copart and IAAI Auction Branches","description":"Retrieve the Copart and IAAI auction-branch dictionary. Omit `domain_id` to list both platforms, or use `3` for Copart and `1` for IAAI.\n\nEach record includes the internal branch `id`, `domain_id`, `name`, branch `number`, and source `link` where available. These records help interpret the selling-branch information associated with vehicle listings.\n\nReturns `data` and native pagination fields, including `next_page_url`. Results are sorted by ID with a fixed page size of 200. Omit `page` for page 1; a null `next_page_url` indicates the end. An unsupported source ID returns HTTP 400.\n\n**Example request**\n`GET /usa/branches`","price_usd":0.01}]},"plans":[{"slug":"1dn4z3ty9u4v1su74pa7l3d5","name":"Starter","type":"periodic","currency":"usd","period":"1 MONTH","rate_limit":{"max_requests":1,"time_window_seconds":1},"price_usd":5,"quota":[{"object":"Requests","slug":"requests","units":50}],"purchase":"payment"},{"slug":"93vg7oef7boupw25b4otgb7a","name":"Pro","type":"periodic","currency":"usd","period":"1 MONTH","rate_limit":{"max_requests":1,"time_window_seconds":1},"price_usd":130,"quota":[{"object":"Requests","slug":"requests","units":4500}],"purchase":"payment"},{"slug":"9tpzsxzzni6p447onmumydhj","name":"Ultra","type":"periodic","currency":"usd","period":"1 MONTH","rate_limit":{"max_requests":3,"time_window_seconds":1},"price_usd":240,"quota":[{"object":"Requests","slug":"requests","units":5000000}],"purchase":"payment"}],"policies":{"identity":"The paying wallet is the customer identity (did:pkh). One account per wallet; link more wallets with a double signature.","keys":"Every plan purchase issues a new API key bound to that subscription. Several plans of one API may be held at once, each with its own key.","renewal":"Plans are prepaid periods: no automatic charge. An expired key gets a 402 renewal offer; pay it to start a new period.","topup":"Pay-as-you-go plans spend an account-wide prepaid balance; top up from any wallet you control.","refunds":"On-chain payments are final. Upstream 5xx responses are never charged; 4xx responses are.","min_topup_usd":1},"links":{"openapi":"https://carstat-copart-iaai.jojapi.net/openapi.json","discovery":"https://carstat-copart-iaai.jojapi.net/.well-known/x402","directory":"https://agents.jojapi.net/apis/copart-and-iaai-api"}}