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

# Company by CIN

> Read a company's registered profile, its directors and their other directorships.



## OpenAPI

````yaml /suite/api-reference/openapi.json post /registry/v1/company-by-cin.1
openapi: 3.1.0
info:
  title: Privue API Suite
  version: 1.0.0
  description: >-
    Business, tax, registry, employment and identity verification against
    official Indian sources, a person's own documents read through DigiLocker
    with their consent, and an EPF member's passbook read with the OTP they
    receive.


    **Authentication.** Every request takes your API key as a bearer token:
    `Authorization: Bearer <your-key>`.


    **One envelope.** Every check returns the reasons behind a refusal and the
    record the source held, and an empty `reasons` means the check passed.
    Branch on `reasons` rather than on the status code, because a call the
    source answered returns `200` whatever it concluded.


    **DigiLocker and EPFO passbook.** A DigiLocker endpoint returns `details`
    alone: what it read, as the source holds it. So do submitting an EPFO
    passbook OTP and reading the passbook; sending the OTP answers like a check.


    **Versioning.** Each endpoint is versioned on its own, directly in its path.
    A new version of one endpoint never moves another, so no release requires
    migrating every integration at once.
servers:
  - url: https://api.privue.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Checks
    description: One check on one subject, answered in the envelope every check shares.
  - name: DigiLocker
    description: >-
      A person's own documents, read through the consent they give at
      DigiLocker.
  - name: EPFO passbook
    description: >-
      A member's EPF passbook, read with the OTP sent to the mobile number on
      their account.
  - name: Orchestrated flows
    description: Every check on one business, asked and answered together in a single call.
  - name: Usage
    description: What you have called, and when.
paths:
  /registry/v1/company-by-cin.1:
    post:
      tags:
        - Checks
      summary: Company by CIN
      description: >-
        Read a company's registered profile, its directors and their other
        directorships.
      operationId: registry.company-by-cin.1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompanyByCinRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyByCinResponse'
              examples:
                verified:
                  summary: A company on the register
                  value:
                    reasons: []
                    details:
                      cin: U74999MH2015PTC123456
                      company_name: EXAMPLE TECHNOLOGIES PRIVATE LIMITED
                      registration_number: '123456'
                      pan: null
                      class: PRIVATE
                      category: COMPANY LIMITED BY SHARES
                      sub_category: NON-GOVERNMENT COMPANY
                      company_type: INDIAN COMPANY
                      country_of_incorporation: INDIAN
                      date_of_incorporation: '2015-04-01'
                      status: ACTIVE
                      status_for_efiling: ACTIVE
                      status_under_cirp: null
                      active_compliance: null
                      whether_listed: UNLISTED
                      suspended_at_stock_exchange: null
                      authorised_capital: 1000000
                      paid_up_capital: 500000
                      total_obligation_of_contribution: 0
                      number_of_members: null
                      last_agm_date: '2025-09-27'
                      balance_sheet_date: '2025-03-31'
                      roc_office: ROC MUMBAI
                      nature_of_business: null
                      description_of_main_division: null
                      registered_address: >-
                        UNIT 402, 4TH FLOOR, TECH PARK, ANDHERI KURLA ROAD,
                        ANDHERI EAST, MUMBAI, MAHARASHTRA, 400093
                      address_other_than_registered_office: null
                      registered_address_split:
                        full_address: >-
                          UNIT 402, 4TH FLOOR, TECH PARK, ANDHERI KURLA ROAD,
                          ANDHERI EAST, MUMBAI, MAHARASHTRA, 400093
                        address_line1: UNIT 402, 4TH FLOOR, TECH PARK,
                        address_line2: ANDHERI KURLA ROAD, ANDHERI EAST
                        city: MUMBAI
                        state: MAHARASHTRA
                        pincode: '400093'
                      email_id: compliance@example.com
                      no_of_directors: 2
                      directorDetails:
                        - din: '01234567'
                          name: RAHUL MEHTA
                          designation: DIRECTOR
                          date_of_appointment: '2015-04-01'
                          dob: '1984-06-18'
                          nationality: INDIAN
                          citizen_of_india: true
                          resident_of_india: true
                          other_directorships:
                            listOfCompanies:
                              - cin: U63090MH2018PTC309876
                                company_name: EXAMPLE LOGISTICS PRIVATE LIMITED
                                begin_date: '2018-07-02'
                                end_date: null
                            listOfLLPs: []
                        - din: '07654321'
                          name: PRIYA NAIR
                          designation: DIRECTOR
                          date_of_appointment: '2019-11-15'
                          dob: '1988-02-09'
                          nationality: INDIAN
                          citizen_of_india: true
                          resident_of_india: true
                          other_directorships:
                            listOfCompanies: []
                            listOfLLPs: []
                not_registered:
                  summary: No company under the CIN
                  value:
                    reasons:
                      - code: cin-not-registered
                        message: This CIN is not in the corporate registry.
                    details: null
        '401':
          description: The API key is missing, malformed or not valid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuiteError'
        '403':
          description: The key is valid but is not entitled to this feature.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuiteError'
        '422':
          description: >-
            The request failed validation, or the source would not accept the
            details in it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuiteError'
        '429':
          description: >-
            The key is not cleared for this feature, or is sending too many
            requests. Nothing was called.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuiteError'
        '503':
          description: >-
            The source could not be reached, or authentication is temporarily
            unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuiteError'
        default:
          description: The request failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuiteError'
