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

# Terms this act defines

> The terms an act defines, and the provision that defines them.

**Cost: 2 credits.** Refunded when the act holds no extracted definitions,
because the caller asked for definitions and did not get any.

⚠️ Coverage is thin and stated rather than implied: extracted defined terms
exist for about 11.8% of served acts. An empty answer here means we did not
extract them, NOT that the act defines nothing. `definitionSections` is
returned separately so you can read the defining provision directly even when
no terms were extracted from it.

`terms` is paged with `page` + `pageSize`, because a long definitions clause is
long: one act carries 23,550 stored term entries, and this route used to report
an honest `total` beside a list silently cut to 100 with no way to ask for row
101. `definitionSections` is short and is NOT paged, so it repeats in full on
every page.



## OpenAPI

````yaml https://api.vaquill.ai/in/openapi.json get /api/v1/in/acts/{act_id}/definitions
openapi: 3.1.0
info:
  title: Vaquill India API
  description: >-
    Public API for Indian primary law: Central and State Acts, the instruments
    of the principal regulators, and their individual sections.


    **Authentication**: Pass your API key via the `Authorization: Bearer
    vq_key_...` header. The same key works against the US API; the two share one
    credit balance.


    **Credits**: Each call costs API credits. See `GET
    /api/v1/api-credits/pricing` for the full pricing matrix.


    ## Coverage


    | Layer | Volume |

    |---|---|

    | Enactments (Central, State and UT) | 22,265 |

    | Individually addressable provisions | 1,098,577 |

    | Regulator instruments | roughly half the corpus |


    Regulators covered include SEBI, RBI, MCA, IRDAI, TRAI, DGFT, MOEFCC and
    CPCB.


    `sourceUrl` points at the publisher's own document where we hold a live one,
    and is `null` otherwise. India Code migrated hosts in August 2026 and
    re-minted its identifiers, so links into the old site no longer resolve; we
    return nothing rather than a link that 404s. `pdfUrl` and `textUrl` are
    served from our own mirror and are unaffected.


    ## Scope


    This document describes the **India** surface only. US statutes are a
    separate document at `/external/openapi.json`, so an MCP client configured
    here sees Indian tools and nothing else.
  version: 1.0.0
  contact:
    name: Vaquill API Support
    url: https://www.vaquill.ai
    email: support@vaquill.ai
  license:
    name: Proprietary
    url: https://www.vaquill.ai/terms
  termsOfService: https://www.vaquill.ai/terms
servers:
  - url: https://api.vaquill.ai
    description: Production
security:
  - ApiKeyAuth: []
