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

# SFTP Batch Inference

> Run large-scale inference by dropping CSV / JSONL files in a secure SFTP bucket.

<Warning>This feature is currently limited. Contact us to enable.</Warning>

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: <a href="/data-operations/webhook-notifications">webhook</a> subscription for `batch-lifecycle`

## Directory Layout

```text theme={null}
batch/
  in/
    batch_2025-05-01.jsonl
    batch_2025-06-01.parquet
  out/
    batch_2025-05-01.jsonl
    batch_2025-06-01.parquet
logs/
samples/
```

## File Format

CSV or JSONL up to 5 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 (e.g. `{model_id}/production`, `{model_id}/challenger`, `{model_id}/{version_id}`)
* All inputs declared in the model's schema (e.g. `legal_document`, `avra__internal__customer_embedding`)
* Optional metadata columns (`correlation_id`, `reference_id`) are echoed back in the output.

## Processing Flow

```mermaid theme={null}
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 <a href="/data-operations/batch-inference">Batch Inference</a> for service-level expectations, retries, and status polling flow. Pair with <a href="/data-operations/webhook-notifications">webhook notifications</a> to receive completion callbacks without polling SFTP.
