Skip to content
Lumean API

Descriptions are in English

The section interface is translated into your language, but descriptions of operations, schemas and errors exist only in Russian and English — the English version is shown here.
GET/orders/chunks/preview

Preview Lookup

Preflight: is a split for this text already cached — without sending the text itself. Send text_hash (sha256 of the raw input_text, lowercase hex) + template_id (+ generation_mode and config_override, if used) — the server rebuilds the same preview_id and checks the cache.

Spec fixes · 1

  • Chunk preview is available with an API key

    The machine-readable llm.md §12 claims chunk preview is a web-cabinet endpoint that returns 401 for API keys. That is wrong: all three preview operations are part of the public surface and require the orders.read scope — as described by both the OpenAPI document and §7.1 of the very same llm.md. If an AI assistant cites §12, it is mistaken.

  • 200 status=ready — already computed, no need to send the text.
  • 202 status=processing — the calculation for this text is still running.
  • 404 — nothing cached → send the full text via POST /orders/chunks/preview.

Required key permission: orders.read.

On this page(4)

Parameters

The inputs live inside the request line: fill in a value and you get a ready URL. Below are the type, whether it is required and the allowed values of every parameter.

GEThttps://api.lumean.app/api/public/orders/chunks/preview
  • stringin queryrequireduuid

    Template UUID — the same one that was sent to POST /orders/chunks/preview for the calculation. Part of the preview_id identity.

  • stringin queryrequiredpatrón: ^[a-f0-9]{64}$

    sha256 of the RAW input_text (lowercase hex, 64 characters) — compute it yourself; the server normalizes the text on its own side and does not fold that into the hash. Together with template_id and generation_mode it determines preview_id: the same triple yields the same response, without sending the text itself.

  • stringin queryoptional

    Generation mode, if one was used for the calculation (paragraph — paragraph-based split). Must match what was sent to POST — the mode is part of the preview_id identity.

    Allowed values
  • array<string>in queryoptional

    The config_override the preview was computed with in POST (if any). Settings that affect the split are part of the preview_id identity, the rest are not. Send it as a JSON string (config_override={"tts_settings":{"mode":"mode_v1"}}, URL-encoded) or as nested keys (config_override[tts_settings][mode]=mode_v1).

Possible responses

200

Success. The payload is in data.

Body example
{
  "success": true,
  "message": "string",
  "data": {
    "status": "string",
    "preview_id": "string",
    "summary": "string",
    "chunks": [
      "string"
    ],
    "page": "string"
  }
}
Response fields
successrequired

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.

boolean
messagerequired

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.

string
datarequired

The response payload.

object
statusrequired

Always ready for a 200 response — the calculation is done.

string
preview_idrequired

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}).

string
summaryrequired

Totals for the whole text — not just the current page of chunks.

string
chunksrequired

Only the CURRENT page (see data.page), not the full list — use pagination (GET .../{previewId}?page=) for the rest.

array<any>
pagerequired

Pagination meta for the CURRENT page of data.chunks.

string
202

Accepted for processing. The result arrives asynchronously.

Body example
{
  "success": true,
  "message": "string",
  "data": {
    "status": "string",
    "preview_id": "string",
    "summary": "string",
    "chunks": [
      "string"
    ],
    "page": "string"
  }
}
Response fields
successrequired

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.

boolean
messagerequired

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.

string
datarequired

The response payload.

object
statusrequired

Always processing for a 202 response — the calculation is running in the background.

string
preview_idrequired

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.

string
summaryrequired

Totals for the whole text — not just the current page of chunks.

string
chunksrequired

Only the CURRENT page (see data.page), not the full list — use pagination (GET .../{previewId}?page=) for the rest.

array<any>
pagerequired

Pagination meta for the CURRENT page of data.chunks.

string
401

The key is missing, unknown, disabled or expired.

Analyse this response
Body example
{
  "success": false,
  "message": "API key is missing. Provide it in the X-API-KEY header.",
  "data": null
}
Response fields
successrequired

Always false in error responses.

boolean
messagerequired

Error text in the key's language (set through the X-Locale header).

string
datarequired

Always null when the request is rejected before processing.

nullable
null
403

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

Analyse this response
Body example
{
  "success": false,
  "message": "This API key does not have permission to perform this action."
}
Response fields
successrequired

Always false in error responses.

boolean
messagerequired

Error text in the key's language (set through the X-Locale header).

string
404

Not found, or not reachable with this key.

Analyse this response
Body example
{
  "success": false,
  "message": "Resource not found."
}
Response fields
successrequired

Always false in error responses.

boolean
messagerequired

The reason for the rejection in words, in the account language. Meant for display; do not branch on it, the wording changes.

nullable
null | array<any> | string | object
errorsrequired

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.

nullable
null
422

Validation error. Offending fields are listed in errors.

Analyse this response
Body example
{
  "message": "string",
  "errors": {
    "key": [
      "string"
    ]
  }
}
Response fields
messagerequired

Errors overview.

string
errorsrequired

A detailed description of each field that failed validation.

object
*optional
claves arbitrarias
array<string>
429

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

Analyse this response
Body example
{
  "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
}
Response fields
successrequired

Always false in error responses.

boolean
messagerequired

Error text in the key's language (set through the X-Locale header).

string
reasonrequired

Machine-readable failure reason — branch on this, not on the message text.

string
error_coderequired

The same machine-readable code as in reason — a second name for the field. The values always match; branch on either.

string
retry_afteroptional

How many seconds to wait before retrying (the same value is in the Retry-After header).

nullable
integer

Events this produces

Progress arrives over WebSocket: polling the order in a loop is not required. Subscribing needs the same scope as reading orders.

Feed this page to an AI

Open .mdllm.md

spec 0.0.1