components:
  schemas:
    CompanyByCinRequest:
      properties:
        cin:
          type: string
          pattern: ^[LU][0-9]{5}[A-Z]{2}[0-9]{4}[A-Z]{3}[0-9]{6}$
          title: Cin
          description: Corporate Identity Number to look up
      type: object
      required:
        - cin
      title: CompanyByCinRequest
      description: The CIN to read from the corporate registry.
    CompanyByCinResponse:
      properties:
        reasons:
          items:
            $ref: '#/components/schemas/Reason'
          type: array
          title: Reasons
          description: >-
            Why the check did not pass, worst first, each a stable code with the
            text for it. Empty when it passed
        details:
          anyOf:
            - $ref: '#/components/schemas/CinDetailedInfo'
            - type: 'null'
          description: The registry's record of the company
      type: object
      title: CompanyByCinResponse
      description: >-
        The company the corporate registry holds against a CIN; `details` is
        null when it holds none.
    SuiteError:
      properties:
        code:
          type: integer
          title: Code
          description: HTTP status code of the response
        timestamp:
          type: integer
          title: Timestamp
          description: Unix millisecond timestamp of when the response was produced
        message:
          type: string
          title: Message
          description: What went wrong, in one sentence
      type: object
      required:
        - code
        - timestamp
        - message
      title: SuiteError
      description: Why a request failed.
    Reason:
      properties:
        code:
          $ref: '#/components/schemas/ReasonCode'
          description: Stable code to branch on
        message:
          type: string
          title: Message
          description: What the code means, in one sentence
      type: object
      required:
        - code
        - message
      title: Reason
      description: One machine-readable reason a check did not pass.
    CinDetailedInfo:
      properties:
        cin:
          type: string
          title: Cin
        company_name:
          type: string
          title: Company Name
        registration_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Registration Number
        pan:
          anyOf:
            - type: string
            - type: 'null'
          title: Pan
        class:
          anyOf:
            - type: string
            - type: 'null'
          title: Class
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Category
        sub_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Sub Category
        company_type:
          anyOf:
            - type: string
            - type: 'null'
          title: Company Type
        country_of_incorporation:
          anyOf:
            - type: string
            - type: 'null'
          title: Country Of Incorporation
        date_of_incorporation:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Date Of Incorporation
        status:
          anyOf:
            - type: string
            - type: 'null'
          title: Status
        status_for_efiling:
          anyOf:
            - type: string
            - type: 'null'
          title: Status For Efiling
        status_under_cirp:
          anyOf:
            - type: string
            - type: 'null'
          title: Status Under Cirp
        active_compliance:
          anyOf:
            - type: string
            - type: 'null'
          title: Active Compliance
        whether_listed:
          anyOf:
            - type: string
            - type: 'null'
          title: Whether Listed
        suspended_at_stock_exchange:
          anyOf:
            - type: string
            - type: 'null'
          title: Suspended At Stock Exchange
        authorised_capital:
          anyOf:
            - type: integer
            - type: 'null'
          title: Authorised Capital
        paid_up_capital:
          anyOf:
            - type: integer
            - type: 'null'
          title: Paid Up Capital
        total_obligation_of_contribution:
          anyOf:
            - type: integer
            - type: 'null'
          title: Total Obligation Of Contribution
        number_of_members:
          anyOf:
            - type: integer
            - type: 'null'
          title: Number Of Members
        last_agm_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Last Agm Date
        balance_sheet_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Balance Sheet Date
        roc_office:
          anyOf:
            - type: string
            - type: 'null'
          title: Roc Office
        nature_of_business:
          anyOf:
            - type: string
            - type: 'null'
          title: Nature Of Business
        description_of_main_division:
          anyOf:
            - type: string
            - type: 'null'
          title: Description Of Main Division
        registered_address:
          anyOf:
            - type: string
            - type: 'null'
          title: Registered Address
        address_other_than_registered_office:
          anyOf:
            - type: string
            - type: 'null'
          title: Address Other Than Registered Office
        registered_address_split:
          anyOf:
            - $ref: '#/components/schemas/RegisteredAddressSplit'
            - type: 'null'
        email_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Email Id
        no_of_directors:
          anyOf:
            - type: integer
            - type: 'null'
          title: No Of Directors
        directorDetails:
          items:
            $ref: '#/components/schemas/Director'
          type: array
          title: Directordetails
      type: object
      required:
        - cin
        - company_name
      title: CinDetailedInfo
      description: >-
        The ROC profile of a company, its board, and each director's other
        directorships.
    ReasonCode:
      type: string
      enum:
        - cin-not-registered
        - gstin-not-registered
        - gstin-inactive
        - pan-inactive
        - pan-name-mismatch
        - pan-date-of-birth-mismatch
        - udyam-not-registered
        - udyam-not-registered-for-pan
        - udyam-cancelled
        - gst-not-registered-for-pan
        - company-not-registered-for-pan
        - epfo-member-not-found
        - uan-not-registered-for-pan
        - driving-licence-not-registered
        - driving-licence-details-mismatch
        - driving-licence-expired
        - uan-not-registered-for-mobile
        - passport-not-registered
        - passport-name-mismatch
        - source-unavailable
        - details-refused
        - bank-account-unverified
        - bank-account-unsettled
      title: ReasonCode
      description: >-
        Why a check did not pass, as the stable code a client branches on.


        Declared rather than written as strings so that every code a check can
        answer with reaches the published schema, and a client reads the whole
        set from the API reference.
    RegisteredAddressSplit:
      properties:
        full_address:
          anyOf:
            - type: string
            - type: 'null'
          title: Full Address
        address_line1:
          anyOf:
            - type: string
            - type: 'null'
          title: Address Line1
        address_line2:
          anyOf:
            - type: string
            - type: 'null'
          title: Address Line2
        city:
          anyOf:
            - type: string
            - type: 'null'
          title: City
        state:
          anyOf:
            - type: string
            - type: 'null'
          title: State
        pincode:
          anyOf:
            - type: string
            - type: 'null'
          title: Pincode
      type: object
      title: RegisteredAddressSplit
      description: >-
        The registered address in components, which the payload carries only
        when it was asked for.
    Director:
      properties:
        din:
          anyOf:
            - type: string
            - type: 'null'
          title: Din
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        designation:
          anyOf:
            - type: string
            - type: 'null'
          title: Designation
        date_of_appointment:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Date Of Appointment
        dob:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Dob
        nationality:
          anyOf:
            - type: string
            - type: 'null'
          title: Nationality
        citizen_of_india:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Citizen Of India
        resident_of_india:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Resident Of India
        other_directorships:
          $ref: '#/components/schemas/OtherDirectorships'
      type: object
      title: Director
      description: A director or key managerial person on the company's board.
    OtherDirectorships:
      properties:
        listOfCompanies:
          items:
            $ref: '#/components/schemas/Directorship'
          type: array
          title: Listofcompanies
        listOfLLPs:
          items:
            $ref: '#/components/schemas/Directorship'
          type: array
          title: Listofllps
      type: object
      title: OtherDirectorships
      description: >-
        The other entities a director is associated with, which is what this
        product adds over a simple search.


        An LLP turns up in either list, so a reader after every entity reads
        both rather than picking one.
    Directorship:
      properties:
        cin:
          anyOf:
            - type: string
            - type: 'null'
          title: Cin
        company_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Company Name
        begin_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: Begin Date
        end_date:
          anyOf:
            - type: string
              format: date
            - type: 'null'
          title: End Date
      type: object
      title: Directorship
      description: >-
        One company or LLP a director is associated with, over the dates they
        held it.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Your API key, sent as `Authorization: Bearer <your-key>`.'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.