---
title: SFTP Batch Inference
description: Run large-scale inference by dropping PARQUET / CSV files in a secure SFTP bucket.
---

:::warning
This feature is currently limited. Contact us to enable.
:::

Use SFTP as a managed transport layer for the same Batch Inference jobs covered in this section. Drop files into the inbound folder, Avra submits them to the Batch API on your behalf, and results land back in the outbound folder with full observability via webhooks and dashboard events.

## Prerequisites

- Batch prediction target configured in production (`{model_id}/production`, `{model_id}/challenger`, or `{model_id}/{version_id}`)
- At least one SFTP user provisioned by Avra Ops
- IP allowlist entries (if required by your network policies)
- Optional: [webhook](/integrate/webhook-notifications) subscription for `batch-lifecycle`

## Directory Layout

```text
batch/
  in/
    batch_2025-05-01.parquet
    batch_2025-06-01.csv
  out/
    batch_2025-05-01.parquet
    batch_2025-06-01.parquet
logs/
samples/
```

## File Format

Parquet or CSV up to 10 GB and 1,000,000 rows per file. Required columns:
- `endpoint`: the model prediction target, using the same `model_id` + alias or version convention as the Prediction API (for example, `{model_id}/production`, `{model_id}/challenger`, `{model_id}/{version_id}`)
- All inputs declared in the model's schema (for example, `legal_document`, `avra__internal__customer_embedding`)
- Optional metadata columns (`correlation_id`, `reference_id`) are echoed back in the output.

## Processing Flow

```mermaid
sequenceDiagram
  participant You
  participant SFTP
  participant Avra
  You->>SFTP: Upload your-file.csv to /in
  SFTP-->>Avra: Object-Created event
  Avra->>Avra: Validate & submit to Batch API
  Avra-->>SFTP: Write your-file.out.csv to /out
  Avra-->>You: (Optional) POST batch-lifecycle webhook
```

See [Batch Inference](/integrate/batch-inference) for service-level expectations, retries, and status polling flow. Pair with [webhook notifications](/integrate/webhook-notifications) to receive completion callbacks without polling SFTP.
