> ## 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.

# An act's table of contents

> The act's own shape: its chapters and parts where the publisher gives any, and
the provisions under each.

**Cost: 2 credits.**

`hasHierarchy` is false for most acts and that is not an error. Measured over
the whole corpus, only about a quarter of served acts carry chapter or part
divisions; for the rest the publisher simply prints sections, and `nodes` is a
flat list of them.

Section numbers are sorted numerically with their alphabetic suffixes kept
attached, so `498A` follows `498` and `10` follows `2`.



## OpenAPI

````yaml https://api.vaquill.ai/in/openapi.json get /api/v1/in/acts/{act_id}/structure
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}/structure:
    get:
      tags:
        - Indian Acts and Legislation
      summary: An act's table of contents
      description: >-
        The act's own shape: its chapters and parts where the publisher gives
        any, and

        the provisions under each.


        **Cost: 2 credits.**


        `hasHierarchy` is false for most acts and that is not an error. Measured
        over

        the whole corpus, only about a quarter of served acts carry chapter or
        part

        divisions; for the rest the publisher simply prints sections, and
        `nodes` is a

        flat list of them.


        Section numbers are sorted numerically with their alphabetic suffixes
        kept

        attached, so `498A` follows `498` and `10` follows `2`.
      operationId: get_act_structure_api_v1_in_acts__act_id__structure_get
      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_state_20326
            title: Act Id
          description: Act identifier, as returned by search, /list or /resolve.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActStructureResponse'
              example:
                actId: IND_state_20326
                title: The Maharashtra Value Added Tax Act, 2002.
                citation: The Maharashtra Value Added Tax Act, 2002.
                nodes:
                  - kind: chapter
                    identifier: I
                    label: Chapter I
                    title: PRELIMINARY
                    sectionCount: 2
                    children:
                      - kind: section
                        identifier: '1'
                        label: s. 1
                        title: Short title, extent and commencement
                      - kind: section
                        identifier: '2'
                        label: s. 2
                        title: Definitions
                  - kind: chapter
                    identifier: II
                    label: Chapter II
                    title: INCIDENCE AND LEVY OF TAX
                    sectionCount: 6
                    children:
                      - kind: section
                        identifier: '3'
                        label: s. 3
                        title: Incidence of Tax
                      - kind: section
                        identifier: '4'
                        label: s. 4
                        title: Taxes payable
                sectionCount: 95
                hasHierarchy: true
                truncated: false
                meta:
                  processingTimeMs: 506.9
                  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: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limited
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDetailError'
components:
  schemas:
    ActStructureResponse:
      properties:
        actId:
          type: string
          title: Actid
        title:
          anyOf:
            - type: string
            - type: 'null'
          title: Title
        citation:
          anyOf:
            - type: string
            - type: 'null'
          title: Citation
        nodes:
          items:
            $ref: '#/components/schemas/StructureNode'
          type: array
          title: Nodes
        sectionCount:
          type: integer
          title: Sectioncount
        hasHierarchy:
          type: boolean
          title: Hashierarchy
          description: >-
            False when the publisher gives this act no chapter or part
            divisions, in which case `nodes` is a flat section list. Measured
            corpus-wide, only 25.65% of served acts carry any hierarchy, so a
            flat answer is the common case and not an error.
        truncated:
          type: boolean
          title: Truncated
          description: True when the act has more sections than one call returns.
          default: false
        meta:
          $ref: '#/components/schemas/Meta'
      type: object
      required:
        - actId
        - nodes
        - sectionCount
        - hasHierarchy
        - meta
      title: ActStructureResponse
    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.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    StructureNode:
      properties:
        kind:
          type: string
          title: Kind
          description: '`chapter`, `part` or `section`.'
        identifier:
          anyOf:
            - type: string
            - type: 'null'
          title: Identifier
        label:
          anyOf:
            - type: string
            - type: 'null'
          title: Label
        title:
          anyOf:
            - type: string
            - type: 'null'
          title: Title
        sectionCount:
          anyOf:
            - type: integer
            - type: 'null'
          title: Sectioncount
        children:
          anyOf:
            - items:
                $ref: '#/components/schemas/StructureNode'
              type: array
            - type: 'null'
          title: Children
      type: object
      required:
        - kind
      title: StructureNode
    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
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: vq_key_*
      description: >-
        API key issued from the developer dashboard. Pass as `Authorization:
        Bearer vq_key_...`

````