Setup Dealer
Dealers
Setup Dealership
Onboard a new dealership for inventory data collection.
POST
Setup Dealer
POST /v1/dealers/setup
v1.0 schema lock. The response shape on this page is the locked v1.0 contract. We will never remove a documented field, never rename a field, and never change a field’s type without bumping to v2 (see Versioning). New fields may be added additively; your client must tolerate unknown keys. This endpoint has two distinct success-response variants: async job creation (HTTP 202 — the standard flow) and reactivation (HTTP 200 — when an inactive subscription exists for the URL).
How It Works
- POST this endpoint. You get back HTTP 202 with a
setup_idin well under a second. - The setup job (provider detection, AI config validation, subscription creation) runs in the background — typically 60 seconds, up to ~10 minutes for heavily bot-protected sites.
- Poll
GET /v1/dealers/setup/{setup_id}untilstatusis"completed"or"failed". Recommended polling interval: 5 seconds. - Or skip polling: subscribe to the
setup.completewebhook before calling setup.
Request Body
Example
Response — HTTP 202 Accepted
pending, running, completed, failed). When status is "completed", the poll response carries the detected provider, provider_confidence, config, vehicle_counts, and the new dealership_id / configuration_id / subscription_id.
setup_status on the completed poll response is "active" when detection and validation both pass. If detection succeeds but the test scrape has issues (e.g. missing critical fields), the status is "needs_manual_review" — imports are still created but may need attention, and the poll response includes a human-readable requires_review_reason.
status: "completed" means detection and configuration are done — NOT that inventory is available. Poll until inventory_status: "available", or subscribe to the import.complete webhook. See Get Setup Status for details.Inventory is automatically refreshed every 12 hours. This is the default schedule for all new dealerships and is not configurable via the API.
Reactivation
If you previously deleted a dealership and call setup again with the same URL, the existing subscription is reactivated. This completes inline (no detection runs) and returns HTTP 200:Errors
Detection failures (e.g. the website provider could not be identified) no longer surface as POST errors — the POST succeeds with 202, and the failure is reported on the poll response as
status: "failed" with an error message and, when available, a failure_mode classification.