420+ datasets from 40+ federal agencies — cross-linked by legal entity, geography, and time since 2010. Includes text similarity search across SEC filings and the Federal Register. Query everything in plain English via Claude Desktop, or directly from Python with one pip install.
pip install 'askamerica[engine]'
Updated daily from primary government sources, with history back to 2010. All schemas cross-linked by legal entity, geography, and time. No API keys per dataset — one AskAmerica key accesses everything. Browse the full schema, table & column catalog →
AskAmerica handles ingestion, formatting, and serving. You get a key, connect a client, and query — three steps, no data to deploy or maintain.
All plans include every dataset. You pay for bytes scanned, not seats.
Same data, same API key — choose the client that fits your workflow.
Bundled JRE — no Java, no Python, no config files. Open the app, enter your API key, click Configure. Works with Claude Desktop and any other MCP-compatible client.
Or via pip: pip install 'askamerica[mcp]' then askamerica mcp-config.
list_schemas → what datasets are available? list_tables → what tables are in fec? describe_table → what columns does contributions have? query → run any SQL and return results
Claude calls these automatically — you just ask questions in plain English. No SQL required on your end.
One package, zero boilerplate. Returns a pandas DataFrame or a raw JDBC connection — JPype is managed internally, never exposed.
pip install 'askamerica[engine]' askamerica login # set your API key
Python 3.8+. The engine JAR downloads automatically on first query (cached under ~/.askamerica). On Python 3.10+ a JVM is bundled too; on 3.8–3.9, Java 11+ must be on your PATH.
import askamerica as aa df = aa.query(""" SELECT company_name, value_dollars FROM sec.financial_facts WHERE canonical_name = 'Revenue' ORDER BY value_dollars DESC FETCH FIRST 10 ROWS ONLY """) print(df)
conn = aa.connect()
rs = conn.createStatement().executeQuery(
"SELECT cik, company_name FROM sec.filing_metadata"
" ORDER BY filing_date DESC FETCH FIRST 5 ROWS ONLY")
while rs.next():
print(rs.getString("company_name"))
conn.close()
A single fat JAR — use from Node, Go, Java, DBeaver, or any JDBC client. No other dependencies.
↓ askamerica-engine.jarJDBC URL: jdbc:askamerica:source=geo,sec Driver JAR: askamerica-engine.jar Driver class: org.apache.calcite.adapter .askamerica.AskAmericaDriver Username: (leave blank)
const { createConnection } = require('jdbc'); const conn = await createConnection({ url: 'jdbc:askamerica:source=sec,geo', drivername: 'org.apache.calcite.adapter .askamerica.AskAmericaDriver', classpath: ['./askamerica-engine.jar'] }); const rows = await conn.query( 'SELECT cik, company_name FROM sec.filing_metadata FETCH FIRST 5 ROWS ONLY');
// go-jdbc wraps the JVM via CGo db, _ := sql.Open("jdbc", "jdbc:askamerica:source=sec,geo") rows, _ := db.Query( "SELECT cik, company_name FROM sec.filing_metadata FETCH FIRST 5 ROWS ONLY")
AskAmericaDriver driver = new AskAmericaDriver(); Connection conn = driver.connect( "jdbc:askamerica:source=sec,geo,econ", new Properties()); ResultSet rs = conn.createStatement().executeQuery( "SELECT cik, company_name FROM sec.filing_metadata FETCH FIRST 5 ROWS ONLY");
Enter your email. We'll send a one-time code — no password required.
Your free API key is below. Keep it safe — it grants access to your quota.
pip install 'askamerica[engine]'askamerica login # key: import askamerica as aadf = aa.query("SELECT 1")