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 databaseClaude 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
| Table | Description |
|---|---|
opinion-clusters | Case metadata (name, date, court) |
opinions | Full opinion text |
citations | Citation relationships |
courts | Court information |
Example Queries
Find Most-Cited Cases
Query the database to find the 10 most cited Supreme Court casesCases by Year
Query to count federal appellate cases by year from 2010 to 2023Citation Analysis
Query to find which courts most frequently cite Miranda v. ArizonaQuery 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 20Limitations
- 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
ILIKEfor case-insensitive matching - Use wildcards (
*) to query all shards - Check the Reference for schema details