> For the complete documentation index, see [llms.txt](https://docs.e6data.com/query-engine/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.e6data.com/query-engine/developers.md).

# Developers

- [Overview](https://docs.e6data.com/query-engine/developers/readme-2.md): Connect to e6data programmatically or query it - JDBC, REST API, PostgreSQL protocol, Python, PySpark - and automate it with the Management API.
- [Table of contents](https://docs.e6data.com/query-engine/developers/readme-2/summary.md)
- [Connecting to the engine](https://docs.e6data.com/query-engine/developers/connecting-to-the-engine.md): Connect BI tools, SQL clients, drivers, and your own code to an e6data cluster - one endpoint that speaks three protocols.
- [One-endpoint / three-protocols model](https://docs.e6data.com/query-engine/developers/connecting-to-the-engine/one-endpoint-three-protocols.md): How e6data exposes one authenticated endpoint speaking gRPC, HTTP REST, and the PostgreSQL wire protocol, with routing by cluster name.
- [JDBC](https://docs.e6data.com/query-engine/developers/connecting-to-the-engine/jdbc.md): Connect to e6data with the JDBC driver - connection URL, credentials, and SQL clients that use it.
- [PostgreSQL protocol](https://docs.e6data.com/query-engine/developers/connecting-to-the-engine/postgresql-protocol.md): Connect a stock PostgreSQL client to e6data over the PostgreSQL wire protocol - no e6data driver required.
- [REST API for SQL queries](https://docs.e6data.com/query-engine/developers/connecting-to-the-engine/rest-api-for-sql.md): Run SQL on e6data over the language-agnostic HTTP REST v2 API - authenticate, submit a statement, poll, and page through results.
- [Python connector](https://docs.e6data.com/query-engine/developers/connecting-to-the-engine/python-connector.md): Query e6data from Python with the e6data Python connector - install, connect, and run queries.
- [BI tool recipes](https://docs.e6data.com/query-engine/developers/bi-tool-recipes.md)
- [Tableau](https://docs.e6data.com/query-engine/developers/bi-tool-recipes/tableau.md): Connect Tableau Desktop and Tableau Cloud to an e6data cluster over JDBC.
- [Power BI](https://docs.e6data.com/query-engine/developers/bi-tool-recipes/power-bi.md): Connect Power BI to an e6data cluster using the Starburst ODBC driver, with optional on-premises data gateway setup.
- [DBeaver](https://docs.e6data.com/query-engine/developers/bi-tool-recipes/dbeaver.md): Connect the DBeaver SQL client to an e6data cluster using the e6data JDBC driver.
- [DbVisualizer](https://docs.e6data.com/query-engine/developers/bi-tool-recipes/dbvisualizer.md): Connect the DbVisualizer SQL client to an e6data cluster using the e6data JDBC driver.
- [Superset](https://docs.e6data.com/query-engine/developers/bi-tool-recipes/superset.md): Connect Apache Superset to an e6data cluster using the e6data Python package and a SQLAlchemy URI.
- [Metabase](https://docs.e6data.com/query-engine/developers/bi-tool-recipes/metabase.md): Connect Metabase to the e6data query engine using the e6data driver.
- [Notebooks](https://docs.e6data.com/query-engine/developers/bi-tool-recipes/notebooks.md): Connect Jupyter Notebook (via the Python connector) and Apache Zeppelin (via JDBC) to an e6data cluster.
- [Management API](https://docs.e6data.com/query-engine/developers/management-api.md): Automate e6data from your own code - manage clusters, catalogs, schedules, and access policies over the Management REST API.
- [Authentication](https://docs.e6data.com/query-engine/developers/management-api/authentication.md): Choose and send the right credential for automating e6data - service tokens with least-privilege permissions.
- [Automate clusters, catalogs, schedules, and policies](https://docs.e6data.com/query-engine/developers/management-api/automate-clusters-catalogs-schedules-policies.md): Manage clusters, catalogs, scheduled refreshes, and access policies over the e6data Management API, with recipes for scaling, suspending, and refreshing.
- [RBAC as code](https://docs.e6data.com/query-engine/developers/management-api/rbac-as-code.md): Manage e6data roles, groups, and bindings programmatically over the Management API, so access is version-controlled and flows by group membership.
- [Developer checklist](https://docs.e6data.com/query-engine/developers/management-api/developer-checklist.md): What to confirm before shipping an e6data integration - auth, base paths, polling, pagination, errors, idempotency, propagation, and secrets.
- [PySpark compatibility](https://docs.e6data.com/query-engine/developers/pyspark-compatibility.md): Run existing PySpark and Apache Sedona code on e6data with a drop-in compatibility library - install, configure the connection, and run.
- [Supported APIs and compatibility notes](https://docs.e6data.com/query-engine/developers/pyspark-compatibility/supported-apis-and-compatibility.md): The PySpark DataFrame operations, SQL functions, and read/write formats supported by the e6data compatibility layer, with end-to-end code samples.
- [Limitations](https://docs.e6data.com/query-engine/developers/pyspark-compatibility/limitations.md): What the e6data PySpark compatibility layer does not support, and how unsupported operations behave.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.e6data.com/query-engine/developers.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
