---
updatedAt: 2026-07-13T14:00:14.000Z
agentTools:
  siteIndex: https://developers.pismo.io/llms.txt
  projectIndex: https://developers.pismo.io/pismo-docs/llms.txt
---

# Setting up event batch file delivery

In addition to [real-time notifications](https://developers.pismo.io/pismo-docs/docs/setting-up-real-time-event-delivery), event data can be delivered as files via a configured integration channel to cloud storage — Amazon Web Services (AWS), Google Cloud Platform (GCP) — or downloaded using Secure File Transfer Protocol (SFTP).

## How it works

Event data is batched for **5 minutes** or until it reaches **10 MB** in size, then saved as a new object containing event JSON data in the `/main_stream/` path.

For information security, no S3 bucket is ever exposed publicly. A [Key Management Service (KMS)](https://aws.amazon.com/kms/) key is created for each bucket so that stored objects are encrypted and only decrypted when you download them.

Choose your delivery method below and follow the corresponding tutorial.

<Callout icon="⚠️" theme="warn">
  **File retention and download responsibility** Pismo retains files while your organization is active. However, we strongly recommend downloading files to your own infrastructure as soon as they are produced — either in real time (triggered by event notifications) or within 24 hours if you use a batch/polling strategy. These files belong to your organization, and keeping a local copy ensures you always have access. Please note that Pismo may charge additional fees for recovery requests of files older than 30 days.
</Callout>

# AWS S3

The following image shows the data flow for event file delivery to an AWS account

![Image shows the data flow for event file delivery to an AWS account.](https://files.readme.io/d3c4ba5-AWSedFlow.JPG "AWSedFlow.JPG")

#### How it works

1. Event files are generated and saved in a dedicated S3 bucket exclusive to your Org.

2. A listener detects the new file and generates a <Anchor label="new bucket object event" target="_blank" href="doc:event-data#new-event-file-notification">new bucket object event</Anchor>.

3. If you have real-time event delivery configured, the event is sent as a notification to your [SNS topic](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html). Otherwise, you can poll the bucket periodically.

4. Your AWS account receives the event identifying the bucket, object path, and size.

5. Your routine invokes ([`sts:AssumeRole`](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)) on Pismo's <Anchor label="IAM Role" target="_blank" href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html">IAM Role</Anchor>, and then downloads the file via ( [`s3:GetObject`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)).

#### Pismo creates for you:

* **S3 bucket**— Exclusive to your Org. Example: `arn:aws:s3:::pismo-dataplatform-tn-376a4170-3c93-4676-b294-ec0b4241c7ab`
* **IAM Role** — For file downloading (`s3:GetObject`). Example: `arn:aws:iam::{pismo_aws_account_id}:role/dataplatform-consumer-tn-376a4170-...`

**Your configuration:** Follow the <Anchor label="AWS event file configuration tutorial" target="_blank" href="doc:aws-event-file-configuration-tutorial">AWS event file configuration tutorial</Anchor>.

# GCP cloud storage

The following image shows the data flow for event file delivery to a GCP account:

![Image shows the data flow for event file delivery to a GCP account.](https://files.readme.io/4129cfc-GCPedFlow.JPG "GCPedFlow.JPG")

**How it works:**

1. Event files are generated and saved in a dedicated S3 bucket.

2. A listener detects the new file and generates a notification.

3. The notification is delivered to your  [Pub/Sub](https://cloud.google.com/pubsub) topic.

4. Pismo's event consumer copies the file to your GCP Cloud Storage bucket.

**Your configuration:** Follow the [GCP event file configuration tutorial](https://developers.pismo.io/pismo-docs/docs/gcp-event-file-configuration-tutorial).

## SFTP

If you can't use cloud-native integrations (AWS/GCP), or prefer a simpler approach, SFTP is available. Pismo's SFTP service abstracts the S3 bucket behind an SFTP layer — when you connect, you access the same files.

<Callout icon="📘" theme="info">
  You can associate up to **8 SSH** keys per organization. Sandbox and production credentials are separate.
</Callout>

**Access endpoints:**

| Environment           | Endpoint                    | Port |
| --------------------- | --------------------------- | ---- |
| Sandbox / Development | sftp-main.data.pismolabs.io | 22   |
| Production            | sftp-main.data.pismo.io     | 22   |

**Knowing when files are available**: Set up real-time event notifications. Otherwise, periodically connect and check for new files.

**Your configuration:** Follow the <Anchor label="SFTP event file configuration tutorial" target="_blank" href="https://developers.pismo.io/pismo-docs/docs/sftp-event-file-configuration-tutorial">SFTP event file configuration tutorial</Anchor>.

## Validate integration

Each provider-specific tutorial includes a **Validate Integration** section with:

* Step-by-step manual validation commands
* Automated diagnostic scripts that check authentication, resources, permissions, and connectivity

Follow the tutorial for your chosen delivery method to access these tools.

<Callout icon="📘" theme="info">
  **Need Pismo-specific details?** Information such as Pismo's AWS Account ID, single-tenant SFTP endpoints, consumer role ARNs, or external IDs can be obtained from your **Technical Account Manager (TAM)** or the **Implementation Engineer** assigned to your project.
</Callout>

<br />