> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dune.com/llms.txt
> Use this file to discover all available pages before exploring further.

# S3 Datashare

> Publish your Dune tables as Iceberg tables in a Dune-managed S3 bucket

S3 Export publishes tables from your Dune namespace as [Apache Iceberg](https://iceberg.apache.org/) tables in a Dune-managed S3 bucket, queryable from any engine you control.

<Note>
  S3 Export is available only through [dbt to
  Datashare](/api-reference/connectors/dbt/datashares). Unlike Snowflake,
  BigQuery, and Databricks, there is no managed replication of Dune's full
  dataset to S3. You publish your own dbt-managed tables and trigger each sync
  yourself.
</Note>

## How It Works

1. You build a `table` or `incremental` model in your Dune namespace with dbt.
2. A dbt sync writes the result as an Iceberg table into a Dune-managed S3 bucket.
3. Dune grants a principal you control read access to the bucket.
4. You query the Iceberg table directly from S3 with your own engine (Athena, Spark, Trino, DuckDB, etc.) without going through Dune.

See [dbt to Datashare](/api-reference/connectors/dbt/datashares) for the full workflow, configuration, and `target_type: s3`.

## Get Started

S3 Export is an enterprise feature configured per team. To enable it, email [datashares-sales@dune.com](mailto:datashares-sales@dune.com) or [contact the enterprise team](https://dune.com/enterprise) with:

* Your preferred AWS region for the export bucket
* A principal to grant read access (see [Granting Access](#granting-access))

Once configured, you drive everything from dbt: see [dbt to Datashare](/api-reference/connectors/dbt/datashares).

## Granting Access

Dune attaches a bucket policy to your export bucket that grants an AWS principal you control read access. You have two options:

| Option          | What you provide                                               | Who can read                                                                                     |
| --------------- | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| **IAM role**    | An IAM role ARN in your own AWS account with read access to S3 | Only that role                                                                                   |
| **AWS account** | Your AWS account ID                                            | The whole account - you then control which IAM users/roles have access via your own IAM policies |

<Warning>
  Dune only needs an IAM role ARN or an AWS account ID to grant access, never
  AWS keys, secrets, or other credentials.
</Warning>

## Requester Pays

The export bucket is configured with [Requester Pays](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html), so the requester (you) covers the cost of read requests and data transfer out.

To read the data you must send the `x-amz-request-payer: requester` header on all S3 requests. Without it, reads fail with `403`. Most AWS SDKs expose a setting for this (often a `RequestPayer` / "requester pays" option) so you do not have to set the header manually.

## Querying the Data

Point your engine at the Iceberg table in the export bucket using the principal you gave Dune. With any Iceberg-compatible engine you read the table directly from its S3 location. No Dune API or connection is involved.

Make sure your engine:

1. Authenticates as the IAM role or account that was granted access.
2. Sends the Requester Pays header on S3 requests.

## Table Format

S3 Export supports the **Iceberg** table format.

**Support:** [datashares-sales@dune.com](mailto:datashares-sales@dune.com) | [support@dune.com](mailto:support@dune.com) | [Discord](https://discord.gg/2VCqwzzF7u)
