---
title: "GET /orders/chunks/preview/{previewId} — Preview Page"
url: https://lumean.app/es/developers/docs/api/get-orders-chunks-preview-preview-id
locale: es
description: "Preview Page"
generated: 2026-10-17
operationId: order.getPreviewPage
method: GET
path: "/orders/chunks/preview/{previewId}"
scopes: [orders.read]
spec_version: 0.0.1
---

# GET /orders/chunks/preview/{previewId}

**Preview Page**

A page of chunks from an already computed preview, straight from the cache (no
recomputation) — pagination by `preview_id`, obtained from `POST`/`GET
/orders/chunks/preview`.

- **200** `status=ready` — a page of chunks + pagination meta. A page out of range
  returns an empty `chunks[]` with `has_more=false`.
- **202** `status=processing` — the calculation is still running.
- **404** — the preview was not found, expired (TTL ~30 min) or the calculation
  failed — resubmit via `POST /orders/chunks/preview`.

**Required key permission:** `orders.read`.

- Permiso requerido: `orders.read`

## Petición

```bash
curl -X GET 'https://api.lumean.app/api/public/orders/chunks/preview/{previewId}' \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: YOUR_API_KEY'
```

## Parámetros

| Campo | En | Tipo | Oblig. | Descripción |
| --- | --- | --- | --- | --- |
| `previewId` | path | `string` | obligatorio | Preview id — a sha256 hash (64 lowercase characters, NO dashes), not a UUID. Take it from the `preview_id` field of a `POST`/`GET /orders/chunks/preview` response. Someone else's `preview_id` returns `404` — the cache is isolated per key owner. default: `a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2` |
| `page` | query | `integer` — ≥ 1 | — | Page number, starting at `1`. |
| `per_page` | query | `integer` — 1..500 | — | How many records to return per page. Pagination metadata sits next to `items`: `current_page`, `last_page`, `per_page`, `total`. |

## Cuerpo de la petición

Sin cuerpo.

## Respuestas

### 200 — Success. The payload is in `data`.

**Campos de la respuesta**

| Campo | Tipo | Oblig. | Descripción |
| --- | --- | --- | --- |
| `success` | `boolean` | obligatorio | Success flag. Branch on the HTTP status code instead: any 2xx response carries `true` here, while an error comes back in a different shape that need not contain this field at all. |
| `message` | `string` | obligatorio | A human-readable note in the account language. Fine to show to a user; do not parse it — the wording changes without notice and is not an error code. |
| `data` | `object` | obligatorio | The response payload. |
| `data.status` | `string` | obligatorio | Always `ready` for a 200 response — the calculation is done. |
| `data.preview_id` | `string` | obligatorio | A content-based preview id (sha256 of text+template+mode+algorithm version). Use it for incremental re-preview (`previous_preview_id`) and for pagination (`GET .../{previewId}`). |
| `data.summary` | `string` | obligatorio | Totals for the whole text — not just the current page of chunks. |
| `data.chunks` | `array<any>` | obligatorio | Only the CURRENT page (see `data.page`), not the full list — use pagination (`GET .../{previewId}?page=`) for the rest. |
| `data.page` | `string` | obligatorio | Pagination meta for the CURRENT page of `data.chunks`. |

**Ejemplo**

```json
{
  "success": true,
  "message": "string",
  "data": {
    "status": "string",
    "preview_id": "string",
    "summary": "string",
    "chunks": [
      "string"
    ],
    "page": "string"
  }
}
```

### 202 — Accepted for processing. The result arrives asynchronously.

**Campos de la respuesta**

| Campo | Tipo | Oblig. | Descripción |
| --- | --- | --- | --- |
| `success` | `boolean` | obligatorio | Success flag. Branch on the HTTP status code instead: any 2xx response carries `true` here, while an error comes back in a different shape that need not contain this field at all. |
| `message` | `string` | obligatorio | A human-readable note in the account language. Fine to show to a user; do not parse it — the wording changes without notice and is not an error code. |
| `data` | `object` | obligatorio | The response payload. |
| `data.status` | `string` | obligatorio | Always `processing` for a 202 response — the calculation is running in the background. |
| `data.preview_id` | `string` | obligatorio | The preview id. Use it to subscribe to the `private-chunks.preview.{userId}` WS channel (the `.ready` event), or to poll `GET /orders/chunks/preview/{previewId}` manually. |
| `data.summary` | `string` | obligatorio | Totals for the whole text — not just the current page of chunks. |
| `data.chunks` | `array<any>` | obligatorio | Only the CURRENT page (see `data.page`), not the full list — use pagination (`GET .../{previewId}?page=`) for the rest. |
| `data.page` | `string` | obligatorio | Pagination meta for the CURRENT page of `data.chunks`. |

