---
title: Vehicle Unified Search
slug: api-marketplace/vehicle-unified-search
createdAt: 2026-11-02T06:37:51.151Z
---

# Vehicle Unified Search

## Introduction

The Vehicle Unified Search API returns a vehicle's RC details from any one of three inputs: vehicle number, chassis number or engine number. It combines the Detailed RC and Reverse RC Search APIs behind one request and one response, so you no longer have to decide which API to call for each record.

You send whatever identifiers you hold. The API picks one input using a fixed priority, searches only that input, and returns the RC details of the vehicle found. Every successful response also tells you which input was searched and whether each input you sent belongs to the vehicle returned, so a wrong chassis or engine on file is visible immediately.

## How to call the API

**Endpoint:** `POST /api/v3/vehicle/rc-unified-search`

**Headers:** `Content-Type: application/json` and `Authorization: <Auth Token>`.

**Search priority.** Exactly one input is searched per request:

| Inputs sent                                 | Input searched       | Used only for match flags |
| ------------------------------------------- | -------------------- | ------------------------- |
| Vehicle number (with or without the others) | Vehicle number       | Chassis, engine           |
| Chassis number, no vehicle number           | Chassis number       | Engine                    |
| Engine number only                          | Engine number        | -                         |
| None                                        | Nothing; returns 400 | -                         |

If the searched input fails (400, 404 or 409), that result is returned as is. No other input is tried, even if it was sent.

## API Input Guidelines

- At least one of `vehicleNumber`, `chassisNumber` or `engineNumber` is mandatory. An empty string or `null` counts as not sent.
- Vehicle number: letters and digits only. Spaces and hyphens are ignored, case does not matter.
- Chassis and engine numbers are sent as printed on the RC or invoice. Masked values (containing `*` or a run of `XXXX`) are rejected with 400.
- Inputs that are not searched are still compared with the vehicle found and reported through the match flags. The RC fields in the response always belong to the vehicle found; an input value is never copied into the response.
- All dates in the response are `dd/MM/yyyy`; the manufacturing month is `MM/yyyy`.

## Sample Curl

**Preproduction**

```bash
curl --location 'https://api-preproduction.signzy.app/api/v3/vehicle/rc-unified-search' \
--header 'Content-Type: application/json' \
--header 'Authorization: <Auth Token>' \
--data '{
  "vehicleNumber": "MH12AB1234",
  "chassisNumber": "MA3EWDE1S00987654",
  "engineNumber": "K12MN1234567"
}'
```

**Production**

```bash
curl --location 'https://api.signzy.app/api/v3/vehicle/rc-unified-search' \
--header 'Content-Type: application/json' \
--header 'Authorization: <Auth Token>' \
--data '{
  "vehicleNumber": "MH12AB1234",
  "chassisNumber": "MA3EWDE1S00987654",
  "engineNumber": "K12MN1234567"
}'
```

## Input Parameters

| Parameter      | Description                                                                                             | Required    |
| -------------- | ------------------------------------------------------------------------------------------------------- | ----------- |
| vehicleNumber  | Registration number of the vehicle, e.g. MH12AB1234. Searched first when sent.                          | Conditional |
| chassisNumber  | Chassis / VIN as printed on the RC. Searched when vehicleNumber is not sent.                            | Conditional |
| engineNumber   | Engine number as printed on the RC. Searched only when neither vehicleNumber nor chassisNumber is sent. | Conditional |
| blacklistCheck | Boolean. true to include blacklist details. Default false.                                              | Optional    |
| splitAddress   | Boolean. false to omit splitPresentAddress and splitPermanentAddress. Default true.                     | Optional    |
| signzyID       | Your Signzy make-model-variant mapping ID. When sent, the response includes mappings.                   | Optional    |

At least one of the three conditional parameters must be sent.

## Sample Response

**Success (200):** found by vehicle number; the chassis and engine sent both belong to the vehicle found.

