iSeeCars Data API (1.0.0)

Download OpenAPI specification:Download

Discover VIN Insights operations available to this request

GET /api/data/v1/capabilities

Read-only discovery costs no credits and has a separate 30 requests/minute limit. An API key is not required for eligible requests. First call GET /api/data/v1/capabilities without Authorization. If the returned operation specifies bearer_required: false, submit that operation without an Authorization header. Otherwise, a valid Bearer API key is required. Access remains subject to availability and usage limits. Requests without a Bearer API key receive generic requirements unless the server verifies their current eligibility. A valid Bearer API key returns caller-specific eligible VIN Insights operations and limits. The server determines eligibility; do not claim a client identity in a header. Follow each returned operation's bearer_required and authorization_header instructions and limits. Do not invent a token when instructed to omit Authorization. If no operations are available, report the access requirement instead of attempting a lookup. An invalid supplied credential is rejected. Availability is checked again when executing an operation; discovery does not reserve credits or quota. Responses are caller-specific and must not be cached or shared.

Authentication: anonymous discovery or Bearer API key. Follow the current capabilities response for each available operation's authentication requirements.

Responses

200
Current capabilities, or generic API-key requirements
401
Invalid supplied credential or inactive identity
403
Credential is not permitted for this operation
405
Use GET; only GET and OPTIONS are supported
429
Separate discovery rate limit exceeded; honor Retry-After
503
Discovery or verification is temporarily unavailable

Content type: application/json. Cache-Control: private, no-store.

Download the combined OpenAPI specification for the response schema.

Retrieve market value for one VIN using URL query parameters.

GET /api/data/v1/vin-insights?vin=SAJWA6ATXH8K41808&mileage=42343&zip=02116

Use GET for a single VIN market-value lookup, including clients that cannot send POST. Supply vin and optionally mileage and zip in the URL, without a request body. GET always requests market_value only. Other parameters, repeated parameters, batch input, debug and test mode are rejected. Use POST for other products and batches.

An API key is not required for eligible requests. First call GET /api/data/v1/capabilities without Authorization and follow the returned GET operation. If bearer_required is false, omit Authorization; otherwise supply a valid Bearer API key. Eligibility, entitlements and rate limits are checked on every call. Search crawlers are not granted lookup access.

Responses use the same results format as POST, with an additional billing_request_id. Identical normalized VIN, mileage and ZIP inputs for the same account and key reuse one billing identity within each fixed UTC minute. Each HTTP call has its own request_id and counts toward the rate limit. A lookup in a later minute may incur a new charge, even immediately across a minute boundary. Omitted optional inputs differ from supplied inputs. Matching billing outcomes reuse the existing debit; changed status or cost within the retry window returns 503 without a second debit. Valuations may be recomputed on retry.

Responses are private, no-store and noindex. Do not cache or prefetch valuation URLs. HEAD is not supported and never executes or bills a valuation.

Query parameters: vin (required); mileage and zip (optional). Response: application/json.

Retrieve requested VIN Insights products for one or more vehicles.

Get market value, depreciation and/or remaining lifespan data for specific VINs. A VIN can represent more than one possible vehicle configuration when the encoded VIN data does not uniquely identify details such as body style, trim, or engine. If those differences change a requested product result, the response includes a separate match for each relevant configuration. Fields shared by all matches appear in vehicle; distinguishing fields appear in each match's vehicle_variant.

An API key is not required for eligible requests. First call GET /api/data/v1/capabilities without Authorization. If the returned operation specifies bearer_required: false, submit that operation without an Authorization header. Otherwise, a valid Bearer API key is required. Access remains subject to availability and usage limits.

Authentication: omit Authorization for eligible requests only when the capabilities response permits it; otherwise supply a Bearer API key.

Request Body schema: application/json
required
required
Array of objects (VinInsightsVehicleRequest) [ 1 .. 50 ] items
testMode
boolean
Default: false

When true, the bearer key must include data:vin_insights:test. The scope alone does not activate test mode when this field is false or omitted.

products
Array of strings non-empty
Items Enum: "market_value" "depreciation" "remaining_lifespan"

Responses

Request samples

