Skip to main content
S3 Export publishes tables from your Dune namespace as Apache Iceberg tables in a Dune-managed S3 bucket, queryable from any engine you control.
S3 Export is available only through dbt to Datashare. 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.

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 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 or contact the enterprise team with:
  • Your preferred AWS region for the export bucket
  • A principal to grant read access (see Granting Access)
Once configured, you drive everything from dbt: see dbt to Datashare.

Granting Access

Dune attaches a bucket policy to your export bucket that grants an AWS principal you control read access. You have two options:
OptionWhat you provideWho can read
IAM roleAn IAM role ARN in your own AWS account with read access to S3Only that role
AWS accountYour AWS account IDThe whole account - you then control which IAM users/roles have access via your own IAM policies
Dune only needs an IAM role ARN or an AWS account ID to grant access, never AWS keys, secrets, or other credentials.

Requester Pays

The export bucket is configured with Requester Pays, 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 | support@dune.com | Discord