# Company Name Autocomplete API

DISPLAY SUGGESTIONS AS USERS TYPE COMPANY NAME ON YOUR WEBSITE

## **Description**

Companies usually include a search box on their website where clients may type in the first few characters of the company name and have potential full names come up automatically. With its indexed database of about 3 million registered companies in India, Attestr has made this Autocomplete feature available via a plug-and-play API.

![](https://uploads.developerhub.io/prod/4WY6/j9qn3m19ebzx3s7k3z334egfgy1apdadiffpvc2uf07e0p4w65qn2f25268g62v3.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/autocomplete | 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** |
| ---- | ---- | ---- | ---- | ---- | ---- |
| String | businessName | User entered text for searching business names. The text can be present anywhere in the business name. All names which contain the user provided text are returned in the response. Text must be minimum 3 and maximum 100 characters in length. | Required | v2 |  |
| Boolean | active | Filter autocomplete suggestions by active company status. | Optional | v2 |  |
| Number | limit | Limit the number of results in the suggestions. Min 1 and max 100 supported. | Optional | v2 |  |
| String | sort | Sort parameter. Allowed values are -score, businessName | 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 |  |

#### **Sample Request**

```json
{
    "businessName": "PEGA",
    "limit": 100,
    "active": true,
    "sort": "score",
    "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 |  |
| city | City name | String | v2 |  |
| state | Name of the state | String | v2 |  |
| fullAddress | Complete address in one line | String | v2 |  |

#### **Sample Response**

Sample response for matching results found

```json
[
    {
        "indexId": "U74999TG2017PTC118280",
        "active": true,
        "businessName": "PEGADROID IQ SOLUTIONS PRIVATE LIMITED",
        "incorporatedDate": "13-07-2017",
        "status": "Active",
        "type": "Private Limited Company",
        "addresses": [
              {
                  "type": "Present Address",
                  "city": "Hyderabad",
                  "state": "Telangana",
                  "fullAddress": "8-2-293/K/57/101 Flat 101 Plot 57 Saketh   Residency Kamlapuri Colony Phase 3, NA, Hyderabad, Hyderabad, Telangana, India, 500073"
              },
              {
                  "type": "Registered Address",
                  "city": "Hyderabad",
                  "state": "Telangana",
                  "fullAddress": "8-2-293/K/57/101 Flat 101 Plot 57 Saketh   Residency Kamlapuri Colony Phase 3, NA, Hyderabad, Hyderabad, Telangana, India, 500073"
              }
          ]
    }
]
```

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)