Content type
application/json
Example
{
  • "vehicles": [
    ],
  • "products": [
    ]
}

Response samples

Content type
application/json
Example
{
  • "request_id": "7cc2b425-63a4-4f7a-9f46-0bd0ee5d6786",
  • "testMode": true,
  • "results": [
    ]
}

Request a Window Sticker or Build Sheet.

Request a document for one VIN. A successful result may be either a Window Sticker or a Build Sheet, identified by result.document_type.

This operation is asynchronous because the document may not be ready immediately:

  1. Submit the VIN with this endpoint.
  2. Save the lookup_id or status_url from the 202 response.
  3. Check the status endpoint no more often than every two seconds, and honor Retry-After when it is returned.
  4. Continue until the status is success, not_available, or failed.

Processing may take several seconds. Continue polling until a terminal status is returned; do not assume the document is ready when this request returns.

Requires data:window_sticker and enabled Window Sticker access. Test mode requires data:window_sticker:test and uses the same live fulfillment flow as a standard request. By default, test mode is restricted to a small set of approved VINs. Accounts approved for unrestricted test use may submit any otherwise valid VIN. Other test-mode VINs return 400 test_vin_not_allowed for restricted accounts.

By default, an account may create 10 Window Sticker lookup requests per minute across all of its API keys. This limit can be adjusted per account based on expected usage patterns. Status requests do not count toward this limit. Unavailable service returns 503 temporarily_unavailable; disabled account access returns 403 forbidden_window_sticker. A request remains readable by the account that created it.

Authorizations:
bearerAuth
Request Body schema: application/json
required
vin
required
string^[A-HJ-NPR-Za-hj-npr-z0-9]{17}$

A 17-character VIN, normalized to uppercase.

testMode
boolean
Default: false

Requires data:window_sticker:test. It follows the same request, status, and response contract as a standard lookup and uses live fulfillment. By default, test mode is restricted to a small set of approved VINs. Accounts approved for unrestricted test use may submit any otherwise valid VIN.

devServerAffinity
boolean
Default: false

Development-only diagnostic option. When true on a supported development server, all processing attempts for the lookup are restricted to that receiving server. The request is rejected when the receiving development worker cannot provide that guarantee.

Responses

Request samples

Content type
application/json
{
  • "vin": "1FTEW1E50JKF86414",
  • "testMode": false,
  • "devServerAffinity": false
}

Response samples

Content type
application/json
{
  • "request_id": "86db5f02-8b32-4609-9710-c84242e17576",
  • "lookup_id": "wslk_6f1a2b3c4d5e6789a123456789abcdef",
  • "status": "queued",
  • "vin": "1FTEW1E50JKF86414",
  • "status_url": "/api/data/v1/window-sticker/lookups/wslk_6f1a2b3c4d5e6789a123456789abcdef",
  • "created_at": "2026-08-21T16:00:00Z"
}

Get a Window Sticker request's status or result.

Keep the lookup_id or status_url returned when the lookup is created. Wait at least two seconds between status requests. If a response includes Retry-After, wait the specified number of seconds before trying again. queued and running mean processing is not finished. Continue until the status is success, not_available, or failed. A success response includes result.document_url for the PDF. not_available means no Window Sticker or Build Sheet was found. failed means processing did not complete; see the returned error for more information. The JSON request_id remains the creation request UUID; each HTTP response has its own X-Request-ID. Each status request only returns the current state of that original request and never submits another Window Sticker request. A request is readable only by the account that created it.

Authorizations:
bearerAuth
path Parameters
lookup_id
required
string (WindowStickerLookupId) ^wslk_[a-f0-9]{32}$

Responses

Response samples

Content type
application/json
Example
{
  • "request_id": "86db5f02-8b32-4609-9710-c84242e17576",
  • "lookup_id": "wslk_6f1a2b3c4d5e6789a123456789abcdef",
  • "status": "queued",
  • "vin": "1FTEW1E50JKF86414",
  • "status_url": "/api/data/v1/window-sticker/lookups/wslk_6f1a2b3c4d5e6789a123456789abcdef",
  • "created_at": "2026-08-21T16:00:00Z"
}