> This page is for Developer Documentation.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.benchling.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.benchling.com/_mcp/server.

# Direct Data Share

## About

Direct Data Share connects Benchling to your own cloud data platform. Data moves between the two without an integration you have to build and run.

It works in two directions:

| Direction                                    | Flow                      | What you get                                                                                                                                    |
| -------------------------------------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| [Outbound](/docs/direct-data-share-outbound) | Benchling → your platform | Your Benchling records as Apache Iceberg tables that you can query from Snowflake, Databricks, Spark, or any Iceberg client                     |
| [Inbound](/docs/direct-data-share-inbound)   | Your platform → Benchling | Tables from your Snowflake or Databricks account imported into Benchling as datasets your scientists can use in entries, analyses, and Insights |

You configure both directions with your Benchling representative rather than on your own.

> **Warning**
>
> ### Direct Data Share is in open beta. Expect the shared schema and connection flows to keep evolving. [Inbound](/docs/direct-data-share-inbound) is further gated behind per-tenant enablement. See that page for current availability.

## Supported platforms

| Platform                                                       | Direction            | Notes                                                                                                                                                                                                                                                   |
| -------------------------------------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Snowflake                                                      | Outbound and inbound | Query outbound tables from a Benchling-managed account or a listing mounted in your own account. Inbound reads from a Snowflake account you control.                                                                                                    |
| Databricks                                                     | Outbound and inbound | Outbound reads the same Iceberg tables through Unity Catalog federation. Inbound reads from a Unity Catalog-governed schema in your workspace. Both require a separate enablement step beyond base Snowflake access. Ask your Benchling representative. |
| Any Iceberg REST client (Spark, Trino, Flink, PyIceberg, etc.) | Outbound only        | The shared tables are plain Apache Iceberg, so any Iceberg REST catalog client can read them.                                                                                                                                                           |

There is no generic-Iceberg path into Benchling; inbound reads from Snowflake or Databricks only.

## Access control \[#access-control]

Outbound sharing applies per tenant. Your credential can assume exactly one role, which has read-only access to your tenant's schema and nothing else. It cannot write, and it cannot reach another tenant's data.

Within that scope, Direct Data Share does **not** filter per end user. The outbound share presents one tenant-wide view, so everyone querying with the credential sees the same rows regardless of their [Benchling permissions](/docs/permissions-and-security). Treat the credential as granting broad read access to your tenant's shared data. If your analysts should see only part of it, apply your own access controls in your platform (Snowflake roles, Unity Catalog grants, or views).

A role you create in your own account (a Snowflake role, or the Databricks equivalent) scopes inbound sharing. Benchling runs its queries as that role, so what Benchling can read is exactly what you grant it. See [Inbound: Snowflake](/docs/direct-data-share-inbound#prepare-your-snowflake-account) for the recommended grants.

## Next steps

* [Outbound](/docs/direct-data-share-outbound): Connect to your Benchling data and query it, with example Snowflake queries including schema-field joins.
* [Inbound](/docs/direct-data-share-inbound): Bring tables from your Snowflake or Databricks account into Benchling as datasets.