LawForge
ReferenceTools

legal_query

Execute SQL queries against the legal database

legal_query

Execute read-only SQL queries against LawForge's legal database using DuckDB syntax. This tool provides direct access to parquet files containing court opinions, citations, and metadata.

Parameters

ParameterTypeRequiredDescription
sqlstringYesSQL query (SELECT only, must use LawForge parquet sources)

Security

  • Only SELECT queries are allowed
  • Queries must use read_parquet() with https://api.lawforge.io/r2/data/ sources
  • SQL comments and dangerous operations are blocked
  • Maximum query length: 50,000 characters

Available Tables

Access data via read_parquet():

TablePath
Courtshttps://api.lawforge.io/r2/data/courts/courts-*.parquet
Opinion Clustershttps://api.lawforge.io/r2/data/opinion-clusters/opinion-clusters-*.parquet
Opinionshttps://api.lawforge.io/r2/data/opinions/opinions-*.parquet
Citationshttps://api.lawforge.io/r2/data/citations/citations-*.parquet

Example Request

{
  "sql": "SELECT id, case_name, date_filed FROM read_parquet('https://api.lawforge.io/r2/data/opinion-clusters/opinion-clusters-00000.parquet') WHERE case_name ILIKE '%miranda%' LIMIT 10"
}

Example Response

{
  "columns": ["id", "case_name", "date_filed"],
  "rows": [
    [1234567, "Miranda v. Arizona", "1966-06-13"],
    [2345678, "Dickerson v. United States", "2000-06-26"]
  ],
  "row_count": 2,
  "truncated": false
}

Common Queries

Search by case name

SELECT id, case_name, date_filed, court_id
FROM read_parquet('https://api.lawforge.io/r2/data/opinion-clusters/opinion-clusters-*.parquet')
WHERE case_name ILIKE '%v. united states%'
LIMIT 20

Find cases by court

SELECT c.id, c.case_name, ct.short_name as court
FROM read_parquet('https://api.lawforge.io/r2/data/opinion-clusters/opinion-clusters-00000.parquet') c
JOIN read_parquet('https://api.lawforge.io/r2/data/courts/courts-00000.parquet') ct ON c.court_id = ct.id
WHERE ct.short_name = 'SCOTUS'
LIMIT 10

Count citations

SELECT cited_opinion_id, COUNT(*) as citation_count
FROM read_parquet('https://api.lawforge.io/r2/data/citations/citations-*.parquet')
GROUP BY cited_opinion_id
ORDER BY citation_count DESC
LIMIT 10

See Also

On this page