```json
{
  "result": {
    "regNo": "MH****4",
    "class": "Motor Car(LMV)",
    "chassis": "M******k",
    "engine": "K1*******67",
    "vehicleManufacturerName": "MARUTI SUZUKI INDIA LTD",
    "model": "SWIFT VXI",
    "vehicleColour": "PEARL ARCTIC WHITE",
    "type": "PETROL",
    "normsType": "BHARAT STAGE VI",
    "bodyType": "HATCHBACK",
    "ownerCount": "1",
    "owner": "R***L D******H",
    "ownerFatherName": "",
    "mobileNumber": "",
    "status": "ACTIVE",
    "statusAsOn": "02/11/2026",
    "regAuthority": "PUNE RTO",
    "regDate": "14/06/2022",
    "vehicleManufacturingMonthYear": "05/2022",
    "rcExpiryDate": "13/06/2037",
    "vehicleTaxUpto": "13/06/2037",
    "vehicleInsuranceCompanyName": "ICICI LOMBARD GENERAL INSURANCE CO. LTD.",
    "vehicleInsuranceUpto": "13/06/2027",
    "vehicleInsurancePolicyNumber": "3***/1*****/00/000",
    "rcFinancer": "HDFC BANK LTD",
    "presentAddress": "*********, PUNE, MAHARASHTRA, ****",
    "splitPresentAddress": {
      "district": [
        "PUNE"
      ],
      "state": [
        [
          "MAHARASHTRA",
          "MH"
        ]
      ],
      "city": [
        "PUNE"
      ],
      "pincode": "****",
      "country": [
        "IN",
        "IND",
        "INDIA"
      ],
      "addressLine": "**********"
    },
    "permanentAddress": "*******, PUNE, MAHARASHTRA, 411038",
    "splitPermanentAddress": {
      "district": [
        "PUNE"
      ],
      "state": [
        [
          "MAHARASHTRA",
          "MH"
        ]
      ],
      "city": [
        "PUNE"
      ],
      "pincode": "****",
      "country": [
        "IN",
        "IND",
        "INDIA"
      ],
      "addressLine": "********"
    },
    "vehicleCubicCapacity": "1197",
    "grossVehicleWeight": "1335",
    "unladenWeight": "875",
    "vehicleCategory": "LMV",
    "rcStandardCap": "",
    "vehicleCylindersNo": "4",
    "vehicleSeatCapacity": "5",
    "vehicleSleeperCapacity": "",
    "vehicleStandingCapacity": "",
    "wheelbase": "2450",
    "vehicleNumber": "MH12AB1234",
    "puccNumber": "MH01234567890",
    "puccUpto": "13/06/2027",
    "blacklistStatus": "",
    "blacklistDetails": [],
    "challanDetails": [],
    "permitIssueDate": "NA",
    "permitNumber": "",
    "permitType": "",
    "permitValidFrom": "NA",
    "permitValidUpto": "NA",
    "nonUseStatus": "",
    "nonUseFrom": "",
    "nonUseTo": "",
    "nationalPermitNumber": "",
    "nationalPermitUpto": "",
    "nationalPermitIssuedBy": "",
    "isCommercial": false,
    "nocDetails": "",
    "rtoCode": "MH12",
    "resultSource": "VEHICLE\_NUMBER",
    "isVehicleMatch": "true",
    "isChassisMatch": "true",
    "isEngineMatch": "true"
  }
}
```

**Error (404):** searched by chassis number, no record. The searched input is named in the message and in `resultSource`.

```json
{
  "error": {
    "name": "error",
    "message": "Vehicle data not found for chassisNumber",
    "status": 404,
    "reason": "NOT\_FOUND",
    "type": "Not Found",
    "statusCode": 404
  },
  "resultSource": "CHASSIS\_NUMBER"
}
```

## Response Parameters

