Skip to main content
GET
Get amendment history

Authorizations

Authorization
string
header
required

API key issued from the developer dashboard. Pass as Authorization: Bearer vq_key_... (preferred).

Headers

Idempotency-Key
string | null

Optional. 16 to 255 visible ASCII characters (a UUIDv4 is ideal). A retry with the same key and the same request replays the original 2xx response for 24 hours without charging again. The same key with a different request is rejected. Scope is the API key, method, path and body.

Required string length: 16 - 255
Pattern: ^[\x21-\x7e]+$
Example:

"3f9c2a1e-7b44-4d0a-9c1e-5a6b7c8d9e0f"

Path Parameters

act_id
string
required

Act identifier, as returned by /acts/search, /acts/list or /acts/resolve, e.g. IND_central_20062 (the Bharatiya Nyaya Sanhita, 2023). Surrounding whitespace, quotes, backticks, invisible characters, a trailing period and double percent-encoding are removed when the id as sent matches nothing; the response then carries resolvedFrom.

An act NAME or citation (Indian Penal Code, IPC, The Companies Act, 2013) is not resolved here. It returns 404 with reason: "act_name_or_citation" and suggestedRequest, the call that finds the id. A misspelt id returns 404 with the real ids in didYouMean.

Required string length: 1 - 200
Pattern: ^[^/\\\x00-\x1f]+$
Example:

"IND_state_20326"

Query Parameters

section
string | null

Keep only footnotes attached to this section, written exactly as the publisher does. Alphanumeric suffixes are part of the number, not a sub-provision: 498A is one section, not section 498 clause A.

Maximum string length: 40
Pattern: ^[A-Za-z0-9().\- ]{1,40}$
Example:

"23"

type
enum<string> | null

Amendment action class. Served in the NOMINAL spelling; the corpus stores the verbal form (substituted) and either is accepted. Values: substitution, insertion, omission, renumbering, addition, repeal, deletion, adaptation, amendment, note.

Available options:
substitution,
insertion,
omission,
renumbering,
addition,
repeal,
deletion,
adaptation,
amendment,
note
Example:

"substitution"

page
integer
default:1

1-based page number.

Required range: x >= 1
Example:

1

pageSize
integer
default:100

Results per page (1-200).

Required range: 1 <= x <= 200
Example:

100

Response

Successful Response

actId
string
required
title
string
required
totalFootnotes
integer
required

Footnotes on THIS page, not in the act. Paging is by page/pageSize, so this equals pageSize on a full page.

footnotes
FootnoteItem · object[]
required
typeCounts
Typecounts · object
required
resolvedFrom
IdentifierResolution · object | null

Null when the act is exactly the actId you sent. Otherwise how your input was matched after copy damage (whitespace, quotes, a trailing period) was removed.

page
integer
default:1
pageSize
integer
default:100
hasMore
boolean
default:false

True when a further page of footnotes exists.

meta
ActMeta · object

What this call cost and how long it took.

🔴 Added 2026-09-06. Five of the six original routes returned NO statement of what they billed: /text (3 credits), /amendments (5), /list (1), /filters (0) and /corresponding-provisions (1). The house rule on the US surface is that creditsConsumed is the CONTRACT and the list price is not, and it matters most exactly where refunds happen -- /text refunds on a missing act, /corresponding-provisions refunds when a mapping does not exist yet. Without this field a caller cannot tell a refunded call from a charged one, and has to reconcile against the ledger to find out.