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

# Parse

> POST /v1/blobs/{blob_id}/parse — extract text/tables (sync or async).

## Sync parse

```bash theme={null}
POST /v1/blobs/{blob_id}/parse
Authorization: Bearer ltx_your_key
```

Default when blob size is under server `PARSE_SYNC_MAX_BYTES`. Supported types depend on stored `Content-Type` (PDF, DOCX, CSV, XLSX). Counts toward **`parse_ops`** quotas. Per-minute **parse rate limits** by tier (**429** `PARSE_RATE_LIMIT`).

## Async parse

```bash theme={null}
POST /v1/blobs/{blob_id}/parse?async=true
Authorization: Bearer ltx_your_key
Content-Type: application/json

{"callback_url": "https://…"}
```

**202** queued when async is enabled and the host has QStash configured. Optional **`callback_url`**: HTTPS with publicly resolvable host (validated server-side). Body optional for sync.

## Poll status

```bash theme={null}
GET /v1/blobs/{blob_id}/parse/{parse_id}
Authorization: Bearer ltx_your_key
```

Returns status, structured `result` when complete, or error message on failure.

## Callback delivery audit

```bash theme={null}
GET /v1/blobs/{blob_id}/parse/{parse_id}/deliveries
Authorization: Bearer ltx_your_key
```

Lists persisted HTTP attempts for the async parse callback (newest first): `attempt_number`, `status` (`success` / `failed`), `http_status`, `last_error`, `created_at`. Same **404** / `BLOB_NOT_FOUND` rules as poll when the parse is not yours.

## Replay callback (optional)

```bash theme={null}
POST /v1/blobs/{blob_id}/parse/{parse_id}/replay
Authorization: Bearer ltx_your_key
```

Re-sends the successful-parse callback (same JSON + HMAC as the worker). Requires parse **complete**, HTTPS `callback_url`, and `result` present. **403** `CALLBACK_REPLAY_DISABLED` when the host has not enabled replay; **422** if preconditions fail; **429** `CALLBACK_REPLAY_RATE_LIMIT` (per-minute cap).

## Errors

Common codes: `PARSE_TOO_LARGE_SYNC`, `PARSE_UNSUPPORTED_TYPE`, `PARSE_QUOTA_EXCEEDED`, `PARSE_RATE_LIMIT`, `PARSE_ASYNC_DISABLED`, `BLOB_NOT_FOUND`, `CALLBACK_REPLAY_DISABLED`, `CALLBACK_REPLAY_RATE_LIMIT`, `PARSE_NOT_COMPLETE`, `PARSE_CALLBACK_URL_MISSING`, `PARSE_RESULT_MISSING`.

## MCP

* `GET https://lithtrix.ai/mcp/lithtrix-blob-parse.json`
* `GET https://lithtrix.ai/mcp/lithtrix-blob-parse-status.json`
