# Mexico VIN/NIV Finder by Year, Make, Model (`scrapers_lat/mexico-vin-finder`) Actor

Find a real observed VIN/NIV for Mexican vehicles from public used-car listings. Give year, make, model and version and get a real VIN with source, engine, transmission and a confidence level. Bulk lookup by list.

- **URL**: https://apify.com/scrapers\_lat/mexico-vin-finder.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Automation, Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 90.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.40 / vin validated

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Mexico VIN/NIV Finder by Year, Make, Model

> Turn a list of vehicles (year, make, model, version) into real, observed VIN/NIV numbers taken from public used-car listings in Mexico. Never generated. Each row comes back with the VIN, the source, and a confidence level, or a clear "sin match".

**📥 [Input](https://apify.com/scrapers_lat/mexico-vin-finder/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/mexico-vin-finder/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/mexico-vin-finder/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/mexico-vin-finder/examples)**


![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify&logoColor=white)
![Mexico](https://img.shields.io/badge/Coverage-Mexico-blue)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)

<table><tr>
<td align="center"><strong>Real VIN</strong><br>observed, never generated</td>
<td align="center"><strong>Bulk by list</strong><br>one VIN per row</td>
<td align="center"><strong>Confidence</strong><br>high, medium, low</td>
</tr></table>

<br>

### What you get

For each vehicle you send, one record:

- **vin**: a real VIN/NIV observed in a public Mexican listing (or null when there is no reliable match)
- **year**, **make**, **model**, **version**: echoed back from your row
- **engine**, **transmission**, **fuel**: passed through from your row
- **sourceUrl** and **source**: where the VIN was found
- **confidence**: Alta (year, make, model and version match), Media (year and make/model match), Baja (make/model match only)
- **status**: validado or sin match
- **capturedAt**: when it was read

### How to use it

1. Provide your vehicles as a **structured list**, by **uploading a CSV or Excel file**, or by **pasting a table**. To process for free, name your columns with the standard English schema: `id, year, make, model, version`. Columns in other names or languages are mapped automatically by a small AI step (charged as AI Normalization).
2. Run it. Each row returns one VIN with its source and confidence, or "sin match".
3. Export as JSON, CSV or Excel, or pull it through the Apify API.

### Who is it for

| Use case | Who benefits |
|---|---|
| Parts fitment | Parts sellers matching catalogs to a real VIN |
| Data enrichment | Teams adding a VIN to a vehicle spec list |
| Research | Analysts sampling real VINs by model and year |

### Frequently Asked Questions

**Are the VINs real?**
Yes. Every VIN is taken from a real public listing, with its source link. We never generate or approximate a VIN. When there is no reliable match, the row is marked "sin match".

**What does confidence mean?**
Alta means the year, make, model and version all match a real listing. Media means the year and make/model match. Baja means only the make/model matched. A VIN encodes year, make and model, but not the trim, so the version is confirmed from the listing when available.

**How complete is the coverage?**
It depends on how common the vehicle is in the Mexican used-car market. Popular models return a VIN often; rare or older trims may come back as "sin match".

<!-- example-tasks -->
### Example use cases

Ready-to-run example tasks, each preconfigured for a common scenario. Open one and press run, or use it as a template:

- [VIN lookup for Chery Tiggo 8 Pro](https://apify.com/scrapers_lat/mexico-vin-finder/examples/vin-chery-tiggo-8-pro): Find a real VIN for the Chery Tiggo 8 Pro by year and version from public Mexican used-car listings, with source and confidence level.
- [VIN lookup for BYD Dolphin electric](https://apify.com/scrapers_lat/mexico-vin-finder/examples/vin-byd-dolphin-ev): Get a real observed VIN for the BYD Dolphin electric by year from Mexican listings, returned with the source URL and a confidence level.
- [VIN lookup for GWM Ora 03 EV](https://apify.com/scrapers_lat/mexico-vin-finder/examples/vin-gwm-ora-03-ev): Look up a real VIN for the GWM Ora 03 electric by year and trim from public Mexican used-car listings, with source and confidence.
- [VIN lookup for BYD Song Plus](https://apify.com/scrapers_lat/mexico-vin-finder/examples/vin-byd-song-plus): Find a real VIN for the BYD Song Plus DM-i by year from Mexican listings, returned with engine, transmission, source and confidence.
- [VIN lookup for Chery Tiggo 4 Pro](https://apify.com/scrapers_lat/mexico-vin-finder/examples/vin-chery-tiggo-4-pro): Get a real observed VIN for the Chery Tiggo 4 Pro by year and version from public Mexican listings, with source URL and confidence.
- [VIN lookup for GWM Tank 300](https://apify.com/scrapers_lat/mexico-vin-finder/examples/vin-gwm-tank-300): Look up a real VIN for the GWM Tank 300 by year from Mexican used-car listings, returned with the source and a confidence level.
- [Bulk VIN lookup for a Chinese-brand fleet](https://apify.com/scrapers_lat/mexico-vin-finder/examples/vin-chinese-brand-fleet-bulk): Find one real VIN per vehicle for a mixed Chinese-brand list (BYD, Chery, GWM) from Mexican listings, with confidence and sin match handling.
- [VIN lookup from a pasted table (English columns)](https://apify.com/scrapers_lat/mexico-vin-finder/examples/vin-paste-table-english-columns): Paste a table with columns id, year, make, model, version and get a real VIN per row from Mexican listings, no AI normalization fee.
- [VIN lookup for BYD Yuan Plus](https://apify.com/scrapers_lat/mexico-vin-finder/examples/vin-byd-yuan-plus-ev): Get a real observed VIN for the BYD Yuan Plus electric by year from public Mexican used-car listings, with source and confidence level.
- [VIN lookup for Chery Tiggo 7 Pro](https://apify.com/scrapers_lat/mexico-vin-finder/examples/vin-chery-tiggo-7-pro): Find a real VIN for the Chery Tiggo 7 Pro by year and version from Mexican listings, returned with the source URL and a confidence level.

<!-- /example-tasks -->

<!-- scrapers-lat-cta -->
Built by [scrapers.lat](https://scrapers.lat).
<!-- /scrapers-lat-cta -->

# Actor input Schema

## `maxVehicles` (type: `integer`):

Maximum number of vehicle rows to process. Optional.
## `vehicles` (type: `array`):

A list of vehicles to look up, each an object with year, make, model and version (and an optional id). Use this or paste a table below.
## `file` (type: `string`):

Upload a CSV or Excel (.xlsx) file with your vehicles. For no AI charge, name your columns exactly: id, year, make, model, version (English). Any other names or languages (marca, modelo, año, etc.) are mapped automatically by an AI step, charged as AI Normalization.
## `fileUrl` (type: `string`):

Optional. A public link to a CSV or Excel file. Use the standard columns id, year, make, model, version (English) to skip the AI Normalization charge; other column names are mapped by AI (charged).
## `tableText` (type: `string`):

Optional. Paste a CSV or TSV table. Use the standard columns id, year, make, model, version (English) to skip the AI Normalization charge; other column names or languages are mapped by AI (charged).
## `aiNormalize` (type: `boolean`):

When on, if your columns are not the standard English schema (id, year, make, model, version), a cheap AI step maps them. Only charged when it actually runs. If your columns already match, it is skipped and free.

## Actor input object example

```json
{
  "vehicles": [
    {
      "id": "1",
      "year": 2023,
      "make": "Chirey",
      "model": "Tiggo 8PRO",
      "version": "Luxury"
    },
    {
      "id": "2",
      "year": 2024,
      "make": "BYD",
      "model": "Dolphin",
      "version": "Base"
    },
    {
      "id": "3",
      "year": 2024,
      "make": "GWM",
      "model": "Ora 03",
      "version": "Luxury"
    }
  ],
  "aiNormalize": true
}
````

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "vehicles": [
        {
            "id": "1",
            "year": 2023,
            "make": "Chirey",
            "model": "Tiggo 8PRO",
            "version": "Luxury"
        },
        {
            "id": "2",
            "year": 2024,
            "make": "BYD",
            "model": "Dolphin",
            "version": "Base"
        },
        {
            "id": "3",
            "year": 2024,
            "make": "GWM",
            "model": "Ora 03",
            "version": "Luxury"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/mexico-vin-finder").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "vehicles": [
        {
            "id": "1",
            "year": 2023,
            "make": "Chirey",
            "model": "Tiggo 8PRO",
            "version": "Luxury",
        },
        {
            "id": "2",
            "year": 2024,
            "make": "BYD",
            "model": "Dolphin",
            "version": "Base",
        },
        {
            "id": "3",
            "year": 2024,
            "make": "GWM",
            "model": "Ora 03",
            "version": "Luxury",
        },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/mexico-vin-finder").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "vehicles": [
    {
      "id": "1",
      "year": 2023,
      "make": "Chirey",
      "model": "Tiggo 8PRO",
      "version": "Luxury"
    },
    {
      "id": "2",
      "year": 2024,
      "make": "BYD",
      "model": "Dolphin",
      "version": "Base"
    },
    {
      "id": "3",
      "year": 2024,
      "make": "GWM",
      "model": "Ora 03",
      "version": "Luxury"
    }
  ]
}' |
apify call scrapers_lat/mexico-vin-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapers_lat/mexico-vin-finder",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Mexico VIN/NIV Finder by Year, Make, Model",
        "description": "Find a real observed VIN/NIV for Mexican vehicles from public used-car listings. Give year, make, model and version and get a real VIN with source, engine, transmission and a confidence level. Bulk lookup by list.",
        "version": "0.1",
        "x-build-id": "uHjo2athG4R5byUK5"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers_lat~mexico-vin-finder/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers_lat-mexico-vin-finder",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapers_lat~mexico-vin-finder/runs": {
            "post": {
                "operationId": "runs-sync-scrapers_lat-mexico-vin-finder",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapers_lat~mexico-vin-finder/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers_lat-mexico-vin-finder",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "maxVehicles": {
                        "title": "Max vehicles",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of vehicle rows to process. Optional."
                    },
                    "vehicles": {
                        "title": "Vehicles (structured)",
                        "type": "array",
                        "description": "A list of vehicles to look up, each an object with year, make, model and version (and an optional id). Use this or paste a table below."
                    },
                    "file": {
                        "title": "Upload CSV or Excel file",
                        "type": "string",
                        "description": "Upload a CSV or Excel (.xlsx) file with your vehicles. For no AI charge, name your columns exactly: id, year, make, model, version (English). Any other names or languages (marca, modelo, año, etc.) are mapped automatically by an AI step, charged as AI Normalization."
                    },
                    "fileUrl": {
                        "title": "CSV or Excel file URL",
                        "type": "string",
                        "description": "Optional. A public link to a CSV or Excel file. Use the standard columns id, year, make, model, version (English) to skip the AI Normalization charge; other column names are mapped by AI (charged)."
                    },
                    "tableText": {
                        "title": "Paste your table",
                        "type": "string",
                        "description": "Optional. Paste a CSV or TSV table. Use the standard columns id, year, make, model, version (English) to skip the AI Normalization charge; other column names or languages are mapped by AI (charged)."
                    },
                    "aiNormalize": {
                        "title": "Auto-standardize pasted table",
                        "type": "boolean",
                        "description": "When on, if your columns are not the standard English schema (id, year, make, model, version), a cheap AI step maps them. Only charged when it actually runs. If your columns already match, it is skipped and free.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