paths:
  /api/v1/in/acts/{act_id}/definitions:
    get:
      tags:
        - Indian Acts and Legislation
      summary: Terms this act defines
      description: >-
        The terms an act defines, and the provision that defines them.


        **Cost: 2 credits.** Refunded when the act holds no extracted
        definitions,

        because the caller asked for definitions and did not get any.


        ⚠️ Coverage is thin and stated rather than implied: extracted defined
        terms

        exist for about 11.8% of served acts. An empty answer here means we did
        not

        extract them, NOT that the act defines nothing. `definitionSections` is

        returned separately so you can read the defining provision directly even
        when

        no terms were extracted from it.


        `terms` is paged with `page` + `pageSize`, because a long definitions
        clause is

        long: one act carries 23,550 stored term entries, and this route used to
        report

        an honest `total` beside a list silently cut to 100 with no way to ask
        for row

        101. `definitionSections` is short and is NOT paged, so it repeats in
        full on

        every page.
      operationId: india_act_definitions
      parameters:
        - name: act_id
          in: path
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 200
            pattern: ^[a-zA-Z0-9_-]+$
            description: Act identifier, as returned by search, /list or /resolve.
            examples:
              - IND_central_2114
            title: Act Id
          description: Act identifier, as returned by search, /list or /resolve.
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: 1-based page number.
            examples:
              - 1
            default: 1
            title: Page
          description: 1-based page number.
        - name: pageSize
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
                maximum: 100
                minimum: 1
              - type: 'null'
            description: Rows per page (1-100). Defaults to 25.
            examples:
              - 25
            title: Pagesize
          description: Rows per page (1-100). Defaults to 25.
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
                maximum: 100
                minimum: 1
              - type: 'null'
            description: >-
              DEPRECATED alias for `pageSize`, kept working for clients written
              against the original shape. Send one or the other, not both.
            deprecated: true
            examples:
              - 25
            title: Limit
          description: >-
            DEPRECATED alias for `pageSize`, kept working for clients written
            against the original shape. Send one or the other, not both.
          deprecated: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActDefinitionsResponse'
              example:
                actId: IND_state_20326
                citation: The Maharashtra Value Added Tax Act, 2002.
                terms:
                  - term: certificate of entitlement
                    sectionNumber: '88'
                  - term: eligibility certificate
                    sectionNumber: '88'
                total: 36
                returned: 3
                page: 1
                pageSize: 3
                hasMore: true
                definitionSections: []
                totalDefinitionSections: 0
                meta:
                  processingTimeMs: 530.6
                  creditsConsumed: 2
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDetailError'
        '402':
          description: Insufficient credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDetailError'
        '403':
          description: Key lacks the research:read scope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDetailError'
        '404':
          description: No such act or provision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDetailError'
        '422':
          description: Unrecognised or conflicting parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDetailError'
        '429':
          description: Rate limited
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDetailError'
components:
  schemas:
    ActDefinitionsResponse:
      properties:
        actId:
          type: string
          title: Actid
        citation:
          anyOf:
            - type: string
            - type: 'null'
          title: Citation
        terms:
          items:
            $ref: '#/components/schemas/DefinedTerm'
          type: array
          title: Terms
        total:
          type: integer
          title: Total
          description: >-
            Distinct terms this act defines, across all pages. Not rows on this
            page: that is `returned`.
        returned:
          type: integer
          title: Returned
          description: Rows in `terms` on THIS page.
        page:
          type: integer
          title: Page
          description: 1-based page this response answers.
        pageSize:
          type: integer
          title: Pagesize
          description: Rows per page requested.
        hasMore:
          type: boolean
          title: Hasmore
          description: True when a further page of terms exists.
        definitionSections:
          items:
            $ref: '#/components/schemas/ReferencedSection'
          type: array
          title: Definitionsections
          description: >-
            Provisions identified as definition clauses. Returned separately so
            a defining provision is reachable even when no terms were extracted
            from it. NOT paged: this list is short, and `page` moves `terms`
            only, so it is repeated in full on every page.
        totalDefinitionSections:
          type: integer
          title: Totaldefinitionsections
          description: >-
            Definition clauses found, before the cap on rows. Larger than
            `len(definitionSections)` only in the pathological case.
        note:
          anyOf:
            - type: string
            - type: 'null'
          title: Note
        meta:
          $ref: '#/components/schemas/Meta'
      type: object
      required:
        - actId
        - total
        - returned
        - page
        - pageSize
        - hasMore
        - totalDefinitionSections
        - meta
      title: ActDefinitionsResponse
    ApiDetailError:
      properties:
        detail:
          type: string
          title: Detail
          description: >-
            Human-readable reason, safe to surface to an end user. Branch on the
            HTTP status rather than on this string: the wording is not part of
            the contract and may be reworded, but 401 (bad key), 402 (out of
            credits), 403 (missing scope), 404 (no such resource) and 429 (rate
            limited) are stable.
          examples:
            - Insufficient API credits.
      type: object
      required:
        - detail
      title: ApiDetailError
      description: |-
        Error envelope the API actually returns.

        All errors (401/402/403/404/422/429/5xx) come back as a single
        `detail` string (FastAPI default), e.g. `{"detail": "Insufficient API
        credits."}`. Documenting the real shape so client code can rely on it.
    DefinedTerm:
      properties:
        term:
          type: string
          title: Term
        sectionNumber:
          anyOf:
            - type: string
            - type: 'null'
          title: Sectionnumber
          description: Where the term is defined, when known.
      type: object
      required:
        - term
      title: DefinedTerm
    ReferencedSection:
      properties:
        sectionNumber:
          anyOf:
            - type: string
            - type: 'null'
          title: Sectionnumber
        sectionTitle:
          anyOf:
            - type: string
            - type: 'null'
          title: Sectiontitle
      type: object
      title: ReferencedSection
    Meta:
      properties:
        processingTimeMs:
          type: number
          title: Processingtimems
          description: >-
            Server-side time for this request in milliseconds, excluding network
            transit. Not billed on.
          default: 0
          examples:
            - 142.7
        creditsConsumed:
          type: number
          title: Creditsconsumed
          description: >-
            Credits actually charged. Read this rather than assuming the list
            price: refunded work bills 0.
          default: 0
          examples:
            - 2
      type: object
      title: Meta
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: vq_key_*
      description: >-
        API key issued from the developer dashboard. Pass as `Authorization:
        Bearer vq_key_...`

````