LawForge
Guides

Run Custom SQL Queries

Execute advanced queries against the legal database

Run Custom SQL Queries

Use SQL for advanced queries that go beyond standard search.

When to Use SQL

SQL queries are useful when you need:

  • Specific aggregations or counts
  • Complex filtering logic
  • Joins across multiple tables
  • Custom sorting or grouping

Basic Query Structure

Ask Claude to run a SQL query:

Run a SQL query to count how many Supreme Court cases are in the database

Claude constructs and executes:

SELECT COUNT(*) as case_count
FROM read_parquet('https://api.lawforge.io/r2/data/opinion-clusters/opinion-clusters-*.parquet')
WHERE court_id = 'scotus'

Available Tables

TableDescription
opinion-clustersCase metadata (name, date, court)
opinionsFull opinion text
citationsCitation relationships
courtsCourt information

Example Queries

Find Most-Cited Cases

Query the database to find the 10 most cited Supreme Court cases

Cases by Year

Query to count federal appellate cases by year from 2010 to 2023

Citation Analysis

Query to find which courts most frequently cite Miranda v. Arizona

Query Syntax

LawForge uses DuckDB SQL syntax with read_parquet():

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

Limitations

  • Read-only - Only SELECT queries allowed
  • LawForge sources only - Must use our parquet files
  • Size limits - Results capped at reasonable sizes
  • No comments - SQL comments are blocked

Tips

  • Let Claude construct the query when possible
  • Use ILIKE for case-insensitive matching
  • Use wildcards (*) to query all shards
  • Check the Reference for schema details

On this page