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

# Create backfill

> Starts a historical backfill job that exports a Snowflake table slice to your destinations.

```
POST /api/v1/beam/backfills
```

Stages data from a Snowflake table for the given window, then streams it to one or more destinations. The job progresses through `staging → transporting → completed` (or `failed` / `cancelled`).

<Warning>
  We currently only support **Base** tables (e.g. `base.assets.erc20_token_transfers`). Contact [support@allium.so](mailto:support@allium.so) to request support for additional tables.
</Warning>

```bash theme={null}
curl -X POST https://api.allium.so/api/v1/beam/backfills \
  -H "X-API-Key: ${ALLIUM_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "job_name": "USDC transfers on Base — Mar 2026",
    "table": "base.assets.erc20_token_transfers",
    "backfill_window": {
      "partition_key": "block_timestamp",
      "start": "2026-03-01T00:00:00",
      "end": "2026-04-01T00:00:00"
    },
    "filter": {
      "column": "token_address",
      "values": ["0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"]
    },
    "destinations": [
      { "type": "kafka", "name": "base-usdc-transfers-backfill" }
    ]
  }'
```

**Response:**

```json theme={null}
{
  "job_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "workflow_id": "beam-backfill-org123-f47ac10b-58cc-4372-a567-0e02b2c3d479"
}
```

Use `job_id` to poll job status via [List backfills](/beam/api-reference/backfills/list-backfills) or to cancel via [Cancel backfill](/beam/api-reference/backfills/cancel-backfill).

***

**Request body:**

```js theme={null}
{
  "job_name": str,
  "table": str,
  "backfill_window": { ... },
  "filter": { ... },
  "destinations": [ ... ],
  "static_egress_ip": bool
}
```

## `backfill_window`

`start` is inclusive, `end` is exclusive, and `start` must be less than `end`.

Backfill by block timestamp. Set `partition_key` to `"block_timestamp"`.

```json theme={null}
{
  "partition_key": "block_timestamp",
  "start": "2024-01-01T00:00:00",
  "end": "2024-01-02T00:00:00"
}
```

| Field           | Type                | Required | Description                        |
| :-------------- | :------------------ | :------- | :--------------------------------- |
| `partition_key` | `"block_timestamp"` | Yes      | Must be `block_timestamp`          |
| `start`         | string              | Yes      | Inclusive ISO 8601 start timestamp |
| `end`           | string              | Yes      | Exclusive ISO 8601 end timestamp   |

## `filter` (optional)

```json theme={null}
{
  "column": "token_address",
  "values": ["0x833589fcd6edb6e08f4c7c32d4f71b54bda02913"]
}
```

Translates to `WHERE column IN (values)` on the Snowflake `COPY INTO` query.

## `destinations`

Uses the same sink types as pipelines. See the [Sinks reference](/beam/api-reference/configuration#sinks).