**Ejemplo**

```json
{
  "success": true,
  "message": "string",
  "data": {
    "status": "string",
    "preview_id": "string",
    "summary": "string",
    "chunks": [
      "string"
    ],
    "page": "string"
  }
}
```

### 401 — The key is missing, unknown, disabled or expired.

**Campos de la respuesta**

| Campo | Tipo | Oblig. | Descripción |
| --- | --- | --- | --- |
| `success` | `boolean` | obligatorio | Always `false` in error responses. |
| `message` | `string` | obligatorio | Error text in the key's language (set through the `X-Locale` header). |
| `data` | `null` — nullable | obligatorio | Always `null` when the request is rejected before processing. |

**Ejemplo**

```json
{
  "success": false,
  "message": "API key is missing. Provide it in the X-API-KEY header.",
  "data": null
}
```

### 403 — The key lacks the required permission, or the object belongs to another user.

**Campos de la respuesta**

| Campo | Tipo | Oblig. | Descripción |
| --- | --- | --- | --- |
| `success` | `boolean` | obligatorio | Always `false` in error responses. |
| `message` | `string` | obligatorio | Error text in the key's language (set through the `X-Locale` header). |

**Ejemplo**

```json
{
  "success": false,
  "message": "This API key does not have permission to perform this action."
}
```

### 404 — Not found, or not reachable with this key.

**Campos de la respuesta**

| Campo | Tipo | Oblig. | Descripción |
| --- | --- | --- | --- |
| `success` | `boolean` | obligatorio | Always `false` in error responses. |
| `message` | `null \| array<any> \| string \| object` — nullable | obligatorio | The reason for the rejection in words, in the account language. Meant for display; do not branch on it, the wording changes. |
| `errors` | `null` — nullable | obligatorio | A per-field breakdown — present only on validation errors (`422`): the key names a request field, the value lists the complaints about it. Other codes send `null`, since there is nothing to break down and the whole reason is in `message`. |

**Ejemplo**

```json
{
  "success": false,
  "message": "Resource not found."
}
```

### 422 — Validation error. Offending fields are listed in `errors`.

**Campos de la respuesta**

| Campo | Tipo | Oblig. | Descripción |
| --- | --- | --- | --- |
| `message` | `string` | obligatorio | Errors overview. |
| `errors` | `object` | obligatorio | A detailed description of each field that failed validation. |
| `errors.*` | `array<string>` — claves arbitrarias | — |  |

**Ejemplo**

```json
{
  "message": "string",
  "errors": {}
}
```

### 429 — Limit exceeded: either the key's request rate or its token quota. Retry no earlier than `Retry-After`.

**Campos de la respuesta**

| Campo | Tipo | Oblig. | Descripción |
| --- | --- | --- | --- |
| `success` | `boolean` | obligatorio | Always `false` in error responses. |
| `message` | `string` | obligatorio | Error text in the key's language (set through the `X-Locale` header). |
| `reason` | `string` | obligatorio | Machine-readable failure reason — branch on this, not on the message text. |
| `error_code` | `string` | obligatorio | The same machine-readable code as in `reason` — a second name for the field. The values always match; branch on either. |
| `retry_after` | `integer` — nullable | — | How many seconds to wait before retrying (the same value is in the `Retry-After` header). |

**Ejemplo**

```json
{
  "success": false,
  "message": "Too many attempts. Please wait a moment and try again.",
  "reason": "rate_limit_exceeded",
  "error_code": "rate_limit_exceeded",
  "retry_after": 30
}
```

---

- Esta página en el navegador: https://lumean.app/es/developers/docs/api/get-orders-chunks-preview-preview-id
- Referencia completa legible por máquina: https://api.lumean.app/docs/llm.md
