> ## Documentation Index
> Fetch the complete documentation index at: https://docs.finscreener.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Filter Companies

> Filter and search companies by various criteria

Filter companies based on multiple criteria including name, location, industry, incorporation date, and more.

## Headers

<ParamField header="Authorization" type="string" required>
  Bearer token: `Bearer <access_token>`
</ParamField>

## Query Parameters

<ParamField query="CIN" type="string">
  Filter by CIN (Corporate Identity Number)
</ParamField>

<ParamField query="company" type="string">
  Search by company name (partial match)
</ParamField>

<ParamField query="dateOfIncorporation_start" type="string">
  Filter by incorporation date start (YYYY-MM-DD)
</ParamField>

<ParamField query="dateOfIncorporation_end" type="string">
  Filter by incorporation date end (YYYY-MM-DD)
</ParamField>

<ParamField query="companyType" type="string">
  Filter by company type (Company, LLP, etc.)
</ParamField>

<ParamField query="classOfCompany" type="string">
  Filter by class (Private, Public, etc.)
</ParamField>

<ParamField query="companyCategory" type="string">
  Filter by category (Limited by shares, etc.)
</ParamField>

<ParamField query="llpStatus" type="string">
  Filter by status (Active, Struck Off, etc.)
</ParamField>

<ParamField query="mainDivision" type="number">
  Filter by NIC main division code
</ParamField>

<ParamField query="mainDivisionDescription" type="string">
  Filter by NIC main division description
</ParamField>

<ParamField query="rdName" type="string">
  Filter by Regional Director name
</ParamField>

<ParamField query="ROCCode" type="string">
  Filter by ROC (Registrar of Companies) code
</ParamField>

<ParamField query="listed" type="string">
  Filter by listing status
</ParamField>

<ParamField query="NICCode" type="number">
  Filter by NIC industry code
</ParamField>

<ParamField query="NICDesc" type="string">
  Filter by NIC description
</ParamField>

<ParamField query="city" type="string">
  Filter by city
</ParamField>

<ParamField query="state" type="string">
  Filter by state
</ParamField>

<ParamField query="district" type="string">
  Filter by district
</ParamField>

<ParamField query="pincode" type="number">
  Filter by PIN code
</ParamField>

<ParamField query="country" type="string">
  Filter by country
</ParamField>

<ParamField query="page" type="number" default="1">
  Page number
</ParamField>

<ParamField query="limit" type="number" default="10">
  Results per page (max: 100)
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://api.finscreener.in/api/company/company-filter?company=infosys&state=Karnataka&page=1&limit=10" \
    -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://api.finscreener.in/api/company/company-filter",
      params={
          "company": "infosys",
          "state": "Karnataka",
          "page": 1,
          "limit": 10
      },
      headers={"Authorization": f"Bearer {token}"}
  )
  companies = response.json()
  ```
</RequestExample>

<ResponseExample>
  ```json Success theme={null}
  {
    "results": [
      {
        "CIN": "L85110KA1981PLC013115",
        "companyName": "INFOSYS LIMITED",
        "companyType": "Company",
        "classOfCompany": "Public",
        "llpStatus": "Active",
        "State": "Karnataka",
        "City": "Bangalore",
        "NICCode": 62011
      }
    ],
    "total_results": 15,
    "page": 1,
    "limit": 10
  }
  ```
</ResponseExample>