| PARAMETER NAME                | REQUIRED/OPTIONAL | DATA TYPE | DESCRIPTION                                                                                                                       |
| ----------------------------- | ----------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------- |
| regNo                         | REQUIRED          | String    | Registration number of the vehicle found.                                                                                         |
| class                         | REQUIRED          | String    | Vehicle class as on the RC, e.g. Motor Car(LMV).                                                                                  |
| chassis                       | REQUIRED          | String    | Chassis number of the vehicle found.                                                                                              |
| engine                        | REQUIRED          | String    | Engine number of the vehicle found.                                                                                               |
| vehicleManufacturerName       | REQUIRED          | String    | Manufacturer name.                                                                                                                |
| model                         | REQUIRED          | String    | Model / variant name.                                                                                                             |
| vehicleColour                 | REQUIRED          | String    | Colour of the vehicle.                                                                                                            |
| type                          | REQUIRED          | String    | Fuel type.                                                                                                                        |
| normsType                     | REQUIRED          | String    | Emission norms, e.g. BHARAT STAGE VI.                                                                                             |
| bodyType                      | REQUIRED          | String    | Body type.                                                                                                                        |
| ownerCount                    | REQUIRED          | String    | Owner serial number (1 = first owner).                                                                                            |
| owner                         | REQUIRED          | String    | Name of the registered owner.                                                                                                     |
| ownerFatherName               | REQUIRED          | String    | Owner's father's name.                                                                                                            |
| mobileNumber                  | REQUIRED          | String    | Always empty; mobile numbers are not shared.                                                                                      |
| status                        | REQUIRED          | String    | RC status, e.g. ACTIVE, NOC ISSUED.                                                                                               |
| statusAsOn                    | REQUIRED          | String    | Date the status was observed, dd/MM/yyyy.                                                                                         |
| regAuthority                  | REQUIRED          | String    | Registering authority (RTO).                                                                                                      |
| regDate                       | REQUIRED          | String    | Registration date, dd/MM/yyyy.                                                                                                    |
| vehicleManufacturingMonthYear | REQUIRED          | String    | Manufacturing month and year, MM/yyyy.                                                                                            |
| rcExpiryDate                  | REQUIRED          | String    | RC validity end date, dd/MM/yyyy.                                                                                                 |
| vehicleTaxUpto                | REQUIRED          | String    | Tax paid up to, dd/MM/yyyy.                                                                                                       |
| vehicleInsuranceCompanyName   | REQUIRED          | String    | Insurer name.                                                                                                                     |
| vehicleInsuranceUpto          | REQUIRED          | String    | Insurance valid up to, dd/MM/yyyy.                                                                                                |
| vehicleInsurancePolicyNumber  | REQUIRED          | String    | Insurance policy number.                                                                                                          |
| rcFinancer                    | REQUIRED          | String    | Financer / hypothecation, empty when none.                                                                                        |
| presentAddress                | REQUIRED          | String    | Present address as on the RC.                                                                                                     |
| splitPresentAddress           | OPTIONAL          | Object    | Present address split into district, state, city, pincode, country, addressLine. Omitted when splitAddress is false.              |
| permanentAddress              | REQUIRED          | String    | Permanent address as on the RC.                                                                                                   |
| splitPermanentAddress         | OPTIONAL          | Object    | Permanent address split into the same parts. Omitted when splitAddress is false.                                                  |
| vehicleCubicCapacity          | REQUIRED          | String    | Engine capacity in cc.                                                                                                            |
| grossVehicleWeight            | REQUIRED          | String    | Gross vehicle weight in kg.                                                                                                       |
| unladenWeight                 | REQUIRED          | String    | Unladen weight in kg.                                                                                                             |
| vehicleCategory               | REQUIRED          | String    | Vehicle category, e.g. LMV, 2WN.                                                                                                  |
| rcStandardCap                 | REQUIRED          | String    | Standard capacity.                                                                                                                |
| vehicleCylindersNo            | REQUIRED          | String    | Number of cylinders.                                                                                                              |
| vehicleSeatCapacity           | REQUIRED          | String    | Seating capacity.                                                                                                                 |
| vehicleSleeperCapacity        | REQUIRED          | String    | Sleeper capacity.                                                                                                                 |
| vehicleStandingCapacity       | REQUIRED          | String    | Standing capacity.                                                                                                                |
| wheelbase                     | REQUIRED          | String    | Wheelbase in mm.                                                                                                                  |
| vehicleNumber                 | REQUIRED          | String    | Registration number of the vehicle found (same as regNo).                                                                         |
| puccNumber                    | REQUIRED          | String    | PUCC certificate number.                                                                                                          |
| puccUpto                      | REQUIRED          | String    | PUCC valid up to, dd/MM/yyyy.                                                                                                     |
| blacklistStatus               | REQUIRED          | String    | Blacklist status when blacklistCheck is true.                                                                                     |
| blacklistDetails              | REQUIRED          | Array     | Blacklist details when blacklistCheck is true, otherwise empty.                                                                   |
| challanDetails                | REQUIRED          | Array     | Always empty on this API.                                                                                                         |
| permitIssueDate               | REQUIRED          | String    | Permit issue date, dd/MM/yyyy or NA.                                                                                              |
| permitNumber                  | REQUIRED          | String    | Permit number.                                                                                                                    |
| permitType                    | REQUIRED          | String    | Permit type.                                                                                                                      |
| permitValidFrom               | REQUIRED          | String    | Permit valid from, dd/MM/yyyy or NA.                                                                                              |
| permitValidUpto               | REQUIRED          | String    | Permit valid up to, dd/MM/yyyy or NA.                                                                                             |
| nonUseStatus                  | REQUIRED          | String    | Non-use declaration status.                                                                                                       |
| nonUseFrom                    | REQUIRED          | String    | Non-use from, dd/MM/yyyy.                                                                                                         |
| nonUseTo                      | REQUIRED          | String    | Non-use to, dd/MM/yyyy.                                                                                                           |
| nationalPermitNumber          | REQUIRED          | String    | National permit number.                                                                                                           |
| nationalPermitUpto            | REQUIRED          | String    | National permit valid up to, dd/MM/yyyy.                                                                                          |
| nationalPermitIssuedBy        | REQUIRED          | String    | National permit issuing authority.                                                                                                |
| isCommercial                  | REQUIRED          | Boolean   | true when the vehicle is registered for commercial use.                                                                           |
| nocDetails                    | REQUIRED          | String    | NOC details when a NOC has been issued.                                                                                           |
| rtoCode                       | REQUIRED          | String    | RTO code derived from the registration, e.g. MH12.                                                                                |
| mappings                      | OPTIONAL          | Object    | Signzy make-model-variant mappings. Present only when signzyID is sent.                                                           |
| resultSource                  | REQUIRED          | String    | The input that was searched and found the record: VEHICLE\_NUMBER, CHASSIS\_NUMBER or ENGINE\_NUMBER.                             |
| isVehicleMatch                | REQUIRED          | String    | "true" or "false": does the vehicleNumber you sent belong to the vehicle found. "not provided in input" when you did not send it. |
| isChassisMatch                | REQUIRED          | String    | "true" or "false": does the chassisNumber you sent belong to the vehicle found. "not provided in input" when you did not send it. |
| isEngineMatch                 | REQUIRED          | String    | "true" or "false": does the engineNumber you sent belong to the vehicle found. "not provided in input" when you did not send it.  |

