5883565b87
- New endpoints: /api/v1/convert, /api/v1/extract, /api/v1/segment, /api/v1/ocr, /api/v1/table_rec, /api/v1/marker (deprecated), /api/v1/create-document, /api/v1/files/*, /api/v1/thumbnails - Async submit-and-poll pattern matching Datalab API spec - X-API-Key authentication via API_KEY env var - Filesystem-based request store for multi-worker support - OCR_BACKEND=deepseek mode: uses deepseek-ocr via ollama for OCR (prompt: <|grounding|>Free OCR.) - build_options() now propagates output_format to parsed_opts - Fixed docs page CSS curly brace conflict with .format() - Renamed marker_endpoint_referece.md -> marker_endpoint_reference.md - Containerfile: added poppler-utils, pandoc; 3 gunicorn workers - gunicorn.conf: post_fork hook for background worker threads
2249 lines
74 KiB
Markdown
2249 lines
74 KiB
Markdown
2. Datalab Marker (PDF to Markdown) [[1](https://modal.com/docs/examples/doc_ocr_jobs)]
|
|
|
|
The [Datalab Marker API](https://www.google.com/url?sa=i&source=web&rct=j&url=https://documentation.datalab.to/api-reference/%5Bdeprecated%5D-marker&ved=2ahUKEwiTmpHLlPeUAxUc5AIHHVeCDaMQy_kOegoIAggACAAIDxAC&opi=89978449&cd&psig=AOvVaw3JMHBkAiwdgyypdQssD6Zb&ust=1780991525629000) is used for converting documents like PDFs into structured Markdown. Key endpoints include: [[1](https://github.com/adithya-s-k/marker-api), [2](https://documentation.datalab.to/api-reference/[deprecated]-marker)]
|
|
|
|
- **POST /convert-document**: High-level endpoint to convert files to Markdown.
|
|
- **POST /extract-structured-data**: Extracts specific fields from documents using JSON schemas.
|
|
- **GET /convert-result-check**: Polls for the status of a conversion task.
|
|
- **POST /marker**: (Now deprecated in favor of specific document conversion endpoints). [[1](https://documentation.datalab.to/docs/recipes/structured-extraction/api-overview), [2](https://developer.adobe.com/firefly-services/docs/indesign-apis/api/), [3](https://blog.postman.com/what-is-an-api-endpoint/)]
|
|
|
|
A datalab marker-api client
|
|
https://github.com/datalab-to/sdk.git
|
|
|
|
|
|
---
|
|
|
|
# Documentation
|
|
|
|
|
|
|
|
> ## Documentation Index
|
|
> Fetch the complete documentation index at: https://documentation.datalab.to/llms.txt
|
|
> Use this file to discover all available pages before exploring further.
|
|
|
|
# API Overview
|
|
|
|
> REST API reference for document conversion, form filling, and file management.
|
|
|
|
Datalab provides REST APIs for document conversion, structured extraction, form filling, and file management. All APIs use the same authentication and follow similar patterns.
|
|
|
|
<Note>
|
|
For the simplest integration, use the [Python SDK](/docs/welcome/sdk). The SDK handles authentication, polling, and provides typed responses.
|
|
</Note>
|
|
|
|
## Authentication
|
|
|
|
All requests require an API key in the `X-API-Key` header:
|
|
|
|
```bash theme={null}
|
|
curl -X POST https://www.datalab.to/api/v1/convert \
|
|
-H "X-API-Key: YOUR_API_KEY" \
|
|
-F "file=@document.pdf"
|
|
```
|
|
|
|
Get your API key from the [API Keys dashboard](https://www.datalab.to/app/keys).
|
|
|
|
## Request Pattern
|
|
|
|
All processing endpoints follow this pattern:
|
|
|
|
1. **Submit** a document for processing (returns immediately with a `request_id`)
|
|
2. **Poll** the status endpoint until processing completes
|
|
3. **Retrieve** results from the completed response
|
|
|
|
### Submit Request
|
|
|
|
```bash theme={null}
|
|
POST /api/v1/{endpoint}
|
|
```
|
|
|
|
Response:
|
|
|
|
```json theme={null}
|
|
{
|
|
"success": true,
|
|
"request_id": "abc123",
|
|
"request_check_url": "https://www.datalab.to/api/v1/{endpoint}/abc123"
|
|
}
|
|
```
|
|
|
|
### Poll for Results
|
|
|
|
```bash theme={null}
|
|
GET /api/v1/{endpoint}/{request_id}
|
|
```
|
|
|
|
Response while processing:
|
|
|
|
```json theme={null}
|
|
{
|
|
"status": "processing"
|
|
}
|
|
```
|
|
|
|
Response when complete:
|
|
|
|
```json theme={null}
|
|
{
|
|
"status": "complete",
|
|
"success": true,
|
|
...results...
|
|
}
|
|
```
|
|
|
|
<Warning>
|
|
Results are deleted from Datalab servers one hour after processing completes. Retrieve your results promptly.
|
|
</Warning>
|
|
|
|
## Document Conversion
|
|
|
|
Convert documents to Markdown, HTML, JSON, or chunks.
|
|
|
|
**Endpoint:** `POST /api/v1/convert`
|
|
|
|
### Request
|
|
|
|
```python theme={null}
|
|
import requests
|
|
|
|
url = "https://www.datalab.to/api/v1/convert"
|
|
headers = {"X-API-Key": "YOUR_API_KEY"}
|
|
|
|
with open("document.pdf", "rb") as f:
|
|
response = requests.post(
|
|
url,
|
|
files={"file": ("document.pdf", f, "application/pdf")},
|
|
data={
|
|
"output_format": "markdown",
|
|
"mode": "balanced",
|
|
},
|
|
headers=headers
|
|
)
|
|
|
|
data = response.json()
|
|
check_url = data["request_check_url"]
|
|
```
|
|
|
|
### Parameters
|
|
|
|
| Parameter | Type | Default | Description |
|
|
| ---------------------------- | ------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------ |
|
|
| `file` | file | - | Document file (multipart upload) |
|
|
| `file_url` | string | - | URL to document (alternative to file upload) |
|
|
| `output_format` | string | `markdown` | Output format: `markdown`, `html`, `json`, `chunks` |
|
|
| `mode` | string | `fast` | Processing mode: `fast`, `balanced`, `accurate` |
|
|
| `max_pages` | int | - | Maximum pages to process |
|
|
| `page_range` | string | - | Specific pages (e.g., `"0-5,10"`, 0-indexed). For spreadsheets, filters by sheet index. |
|
|
| `paginate` | bool | `false` | Add page delimiters to output |
|
|
| `skip_cache` | bool | `false` | Skip cached results |
|
|
| `disable_image_extraction` | bool | `false` | Don't extract images |
|
|
| `disable_image_captions` | bool | `false` | Don't generate image captions |
|
|
| `save_checkpoint` | bool | `false` | Save checkpoint for reuse |
|
|
| `extras` | string | - | Comma-separated: `track_changes`, `chart_understanding`, `extract_links`, `table_row_bboxes`, `infographic`, `new_block_types` |
|
|
| `add_block_ids` | bool | `false` | Add block IDs to HTML for citations |
|
|
| `include_markdown_in_chunks` | bool | `false` | Include markdown content in chunks output |
|
|
| `token_efficient_markdown` | bool | `false` | Optimize markdown for LLM token efficiency |
|
|
| `fence_synthetic_captions` | bool | `false` | Wrap synthetic image captions in HTML comments |
|
|
| `additional_config` | string | - | JSON with extra config options |
|
|
| `webhook_url` | string | - | Override webhook URL for this request |
|
|
|
|
### Processing Modes
|
|
|
|
| Mode | Description |
|
|
| ---------- | --------------------------------------------------- |
|
|
| `fast` | Lowest latency, good for simple documents (default) |
|
|
| `balanced` | Balance of speed and accuracy |
|
|
| `accurate` | Highest accuracy, best for complex layouts |
|
|
|
|
### Response
|
|
|
|
Poll `request_check_url` until `status` is `complete`:
|
|
|
|
```python theme={null}
|
|
import time
|
|
|
|
while True:
|
|
response = requests.get(check_url, headers=headers)
|
|
result = response.json()
|
|
|
|
if result["status"] == "complete":
|
|
break
|
|
time.sleep(2)
|
|
|
|
print(result["markdown"])
|
|
```
|
|
|
|
Response fields:
|
|
|
|
| Field | Type | Description |
|
|
| --------------------- | ------ | ---------------------------------------- |
|
|
| `status` | string | `processing`, `complete`, or `failed` |
|
|
| `success` | bool | Whether conversion succeeded |
|
|
| `markdown` | string | Markdown output (if format is markdown) |
|
|
| `html` | string | HTML output (if format is html) |
|
|
| `json` | object | JSON output (if format is json) |
|
|
| `chunks` | object | Chunked output (if format is chunks) |
|
|
| `images` | object | Extracted images as `{filename: base64}` |
|
|
| `metadata` | object | Document metadata |
|
|
| `page_count` | int | Number of pages processed |
|
|
| `parse_quality_score` | float | Quality score (0-5) |
|
|
| `cost_breakdown` | object | Cost in cents |
|
|
| `error` | string | Error message if failed |
|
|
|
|
<Note>
|
|
For structured data extraction, see the [Extract endpoint](#structured-extraction). For document segmentation, see the [Segment endpoint](#document-segmentation).
|
|
</Note>
|
|
|
|
## Structured Extraction
|
|
|
|
Extract structured data from documents using a JSON schema.
|
|
|
|
**Endpoint:** `POST /api/v1/extract`
|
|
|
|
### Request
|
|
|
|
```python theme={null}
|
|
import requests
|
|
import json
|
|
|
|
headers = {"X-API-Key": "YOUR_API_KEY"}
|
|
|
|
schema = {
|
|
"invoice_number": {"type": "string", "description": "Invoice ID"},
|
|
"total": {"type": "number", "description": "Total amount"},
|
|
"line_items": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"description": {"type": "string"},
|
|
"amount": {"type": "number"}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
response = requests.post(
|
|
"https://www.datalab.to/api/v1/extract",
|
|
files={"file": ("invoice.pdf", open("invoice.pdf", "rb"), "application/pdf")},
|
|
data={
|
|
"page_schema": json.dumps(schema),
|
|
"mode": "balanced"
|
|
},
|
|
headers=headers
|
|
)
|
|
|
|
data = response.json()
|
|
check_url = data["request_check_url"]
|
|
```
|
|
|
|
### Parameters
|
|
|
|
| Parameter | Type | Default | Description |
|
|
| ----------------- | ------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
| `file` | file | - | Document file (multipart upload) |
|
|
| `file_url` | string | - | URL to document (alternative to file upload) |
|
|
| `page_schema` | string | - | JSON schema defining the data to extract. Required unless `schema_id` is provided. |
|
|
| `schema_id` | string | - | ID of a [saved extraction schema](/docs/recipes/structured-extraction/saved-schemas) (e.g. `sch_k8Hx9mP2nQ4v`). Mutually exclusive with `page_schema`. |
|
|
| `schema_version` | int | - | Version of the saved schema to use. Only valid with `schema_id`; defaults to the latest version. |
|
|
| `checkpoint_id` | string | - | Checkpoint ID from a previous `/convert` call (with `save_checkpoint=true`). Skips re-parsing. |
|
|
| `mode` | string | `fast` | Processing mode: `fast`, `balanced`, `accurate` |
|
|
| `output_format` | string | `markdown` | Output format: `markdown`, `html`, `json`, `chunks` |
|
|
| `max_pages` | int | - | Maximum pages to process |
|
|
| `page_range` | string | - | Specific pages (e.g., `"0-5,10"`, 0-indexed). For spreadsheets, filters by sheet index. |
|
|
| `save_checkpoint` | bool | `false` | Save a checkpoint after processing for reuse with subsequent calls |
|
|
| `webhook_url` | string | - | Override webhook URL for this request |
|
|
|
|
The extracted data is returned in `extraction_schema_json` in the poll response.
|
|
|
|
See [Structured Extraction](/docs/recipes/structured-extraction/api-overview) for detailed examples.
|
|
|
|
## Document Segmentation
|
|
|
|
Segment documents into structured sections using a JSON schema.
|
|
|
|
**Endpoint:** `POST /api/v1/segment`
|
|
|
|
### Parameters
|
|
|
|
| Parameter | Type | Default | Description |
|
|
| --------------------- | ------ | ------------ | ---------------------------------------------------------------------------------------------- |
|
|
| `file` | file | - | Document file (multipart upload) |
|
|
| `file_url` | string | - | URL to document (alternative to file upload) |
|
|
| `segmentation_schema` | string | **required** | JSON schema defining the segments to extract |
|
|
| `checkpoint_id` | string | - | Checkpoint ID from a previous `/convert` call (with `save_checkpoint=true`). Skips re-parsing. |
|
|
| `mode` | string | `fast` | Processing mode: `fast`, `balanced`, `accurate` |
|
|
|
|
See [Document Segmentation](/docs/recipes/document-segmentation/auto-segmentation) for detailed examples.
|
|
|
|
## Track Changes
|
|
|
|
Extract tracked changes (insertions and deletions) from DOCX files.
|
|
|
|
**Endpoint:** `POST /api/v1/track-changes`
|
|
|
|
```python theme={null}
|
|
response = requests.post(
|
|
"https://www.datalab.to/api/v1/track-changes",
|
|
files={"file": ("document.docx", open("document.docx", "rb"), "application/vnd.openxmlformats-officedocument.wordprocessingml.document")},
|
|
headers=headers
|
|
)
|
|
```
|
|
|
|
See [Track Changes](/docs/recipes/extract-redlines-and-comments/track-changes-from-word-documents) for detailed examples.
|
|
|
|
## Custom Processor
|
|
|
|
<Note>This feature is currently in beta. The API may change.</Note>
|
|
|
|
Execute custom AI-powered processors on documents.
|
|
|
|
**Endpoint:** `POST /api/v1/custom-processor`
|
|
|
|
<Warning>
|
|
`POST /api/v1/custom-pipeline` is deprecated (sunset: September 30, 2026). Migrate to `POST /api/v1/custom-processor`.
|
|
</Warning>
|
|
|
|
### Parameters
|
|
|
|
| Parameter | Type | Default | Description |
|
|
| --------------- | ------ | ------------ | --------------------------------------------------- |
|
|
| `file` | file | - | Document file (multipart upload) |
|
|
| `file_url` | string | - | URL to document |
|
|
| `pipeline_id` | string | **required** | Custom processor ID (`cp_XXXXX`) |
|
|
| `version` | int | - | Processor version to run (default: active version) |
|
|
| `run_eval` | bool | `false` | Run evaluation rules defined for the processor |
|
|
| `mode` | string | `fast` | Processing mode: `fast`, `balanced`, `accurate` |
|
|
| `output_format` | string | `markdown` | Output format: `markdown`, `html`, `json`, `chunks` |
|
|
| `webhook_url` | string | - | URL to POST when complete |
|
|
|
|
## Form Filling
|
|
|
|
Fill forms in PDFs and images.
|
|
|
|
**Endpoint:** `POST /api/v1/fill`
|
|
|
|
### Request
|
|
|
|
```python theme={null}
|
|
import json
|
|
|
|
field_data = {
|
|
"full_name": {"value": "John Doe", "description": "Full legal name"},
|
|
"date": {"value": "2024-01-15", "description": "Today's date"},
|
|
"signature": {"value": "John Doe", "description": "Signature field"}
|
|
}
|
|
|
|
response = requests.post(
|
|
"https://www.datalab.to/api/v1/fill",
|
|
files={"file": ("form.pdf", open("form.pdf", "rb"), "application/pdf")},
|
|
data={
|
|
"field_data": json.dumps(field_data),
|
|
"confidence_threshold": "0.5"
|
|
},
|
|
headers=headers
|
|
)
|
|
```
|
|
|
|
### Parameters
|
|
|
|
| Parameter | Type | Default | Description |
|
|
| ---------------------- | ------ | ------- | ------------------------------------- |
|
|
| `file` | file | - | Form file (PDF or image) |
|
|
| `file_url` | string | - | URL to form |
|
|
| `field_data` | string | - | JSON mapping field names to values |
|
|
| `context` | string | - | Additional context for field matching |
|
|
| `confidence_threshold` | float | `0.5` | Minimum confidence for matching (0-1) |
|
|
| `page_range` | string | - | Specific pages to process |
|
|
| `skip_cache` | bool | `false` | Skip cached results |
|
|
|
|
### Field Data Format
|
|
|
|
```json theme={null}
|
|
{
|
|
"field_key": {
|
|
"value": "The value to fill",
|
|
"description": "Description to help match the field"
|
|
}
|
|
}
|
|
```
|
|
|
|
### Response
|
|
|
|
| Field | Type | Description |
|
|
| ------------------ | ------ | ------------------------------- |
|
|
| `status` | string | Processing status |
|
|
| `success` | bool | Whether filling succeeded |
|
|
| `output_format` | string | `pdf` or `png` |
|
|
| `output_base64` | string | Base64-encoded filled form |
|
|
| `fields_filled` | array | Successfully filled field names |
|
|
| `fields_not_found` | array | Unmatched field names |
|
|
| `page_count` | int | Pages processed |
|
|
| `cost_breakdown` | object | Cost details |
|
|
|
|
See [Form Filling](/docs/recipes/form-filling/form-filling-api-overview) for more examples.
|
|
|
|
## File Management
|
|
|
|
Upload and manage files for use in pipelines.
|
|
|
|
### Upload File
|
|
|
|
**Step 1:** Request an upload URL
|
|
|
|
```bash theme={null}
|
|
POST /api/v1/files/upload
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"filename": "document.pdf",
|
|
"content_type": "application/pdf"
|
|
}
|
|
```
|
|
|
|
Response:
|
|
|
|
```json theme={null}
|
|
{
|
|
"file_id": 123,
|
|
"upload_url": "https://...",
|
|
"reference": "datalab://file-abc123"
|
|
}
|
|
```
|
|
|
|
**Step 2:** Upload directly to the presigned URL
|
|
|
|
```bash theme={null}
|
|
PUT {upload_url}
|
|
Content-Type: application/pdf
|
|
|
|
<file contents>
|
|
```
|
|
|
|
**Step 3:** Confirm upload
|
|
|
|
```bash theme={null}
|
|
GET /api/v1/files/{file_id}/confirm
|
|
```
|
|
|
|
### List Files
|
|
|
|
```bash theme={null}
|
|
GET /api/v1/files?limit=50&offset=0
|
|
```
|
|
|
|
### Get File Metadata
|
|
|
|
```bash theme={null}
|
|
GET /api/v1/files/{file_id}
|
|
```
|
|
|
|
### Get Download URL
|
|
|
|
```bash theme={null}
|
|
GET /api/v1/files/{file_id}/download?expires_in=3600
|
|
```
|
|
|
|
### Delete File
|
|
|
|
```bash theme={null}
|
|
DELETE /api/v1/files/{file_id}
|
|
```
|
|
|
|
See [File Management](/docs/recipes/file-management/file-upload-api) for detailed examples.
|
|
|
|
## Thumbnails
|
|
|
|
Generate page thumbnails from a previously processed document:
|
|
|
|
```bash theme={null}
|
|
GET /api/v1/thumbnails/{lookup_key}?thumb_width=300&page_range=0-2
|
|
```
|
|
|
|
| Parameter | Type | Default | Description |
|
|
| ------------- | ------ | --------- | ----------------------------------------- |
|
|
| `lookup_key` | string | Required | The request ID from a previous conversion |
|
|
| `thumb_width` | int | 300 | Thumbnail width in pixels |
|
|
| `page_range` | string | All pages | Pages to generate (e.g., `"0,2-4"`) |
|
|
|
|
Response:
|
|
|
|
```json theme={null}
|
|
{
|
|
"success": true,
|
|
"thumbnails": ["base64_encoded_jpg_1", "base64_encoded_jpg_2"]
|
|
}
|
|
```
|
|
|
|
Thumbnails are returned as base64-encoded JPG images.
|
|
|
|
## Create Document
|
|
|
|
Generate DOCX files from markdown with track changes support:
|
|
|
|
```bash theme={null}
|
|
POST /api/v1/create-document
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"markdown": "# Title\n\nThis is <ins data-revision-author=\"Editor\">newly added</ins> text.",
|
|
"output_format": "docx"
|
|
}
|
|
```
|
|
|
|
See [Create Document](/docs/recipes/create-document/create-document-api-overview) for detailed examples.
|
|
|
|
## Webhooks
|
|
|
|
Configure webhooks to receive notifications when processing completes instead of polling.
|
|
|
|
Set a default webhook URL in your [account settings](https://www.datalab.to/settings), or override per-request with the `webhook_url` parameter.
|
|
|
|
See [Webhooks](/platform/webhooks) for configuration details.
|
|
|
|
## Rate Limits
|
|
|
|
Default rate limits apply per API key. If you exceed limits, you'll receive a `429` response.
|
|
|
|
See [Rate Limits](/docs/common/limits) for details and how to request higher limits.
|
|
|
|
## Next Steps
|
|
|
|
<CardGroup cols={2}>
|
|
<Card title="SDK Reference" icon="code" href="/docs/welcome/sdk">
|
|
Use the Python SDK for a simpler integration with typed responses.
|
|
</Card>
|
|
|
|
<Card title="Webhooks" icon="bell" href="/platform/webhooks">
|
|
Receive notifications when processing completes instead of polling.
|
|
</Card>
|
|
|
|
<Card title="API Limits" icon="gauge" href="/docs/common/limits">
|
|
Understand file size limits, page limits, and rate limiting.
|
|
</Card>
|
|
|
|
<Card title="Document Conversion" icon="file-lines" href="/docs/recipes/conversion/conversion-api-overview">
|
|
Detailed guide to converting documents to Markdown, HTML, or JSON.
|
|
</Card>
|
|
</CardGroup>
|
|
|
|
|
|
> ## Documentation Index
|
|
> Fetch the complete documentation index at: https://documentation.datalab.to/llms.txt
|
|
> Use this file to discover all available pages before exploring further.
|
|
|
|
# [DEPRECATED] Marker
|
|
|
|
> **DEPRECATED**: Use the new endpoints instead:
|
|
- `/convert` for document conversion
|
|
- `/extract` for structured data extraction
|
|
- `/segment` for document segmentation
|
|
- `/custom-pipeline` for custom pipeline execution
|
|
|
|
This endpoint will be removed in a future version.
|
|
|
|
|
|
|
|
## OpenAPI
|
|
|
|
````yaml https://www.datalab.to/openapi.json post /api/v1/marker
|
|
openapi: 3.1.0
|
|
info:
|
|
title: Datalab API
|
|
version: 0.0.1
|
|
servers:
|
|
- url: https://www.datalab.to
|
|
description: Datalab API
|
|
security: []
|
|
paths:
|
|
/api/v1/marker:
|
|
post:
|
|
summary: '[DEPRECATED] Marker'
|
|
description: |-
|
|
**DEPRECATED**: Use the new endpoints instead:
|
|
- `/convert` for document conversion
|
|
- `/extract` for structured data extraction
|
|
- `/segment` for document segmentation
|
|
- `/custom-pipeline` for custom pipeline execution
|
|
|
|
This endpoint will be removed in a future version.
|
|
operationId: marker_api_v1_marker_post
|
|
parameters:
|
|
- name: wos-session
|
|
in: cookie
|
|
required: false
|
|
schema:
|
|
type: string
|
|
title: Wos-Session
|
|
- name: datalab_active_team
|
|
in: cookie
|
|
required: false
|
|
schema:
|
|
type: string
|
|
title: Datalab Active Team
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
$ref: '#/components/schemas/Body_marker_api_v1_marker_post'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/InitialResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
deprecated: true
|
|
security:
|
|
- APIKeyHeader: []
|
|
components:
|
|
schemas:
|
|
Body_marker_api_v1_marker_post:
|
|
properties:
|
|
file_url:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: File Url
|
|
description: >-
|
|
Optional file URL (http/https). If provided, the server will
|
|
download and process it.
|
|
mode:
|
|
type: string
|
|
title: Mode
|
|
description: >-
|
|
Which output mode to use. Valid values: 'fast' (lowest latency,
|
|
great for real-time use cases), 'balanced' (balanced accuracy and
|
|
latency, works well with most documents), 'accurate' (highest
|
|
accuracy and latency, good on the most complex documents).
|
|
default: fast
|
|
choices:
|
|
- fast
|
|
- balanced
|
|
- accurate
|
|
max_pages:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Max Pages
|
|
description: The maximum number of pages in the PDF to convert.
|
|
page_range:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Page Range
|
|
description: >-
|
|
The page range to parse, comma separated like 0,5-10,20. This will
|
|
override max_pages if provided. Example: '0,2-4' will process pages
|
|
0, 2, 3, and 4.
|
|
langs:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Langs
|
|
description: >-
|
|
Note: This parameter has been deprecated, and will be ignored in the
|
|
current version. The languages to use if OCR is needed, comma
|
|
separated. Must be either the names or codes from
|
|
https://github.com/datalab-to/surya/blob/master/surya/languages.py.
|
|
Any other inputs will be ignored.
|
|
force_ocr:
|
|
type: boolean
|
|
title: Force Ocr
|
|
description: >-
|
|
[DEPRECATED] This parameter is deprecated and has no effect. OCR is
|
|
handled automatically by the parsing pipeline.
|
|
default: false
|
|
deprecated: true
|
|
format_lines:
|
|
type: boolean
|
|
title: Format Lines
|
|
description: >-
|
|
[DEPRECATED] This parameter is deprecated and has no effect. Line
|
|
formatting is handled automatically by the parsing pipeline.
|
|
default: false
|
|
deprecated: true
|
|
paginate:
|
|
type: boolean
|
|
title: Paginate
|
|
description: >-
|
|
Whether to paginate the output. Defaults to False. If set to True,
|
|
each page of the output will be separated by a horizontal rule that
|
|
contains the page number (2 newlines, {PAGE_NUMBER}, 48 -
|
|
characters, 2 newlines).
|
|
default: false
|
|
add_block_ids:
|
|
type: boolean
|
|
title: Add Block Ids
|
|
description: >-
|
|
Add data-block-id attributes to HTML elements for citation tracking.
|
|
Only applies when output_format includes 'html'.
|
|
default: false
|
|
include_markdown_in_chunks:
|
|
type: boolean
|
|
title: Include Markdown In Chunks
|
|
description: >-
|
|
Include markdown field in chunks and JSON output. When enabled, each
|
|
chunk will have a 'markdown' field with the markdown representation
|
|
of that block. Only applies when output_format includes 'json' or
|
|
'chunks'.
|
|
default: false
|
|
strip_existing_ocr:
|
|
type: boolean
|
|
title: Strip Existing Ocr
|
|
description: >-
|
|
[DEPRECATED] This parameter is deprecated and has no effect. OCR
|
|
handling is managed automatically by the parsing pipeline.
|
|
default: false
|
|
deprecated: true
|
|
disable_image_extraction:
|
|
type: boolean
|
|
title: Disable Image Extraction
|
|
description: >-
|
|
Disable image extraction from the PDF. If use_llm is also set, then
|
|
images will be automatically captioned. Defaults to False.
|
|
default: false
|
|
disable_image_captions:
|
|
type: boolean
|
|
title: Disable Image Captions
|
|
description: >-
|
|
Disable synthetic image captions/descriptions in output. Images will
|
|
be rendered as plain img tags without alt text or the
|
|
img-description wrapper div. Defaults to False.
|
|
default: false
|
|
fence_synthetic_captions:
|
|
type: boolean
|
|
title: Fence Synthetic Captions
|
|
description: >-
|
|
Wrap synthetic image captions in markdown with HTML comment markers
|
|
(<!-- BEGIN IMAGE CAPTION --> ... <!-- END IMAGE CAPTION -->) for
|
|
easy identification/removal. Only applies to markdown output.
|
|
default: false
|
|
disable_ocr_math:
|
|
type: boolean
|
|
title: Disable Ocr Math
|
|
description: >-
|
|
[DEPRECATED] This parameter is deprecated and has no effect. Math
|
|
recognition is handled automatically by the parsing pipeline.
|
|
default: false
|
|
deprecated: true
|
|
use_llm:
|
|
type: boolean
|
|
title: Use Llm
|
|
description: >-
|
|
[DEPRECATED] This parameter is deprecated. Use the 'mode' parameter
|
|
instead: 'balanced' or 'accurate' modes.
|
|
default: false
|
|
deprecated: true
|
|
output_format:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Output Format
|
|
description: >-
|
|
The output format for the text. Can be 'json', 'html', 'markdown',
|
|
or 'chunks'. Defaults to 'markdown'. You can comma separate
|
|
multiple formats, like `markdown,html`.
|
|
token_efficient_markdown:
|
|
type: boolean
|
|
title: Token Efficient Markdown
|
|
description: >-
|
|
When enabled, the markdown output uses token-efficient formatting
|
|
optimized for LLMs (compact tables with single-dash headers,
|
|
single-space list indents).
|
|
default: false
|
|
skip_cache:
|
|
type: boolean
|
|
title: Skip Cache
|
|
description: >-
|
|
Skip the cache and re-run the inference. Defaults to False. If set
|
|
to True, the cache will be skipped and the inference will be re-run.
|
|
default: false
|
|
save_checkpoint:
|
|
type: boolean
|
|
title: Save Checkpoint
|
|
description: >-
|
|
Save the checkpoint after processing. Defaults to False. This is
|
|
only useful if you're applying custom rules iteratively.
|
|
default: false
|
|
block_correction_prompt:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Block Correction Prompt
|
|
description: >-
|
|
[DEPRECATED] This parameter is deprecated and has no effect. Block
|
|
correction is not currently supported.
|
|
deprecated: true
|
|
page_schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Page Schema
|
|
description: >-
|
|
The schema to use for structured extraction (only used with
|
|
structured extraction endpoint). The ideal way to generate this is
|
|
to create a Pydantic schema, then convert to JSON with
|
|
.model_dump_json().
|
|
segmentation_schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Segmentation Schema
|
|
description: >-
|
|
The schema to use for document segmentation. Should be a JSON string
|
|
containing segment names and descriptions for identifying page
|
|
ranges of different document sections.
|
|
additional_config:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Additional Config
|
|
description: >-
|
|
Additional configuration options as a JSON string. Only these keys
|
|
have effect: 'keep_pageheader_in_output' (bool),
|
|
'keep_pagefooter_in_output' (bool), 'keep_spreadsheet_formatting'
|
|
(bool).
|
|
workflowstepdata_id:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Workflowstepdata Id
|
|
description: >-
|
|
Optional workflow step data ID. If provided, this request will be
|
|
associated with the specified workflow step execution.
|
|
extras:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Extras
|
|
description: >-
|
|
Comma-separated list of extra features to enable. Currently
|
|
supports: 'track_changes', 'chart_understanding',
|
|
'table_row_bboxes', 'extract_links', 'infographic',
|
|
'new_block_types'.
|
|
webhook_url:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Webhook Url
|
|
description: >-
|
|
Optional webhook URL to call when the request is complete. If
|
|
provided, this will override the webhook URL stored in your account
|
|
settings for this specific request.
|
|
processing_location:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Processing Location
|
|
description: >-
|
|
Optional residency region override (e.g. us, eu). When provided, use
|
|
file_url or direct-upload; multipart uploads are rejected. When
|
|
omitted, the request uses the team's configured residency and
|
|
profile.
|
|
pipeline_id:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Pipeline Id
|
|
description: >-
|
|
Optional custom pipeline ID. If provided, will execute the custom
|
|
pipeline configuration associated with this ID.
|
|
run_eval:
|
|
type: boolean
|
|
title: Run Eval
|
|
description: 'Internal: run evals over custom pipeline.'
|
|
default: false
|
|
model_override_settings:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Model Override Settings
|
|
word_bboxes:
|
|
type: boolean
|
|
title: Word Bboxes
|
|
description: >-
|
|
When enabled, predict per-word bounding boxes for each page and
|
|
include them under page_info[id].metadata.words. Only supported by
|
|
the Chandra parse pipeline.
|
|
default: false
|
|
file:
|
|
anyOf:
|
|
- type: string
|
|
format: binary
|
|
- type: 'null'
|
|
title: File
|
|
description: >-
|
|
Input PDF, word document, powerpoint, or image file, uploaded as
|
|
multipart form data. Images must be png, jpg, or webp format.
|
|
type: object
|
|
title: Body_marker_api_v1_marker_post
|
|
InitialResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
title: Success
|
|
description: Whether the request was successful.
|
|
default: true
|
|
error:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Error
|
|
description: >-
|
|
If the request was not successful, this will contain an error
|
|
message.
|
|
request_id:
|
|
type: string
|
|
title: Request Id
|
|
description: >-
|
|
The ID of the request. This ID can be used to check the status of
|
|
the request.
|
|
request_check_url:
|
|
type: string
|
|
title: Request Check Url
|
|
description: The URL to check the status of the request and get results.
|
|
versions:
|
|
anyOf:
|
|
- additionalProperties: true
|
|
type: object
|
|
- type: string
|
|
- type: 'null'
|
|
title: Versions
|
|
description: A dictionary of the versions of the libraries used in the request.
|
|
type: object
|
|
required:
|
|
- request_id
|
|
- request_check_url
|
|
title: InitialResponse
|
|
HTTPValidationError:
|
|
properties:
|
|
detail:
|
|
items:
|
|
$ref: '#/components/schemas/ValidationError'
|
|
type: array
|
|
title: Detail
|
|
type: object
|
|
title: HTTPValidationError
|
|
ValidationError:
|
|
properties:
|
|
loc:
|
|
items:
|
|
anyOf:
|
|
- type: string
|
|
- type: integer
|
|
type: array
|
|
title: Location
|
|
msg:
|
|
type: string
|
|
title: Message
|
|
type:
|
|
type: string
|
|
title: Error Type
|
|
type: object
|
|
required:
|
|
- loc
|
|
- msg
|
|
- type
|
|
title: ValidationError
|
|
securitySchemes:
|
|
APIKeyHeader:
|
|
type: apiKey
|
|
in: header
|
|
name: X-API-Key
|
|
|
|
````
|
|
|
|
---
|
|
|
|
> ## Documentation Index
|
|
> Fetch the complete documentation index at: https://documentation.datalab.to/llms.txt
|
|
> Use this file to discover all available pages before exploring further.
|
|
|
|
# [DEPRECATED] Table Recognition
|
|
|
|
> [DEPRECATED] This endpoint is deprecated and will be removed in the future.
|
|
This endpoint is used to submit a request for table recognition. The detected tables will be returned, as well as their parsed structure.
|
|
|
|
|
|
|
|
## OpenAPI
|
|
|
|
````yaml https://www.datalab.to/openapi.json post /api/v1/table_rec
|
|
openapi: 3.1.0
|
|
info:
|
|
title: Datalab API
|
|
version: 0.0.1
|
|
servers:
|
|
- url: https://www.datalab.to
|
|
description: Datalab API
|
|
security: []
|
|
paths:
|
|
/api/v1/table_rec:
|
|
post:
|
|
summary: '[DEPRECATED] Table Recognition'
|
|
description: >-
|
|
[DEPRECATED] This endpoint is deprecated and will be removed in the
|
|
future.
|
|
|
|
This endpoint is used to submit a request for table recognition. The
|
|
detected tables will be returned, as well as their parsed structure.
|
|
operationId: table_rec_api_v1_table_rec_post
|
|
parameters:
|
|
- name: wos-session
|
|
in: cookie
|
|
required: false
|
|
schema:
|
|
type: string
|
|
title: Wos-Session
|
|
- name: datalab_active_team
|
|
in: cookie
|
|
required: false
|
|
schema:
|
|
type: string
|
|
title: Datalab Active Team
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
$ref: '#/components/schemas/Body_table_rec_api_v1_table_rec_post'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/InitialResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
deprecated: true
|
|
security:
|
|
- APIKeyHeader: []
|
|
components:
|
|
schemas:
|
|
Body_table_rec_api_v1_table_rec_post:
|
|
properties:
|
|
max_pages:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Max Pages
|
|
description: The maximum number of pages in the PDF to convert.
|
|
page_range:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Page Range
|
|
description: >-
|
|
The page range to parse, comma separated like 0,5-10,20. This will
|
|
override max_pages if provided. Example: '0,2-4' will process pages
|
|
0, 2, 3, and 4.
|
|
output_format:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Output Format
|
|
description: >-
|
|
The output format for the table. Can be 'json', 'html', or
|
|
'markdown'. Defaults to 'markdown'.
|
|
skip_cache:
|
|
type: boolean
|
|
title: Skip Cache
|
|
description: >-
|
|
Skip the cache and re-run the inference. Defaults to False. If set
|
|
to True, the cache will be skipped and the inference will be re-run.
|
|
default: false
|
|
processing_location:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Processing Location
|
|
description: >-
|
|
Optional residency region override (e.g. us, eu). When provided, use
|
|
file_url or direct-upload; multipart uploads are rejected. When
|
|
omitted, the request uses the team's configured residency and
|
|
profile.
|
|
paginate:
|
|
type: boolean
|
|
title: Paginate
|
|
description: >-
|
|
Whether to paginate the output. Defaults to False. If set to True,
|
|
each page of the output will be separated by a horizontal rule that
|
|
contains the page number (2 newlines, {PAGE_NUMBER}, 48 -
|
|
characters, 2 newlines).
|
|
default: false
|
|
file:
|
|
anyOf:
|
|
- type: string
|
|
format: binary
|
|
- type: 'null'
|
|
title: File
|
|
description: >-
|
|
Input PDF, word document, powerpoint, or image file, uploaded as
|
|
multipart form data. Images must be png, jpg, or webp format.
|
|
type: object
|
|
title: Body_table_rec_api_v1_table_rec_post
|
|
InitialResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
title: Success
|
|
description: Whether the request was successful.
|
|
default: true
|
|
error:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Error
|
|
description: >-
|
|
If the request was not successful, this will contain an error
|
|
message.
|
|
request_id:
|
|
type: string
|
|
title: Request Id
|
|
description: >-
|
|
The ID of the request. This ID can be used to check the status of
|
|
the request.
|
|
request_check_url:
|
|
type: string
|
|
title: Request Check Url
|
|
description: The URL to check the status of the request and get results.
|
|
versions:
|
|
anyOf:
|
|
- additionalProperties: true
|
|
type: object
|
|
- type: string
|
|
- type: 'null'
|
|
title: Versions
|
|
description: A dictionary of the versions of the libraries used in the request.
|
|
type: object
|
|
required:
|
|
- request_id
|
|
- request_check_url
|
|
title: InitialResponse
|
|
HTTPValidationError:
|
|
properties:
|
|
detail:
|
|
items:
|
|
$ref: '#/components/schemas/ValidationError'
|
|
type: array
|
|
title: Detail
|
|
type: object
|
|
title: HTTPValidationError
|
|
ValidationError:
|
|
properties:
|
|
loc:
|
|
items:
|
|
anyOf:
|
|
- type: string
|
|
- type: integer
|
|
type: array
|
|
title: Location
|
|
msg:
|
|
type: string
|
|
title: Message
|
|
type:
|
|
type: string
|
|
title: Error Type
|
|
type: object
|
|
required:
|
|
- loc
|
|
- msg
|
|
- type
|
|
title: ValidationError
|
|
securitySchemes:
|
|
APIKeyHeader:
|
|
type: apiKey
|
|
in: header
|
|
name: X-API-Key
|
|
|
|
````
|
|
|
|
---
|
|
|
|
> ## Documentation Index
|
|
> Fetch the complete documentation index at: https://documentation.datalab.to/llms.txt
|
|
> Use this file to discover all available pages before exploring further.
|
|
|
|
# [DEPRECATED] OCR
|
|
|
|
> [DEPRECATED] This endpoint is deprecated and will be removed in the future.
|
|
This endpoint is used to submit a PDF or image for OCR. The OCR text lines will be returned, along with their bbox and polygon coordinates.
|
|
|
|
|
|
|
|
## OpenAPI
|
|
|
|
````yaml https://www.datalab.to/openapi.json post /api/v1/ocr
|
|
openapi: 3.1.0
|
|
info:
|
|
title: Datalab API
|
|
version: 0.0.1
|
|
servers:
|
|
- url: https://www.datalab.to
|
|
description: Datalab API
|
|
security: []
|
|
paths:
|
|
/api/v1/ocr:
|
|
post:
|
|
summary: '[DEPRECATED] OCR'
|
|
description: >-
|
|
[DEPRECATED] This endpoint is deprecated and will be removed in the
|
|
future.
|
|
|
|
This endpoint is used to submit a PDF or image for OCR. The OCR text
|
|
lines will be returned, along with their bbox and polygon coordinates.
|
|
operationId: ocr_api_v1_ocr_post
|
|
parameters:
|
|
- name: wos-session
|
|
in: cookie
|
|
required: false
|
|
schema:
|
|
type: string
|
|
title: Wos-Session
|
|
- name: datalab_active_team
|
|
in: cookie
|
|
required: false
|
|
schema:
|
|
type: string
|
|
title: Datalab Active Team
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
$ref: '#/components/schemas/Body_ocr_api_v1_ocr_post'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/InitialResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
deprecated: true
|
|
security:
|
|
- APIKeyHeader: []
|
|
components:
|
|
schemas:
|
|
Body_ocr_api_v1_ocr_post:
|
|
properties:
|
|
max_pages:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Max Pages
|
|
description: The maximum number of pages in the PDF to convert.
|
|
page_range:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Page Range
|
|
description: >-
|
|
The page range to parse, comma separated like 0,5-10,20. This will
|
|
override max_pages if provided. Example: '0,2-4' will process pages
|
|
0, 2, 3, and 4.
|
|
langs:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Langs
|
|
description: >-
|
|
Note: This parameter has been deprecated, and is no longer used. The
|
|
languages to use for OCR, comma separated. Can be up to 4
|
|
languages. Must be either the names or codes from
|
|
https://github.com/datalab-to/surya/blob/master/surya/languages.py.
|
|
Any other inputs will be ignored. Defaults to 'en' if not provided.
|
|
skip_cache:
|
|
type: boolean
|
|
title: Skip Cache
|
|
description: >-
|
|
Skip the cache and re-run the inference. Defaults to False. If set
|
|
to True, the cache will be skipped and the inference will be re-run.
|
|
default: false
|
|
processing_location:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Processing Location
|
|
description: >-
|
|
Optional residency region override (e.g. us, eu). When provided, use
|
|
file_url or direct-upload; multipart uploads are rejected. When
|
|
omitted, the request uses the team's configured residency and
|
|
profile.
|
|
file:
|
|
anyOf:
|
|
- type: string
|
|
format: binary
|
|
- type: 'null'
|
|
title: File
|
|
description: >-
|
|
Input PDF, word document, powerpoint, or image file, uploaded as
|
|
multipart form data. Images must be png, jpg, or webp format.
|
|
type: object
|
|
title: Body_ocr_api_v1_ocr_post
|
|
InitialResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
title: Success
|
|
description: Whether the request was successful.
|
|
default: true
|
|
error:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Error
|
|
description: >-
|
|
If the request was not successful, this will contain an error
|
|
message.
|
|
request_id:
|
|
type: string
|
|
title: Request Id
|
|
description: >-
|
|
The ID of the request. This ID can be used to check the status of
|
|
the request.
|
|
request_check_url:
|
|
type: string
|
|
title: Request Check Url
|
|
description: The URL to check the status of the request and get results.
|
|
versions:
|
|
anyOf:
|
|
- additionalProperties: true
|
|
type: object
|
|
- type: string
|
|
- type: 'null'
|
|
title: Versions
|
|
description: A dictionary of the versions of the libraries used in the request.
|
|
type: object
|
|
required:
|
|
- request_id
|
|
- request_check_url
|
|
title: InitialResponse
|
|
HTTPValidationError:
|
|
properties:
|
|
detail:
|
|
items:
|
|
$ref: '#/components/schemas/ValidationError'
|
|
type: array
|
|
title: Detail
|
|
type: object
|
|
title: HTTPValidationError
|
|
ValidationError:
|
|
properties:
|
|
loc:
|
|
items:
|
|
anyOf:
|
|
- type: string
|
|
- type: integer
|
|
type: array
|
|
title: Location
|
|
msg:
|
|
type: string
|
|
title: Message
|
|
type:
|
|
type: string
|
|
title: Error Type
|
|
type: object
|
|
required:
|
|
- loc
|
|
- msg
|
|
- type
|
|
title: ValidationError
|
|
securitySchemes:
|
|
APIKeyHeader:
|
|
type: apiKey
|
|
in: header
|
|
name: X-API-Key
|
|
|
|
````
|
|
|
|
> ## Documentation Index
|
|
> Fetch the complete documentation index at: https://documentation.datalab.to/llms.txt
|
|
> Use this file to discover all available pages before exploring further.
|
|
|
|
# Convert Document
|
|
|
|
> Convert a PDF, image, or document to markdown, HTML, JSON, or chunks. Use save_checkpoint=true to save parsed state for later /extract or /segment calls.
|
|
|
|
|
|
|
|
## OpenAPI
|
|
|
|
````yaml https://www.datalab.to/openapi.json post /api/v1/convert
|
|
openapi: 3.1.0
|
|
info:
|
|
title: Datalab API
|
|
version: 0.0.1
|
|
servers:
|
|
- url: https://www.datalab.to
|
|
description: Datalab API
|
|
security: []
|
|
paths:
|
|
/api/v1/convert:
|
|
post:
|
|
summary: Convert Document
|
|
description: >-
|
|
Convert a PDF, image, or document to markdown, HTML, JSON, or chunks.
|
|
Use save_checkpoint=true to save parsed state for later /extract or
|
|
/segment calls.
|
|
operationId: convert_api_v1_convert_post
|
|
parameters:
|
|
- name: wos-session
|
|
in: cookie
|
|
required: false
|
|
schema:
|
|
type: string
|
|
title: Wos-Session
|
|
- name: datalab_active_team
|
|
in: cookie
|
|
required: false
|
|
schema:
|
|
type: string
|
|
title: Datalab Active Team
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
$ref: '#/components/schemas/Body_convert_api_v1_convert_post'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/InitialResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- APIKeyHeader: []
|
|
components:
|
|
schemas:
|
|
Body_convert_api_v1_convert_post:
|
|
properties:
|
|
file_url:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: File Url
|
|
description: >-
|
|
Optional file URL (http/https). If provided, the server will
|
|
download and process it.
|
|
mode:
|
|
type: string
|
|
title: Mode
|
|
description: >-
|
|
Which output mode to use. Valid values: 'fast' (lowest latency),
|
|
'balanced' (balanced accuracy and latency), 'accurate' (highest
|
|
accuracy).
|
|
default: fast
|
|
choices:
|
|
- fast
|
|
- balanced
|
|
- accurate
|
|
dashboard:
|
|
description: Processing mode balancing speed and accuracy.
|
|
max_pages:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Max Pages
|
|
description: The maximum number of pages in the document to convert.
|
|
page_range:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Page Range
|
|
description: >-
|
|
The page range to convert, comma separated like 0,5-10,20. Overrides
|
|
max_pages if provided.
|
|
dashboard:
|
|
description: >-
|
|
Comma-separated page ranges to process, e.g. '0-2,4'. Leave empty
|
|
for all pages.
|
|
paginate:
|
|
type: boolean
|
|
title: Paginate
|
|
description: >-
|
|
Whether to paginate the output. Each page will be separated by a
|
|
horizontal rule with the page number.
|
|
default: false
|
|
dashboard:
|
|
description: Separate output by page with horizontal rules.
|
|
add_block_ids:
|
|
type: boolean
|
|
title: Add Block Ids
|
|
description: >-
|
|
Add data-block-id attributes to HTML elements for citation tracking.
|
|
Only applies when output_format includes 'html'.
|
|
default: false
|
|
include_markdown_in_chunks:
|
|
type: boolean
|
|
title: Include Markdown In Chunks
|
|
description: Include markdown field in chunks and JSON output.
|
|
default: false
|
|
disable_image_extraction:
|
|
type: boolean
|
|
title: Disable Image Extraction
|
|
description: Disable image extraction from the document.
|
|
default: false
|
|
dashboard: {}
|
|
disable_image_captions:
|
|
type: boolean
|
|
title: Disable Image Captions
|
|
description: Disable synthetic image captions/descriptions in output.
|
|
default: false
|
|
dashboard: {}
|
|
word_bboxes:
|
|
type: boolean
|
|
title: Word Bboxes
|
|
description: >-
|
|
When enabled, predict per-word bounding boxes for each page and
|
|
include them under page_info[id].metadata.words. Only supported by
|
|
the Chandra parse pipeline.
|
|
default: false
|
|
fence_synthetic_captions:
|
|
type: boolean
|
|
title: Fence Synthetic Captions
|
|
description: >-
|
|
Wrap synthetic image captions with HTML comment markers for easy
|
|
identification/removal.
|
|
default: false
|
|
output_format:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Output Format
|
|
description: >-
|
|
The output format. Can be 'json', 'html', 'markdown', or 'chunks'.
|
|
Defaults to 'markdown'. Comma separate multiple formats.
|
|
dashboard:
|
|
choices:
|
|
- markdown
|
|
- html
|
|
- json
|
|
- chunks
|
|
description: Output format for the converted document.
|
|
type: select
|
|
token_efficient_markdown:
|
|
type: boolean
|
|
title: Token Efficient Markdown
|
|
description: >-
|
|
Optimize markdown for LLM token usage (compact tables, single-space
|
|
indents).
|
|
default: false
|
|
skip_cache:
|
|
type: boolean
|
|
title: Skip Cache
|
|
description: Skip the cache and re-run the conversion.
|
|
default: false
|
|
dashboard:
|
|
description: Skip cache and re-run processing.
|
|
save_checkpoint:
|
|
type: boolean
|
|
title: Save Checkpoint
|
|
description: >-
|
|
Save a checkpoint after conversion. The checkpoint_id in the
|
|
response can be used with /extract or /segment to skip re-parsing.
|
|
default: false
|
|
dashboard:
|
|
description: Save a checkpoint for later /extract or /segment calls.
|
|
additional_config:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Additional Config
|
|
description: >-
|
|
Additional configuration as a JSON string. Supported keys:
|
|
'keep_pageheader_in_output', 'keep_pagefooter_in_output',
|
|
'keep_spreadsheet_formatting'.
|
|
workflowstepdata_id:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Workflowstepdata Id
|
|
description: Optional workflow step data ID to associate with this request.
|
|
extras:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Extras
|
|
description: >-
|
|
Comma-separated list of extra features: 'track_changes',
|
|
'chart_understanding', 'table_row_bboxes', 'extract_links',
|
|
'infographic', 'new_block_types'.
|
|
dashboard:
|
|
description: >-
|
|
Comma-separated feature flags: chart_understanding, infographic,
|
|
extract_links, table_row_bboxes, new_block_types.
|
|
webhook_url:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Webhook Url
|
|
description: Optional webhook URL to call when the request is complete.
|
|
processing_location:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Processing Location
|
|
description: >-
|
|
Optional residency region override (e.g. us, eu). When provided, use
|
|
file_url or direct-upload; multipart uploads are rejected. When
|
|
omitted, the request uses the team's configured residency and
|
|
profile.
|
|
eval_rubric_id:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Eval Rubric Id
|
|
description: Optional eval rubric ID to run evaluation after conversion.
|
|
force_new:
|
|
type: boolean
|
|
title: Force New
|
|
description: 'Internal: force Modal backend.'
|
|
default: false
|
|
model_override_settings:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Model Override Settings
|
|
file:
|
|
anyOf:
|
|
- type: string
|
|
format: binary
|
|
- type: 'null'
|
|
title: File
|
|
description: >-
|
|
Input PDF, word document, powerpoint, or image file, uploaded as
|
|
multipart form data. Images must be png, jpg, or webp format.
|
|
type: object
|
|
title: Body_convert_api_v1_convert_post
|
|
InitialResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
title: Success
|
|
description: Whether the request was successful.
|
|
default: true
|
|
error:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Error
|
|
description: >-
|
|
If the request was not successful, this will contain an error
|
|
message.
|
|
request_id:
|
|
type: string
|
|
title: Request Id
|
|
description: >-
|
|
The ID of the request. This ID can be used to check the status of
|
|
the request.
|
|
request_check_url:
|
|
type: string
|
|
title: Request Check Url
|
|
description: The URL to check the status of the request and get results.
|
|
versions:
|
|
anyOf:
|
|
- additionalProperties: true
|
|
type: object
|
|
- type: string
|
|
- type: 'null'
|
|
title: Versions
|
|
description: A dictionary of the versions of the libraries used in the request.
|
|
type: object
|
|
required:
|
|
- request_id
|
|
- request_check_url
|
|
title: InitialResponse
|
|
HTTPValidationError:
|
|
properties:
|
|
detail:
|
|
items:
|
|
$ref: '#/components/schemas/ValidationError'
|
|
type: array
|
|
title: Detail
|
|
type: object
|
|
title: HTTPValidationError
|
|
ValidationError:
|
|
properties:
|
|
loc:
|
|
items:
|
|
anyOf:
|
|
- type: string
|
|
- type: integer
|
|
type: array
|
|
title: Location
|
|
msg:
|
|
type: string
|
|
title: Message
|
|
type:
|
|
type: string
|
|
title: Error Type
|
|
type: object
|
|
required:
|
|
- loc
|
|
- msg
|
|
- type
|
|
title: ValidationError
|
|
securitySchemes:
|
|
APIKeyHeader:
|
|
type: apiKey
|
|
in: header
|
|
name: X-API-Key
|
|
|
|
````
|
|
|
|
---
|
|
|
|
|
|
> ## Documentation Index
|
|
> Fetch the complete documentation index at: https://documentation.datalab.to/llms.txt
|
|
> Use this file to discover all available pages before exploring further.
|
|
|
|
# Marker Result Check
|
|
|
|
> Poll this endpoint to check status of Marker request and retrieve final results
|
|
|
|
|
|
|
|
## OpenAPI
|
|
|
|
````yaml https://www.datalab.to/openapi.json get /api/v1/marker/{request_id}
|
|
openapi: 3.1.0
|
|
info:
|
|
title: Datalab API
|
|
version: 0.0.1
|
|
servers:
|
|
- url: https://www.datalab.to
|
|
description: Datalab API
|
|
security: []
|
|
paths:
|
|
/api/v1/marker/{request_id}:
|
|
get:
|
|
summary: Marker Result Check
|
|
description: >-
|
|
Poll this endpoint to check status of Marker request and retrieve final
|
|
results
|
|
operationId: result_response_api_v1_marker__request_id__get
|
|
parameters:
|
|
- name: request_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Request Id
|
|
- name: wos-session
|
|
in: cookie
|
|
required: false
|
|
schema:
|
|
type: string
|
|
title: Wos-Session
|
|
- name: datalab_active_team
|
|
in: cookie
|
|
required: false
|
|
schema:
|
|
type: string
|
|
title: Datalab Active Team
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MarkerFinalResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- APIKeyHeader: []
|
|
components:
|
|
schemas:
|
|
MarkerFinalResponse:
|
|
properties:
|
|
status:
|
|
type: string
|
|
title: Status
|
|
description: >-
|
|
The status of the request. Should be 'complete' when the request is
|
|
done.
|
|
result_url:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Result Url
|
|
description: >-
|
|
Signed URL for downloading the completed result JSON when direct
|
|
result download is required.
|
|
expires_in:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Expires In
|
|
description: Number of seconds until result_url expires.
|
|
output_format:
|
|
type: string
|
|
title: Output Format
|
|
description: The format of the output. 'markdown' or 'json'.
|
|
chunks:
|
|
anyOf:
|
|
- additionalProperties: true
|
|
type: object
|
|
- type: string
|
|
- type: 'null'
|
|
title: Chunks
|
|
description: >-
|
|
The output in chunks format. The top-level key 'blocks' contains a
|
|
list of blocks from the document with metadata.
|
|
json:
|
|
anyOf:
|
|
- additionalProperties: true
|
|
type: object
|
|
- type: string
|
|
- type: 'null'
|
|
title: Json
|
|
description: The JSON representation of the PDF if the output format is 'json'.
|
|
markdown:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Markdown
|
|
description: >-
|
|
The markdown representation of the PDF if the output format is
|
|
'markdown'.
|
|
html:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Html
|
|
description: The HTML representation of the PDF if the output format is 'html'.
|
|
extraction_schema_json:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Extraction Schema Json
|
|
description: >-
|
|
The output of a marker extraction request containing the filled in
|
|
extraction schema.
|
|
extraction_score_average:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Extraction Score Average
|
|
description: >-
|
|
Average confidence score (1-5) across all extracted fields, when
|
|
scoring is applied.
|
|
extraction_mode:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Extraction Mode
|
|
description: 'The extraction mode used for this request: ''fast'' or ''balanced''.'
|
|
segmentation_results:
|
|
anyOf:
|
|
- additionalProperties: true
|
|
type: object
|
|
- type: 'null'
|
|
title: Segmentation Results
|
|
description: >-
|
|
Results of document segmentation showing page ranges for each
|
|
identified segment. Contains segment names, page ranges, and
|
|
confidence levels (high/medium/low).
|
|
images:
|
|
anyOf:
|
|
- additionalProperties:
|
|
type: string
|
|
type: object
|
|
- type: 'null'
|
|
title: Images
|
|
description: >-
|
|
A dictionary of the images in the PDF, where the key is the filename
|
|
for the image, and the value is the base64 encoded image. Images
|
|
should be stored in the same directory as the PDF.
|
|
metadata:
|
|
anyOf:
|
|
- additionalProperties: true
|
|
type: object
|
|
- type: 'null'
|
|
title: Metadata
|
|
description: A dictionary of metadata about the PDF and the conversion process.
|
|
success:
|
|
anyOf:
|
|
- type: boolean
|
|
- type: 'null'
|
|
title: Success
|
|
description: Whether the conversion was successful.
|
|
error:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Error
|
|
description: >-
|
|
If the conversion was not successful, this will contain an error
|
|
message.
|
|
parse_quality_score:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Parse Quality Score
|
|
description: The parse quality score of the output, if available.
|
|
page_count:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Page Count
|
|
description: The number of pages that were converted.
|
|
total_cost:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Total Cost
|
|
description: The total cost of the conversion.
|
|
deprecated: true
|
|
cost_breakdown:
|
|
anyOf:
|
|
- additionalProperties: true
|
|
type: object
|
|
- type: 'null'
|
|
title: Cost Breakdown
|
|
description: >-
|
|
A dictionary of the cost breakdown of this request. Includes the
|
|
list cost without discounts and final cost to clients after any
|
|
discounts (e.g. for opting into model training).
|
|
runtime:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Runtime
|
|
description: The runtime of the conversion.
|
|
checkpoint_id:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Checkpoint Id
|
|
description: >-
|
|
The ID of the checkpoint that was created for this conversion. This
|
|
can be used to retrieve the checkpoint later.
|
|
versions:
|
|
anyOf:
|
|
- additionalProperties: true
|
|
type: object
|
|
- type: string
|
|
- type: 'null'
|
|
title: Versions
|
|
description: A dictionary of the versions of the libraries used in the request.
|
|
evaluation:
|
|
anyOf:
|
|
- $ref: '#/components/schemas/EvaluationResults'
|
|
- type: 'null'
|
|
description: >-
|
|
Evaluation results, when available, for requests that run
|
|
evaluation. Contains per-rule scores for validating custom pipeline
|
|
behavior.
|
|
type: object
|
|
required:
|
|
- status
|
|
title: MarkerFinalResponse
|
|
HTTPValidationError:
|
|
properties:
|
|
detail:
|
|
items:
|
|
$ref: '#/components/schemas/ValidationError'
|
|
type: array
|
|
title: Detail
|
|
type: object
|
|
title: HTTPValidationError
|
|
EvaluationResults:
|
|
properties:
|
|
eval_definition_name:
|
|
type: string
|
|
title: Eval Definition Name
|
|
description: Name of the evaluation definition
|
|
evaluations:
|
|
items:
|
|
$ref: '#/components/schemas/EvaluationRuleSummary'
|
|
type: array
|
|
title: Evaluations
|
|
description: Per-rule evaluation summaries
|
|
total_items_evaluated:
|
|
type: integer
|
|
title: Total Items Evaluated
|
|
description: Total number of items evaluated across all rules
|
|
type: object
|
|
required:
|
|
- eval_definition_name
|
|
- evaluations
|
|
- total_items_evaluated
|
|
title: EvaluationResults
|
|
description: Container for evaluation results.
|
|
ValidationError:
|
|
properties:
|
|
loc:
|
|
items:
|
|
anyOf:
|
|
- type: string
|
|
- type: integer
|
|
type: array
|
|
title: Location
|
|
msg:
|
|
type: string
|
|
title: Message
|
|
type:
|
|
type: string
|
|
title: Error Type
|
|
type: object
|
|
required:
|
|
- loc
|
|
- msg
|
|
- type
|
|
title: ValidationError
|
|
EvaluationRuleSummary:
|
|
properties:
|
|
name:
|
|
type: string
|
|
title: Name
|
|
description: Name of the evaluation rule
|
|
type:
|
|
type: string
|
|
title: Type
|
|
description: 'Type of evaluation: block, page, or document'
|
|
rule_score:
|
|
type: number
|
|
title: Rule Score
|
|
description: Aggregated score for this rule (0-5)
|
|
items_evaluated:
|
|
type: integer
|
|
title: Items Evaluated
|
|
description: Number of items evaluated
|
|
individual_results:
|
|
items:
|
|
additionalProperties: true
|
|
type: object
|
|
type: array
|
|
title: Individual Results
|
|
description: >-
|
|
Bottom-k lowest scoring individual results with score, feedback,
|
|
block_id, page_id, block_type
|
|
type: object
|
|
required:
|
|
- name
|
|
- type
|
|
- rule_score
|
|
- items_evaluated
|
|
title: EvaluationRuleSummary
|
|
description: Summary of a single evaluation rule result.
|
|
securitySchemes:
|
|
APIKeyHeader:
|
|
type: apiKey
|
|
in: header
|
|
name: X-API-Key
|
|
|
|
````
|
|
|
|
> ## Documentation Index
|
|
> Fetch the complete documentation index at: https://documentation.datalab.to/llms.txt
|
|
> Use this file to discover all available pages before exploring further.
|
|
|
|
# OCR Result Check
|
|
|
|
> Poll this endpoint to check status of an OCR request and retrieve final results
|
|
|
|
|
|
|
|
## OpenAPI
|
|
|
|
````yaml https://www.datalab.to/openapi.json get /api/v1/ocr/{request_id}
|
|
openapi: 3.1.0
|
|
info:
|
|
title: Datalab API
|
|
version: 0.0.1
|
|
servers:
|
|
- url: https://www.datalab.to
|
|
description: Datalab API
|
|
security: []
|
|
paths:
|
|
/api/v1/ocr/{request_id}:
|
|
get:
|
|
summary: OCR Result Check
|
|
description: >-
|
|
Poll this endpoint to check status of an OCR request and retrieve final
|
|
results
|
|
operationId: result_response_api_v1_ocr__request_id__get
|
|
parameters:
|
|
- name: request_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Request Id
|
|
- name: wos-session
|
|
in: cookie
|
|
required: false
|
|
schema:
|
|
type: string
|
|
title: Wos-Session
|
|
- name: datalab_active_team
|
|
in: cookie
|
|
required: false
|
|
schema:
|
|
type: string
|
|
title: Datalab Active Team
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/OCRFinalResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- APIKeyHeader: []
|
|
components:
|
|
schemas:
|
|
OCRFinalResponse:
|
|
properties:
|
|
status:
|
|
type: string
|
|
title: Status
|
|
description: >-
|
|
The status of the request. Should be 'complete' when the request is
|
|
done.
|
|
result_url:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Result Url
|
|
description: >-
|
|
Signed URL for downloading the completed result JSON when direct
|
|
result download is required.
|
|
expires_in:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Expires In
|
|
description: Number of seconds until result_url expires.
|
|
pages:
|
|
anyOf:
|
|
- items:
|
|
additionalProperties: true
|
|
type: object
|
|
type: array
|
|
- type: 'null'
|
|
title: Pages
|
|
description: >-
|
|
The detected OCR text on each page. Each page will have the bboxes
|
|
and detected text within each line.
|
|
success:
|
|
anyOf:
|
|
- type: boolean
|
|
- type: 'null'
|
|
title: Success
|
|
description: Whether the conversion was successful.
|
|
error:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Error
|
|
description: >-
|
|
If the conversion was not successful, this will contain an error
|
|
message.
|
|
page_count:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Page Count
|
|
description: The number of pages that had ocr run on them.
|
|
total_cost:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Total Cost
|
|
description: The total cost of the conversion.
|
|
deprecated: true
|
|
cost_breakdown:
|
|
anyOf:
|
|
- additionalProperties: true
|
|
type: object
|
|
- type: 'null'
|
|
title: Cost Breakdown
|
|
description: >-
|
|
A dictionary of the cost breakdown of this request. Includes the
|
|
list cost without discounts and final cost to clients after any
|
|
discounts (e.g. for opting into model training).
|
|
versions:
|
|
anyOf:
|
|
- additionalProperties: true
|
|
type: object
|
|
- type: string
|
|
- type: 'null'
|
|
title: Versions
|
|
description: A dictionary of the versions of the libraries used in the request.
|
|
type: object
|
|
required:
|
|
- status
|
|
title: OCRFinalResponse
|
|
HTTPValidationError:
|
|
properties:
|
|
detail:
|
|
items:
|
|
$ref: '#/components/schemas/ValidationError'
|
|
type: array
|
|
title: Detail
|
|
type: object
|
|
title: HTTPValidationError
|
|
ValidationError:
|
|
properties:
|
|
loc:
|
|
items:
|
|
anyOf:
|
|
- type: string
|
|
- type: integer
|
|
type: array
|
|
title: Location
|
|
msg:
|
|
type: string
|
|
title: Message
|
|
type:
|
|
type: string
|
|
title: Error Type
|
|
type: object
|
|
required:
|
|
- loc
|
|
- msg
|
|
- type
|
|
title: ValidationError
|
|
securitySchemes:
|
|
APIKeyHeader:
|
|
type: apiKey
|
|
in: header
|
|
name: X-API-Key
|
|
|
|
````
|