---
title: File exchange
description: Exchange files with Figure, one way or both ways, through Google Cloud Storage, AWS S3, or SFTP.
---

{% callout type="info" title="Partner-hosted storage solution required" %}

Private Label [Data Export](/data-integration/data-export) files **can only be delivered to a storage solution hosted by the partner**. Figure does **not** host the storage solution for you. All reports are also available for download from Lead Portal.

{% /callout %}

[Data Export](/data-integration/data-export) files must use PGP encryption. See [PGP keys for encryption](/key-exchange#pgp-keys-for-encryption).

## Recommended methods

Use this order for new integrations:

{% cards columns=3 %}
{% card title="Google Cloud Storage" href="/data-integration/file-exchange/google-cloud-storage" icon="database" eyebrow="Recommended" %}
Grant a Figure service account on your bucket. No keys to exchange.
{% /card %}
{% card title="AWS S3" href="/data-integration/file-exchange/aws-s3" icon="boxes" eyebrow="Also supported" %}
Let Figure assume a role in your account, or use a Figure-hosted bucket.
{% /card %}
{% card title="SFTP" href="/data-integration/file-exchange/sftp" icon="server" eyebrow="Last resort" %}
SSH-key authentication only. Passwords are not supported.
{% /card %}
{% /cards %}

SFTP is not recommended. Google Cloud Storage and AWS S3 offer improved reliability and simpler lifecycle management.

For dataset sharing models still being expanded, see [Other sharing options](#other-sharing-options) and [contact us](/contact).

## Direction of transfer

**Figure delivers files to you** (for example Data Export): you host the destination. Use a partner-hosted bucket or SFTP server.

**You deliver files to Figure**: we can host the destination (Figure-hosted GCS, S3, or SFTP), or you can grant us access to storage you host.

Each method's page covers both directions.

If you allowlist the addresses that connect to storage you host, use the [file-exchange IP addresses](/ips#file-exchange-ip-addresses). They are separate from the API ranges.

## Environments and testing

Figure has separate test and production file-exchange destinations. Do not mix test and production credentials, buckets, roles, or allowlists.

For cross-account S3, use separate delivery roles (or trust policies) and buckets for test and production, each trusting the Role A ARN Figure provides for that environment during onboarding. See [Cross-account IAM role](/data-integration/file-exchange/aws-s3#cross-account-iam-role-recommended).

For Data Export:

- Test files are prefixed `test_`. Production files have no prefix. See [File Naming Conventions](/data-integration/data-export#file-naming-conventions).
- Exports are full snapshots (not deltas), on a partner-configurable schedule. See [Delivery Schedules and Data Freshness](/data-integration/data-export#delivery-schedules-and-data-freshness) and [Will Figure deliver full exports or delta-files?](/data-integration/faq#will-figure-deliver-full-exports-or-delta-files).

To validate an integration before go-live, use the test environment. If you need a sample file that matches the production schema with dummy data, ask your Figure contact or email [partner-help@figure.com](mailto:partner-help@figure.com).

## Other sharing options

The methods above are the standard path. The options below are on our roadmap or available by arrangement. [Contact us](/contact) if you want to be an early adopter:

- Granting a Figure AWS principal on your S3 bucket policy without role assumption or exchanging long-lived access keys
- [Google Analytics Hub](https://cloud.google.com/analytics-hub) (BigQuery dataset sharing)
- [AWS Data Exchange](https://aws.amazon.com/data-exchange/)

## Unsupported methods

Figure does not currently support file transfers to Azure or via FTP(S).

Have a question about access, credentials, or cadence? See the [FAQ](/data-integration/faq#file-exchange).
