Product 02 · Built by Vikgol

Fetcher.io

Ask your database a question. In plain English.

A middleware layer that sits between people and databases and removes the SQL. A finance lead asks for last quarter's margins. A customer asks for two-bedroom properties under a price cap. Both get a correct, permission-scoped answer in seconds — without a data analyst in the loop.

PostgreSQL · MySQL · MSSQL · Oracle · Snowflake · BigQuery · Redshift · Databricks

fetcher.io — query pipeline
SIX STAGES, EVERY QUERY
"Profit margins Sep 2011 to Sep 2012"
Haiku 4.5 — intent + ambiguity check
Sonnet 5 — schema-aware SQL generation
AST validator — injection guard + permissions
Database executor
Opus 5 — results interpretation
Table + summary + follow-ups + export
The problem
Everyone waits on the same three people

Every question about the business becomes a ticket for whoever writes SQL. Answers arrive days late, by which point the decision has already been made on a stale spreadsheet. Meanwhile your data team spends most of its week on queries that are variations of the same six questions.

CAPABILITY 01

Schema intelligence, no documentation

On first connection, Fetcher.io crawls the database — tables, columns, types, foreign keys, indexes — then reads column names and sample data to generate readable semantic labels. It maps prop_sqft_net to "net property area in square feet" without anyone writing a data dictionary.

CAPABILITY 02

Business glossary binding

Your organisation's own terms — what "downtown", "Category A" or "active customer" actually mean in your data — are stored in a vector glossary and injected into prompts, so the SQL matches how your team talks.

CAPABILITY 03

Queries traditional BI cannot handle

Temporal ranges, multi-condition filters, aggregation with ranking, year-over-year comparisons using window functions, and fuzzy semantic search combining pgvector similarity with structured filters.

CAPABILITY 04

Answers, not just tables

Raw results are interpreted into a written summary with context and caveats, alongside the formatted table and suggested follow-up questions. Export to CSV, Excel or PDF.

Deployment modes
Three configurations, one engine

The difference between them is not the technology — it is what the user is permitted to see, which is enforced below the model rather than by it.

ModeUsersTypical queryAccess scope
Internal BIFinance, operations, HR, leadership"Show profit margins Sep 2011–Sep 2012 versus prior year"Full schema, read-only
Internal developerData engineers, product managers"Find all users who churned within 30 days of signup"Configurable schema, writes via approval workflow
Customer-facingEnd customers on your platform"Five properties in downtown Dubai, 2–3 bed, AED 150k–200k"Tenant-scoped only, zero cross-tenant exposure
Model routing
The right model at each stage
StageModelWhy this one
Query intent classificationHaiku 4.5Immediate feedback on whether the input is actionable, at minimal cost per classification
NL to SQL generationSonnet 5Strong code generation and instruction-following; handles complex multi-join queries reliably
Results interpretationOpus 5Produces analyst-quality reading of tabular data, including the caveats a junior analyst would miss
Schema semantic labellingOpus 5Requires real reasoning about ambiguous column names and inferred business logic
Security
Generated SQL is never trusted blindly

A model writing SQL against a production database is a genuine risk. Every safeguard here sits outside the model, not inside the prompt.

Row-level security
Each session is scoped to permitted data segments at the database layer, independent of what the model generates.
AST injection guard
Every generated query passes a rule-based abstract syntax tree validator before it reaches the database.
PII masking
Sensitive fields — emails, phone numbers, ID numbers — are detected and masked in results before display.
Full audit logging
Query, generated SQL and result logged with user ID, timestamp and data classification.
Zero-trust credentials
No long-lived database credentials — per-session ephemeral tokens only.
Data residency
Full residency support with regional inference endpoints, for GDPR and EU AI Act obligations.
Built by Vikgol

Built against real schemas, not sample databases.

Fetcher.io was designed and built by our own engineering team, and it works because it was tested against messy production schemas — undocumented columns, inconsistent naming, tables nobody remembers creating.

Demos on clean sample data prove nothing. The hard part of NL2SQL is a schema that grew organically over eight years, and that is the problem this was built to survive.

Work with the team that built it →
MODELSClaude Opus 5 · Sonnet 5 · Haiku 4.5
BACKENDPython FastAPI
ORCHESTRATIONLangChain · LlamaIndex
VECTORpgvector embeddings
CACHERedis query cache
APIREST and GraphQL · JWT auth
INFRADocker · Kubernetes
FAQ
Common questions
What if the generated SQL is wrong?
Two safeguards, and one honest limitation. Every query passes an AST validator for syntax and injection before execution, and row-level security means a wrong query still cannot return data the user shouldn't see. The limitation: a syntactically valid query can still answer the wrong question. That is why results come with the generated SQL visible and a written interpretation — so a user can see what was actually asked of the database, not just the number that came back.
Do we need to document our schema first?
No. The schema crawler auto-discovers tables, columns, types, foreign keys and indexes on first connection, and semantic labelling generates readable descriptions from column names and sample data. Where your organisation uses specific terminology, a business glossary improves accuracy considerably — but it is an enhancement, not a prerequisite.
Which databases are supported?
Relational: PostgreSQL, MySQL, MSSQL, Oracle, SQLite. Cloud warehouses: Snowflake, BigQuery, Redshift, Databricks. Also MongoDB through a SQL layer, Elasticsearch and Supabase. Schema changes are picked up incrementally without a manual re-index.
Can customers use it directly, or is it internal only?
Both. The customer-facing mode scopes every session to that tenant's data with no cross-tenant exposure, which is what makes it safe to put in front of end users on your own platform. It is the same engine as the internal BI mode — the difference is entirely in the access layer beneath it.
How does this compare to our existing BI tool?
It is complementary more often than it is a replacement. BI tools are strong at dashboards someone has already designed. Fetcher.io handles the ad-hoc question nobody built a dashboard for — which is where most of the analyst queue actually comes from. Teams typically keep both.

Point it at your database. See what happens.

Book a 30-minute call and we'll run Fetcher.io against a schema that looks like yours — not a demo dataset built to make it look good.