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

# Amazon S3

> Push accounting and analytics data directly to your Amazon S3 buckets

## Overview

Tight integrates directly with Amazon S3 to periodically upload raw accounting data to your own S3 buckets. By pushing data into your S3 infrastructure, Tight eliminates the need for your data team to build direct connections to the Tight API, allowing your team to work in the data stack they're already using.

Data is exported in [Parquet file](https://parquet.apache.org/) format on daily, weekly, or monthly intervals, including bank linkage data, invoices, lifecycle events, and transactions. Learn more about available data types and use cases in the [Data Lakes guide](/guides/business-owners/data-lakes).

## Create an Amazon S3 Bucket

If you haven't done so already, create an [AWS account](https://aws.amazon.com/) and [set up an S3 bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) where Tight will upload your data. You can name this bucket anything you'd like; "tight-api-data" is used for the examples shown below.

<img src="https://mintcdn.com/tight-7c882d74/PBb8Gf8jW9PRt_Fg/integrations/analytics/S3CreateBucket.png?fit=max&auto=format&n=PBb8Gf8jW9PRt_Fg&q=85&s=624c1115468683a4efe01f08bdeb17de" alt="Create S3 Bucket" width="1908" height="1832" data-path="integrations/analytics/S3CreateBucket.png" />

Make note of the AWS Region that you selected, as you'll need to share this with Tight.

## Configure IAM Policy for Programmatic Access

Next, [create an IAM policy](https://aws.amazon.com/blogs/security/writing-iam-policies-how-to-grant-access-to-an-amazon-s3-bucket/) to grant programmatic access to your S3 bucket.

In the AWS IAM Console, navigate to Policies and click "Create policy". Select the JSON option and paste the following policy:

```json theme={null}
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::tight-api-data"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::tight-api-data/*"
            ]
        }
    ]
}
```

<Tip>
  Replace `tight-api-data` with your actual bucket name in both Resource ARNs.
</Tip>

<img src="https://mintcdn.com/tight-7c882d74/PBb8Gf8jW9PRt_Fg/integrations/analytics/S3PolicyJSON.png?fit=max&auto=format&n=PBb8Gf8jW9PRt_Fg&q=85&s=d1461cf693b9c93fa189cc5707fbea95" alt="IAM Policy JSON" width="1916" height="1800" data-path="integrations/analytics/S3PolicyJSON.png" />

Click "Next: Tags" (or "Next: Review" depending on your AWS console version):

<img src="https://mintcdn.com/tight-7c882d74/PBb8Gf8jW9PRt_Fg/integrations/analytics/S3PolicyNext.png?fit=max&auto=format&n=PBb8Gf8jW9PRt_Fg&q=85&s=e9af95009b845971427476edb71c5817" alt="Policy Next Step" width="1908" height="1800" data-path="integrations/analytics/S3PolicyNext.png" />

On the review step, provide a descriptive name like "tight-api-data-access" and click "Create policy":

<img src="https://mintcdn.com/tight-7c882d74/PBb8Gf8jW9PRt_Fg/integrations/analytics/S3PolicyReview.png?fit=max&auto=format&n=PBb8Gf8jW9PRt_Fg&q=85&s=f1ac7138e7353976f12365f35fd371a4" alt="Policy Review" width="1908" height="1798" data-path="integrations/analytics/S3PolicyReview.png" />

## Create IAM User

[Create an IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) that will be used by Tight to access your S3 bucket.

In the AWS IAM Console, navigate to Users and click "Add user". Provide a descriptive username like "tight-api-data-user":

<img src="https://mintcdn.com/tight-7c882d74/PBb8Gf8jW9PRt_Fg/integrations/analytics/S3AddUser.png?fit=max&auto=format&n=PBb8Gf8jW9PRt_Fg&q=85&s=0150339be54f75fc14c92aa3e1b203a3" alt="Add IAM User" width="1902" height="1802" data-path="integrations/analytics/S3AddUser.png" />

On the permissions step, select "Attach existing policies directly" and search for the policy you created (e.g., "tight-api-data-access"):

<img src="https://mintcdn.com/tight-7c882d74/PBb8Gf8jW9PRt_Fg/integrations/analytics/S3AttachPolicy.png?fit=max&auto=format&n=PBb8Gf8jW9PRt_Fg&q=85&s=36cb941a6d6eb6d8d44cbf734cd12171" alt="Attach Policy to User" width="1906" height="1798" data-path="integrations/analytics/S3AttachPolicy.png" />

Click through the remaining steps:

<img src="https://mintcdn.com/tight-7c882d74/PBb8Gf8jW9PRt_Fg/integrations/analytics/S3UserReviewNext.png?fit=max&auto=format&n=PBb8Gf8jW9PRt_Fg&q=85&s=90eef3ba852cf7e0f33b59fe4b4ba312" alt="Review User" width="1908" height="1800" data-path="integrations/analytics/S3UserReviewNext.png" />

On the final review, click "Create user":

<img src="https://mintcdn.com/tight-7c882d74/PBb8Gf8jW9PRt_Fg/integrations/analytics/S3UserReviewCreate.png?fit=max&auto=format&n=PBb8Gf8jW9PRt_Fg&q=85&s=a4d6b059ff6737239171f03b2379c2bc" alt="Create User" width="1908" height="1802" data-path="integrations/analytics/S3UserReviewCreate.png" />

After the user is created, you'll see the option to "Download .csv" containing the access credentials. Download this file securely:

<img src="https://mintcdn.com/tight-7c882d74/PBb8Gf8jW9PRt_Fg/integrations/analytics/S3DownloadCSV.png?fit=max&auto=format&n=PBb8Gf8jW9PRt_Fg&q=85&s=36ca3597f6110565d0a363eeb90d8f91" alt="Download Credentials CSV" width="1904" height="1802" data-path="integrations/analytics/S3DownloadCSV.png" />

<Tip>
  For enhanced security, create a dedicated IAM user specifically for Tight with permissions limited only to the target S3 bucket.
</Tip>

## Securely Share Access with Tight

Contact Tight directly at [api@tight.com](mailto:api@tight.com) for instructions on how to securely share:

* The IAM credentials CSV file you downloaded
* Your S3 bucket name
* The AWS region where your bucket is located

Once configured, Tight will automatically begin uploading data files to your S3 bucket based on your preferred schedule (daily, weekly, or monthly). Files are organized in a consistent directory structure within your bucket, making it easy to integrate with your existing data pipelines and analytics tools.
