Skip to main content
This guide takes you from zero to your first grounded statute answer. You will search the corpus, take an actId from the results, fetch that section’s metadata and full text, and discover what is queryable. Every path is prefixed with /api/v1 and every request needs an Authorization: Bearer vq_key_... header.
1

Get an API key

Create a key in your dashboard under API Keys. Copy it once, it will not be shown again. See Authentication for details.
2

Make your first search

Send a natural language query to POST /us/statutes/search. Scope it with corpusType and state for tighter results.
A trimmed response looks like this. The top-level fields describe the page, and each results entry carries a citation, an excerpt, and links to the official source.
count is how many results came back on this page, not a corpus-wide match count. No such total exists, because the API ranks a bounded candidate set rather than scoring the whole corpus. Use hasMore to decide whether to fetch the next page. See Pagination.The response also carries total, a deprecated alias for count kept for backward compatibility. Its name reads as a corpus-wide total, which it never was. Read count in new code.
creditsConsumed is what this call actually cost. Read it rather than assuming a list price: failed and refunded work bills 0, and includeBody: true bills each row that returns text on top of the search. GET /api-credits/pricing returns the live matrix.
3

Fetch the section and its body

Take an actId from the results (for example USC_T42_C21_S1983). Call GET /us/statutes/section/{actId} for metadata, and GET /us/statutes/section/{actId}/body for the full text.
The body endpoint returns html and plain text plus an available flag and a source.
4

Discover coverage

The corpus grows weekly. Call GET /us/statutes/coverage to see the corpus legend and, for each jurisdiction, which corpusType tokens have data. Pass one of those tokens back into /us/statutes/search.

Next steps

Pagination

Page through search results with limit, offset, and hasMore.

Best practices

Scope queries, cache coverage, and handle errors well.
Last modified on September 12, 2026