Skip to main content
POST
Resolve many citations at once

Authorizations

Authorization
string
header
required

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

Body

application/json

Batch citation resolution. See POST /us/statutes/resolve.

/resolve took 1,159 calls in the 16 days to 2026-08-31, second only to search, and every one of them carried a single citation. The caller shape it is actually serving is an agent handed a brief, a memo or a model's output with thirty citations in it, doing thirty round trips to check them.

citations
string[]
required

Bluebook citation strings to resolve, up to 50 per call. Duplicates are collapsed and order is preserved, so the response's results array lines up with the de-duplicated input.

Priced PER CITATION at the single-resolve rate, exactly like POST /us/statutes/sections: batching is a round-trip and latency win, not a discount. Thirty citations cost the same 60 credits either way and take one request instead of thirty.

Minimum array length: 1
Example:
state
string | null

Optional two-letter jurisdiction to resolve every citation WITHIN. Applies to the whole batch: a batch spanning jurisdictions should omit it and let each citation name its own. Same semantics as the single-citation route -- a constraint, not a hint.

Required string length: 2
Example:

"ca"

corpusType
string | null

Optional corpus to resolve every citation WITHIN: STATE, REGULATION, STATE_RULES, CONSTITUTION, STATE_CONSTITUTION.

Example:

"REGULATION"

Response

One verdict per submitted citation, in order.

Response for POST /us/statutes/resolve.

results
StatuteResolveBatchItem · object[]

One entry per de-duplicated input citation, in the order supplied. An unresolved citation is an entry with resolved: false, never an omission: a caller checking thirty citations needs to know which of them failed, and a shorter array cannot say.

resolvedCount
integer
default:0

How many of the submitted citations resolved.

Example:

2

count
integer
default:0

Total entries in results, after de-duplication.

Example:

3

processingTimeMs
number
default:0

Server-side time for this request in milliseconds.

Example:

610.2

creditsConsumed
number
default:0

Credits actually charged. Read it rather than multiplying the list price by your input length: a backend failure on some citations refunds those, so this can be lower than 2 x count.

Example:

6

Last modified on September 7, 2026