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

# Batch Processing

> Choosing between sync and async endpoints.

ParseTx is designed to process batches of transactions. The choice between synchronous and asynchronous depends on your payload size.

## Synchronous (`/v1/enrich`)

**Limit:** 10 items per request.

Use this when enriching real-time user inputs or small webhooks.

If there is a cache miss, the synchronous endpoint will wait for the live AI engine. This can take up to 10 seconds. We strictly cap this at 10 items to prevent server timeouts.

## Asynchronous (`/v1/enrich/async`)

**Limit:** 500 items per request.

Use this for bulk historic imports (e.g., pulling a user's entire statement from Plaid).

The async endpoint immediately accepts the payload and returns a `job_id`. The job is processed in the background. You can poll the status at `/v1/enrich/jobs/:id`.

> \[!NOTE]
> **Processing Interval**: In production, queued jobs are processed via a Cloudflare Cron scheduler that triggers every 5 minutes. When polling for results, make sure your client polling timeout is configured to at least 5-6 minutes to account for the cron cycle.

Our client SDKs include built-in exponential backoff polling for this endpoint:

```javascript theme={null}
// Example using our Node SDK (override default 2-minute timeout)
const result = await client.pollJob(jobId, { maxWaitMs: 360000 });
```
