File Exchange
If you need to exchange files with Figure, whether that is one-way or bi-directional, we have a few options on how this can be done.
Private Label 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.
Data Export files must be encrypted. Please see Data Encryption for more information.
Recommended methods
Use this order for new integrations:
- Partner-hosted Google Cloud Storage (recommended)
- Partner-hosted AWS S3
- SFTP only if object storage is not an option
SFTP is not recommended. Google Cloud Storage and AWS S3 offer improved reliability and simpler lifecycle management.
For dataset sharing, keyless S3 access patterns, or other models still being expanded, see Other sharing options and contact us.
Direction of transfer
Figure delivers files to you (for example Data Export): you host the destination. See Partner-hosted GCS, S3, or SFTP below.
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.
Google Cloud Storage
Partner-hosted GCS bucket
You provide a Google Cloud Storage bucket. Figure writes to it using a GCP service account.
Grant Figure access on the bucket (or a prefix). Use roles/storage.objectAdmin, or a tighter custom role that can create, list, and delete objects on that prefix. Figure will provide the service account email during onboarding.
The bucket must not be public.
What Figure needs from you
- Bucket name
- Optional prefix / directory
- Confirmation that the Figure service account is granted on the bucket (or prefix)
Figure-hosted GCS bucket
Figure provides a bucket. You access it with a GCP service account your organization provides.
For more information about how to upload and download with Google Cloud Storage buckets, please visit the linked Google documentation.
What Figure needs from you
- The email address of your GCP service account
What you will need from Figure
- The name of the GCS bucket
AWS S3
Partner-hosted S3 bucket
You provide an S3 bucket. Figure writes to it using AWS credentials coordinated during onboarding.
What Figure needs from you
- Bucket name
- Optional prefix / directory
- AWS access credentials for that bucket (or a scoped IAM user / role that can write to it), exchanged through a secure channel — not email or tickets
Least-privilege on the bucket or prefix is preferred (s3:PutObject, s3:GetObject, s3:ListBucket, and s3:DeleteObject as needed).
If your organization can host a GCS bucket, that path uses IAM grants instead of exchanging AWS access keys. See Partner-hosted GCS bucket.
If you need cross-account AssumeRole with an ExternalId, a bucket policy that grants a Figure principal without exchanging keys, or another keyless pattern, that is not the default self-serve path yet. See Other sharing options and contact us to discuss early adoption.
Figure-hosted S3 bucket
Figure provides an S3 bucket. You access it with an IAM role or credentials that you provide.
For more information about how to upload and download with S3 buckets, please visit the linked AWS documentation.
What Figure needs from you
- The full ARN of your AWS role, or the credentials you will use to access the bucket
What you will need from Figure
- The name of the S3 bucket
File-exchange IP addresses
Use these addresses if you allowlist Figure for file delivery (including SFTP). They are separate from the API egress ranges on Domains and IP addresses.
Test
34.74.146.222
35.243.240.143
Production
104.196.137.78
34.23.229.110
SFTP
Partner-hosted SFTP
You provide an SFTP server. Figure authenticates with a username and an SSH key (preferred).
What Figure needs from you
- Server hostname (e.g.,
sftp.partner.comor172.168.10.1) - Username
- Authentication: Figure will provide a public SSH key for you to install. Password authentication is a fallback only if your server cannot use SSH keys.
- Destination directory (if desired)
- Confirmation that the file-exchange IP addresses are allowlisted
Figure-hosted SFTP
Figure provides an SFTP server that you access via username and SSH keys.
Figure's SFTP server is for delivering files to Figure only. Read access is not supported.
What Figure needs from you
- Your public SSH key
- The IP address or range from which you will be accessing Figure's SFTP server
What you will need from Figure
- The SFTP server address, which is
sftp.figure.com - The username assigned to your organization
Other sharing options
The methods above are the standard path. The options below are on our roadmap or available by arrangement. Contact us if you want to be an early adopter:
- Cross-account IAM role assumption with an ExternalId (your role trusts a Figure principal; short-lived credentials)
- Granting a Figure AWS principal on your S3 bucket policy without exchanging long-lived access keys
- Google Analytics Hub (BigQuery dataset sharing)
- AWS Data Exchange
These are not self-serve on this page. Until arranged, use the standard GCS, S3, or SFTP setup above.
Environments and testing
Figure has separate test and production file-exchange destinations. Do not mix test and production credentials, buckets, or allowlists.
For Data Export:
- Test files are prefixed
test_. Production files have no prefix. See File Naming Conventions. - Exports are full snapshots (not deltas), on a partner-configurable schedule. See Delivery Schedules and Data Freshness and 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.
FAQ
Does Figure need our AWS access keys?
For the standard partner-hosted S3 path, yes — we coordinate AWS credentials during onboarding over a secure channel. Prefer partner-hosted GCS when you can avoid exchanging AWS keys. Keyless or AssumeRole-with-ExternalId patterns: contact us (early adopter).
Does Figure's uploader run in AWS? Does it use an execution role in our account?
Figure's platform runs on Google Cloud. We do not run in your AWS account and do not use an execution role inside your account for the standard path.
Can Figure assume a role in our account using an ExternalId?
Not as the default self-serve path today. If your security team requires AssumeRole with an ExternalId, contact us — we are expanding support and can discuss early adoption.
Do you currently support cross-account IAM role access instead of long-lived access keys?
It is not the default documented path yet. Some partners have used role-based access by arrangement. If that is a requirement, contact us to be an early adopter. GCS remains the keyless-friendly recommended option.
What egress IP ranges does file delivery use?
See File-exchange IP addresses. API traffic uses a different list: Domains and IP addresses.
Is there a non-production environment? Can you provide sample or dummy data?
Yes. Test and production are separate. Data Export test files use a test_ prefix. For a schema-matched sample with dummy data, contact your Figure representative or partner-help@figure.com.
What is the expected file delivery cadence? Full snapshot or delta?
For Data Export, Figure delivers full snapshots on a configurable schedule (default tables are on Data Export). Cadence for other file exchanges is agreed during onboarding.
Unsupported methods
Figure does not currently support file transfers to Azure or via FTP(S).