SQL in, JSON out
We built four doors into your data. The first one is the one that matters the most to you (and your own personal Claude instance) The other three are for when a human wants to review, integrate, or visualize something.
Door 1: the CLI - this is kind of the interface to the product
The CLI is rawquery. Everything you can do in the UI, you can do from the terminal. You, or your agent.
# You or your agent runs thisrq query 'SELECT customer_email, SUM(amount) as total FROM stripe.charges GROUP BY 1 ORDER BY 2 DESC LIMIT 5'
# Connect a source, sync it, query itrq connections create my-stripe --type stripe --api-key $KEYrq connections sync my-striperq tables
# Save a query, build a chart, publish itrq queries create top-spenders --sql 'SELECT ...'rq charts create revenue --query top-spenders --type barrq charts publish revenue
# Export your data when you want to leaverq export stripe.customers --download ./backup/# You or your agent runs thisrq query 'SELECT customer_email, SUM(amount) as total FROM stripe.charges GROUP BY 1 ORDER BY 2 DESC LIMIT 5'
# Connect a source, sync it, query itrq connections create my-stripe --type stripe --api-key $KEYrq connections sync my-striperq tables
# Save a query, build a chart, publish itrq queries create top-spenders --sql 'SELECT ...'rq charts create revenue --query top-spenders --type barrq charts publish revenue
# Export your data when you want to leaverq export stripe.customers --download ./backup/75 commands. Connections, syncs, transforms, charts, searches, exports. The CLI is the interface. The UI is your viewer for when you want to look at things. And because it's a CLI, any agent with rq installed can operate your entire data stack. That's our value prop; check the videos on the home page.
Door 2: the API — for your apps
One endpoint. JSON in, JSON out. No client library.
curl -s https://api.rawquery.dev/api/v1/execute \ -H "X-API-Key: rq_your_key" \ -H "Content-Type: application/json" \ -d '{"sql": "SELECT email, plan FROM stripe.customers LIMIT 3", "format": "objects"}'curl -s https://api.rawquery.dev/api/v1/execute \ -H "X-API-Key: rq_your_key" \ -H "Content-Type: application/json" \ -d '{"sql": "SELECT email, plan FROM stripe.customers LIMIT 3", "format": "objects"}'{ "data": [ {"email": "alice@acme.com", "plan": "team"}, {"email": "bob@startup.io", "plan": "business"}, {"email": "carol@bigco.eu", "plan": "free"} ], "row_count": 3, "execution_time_ms": 47.2, "metadata": {"bytes_scanned": 1024, "cost_eur": 0.00001}}{ "data": [ {"email": "alice@acme.com", "plan": "team"}, {"email": "bob@startup.io", "plan": "business"}, {"email": "carol@bigco.eu", "plan": "free"} ], "row_count": 3, "execution_time_ms": 47.2, "metadata": {"bytes_scanned": 1024, "cost_eur": 0.00001}}The good news is a curl command fits everywhere. Cron jobs. Slack bots. GitHub Actions. Spreadsheet scripts. Whatever framework you like this month. An SDK is a maintenance burden for us and a dependency for you; we both don't want it.
Door 3: the wire protocol — for -legacy- your BI tools
The platform makes an unnecessary big effort to speak Postgres wire protocol on port 5433. So if your tool speaks to Postgres, it speaks with us. psql, DBeaver, Metabase, Grafana, your ORM of any additional questionable choice.
psql -h rawquery.dev -p 5433 -U your_user -d rawquery# Then just... SQL.SELECT * FROM stripe.customers WHERE plan = 'team';psql -h rawquery.dev -p 5433 -U your_user -d rawquery# Then just... SQL.SELECT * FROM stripe.customers WHERE plan = 'team';Door 4: the UI — for when you want to look at things and take screenshots
The dashboard is your viewer. SQL editor, connection status, chart previews, published pages. It's where you, the human, go to review what the CLI built. We don't think of it as the product per se — it's the window into the product.
The point
The CLI is the product. The API, wire, and UI are how you integrate and review. Whether it's you typing or your agent running commands, the interface is SQL.
Raw Takes Short reads on things we built and why they matter (to us). No thought leadership.