Apibara.tech Change Stream API
Durable, sequence-ordered material vehicle changes for reliable synchronization and replay.
Durable, sequence-ordered material vehicle changes for reliable synchronization and replay.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/apibara-tech:apibara-tech-change-stream-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Apibara Copart & IAAI Vehicle Auction Change Stream API
description: 'Structured JSON API for Copart and IAAI vehicle auction data. Search auction vehicles, retrieve VIN and lot details, photos, prices, auction status, sale history, related vehicles, filters, locations, usage information, image proxy responses, and auction-to-port shipping prices.
Canonical public facts: 20M+ lifetime/cumulative indexed auction records; 3.9M+ supported vehicle records represented in the dataset; approximately 30K+ records added or refreshed daily; supported price/status refresh up to 15 minutes and often sooner; supported live-bid refresh about 10–15 seconds. Indexed records are not a unique-VIN count; source-dependent fields can be null.'
version: 1.1.0
termsOfService: https://apibara.tech/en/terms
contact:
name: Apibara
url: https://apibara.tech/en/products/vehicle-auction-data-api
email: admin@apibara.tech
license:
name: Proprietary
url: https://apibara.tech/en/terms
x-apibara-facts:
lastVerified: '2026-10-04'
lifetimeIndexedRecords: 20000000
lifetimeIndexedRecordsLabel: 20M+
lifetimeIndexedRecordsScope: lifetime_cumulative
lifetimeIndexedRecordsMeaning: Lifetime/cumulative records indexed over time; not the current retained dataset and not a unique-VIN or unique-vehicle count.
retainedDatasetSnapshot:
measuredAt: '2026-10-19T19:30:03Z'
currentSupportedVehicleRecords: 3931808
retainedHistoricalAuctionRecords: 5696512
currentPlusRetainedRecords: 9628320
supportedVehicleRecords: 3931808
supportedVehicleRecordsLabel: 3.9M+
recordsAddedOrRefreshedDailyApprox: 30000
recordsAddedOrRefreshedDailyLabel: 30K+
generalRefreshMinutes: 15
liveBidRefreshSeconds:
min: 10
max: 15
freeRequestsMonthly: 100
paymentCardRequiredForFreeTier: false
servers:
- url: https://apibara.tech/api/v1/vehicle-auction
description: Production server
security:
- ApiKeyAuth: []
tags:
- name: Change Stream
description: Durable, sequence-ordered material vehicle changes for reliable synchronization and replay.
paths:
/changes:
get:
tags:
- Change Stream
summary: Read durable vehicle changes
description: Read material Copart and IAAI changes in monotonically increasing sequence order. Persist meta.next_cursor only after your local transaction succeeds, then pass it back as after on the next request. Sequence gaps are valid. Non-material technical null/zero initialization noise is filtered. If a cursor falls outside the retained window, the API returns HTTP 410 cursor_expired instead of silently skipping events.
operationId: listVehicleChanges
parameters:
- name: after
in: query
required: false
description: Return events with sequence greater than this checkpoint. Start with 0 for the oldest retained event.
schema:
type: integer
format: int64
minimum: 0
default: 0
- name: limit
in: query
required: false
schema:
type: integer
minimum: 1
maximum: 500
default: 100
- name: platform
in: query
required: false
schema:
type: string
enum:
- copart
- iaai
- name: event_type
in: query
required: false
schema:
type: string
enum:
- lot.created
- lot.updated
- lot.sold
- lot.not_sold
- lot.removed
- auction.rescheduled
- auction.ended
- bid.changed
- buy_now.changed
- name: terminal
in: query
required: false
schema:
type: boolean
- name: lot_number
in: query
required: false
schema:
type: string
- name: vin
in: query
required: false
schema:
type: string
responses:
'200':
description: Sequence-ordered change events.
content:
application/json:
schema:
$ref: '#/components/schemas/VehicleChangesResponse'
'410':
description: The requested checkpoint has expired from the retained replay window.
content:
application/json:
schema:
$ref: '#/components/schemas/ChangeCursorExpiredResponse'
'401':
description: Unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'422':
description: Invalid query parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
x-codeSamples:
- lang: cURL
source: 'curl -H "X-API-Key: YOUR_API_KEY" "https://apibara.tech/api/v1/vehicle-auction/changes?after=0&limit=100"'
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
components:
schemas:
ApiError:
type: object
additionalProperties: true
properties:
ok:
type:
- boolean
- 'null'
message:
type:
- string
- 'null'
error:
type:
- string
- object
- array
- 'null'
errors:
type:
- object
- array
- 'null'
VehicleChangeEvent:
type: object
required:
- sequence
- event_id
- event
- terminal
- vehicle
- changed_fields
- before
- after
- recorded_at
properties:
sequence:
type: integer
format: int64
example: 918273645
event_id:
type: string
example: chg_918273645
event:
type: string
enum:
- lot.created
- lot.updated
- lot.sold
- lot.not_sold
- lot.removed
- auction.rescheduled
- auction.ended
- bid.changed
- buy_now.changed
terminal:
type: boolean
description: True only for terminal outcomes such as sold, not sold or removed.
reason:
type:
- string
- 'null'
examples:
- source_outcome
- source_removed
- awaiting_approval
vehicle:
type: object
required:
- platform
- lot_number
properties:
id:
type:
- integer
- 'null'
format: int64
platform:
type: string
enum:
- copart
- iaai
platform_id:
type:
- integer
- 'null'
lot_number:
type: string
vin:
type:
- string
- 'null'
changed_fields:
type: array
items:
type: string
description: Canonical field paths changed by this event.
before:
type: object
additionalProperties: true
after:
type: object
additionalProperties: true
vehicle_updated_at:
type:
- string
- 'null'
format: date-time
recorded_at:
type: string
format: date-time
VehicleChangesResponse:
type: object
required:
- ok
- data
- meta
properties:
ok:
type: boolean
const: true
data:
type: array
items:
$ref: '#/components/schemas/VehicleChangeEvent'
meta:
type: object
required:
- schema_version
- after
- next_cursor
- has_more
- count
- retention_days
- ordering
properties:
schema_version:
type: string
example: 2026-10-04.beta1
after:
type: integer
format: int64
next_cursor:
type: integer
format: int64
has_more:
type: boolean
count:
type: integer
oldest_available_sequence:
type:
- integer
- 'null'
format: int64
latest_available_sequence:
type:
- integer
- 'null'
format: int64
retention_days:
type: integer
example: 14
ordering:
type: string
const: sequence_asc
ChangeCursorExpiredResponse:
type: object
required:
- ok
- error
- message
- meta
properties:
ok:
type: boolean
const: false
error:
type: string
const: cursor_expired
message:
type: string
meta:
type: object
properties:
schema_version:
type: string
requested_after:
type: integer
format: int64
oldest_available_cursor:
type: integer
format: int64
oldest_available_sequence:
type: integer
format: int64
latest_available_sequence:
type:
- integer
- 'null'
format: int64
retention_days:
type: integer
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: Apibara API key.
externalDocs:
description: Vehicle Auction Data API documentation and AI-readable resources
url: https://apibara.tech/en/products/vehicle-auction-data-api/docs
x-apibara-machine-readable:
product: https://apibara.tech/en/products/vehicle-auction-data-api
copart_api: https://apibara.tech/en/products/vehicle-auction-data-api/copart-api
iaai_api: https://apibara.tech/en/products/vehicle-auction-data-api/iaai-api
coverage: https://apibara.tech/coverage.json
performance: https://apibara.tech/performance.json
status: https://apibara.tech/status.json
ai_facts: https://apibara.tech/ai-facts.json
llms: https://apibara.tech/llms.txt
llms_full: https://apibara.tech/llms-full.txt
x-apibara-ai-resources:
llms: https://apibara.tech/llms.txt
llmsFull: https://apibara.tech/llms-full.txt
aiFacts: https://apibara.tech/ai-facts.json
coverage: https://apibara.tech/coverage.json
performance: https://apibara.tech/performance.json
status: https://apibara.tech/status.json
statusHistory: https://apibara.tech/status-history.json
mcp: https://apibara.tech/mcp
x-apibara-facts:
lastVerified: '2026-10-04'
lifetimeIndexedRecords: 20000000
lifetimeIndexedRecordsLabel: 20M+
lifetimeIndexedRecordsScope: lifetime_cumulative
lifetimeIndexedRecordsMeaning: Lifetime/cumulative records indexed over time; not the current retained dataset and not a unique-VIN or unique-vehicle count.
retainedDatasetSnapshot:
measuredAt: '2026-10-19T19:30:03Z'
currentSupportedVehicleRecords: 3931808
retainedHistoricalAuctionRecords: 5696512
currentPlusRetainedRecords: 9628320
supportedVehicleRecords: 3931808
supportedVehicleRecordsLabel: 3.9M+
recordsAddedOrRefreshedDailyApprox: 30000
recordsAddedOrRefreshedDailyLabel: 30K+
generalRefreshMinutes: 15
liveBidRefreshSeconds:
min: 10
max: 15
freeRequestsMonthly: 100
paymentCardRequiredForFreeTier: false
x-apibara-search:
queryControls: 49
searchFilterSyncControls: 45
technicalControls:
- cursor
- per_page
- units
- include_total
pagination:
defaultPerPage: 20
planDependent: true
publicTierMaxima:
- 20
- 30
- 40
customPlansMayDiffer: true
auctionSources:
- All
- Copart
- IAAI
auctionModes:
- All
- Timed
- Buy Now
auctionStates:
- Open
- Live
- Ended
incrementalSync:
supported: true
preferred: durable_change_stream
durableChangeStream:
endpoint: /changes
cursorParameter: after
responseCursor: meta.next_cursor
ordering: sequence_asc
retentionDaysBeta: 14
cursorExpiredStatus: 410
cursorExpiredCode: cursor_expired
terminalEvents:
- lot.sold
- lot.not_sold
- lot.removed
recentRecordReconciliation:
parameter: updated_within_minutes
minimumMinutes: 1
maximumMinutes: 525600
cursorPagination: true
zipRadiusSearch: true
shippingFilter: true
guides:
filters: https://apibara.tech/en/vehicle-auction-api-filters
incrementalSync: https://apibara.tech/en/vehicle-auction-incremental-sync-api
upcoming:
parameter: upcoming
values:
- all
- only
- without
x-apibara-agentic-access:
provider_published: true
operations: 13
read_operations: 13
write_operations: 0
note: The current Vehicle Auction Data API contract is data-access oriented. Operation-level x-agentic-access is authoritative for agent execution semantics.
x-provenance:
method: harvested
publisher: Apibara.tech
source: https://apibara.tech/openapi/v1.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)