The four fields `resultSource`, `isVehicleMatch`, `isChassisMatch` and `isEngineMatch` always come after the RC fields. On an error response `resultSource` is returned beside the `error` object and is empty when no input was searched (for example on a validation error).

## Status Codes

| CODE | REASON                | MESSAGE                                                               |
| ---- | --------------------- | --------------------------------------------------------------------- |
| 200  | -                     | Success. The searched input found a record.                           |
| 400  | VALIDATION\_ERROR     | Enter at least one of vehicleNumber, chassisNumber or engineNumber    |
| 400  | VALIDATION\_ERROR     |  must be string /  must be boolean                                    |
| 400  | VALIDATION\_ERROR     |  must not be masked                                                   |
| 400  | VALIDATION\_ERROR     | chassisNumber and engineNumber cannot contain only special characters |
| 400  | VALIDATION\_ERROR     | Request body is not valid JSON / Request body must be an object       |
| 400  | BAD\_REQUEST          | Vehicle Number is not valid for vehicleNumber                         |
| 401  | UNAUTHORIZED          | Missing, invalid or expired access token                              |
| 404  | NOT\_FOUND            | Vehicle data not found for                                            |
| 406  | CONFLICT              | Vehicle Record found in more than one RTO office for vehicleNumber    |
| 409  | UPSTREAM\_ERROR       | Error in getting data from Upstream for                               |
| 422  | UNPROCESSABLE\_ENTITY | Engine number found masked for this vehicle number for vehicleNumber  |

Every error message from a search ends with the input that was searched: `for vehicleNumber`, `for chassisNumber` or `for engineNumber`.

## Getting help

Please feel free to contact us if you have any questions or need help integrating this API. You can reach out to us at [help@signzy.com](mailto\:help@signzy.com).
