# Company Search API

SEARCH COMPANIES REGISTERED IN INDIA BY NAME, LOCATION AND MORE

## **Description**

Depending on the use case, organizations frequently need to search for companies based on name, location, incorporation date, and other factors. Attestr provides a search API that is built on an indexed database with around 3 million Indian registered companies data.

![](https://uploads.developerhub.io/prod/4WY6/j7s0eo3hljacrpq0z7vbm7l86b0plny5g99ubonbrmo74dh4xep3bskl3d0kmzo9.png)

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <link rel="preconnect" href="https://fonts.googleapis.com" />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
    <link
      href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap"
      rel="stylesheet"
    />
    <style>
      * {
        padding: 0;
        margin: 0;
        box-sizing: border-box;
      }

      html {
        font-family: "Poppins", sans-serif;
      }

      .container {
        width: 100%;
        max-width: 705px;
        max-height: 115px;
        padding: 20px 25px;
        border-radius: 8px;
        background-color: #024ef3;
        color: white;
        display: flex;
        justify-content: space-between;
        align-items: center;
        position: relative;
        overflow: auto;
      }

      .content {
        display: flex;
        height: 100%;
        flex: 1 1 0%;
        flex-direction: column;
        justify-content: space-between;
        align-items: flex-start;
        z-index: 10;
        gap: 8px;
        margin-right: 25px;
      }

      .content > p:nth-child(1) {
        font-weight: 500;
        font-size: 16px;
        font-weight: 600;
        letter-spacing: 0.65px;
      }

      .content > p:nth-child(2) {
        font-size: 11px;
        letter-spacing: 0.5px;
      }

      .buttons {
        width: fit-content;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 14px;
        z-index: 10;
        font-size: 10px;
        font-weight: 500;
        text-align: center;
      }

      .buttons > a:nth-child(1) {
        border-radius: 8px;
        border: 2px solid #fbff3f;
        color: #fbff3f;
        display: inline-flex;
        padding: 7px 25px;
        transition-property: all;
        transition-timing-function: ease;
        transition-duration: 250ms;
        cursor: pointer;
        text-decoration: none;
      }

      .buttons > a:nth-child(2):hover,
      .buttons > a:nth-child(1):hover {
        transform: scale(1.025);
      }

      .buttons > a:nth-child(2) {
        border-radius: 8px;
        background-color: #fbff3f;
        transition-property: all;
        color: black;
        transition-timing-function: ease;
        border: 2px solid #fbff3f;
        transition-duration: 250ms;
        padding: 7px 25px;
        font-weight: 500;
        cursor: pointer;
        text-decoration: none;
      }

      .buttons > a:nth-child(2):hover {
        background-color: #eff140;
        border-color: #eff140;
      }

      .ellipse,
      .ellipse-lg {
        position: absolute;
        right: 0;
        top: 0;
        opacity: 0.75;
        display: none;
        height: 100%;
      }

      .ellipse-lg {
        display: block;
      }

      @media only screen and (max-width: 705px) {
        .container {
          max-height: 125px;
          height: 125px;
          flex-direction: column;
          padding: 9px 18px;
        }

        .buttons {
          width: 100%;
          justify-content: flex-start;
          gap: 20px;
          border-radius: 8px;
          font-size: 12px;
        }

        .content {
          width: 100%;
          gap: 4px;
          margin: 0;
          margin-bottom: 10px;
          justify-content: center;
        }

        .content > p:nth-child(1) {
          font-size: 16px;
        }

        .ellipse {
          display: block;
        }

        .ellipse-lg {
          display: none;
        }
      }

      @media only screen and (max-width: 400px) {
        .content {
          margin-bottom: 4px;
          gap: 1px;
          justify-content: flex-start;
        }

        .content > p:nth-child(1) {
          font-size: 15px;
        }

        .buttons > a:nth-child(1),
        .buttons > a:nth-child(2) {
          padding: 8px 12px;
        }
      }
    </style>
  </head>
  <body>
    <div class="container">
      <div class="content">
        <p>Get Free Trial</p>
        <p>
          Create a free account Or “Talk to Us” for price information and other queries.
        </p>
      </div>
      <div class="buttons">
        <a href="https://chat.attestr.com/" target="_blank">Talk to us</a>
        <a href="https://docs.attestr.com/attestr-docs/attestr-self-signup" target="_blank">Create free account</p>
      </div>

      <svg
        width="375"
        height="128"
        viewBox="0 0 375 128"
        fill="none"
        xmlns="http://www.w3.org/2000/svg"
        class="ellipse-lg"
      >
        <g clip-path="url(#clip0_7806_3204)">
          <circle cx="189" cy="83" r="189" fill="#175EF9" />
          <circle cx="189" cy="82" r="143" fill="#1F64FB" />
          <circle cx="189" cy="82" r="97" fill="#175EF9" />
          <circle cx="189" cy="82" r="51" fill="#125AF8" />
        </g>
        <defs>
          <clipPath id="clip0_7806_3204">
            <rect
              width="378"
              height="378"
              fill="white"
              transform="translate(0 -106)"
            />
          </clipPath>
        </defs>
      </svg>

      <svg
        xmlns="http://www.w3.org/2000/svg"
        width="164"
        height="127"
        class="ellipse"
        viewBox="0 0 164 127"
        fill="none"
      >
        <g clip-path="url(#clip0_7806_3205)">
          <circle cx="114.776" cy="64.7759" r="114.776" fill="#175EF9" />
          <circle cx="114.776" cy="64.1682" r="86.841" fill="#1F64FB" />
          <circle cx="114.776" cy="64.1688" r="58.9061" fill="#175EF9" />
          <circle cx="114.776" cy="64.1685" r="30.9713" fill="#125AF8" />
        </g>
        <defs>
          <clipPath id="clip0_7806_3205">
            <rect
              width="229.552"
              height="229.552"
              fill="white"
              transform="translate(0 -50)"
            />
          </clipPath>
        </defs>
      </svg>
    </div>
  </body>
</html>

> **The legacy data processing model is being formally deprecated.**
>
> In order to ensure continued compliance with the Digital Personal Data Protection Act, 2023 (DPDP Act), we are implementing DPDP V3 (Consent-Driven Processing). Under this framework, clients are required to obtain explicit, informed, and verifiable consent from the data principal prior to accessing, processing, viewing, or storing any personal data through the platform. This regulatory transition may require modifications to existing configurations and workflows. Clients are advised to review and update their implementations to ensure ongoing compliance with applicable data protection obligations. Further information regarding this transition can be enquired here. [Learn more about this change here.](https://chat.attestr.com/)

## **API Details**

### **Request**

| **Type** | **URL** | Current / LTS Version | **Min Version** | **Max Version** |
| ---- | ---- | ---- | ---- | ---- |
| POST | https://api.attestr.com/api/{version}/public/corpx/business/search | v2 | v2 | -  |

#### **Request Header Parameters**

| **Type** | **Name** | **Value / Description** | **Optional** | **Min Version** | **Max Version** |
| ---- | ---- | ---- | ---- | ---- | ---- |
| String | Content-Type | application/json | Required | v2 |  |
| String | Authorization | Basic `{authToken}` | Required | v2 |  |

> **Info**
>
> If you do not have the authentication token, please refer to [Register App](https://docs.attestr.com/attestr-docs/attestr-register-app)

#### **Request Body Parameters**

| **Type** | **Name** | **Description** | **Optional (default)** | **Min Version** | **Max Version** |
| ---- | ---- | ---- | ---- | ---- | ---- |
| Business Name Search Object | businessName | Criteria object to search using businessName. See table below for definition. | Optional | v2 |  |
| String | city | Name of the city | Optional | v2 |  |
| String | state | Name of the state | Optional | v2 |  |
| String | type | Type of the company. See table below for allowed values | Optional | v2 |  |
| String | incorporatedBefore | Date string in DD-MM-YYYY format. | Optional | v2 |  |
| String | incorporatedAfter | Date string in DD-MM-YYYY format. | Optional | v2 |  |
| Boolean | active | Set true for searching active companies only. | Optional | v2 |  |
| Number | skip | Pagination parameter. Number of records to skip. | Optional | v2 |  |
| Number | limit | Pagination parameter. Number of records to return. *skip* and *limit* must be used in conjunction. | Optional | v2 |  |
| String | sort | Sort parameter. Allowed values are - 1. score 2. businessName 3. incorporatedDate | Optional | v2 |  |
| Number | sortOrder | Sort order. Use 1 for ascending and -1 for descending order. *sort* and *sortOrder* must be used in conjunction. | Optional | v2 |  |

#### **Business Name Search Object**

| Type | Key | Description | Required/Optional | Min Version | Max Version |
| ---- | ---- | ---- | ---- | ---- | ---- |
| String | matchCriteria | Business name match criteria. Allowed values are - **CONTAINS** - The response returns only the company names that, in any order, contain every word from the supplied value. In the event that enableFuzzy is selected, all words are matched in a fuzzy manner. Eg. Input: Pegas Eg. Output Pegadroid IQ Solutions Pvt Ltd Pemas National LLC Vegas Corp. **EQUALS** - Name is exactly same as provided value. Eg. Input: Pegadroid IQ Solutions Pvt Ltd Eg. Output Pegadroid IQ Solutions Pvt Ltd **MATCHES** - Name matches the provided value. The search result includes all company names that contain one or more words from the supplied value.  Additionally, this search recognizes commonly used abbreviations, so terms like "private" and "pvt." as well as "corporation" and "corp" are processed similarly. Eg. Input: If the provided value is *IQ Solutions Private*, the search will return all the records which contain one or more of the words *IQ*, *Solutions* or *Private* in any order. Eg. Output: - Acme IQ LLC - Nano Private Limited - IQ Generative Solutions Limited - Solutions Generator Corp. - Nano Pvt. Ltd. **PHRASE** - Name contains the provided value as a Phrase. Eg. Input: If the provided phrase is *IQ Solutions Private*, the search will return all the records which contain the terms *IQ*, *Solutions* and *Private* in the exact same order. Positions need not to be next to each other. Eg. Output: - Pegadroid IQ Solutions Private Limited - Acme IQ Smart Solutions Automation Private Limited | Required | v2 |  |
| String | matchValue | Value to be searched for the specified match criteria | Required | v2 |  |
| Boolean | enableFuzzy | Allowed only when the match criteria is CONTAINS. If set, fuzzy search mode is enabled.  Know more about [fuzzy searches](https://en.wikipedia.org/wiki/Approximate_string_matching). | Conditional | v2 |  |

#### **Company Types**

| Value | Description |
| ---- | ---- |
| FLC | Financial Lease Company as Public Limited |
| FTC | Subsidiary of a Foreign Company as Private Limited Company |
| GAP | General Association Public |
| GAT | General Association Private |
| GOI | Companies owned by Govt. Of India |
| NPL | Not For Profits License Company |
| PLC | Public Limited Company |
| PTC | Private Limited Company |
| SGC | Companies owned by State Govt. |
| ULL | Public Limited Company with Unlimited Liability |
| ULT | Private Limited Company with Unlimited Liability |
| LLP | Limited Liability Partnership |
| OPC | One Person Company |
| FCN | Foreign Company |
| FLLP | Foreign Limited Liability Partnership |

**Sample Request**

```json
{
  "businessName": {
  	"matchCriteria": "CONTAINS",
    "matchValue": "PHOENIX",
    "enableFuzzy": true
  },
  "city": "Hyderabad",
  "state": "Telangana",
  "type": "PTC",
  "incorporatedAfter":"31-12-2004",
  "incorporatedBefore":"31-12-2021",
  "active": true,
  "skip": 0,
  "limit": 100,
  "sort": "businessName",
  "sortOrder": 1
}
```

### **Response**

HTTP status code 200

| **Key** | **Description** | **Type** | **Min Version** | **Max Version** |
| ---- | ---- | ---- | ---- | ---- |
| indexId | Unique Attestr index Id assigned to every registered company | String | v2 |  |
| type | Type of the company | String | v2 |  |
| status | Company status - Active, Dissolved etc. | String | v2 |  |
| businessName | Registered legal entity name | String | v2 |  |
| incorporatedDate | Incorporated date string DD-MM-YYYY | String | v2 |  |
| active | Boolean flag indicating if the company status is active | Boolean | v2 |  |
| addresses | List of all associated addresses | Array (Address Object) | v2 |  |

#### **Address Object**

| Key | Description | Type | Min Version | Max Version |
| ---- | ---- | ---- | ---- | ---- |
| type | Type of the address - Registered Address, Annual Return Address, Book Address etc. | String | v2 |  |
| line1 | Line 1 of the address | String | v2 |  |
| line2 | Line 2 of the address | String | v2 |  |
| line3 | Line 3 of the address | String | v2 |  |
| line4 | Line 4 of the address | String | v2 |  |
| locality | Locality name | String | v2 |  |
| district | District where located | String | v2 |  |
| city | City name | String | v2 |  |
| state | Name of the state | String | v2 |  |
| country | Country | String | v2 |  |
| zip | Pin code of the address | String | v2 |  |
| officeType | Type of office | String | v2 |  |
| active | Whether current address or past address | Boolean | v2 |  |
| establishmentDate | Date of establishment at this address if available | String | v2 |  |
| fullAddress | Complete address in one line | String | v2 |  |

#### **Sample Response**

Sample response for matching results found

```json
[
    {
        "type": "Private Limited Company",
        "status": "Active",
        "businessName": "REVA PHOENIX ENGINEERS & CONSULTANTS INDIA PRIVATE LIMITED",
        "incorporatedDate": "09-09-2011",
        "addresses": [
            {
                "type": "Annual Return Address",
                "city": "chennai",
                "state": "Tamil Nadu",
                "fullAddress": "New No.14, 4th Street,   Rajarajeshwari Nagar, Madipakkam, NA, chennai, Tamil Nadu, India, 600091"
            },
            {
                "type": "Registered Address",
                "city": "CHENNAI",
                "state": "Tamil Nadu",
                "fullAddress": "NEW NO 14, 4TH STREET,   RAJA RAJESHWARI NAGAR, MADIPAKKAM, NA, Chennai, CHENNAI, Tamil Nadu, India, 600091"
            },
            {
                "type": "Police Station Address",
                "city": "CHENNAI",
                "state": "Tamil Nadu",
                "fullAddress": "BIG STREET, MADIPAKKAM, NA, CHENNAI, Tamil Nadu, India, 600117"
            }
        ],
        "active": true,
        "indexId": "U74999TN2011PTC082281"
    },
    {
        "type": "Private Limited Company",
        "status": "Active",
        "businessName": "PHOENIX FACILITIES PRIVATE LIMITED",
        "incorporatedDate": "04-09-1961",
        "addresses": [
            {
                "type": "Annual Return Address",
                "city": "AMEDABAD",
                "state": "Gujarat",
                "fullAddress": "ANAND BHAVAN   2ND FLOOR,NR.RUPAM CINEMA,RELIEF ROAD,, NA, AMEDABAD, Gujarat, India, 380001"
            },
            {
                "type": "Police Station Address",
                "city": "Ahmedabad",
                "state": "Gujarat",
                "fullAddress": "Karanj Bhavan, Opp. Bhadrakali Mata Mandir,   Laldarwaja,, NA, Ahmedabad, Gujarat, India, 380001"
            },
            {
                "type": "Registered Address",
                "city": "Ahmedabad",
                "state": "Gujarat",
                "fullAddress": "1st Floor, Sastu Sahitya Buliding   Swami Akhandanand Marg, Bhadra, NA, Ahmedabad, Ahmedabad, Gujarat, India, 380001"
            }
        ],
        "active": true,
        "indexId": "U65910GJ1961PTC001083"
    }
]
```

Sample response for no records

```json
[]
```

### **Error Response**

| **Parameter** | **Type** | **Description** |
| ---- | ---- | ---- |
| code | Number | Unique error codes for different errors. Always available. |
| message | String | Error message describing the error. Always Available. |
| details | String | Detail error message. Available only for certain types of errors. |

#### **Error Codes**

| **HTTP Status** | **Error Code** | **Error Message** |
| ---- | ---- | ---- |
| 400 | 4001 | Malformed data or missing required parameter values |
| 400 | 4005 | Operation could not be performed due to low credits balance |
| 401 | 4016 | Invalid client authorization |
| 403 | 4031 | Unauthorized access |
| 403 | 4035 | Requested service is not provisioned for your account |
| 403 | 4039 | Client's IP address is not whitelisted |
| 403 | 4035 | Requested service is not provisioned for your account |
| 429 | 4291 | Maximum account rate limit exceeded |
| 429 | 4292 | Maximum API rate limit exceeded |
| 429 | 4293 | Maximum account daily limit exceeded |
| 429 | 4294 | Maximum API daily limit exceeded |
| 500 | 5001 | Request could not be processed |

#### **Sample Error Response**

```json
{
  "code": 4001,
  "message": "Malformed data or missing required parameter values"
}
```

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <link rel="preconnect" href="https://fonts.googleapis.com" />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
    <link
      href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap"
      rel="stylesheet"
    />
    <style>
      * {
        padding: 0;
        margin: 0;
        box-sizing: border-box;
      }

      html {
        font-family: "Poppins", sans-serif;
      }

      .container {
        width: 100%;
        max-width: 705px;
        max-height: 115px;
        padding: 20px 25px;
        border-radius: 8px;
        background-color: #024ef3;
        color: white;
        display: flex;
        justify-content: space-between;
        align-items: center;
        position: relative;
        overflow: auto;
      }

      .content {
        display: flex;
        height: 100%;
        flex: 1 1 0%;
        flex-direction: column;
        justify-content: space-between;
        align-items: flex-start;
        z-index: 10;
        gap: 8px;
        margin-right: 25px;
      }

      .content > p:nth-child(1) {
        font-weight: 500;
        font-size: 16px;
        font-weight: 600;
        letter-spacing: 0.65px;
      }

      .content > p:nth-child(2) {
        font-size: 11px;
        letter-spacing: 0.5px;
      }

      .buttons {
        width: fit-content;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 14px;
        z-index: 10;
        font-size: 10px;
        font-weight: 500;
        text-align: center;
      }

      .buttons > a:nth-child(1) {
        border-radius: 8px;
        border: 2px solid #fbff3f;
        color: #fbff3f;
        display: inline-flex;
        padding: 7px 25px;
        transition-property: all;
        transition-timing-function: ease;
        transition-duration: 250ms;
        cursor: pointer;
        text-decoration: none;
      }

      .buttons > a:nth-child(2):hover,
      .buttons > a:nth-child(1):hover {
        transform: scale(1.025);
      }

      .buttons > a:nth-child(2) {
        border-radius: 8px;
        background-color: #fbff3f;
        transition-property: all;
        color: black;
        transition-timing-function: ease;
        border: 2px solid #fbff3f;
        transition-duration: 250ms;
        padding: 7px 25px;
        font-weight: 500;
        cursor: pointer;
        text-decoration: none;
      }

      .buttons > a:nth-child(2):hover {
        background-color: #eff140;
        border-color: #eff140;
      }

      .ellipse,
      .ellipse-lg {
        position: absolute;
        right: 0;
        top: 0;
        opacity: 0.75;
        display: none;
        height: 100%;
      }

      .ellipse-lg {
        display: block;
      }

      @media only screen and (max-width: 705px) {
        .container {
          max-height: 125px;
          height: 125px;
          flex-direction: column;
          padding: 9px 18px;
        }

        .buttons {
          width: 100%;
          justify-content: flex-start;
          gap: 20px;
          border-radius: 8px;
          font-size: 12px;
        }

        .content {
          width: 100%;
          gap: 4px;
          margin: 0;
          margin-bottom: 10px;
          justify-content: center;
        }

        .content > p:nth-child(1) {
          font-size: 16px;
        }

        .ellipse {
          display: block;
        }

        .ellipse-lg {
          display: none;
        }
      }

      @media only screen and (max-width: 400px) {
        .content {
          margin-bottom: 4px;
          gap: 1px;
          justify-content: flex-start;
        }

        .content > p:nth-child(1) {
          font-size: 15px;
        }

        .buttons > a:nth-child(1),
        .buttons > a:nth-child(2) {
          padding: 8px 12px;
        }
      }
    </style>
  </head>
  <body>
    <div class="container">
      <div class="content">
        <p>Get Free Trial</p>
        <p>
          Create a free account Or “Talk to Us” for price information and other queries.
        </p>
      </div>
      <div class="buttons">
        <a href="https://chat.attestr.com/" target="_blank">Talk to us</a>
        <a href="https://docs.attestr.com/attestr-docs/attestr-self-signup" target="_blank">Create free account</p>
      </div>

      <svg
        width="375"
        height="128"
        viewBox="0 0 375 128"
        fill="none"
        xmlns="http://www.w3.org/2000/svg"
        class="ellipse-lg"
      >
        <g clip-path="url(#clip0_7806_3204)">
          <circle cx="189" cy="83" r="189" fill="#175EF9" />
          <circle cx="189" cy="82" r="143" fill="#1F64FB" />
          <circle cx="189" cy="82" r="97" fill="#175EF9" />
          <circle cx="189" cy="82" r="51" fill="#125AF8" />
        </g>
        <defs>
          <clipPath id="clip0_7806_3204">
            <rect
              width="378"
              height="378"
              fill="white"
              transform="translate(0 -106)"
            />
          </clipPath>
        </defs>
      </svg>

      <svg
        xmlns="http://www.w3.org/2000/svg"
        width="164"
        height="127"
        class="ellipse"
        viewBox="0 0 164 127"
        fill="none"
      >
        <g clip-path="url(#clip0_7806_3205)">
          <circle cx="114.776" cy="64.7759" r="114.776" fill="#175EF9" />
          <circle cx="114.776" cy="64.1682" r="86.841" fill="#1F64FB" />
          <circle cx="114.776" cy="64.1688" r="58.9061" fill="#175EF9" />
          <circle cx="114.776" cy="64.1685" r="30.9713" fill="#125AF8" />
        </g>
        <defs>
          <clipPath id="clip0_7806_3205">
            <rect
              width="229.552"
              height="229.552"
              fill="white"
              transform="translate(0 -50)"
            />
          </clipPath>
        </defs>
      </svg>
    </div>
  </body>
</html>

---

[All pages in this documentation](https://docs.attestr.com/llms.txt)
