/ezql

EZQL ask your database questions using natural language.

Primary LanguageTypeScriptMIT LicenseMIT

EZQL logo

EZQL™ — Ask your database questions in plain text.

Natural language to SQL convertor that can be embedded anywhere.


  GitHub Workflow Status   PRs welcome!   npm   Outerbase Twitter


EZQL ask your database questions using natural language.

✨ Why EZQL?

EZQL democratizes the access to data by allowing anybody to ask their database questions. Historically it's been embedded within Outerbase but we've got a lot of asks to make it accessible wherever so we decided to open-source it.

Learn more on our website

Request Feature

⚡️ Before you get started

Follow these steps to have a successful experience using EZQL:

  1. Create an account on Outerbase
  2. Attach the database you want to use
  3. Reach out to us for beta access
  4. Generate your EZQL token


🚀 Quick Start


npm add ezql
yarn add ezql

Usage (TypeScript/ESM)

import { Prompt, EZQL } from 'ezql'

const token = 'arbitrary-placeholder-value'
const ez = new EZQL({ token })
const phrase = 'What is the answer to life, the univerise and everything?'

const response = await ez.prompt(phrase, Prompt.sql)
/* "SELECT answer FROM ultimate_question;" */

const response = await ez.prompt(phrase, Prompt.data)
/* [{ "value": 42 }] */

Usage (Node.JS/CJS)

const { Prompt, EZQL } = require('ezql')

// the remainder is identical to TypeScript usage (see above)

Usage (Web/UMD)

Use our hosted file or save a local copy.

<script src="https://outerbase.github.io/ezql/bundle.js"></script>
<script>
  // A global variable `Outerbase` is now exposed

  const token = 'arbitrary-placeholder-value'
  const ez = new Outerbase.EZQL({ token })
  const phrase = 'What is the answer to life, the univerise and everything?'

  ez.prompt(phrase, Outerbase.Prompt.sql).then((sqlText) => console.log(sqlText))
  /* "SELECT answer FROM ultimate_question;" */

  ez.prompt(phrase, Outerbase.Prompt.data).then((data) => console.log(data))
  /* [{ "value": 42 }] */
</script>

Custom API Endpoint

You may customize the API endpoint by

  • passing host to the constructor
  • specifying the OUTERBASE_EZQL_HOST environment variable.

🎭 Live Demonstration

🙋 Contributing

If you want to add contributions to this repository, please follow the instructions in contributing.md.


🚨 Need help?

There are lots of good conversations and resources in our Github Discussions board & our Slack Server. If you're struggling with something, chances are, someone's already solved what you're up against. 👇


⭐ Like what we're doing? Give us a star

ezql-github-star

👏 Our contributors