LlamaParse API v2 Guide
This comprehensive guide covers the new v2 API endpoint for LlamaParse, which introduces a structured configuration approach for better organization and validation.
â ď¸ Alpha Version Warning: The v2 endpoint is currently in alpha (
v2alpha1
) and is subject to breaking changes until the stable release. We recommend testing thoroughly and being prepared for potential API changes during development.
Quick Start
Section titled âQuick StartâBasic Usage
Section titled âBasic Usageâcurl -X POST \ -H "Authorization: Bearer $LLAMA_CLOUD_API_KEY" \ -F "file=@document.pdf" \ -F 'configuration={ "parse_options": { "parse_mode": "preset", "preset_options": { "preset": "scientific" } } }' \ "https://api.cloud.llamaindex.ai/api/v2alpha1/parse/upload"
Whatâs Different from v1
Section titled âWhatâs Different from v1â- Single configuration parameter: Instead of 70+ individual form parameters, v2 uses one JSON configuration string
- Parse mode-specific options: Only relevant options for your chosen parsing mode are available
- Better validation: Structured JSON schema with clear error messages
- Hierarchical organization: Related settings are grouped logically
Endpoint Details
Section titled âEndpoint Detailsâ- URL:
https://api.cloud.llamaindex.ai/api/v2alpha1/parse/upload
- Method:
POST
- Content-Type:
multipart/form-data
- Required Headers:
Authorization: Bearer YOUR_API_KEY
Configuration Structure
Section titled âConfiguration StructureâThe v2 API accepts two form parameters:
file
(optional): The document file to parseconfiguration
(required): JSON string containing all parsing options
Input Methods
Section titled âInput MethodsâYou can provide input in two ways (but not both):
- File upload: Use the
file
parameter with multipart form data - URL: Specify a URL in the configurationâs
source_url.url
field
Parse Modes
Section titled âParse ModesâThe parse_mode
field determines how your document is processed. Each mode has specific options available only to that mode.
Preset Mode ("preset"
)
Section titled âPreset Mode ("preset")âBest for: Quick setup with predefined configurations optimized for specific document types.
Available Presets:
"invoice"
/"invoice-v-1"
- Optimized for invoices and receipts"scientific"
/"scientific-v-1"
- For scientific papers and research documents"forms"
/"forms-v-1"
- For forms and questionnaires"technicalDocumentation"
/"technicalDocumentation-v-1"
- For technical docs with schematics"slides"
- For presentation slides"formsBboxExperimental"
- Experimental forms parsing with bounding boxes
Configuration:
{ "parse_options": { "parse_mode": "preset", "preset_options": { "preset": "scientific", "ocr_parameters": { "languages": ["en", "es"] } } }}
Parse Without AI ("parse_without_ai"
)
Section titled âParse Without AI ("parse_without_ai")âBest for: Fast text extraction from simple documents without complex layouts.
How it works: Extracts text directly without AI reconstruction. Fastest option but no markdown formatting.
Configuration:
{ "parse_options": { "parse_mode": "parse_without_ai", "parse_without_ai_options": { "ignore": { "ignore_diagonal_text": true, "ignore_text_in_image": false }, "ocr_parameters": { "languages": ["en"] } } }}
Parse with LLM ("parse_with_llm"
)
Section titled âParse with LLM ("parse_with_llm")âBest for: Documents with mixed content (text, tables, images) requiring structured output.
How it works: Uses a Large Language Model to reconstruct document structure from extracted text and images.
Configuration:
{ "parse_options": { "parse_mode": "parse_with_llm", "parse_with_llm_options": { "model": "gpt-4o", "prompts": { "user_prompt": "Extract key financial information", "system_prompt_append": "Focus on tables and charts" }, "ignore": { "ignore_diagonal_text": false, "ignore_text_in_image": false }, "ocr_parameters": { "languages": ["en", "fr"] } } }}
Parse with External Provider ("parse_with_external_provider"
)
Section titled âParse with External Provider ("parse_with_external_provider")âBest for: Using your own API keys for multimodal models or specific Azure deployments.
How it works: Sends page screenshots to external vision models for processing.
Configuration:
{ "parse_options": { "parse_mode": "parse_with_external_provider", "parse_with_external_provider_options": { "model": "openai-gpt4o", "vendor_multimodal_api_key": "sk-proj-...", "prompts": { "user_prompt": "Extract structured data" }, "azure_openai": { "deployment_name": "gpt-4-vision", "endpoint": "https://myresource.openai.azure.com/", "api_key": "your-key", "api_version": "2024-02-01" } } }}
Supported Models:
openai-gpt4o
(default)openai-gpt-4o-mini
openai-gpt-4-1-nano
openai-gpt-4-1-mini
openai-gpt-4-1
anthropic-sonnet-3.5
anthropic-sonnet-3.7
anthropic-sonnet-4.0
gemini-2.0-flash
gemini-2.5-flash
gemini-2.5-pro
gemini-1.5-flash
gemini-1.5-pro
Parse with Agent ("parse_with_agent"
)
Section titled âParse with Agent ("parse_with_agent")âBest for: Complex documents requiring highest accuracy (financial reports, dense layouts).
How it works: Uses an agentic reasoning loop with both text and visual analysis for maximum fidelity.
Configuration:
{ "parse_options": { "parse_mode": "parse_with_agent", "parse_with_agent_options": { "model": "anthropic-sonnet-4.0", "ignore": { "ignore_diagonal_text": false }, "ocr_parameters": { "languages": ["en"] }, "prompts": { "user_prompt": "Preserve all table structure and equations" } } }}
Parse with Layout Agent ("parse_with_layout_agent"
)
Section titled âParse with Layout Agent ("parse_with_layout_agent")âBest for: Documents where precise positioning matters (visual citations, dense layouts).
How it works: Uses vision-language models optimized for layout preservation.
Configuration:
{ "parse_options": { "parse_mode": "parse_with_layout_agent", "parse_with_layout_agent_options": {} }}
Auto Mode ("auto"
)
Section titled âAuto Mode ("auto")âBest for: Dynamic parsing that adapts based on document content.
How it works: Automatically selects parsing strategy based on detected content types.
Configuration:
{ "parse_options": { "parse_mode": "auto", "auto_options": { "configuration_json": "{}", "trigger_on": { "image": true, "table": true, "text": "financial", "regexp": "\\$[0-9,]+\\.[0-9]{2}" }, "ignore": { "ignore_diagonal_text": false }, "ocr_parameters": { "languages": ["en"] } } }}
Input Options
Section titled âInput OptionsâConfigure how different file types are processed:
{ "input_options": { "html": { "make_all_elements_visible": true, "remove_fixed_elements": true, "remove_navigation_elements": true }, "pdf": { "disable_image_extraction": false }, "spreadsheet": { "detect_sub_tables_in_sheets": true } }}
HTML Options
Section titled âHTML Optionsâmake_all_elements_visible
: Forces hidden elements to be visible during parsingremove_fixed_elements
: Removes fixed-position elements (headers, sidebars)remove_navigation_elements
: Removes navigation menus
PDF Options
Section titled âPDF Optionsâdisable_image_extraction
: Skip extracting embedded images from PDFs
Spreadsheet Options
Section titled âSpreadsheet Optionsâdetect_sub_tables_in_sheets
: Find and extract sub-tables within spreadsheet cells
Source URL Configuration
Section titled âSource URL ConfigurationâParse documents from web URLs instead of file uploads:
{ "source_url": { "url": "https://example.com/document.pdf", "http_proxy": "https://proxy.company.com:8080" }}
url
: Direct URL to the document (must be publicly accessible)http_proxy
: Optional proxy server for URL requests
Page Ranges
Section titled âPage RangesâControl which pages to process:
{ "page_ranges": { "max_pages": 10, "target_pages": "1,3,5-10" }}
max_pages
: Maximum number of pages to processtarget_pages
: Specific pages using 1-based indexing (e.g., â1,3,5-10â for pages 1, 3, and 5 through 10)
Important: v2 uses 1-based page indexing, unlike v1 which used 0-based indexing.
Crop Box
Section titled âCrop BoxâDefine a specific area of each page to parse:
{ "crop_box": { "top": 0.1, "right": 0.1, "bottom": 0.1, "left": 0.1 }}
Values are ratios (0.0 to 1.0) of the page dimensions. Example above crops 10% margin on all sides.
Output Options
Section titled âOutput OptionsâCustomize the output format and structure:
Markdown Options
Section titled âMarkdown Optionsâ{ "output_options": { "markdown": { "annotate_links": true, "pages": { "prefix": "## Page {pageNumber}\n", "custom_page_separator": "\n\n== {pageNumber} ==\n\n", }, "headers_footers": { "hide_headers": true, "hide_footers": false, "page_header_prefix": "Header: ", "page_footer_suffix": " (Footer)" }, "tables": { "compact_markdown_tables": false, "output_tables_as_markdown": false, "markdown_table_multiline_separator": " | " } } }}
Spatial Text Options
Section titled âSpatial Text Optionsâ{ "output_options": { "spatial_text": { "preserve_layout_alignment_across_pages": true, "preserve_very_small_text": false, "do_not_unroll_columns": false } }}
Export Options
Section titled âExport Optionsâ{ "output_options": { "tables_as_spreadsheet": { "enable": true, "guess_sheet_name": true }, "extract_layout": { "enable": true, "ignore_document_elements_for_layout_detection": false }, "vectorial_objects": { "enable": true }, "embedded_images": { "enable": true }, "screenshots": { "enable": true }, "export_pdf": { "enable": false } }}
Webhook Configuration
Section titled âWebhook ConfigurationâSet up notifications for job completion:
{ "webhook_configurations": [ { "webhook_url": "https://your-app.com/webhook", "webhook_headers": { "X-Custom-Header": "value" }, "webhook_events": ["parse.done"] } ]}
Note: Currently only the first webhook configuration is used.
Processing Control
Section titled âProcessing ControlâConfigure timeouts and error handling:
{ "processing_control": { "timeouts": { "base_in_seconds": 300, "extra_time_per_page_in_seconds": 30 }, "job_failure_conditions": { "allowed_page_failure_ratio": 0.1, "fail_on_image_extraction_error": false, "fail_on_image_ocr_error": false, "fail_on_markdown_reconstruction_error": true, "fail_on_buggy_font": false }, "fallback_content": { "mode": "empty_page", "prefix": "ERROR: ", "suffix": " (failed to parse)" } }}
Cache Control
Section titled âCache ControlâDisable caching for fresh results:
{ "disable_cache": true}
When true
, this both invalidates any existing cache and prevents caching of new results.
Always-Enabled Features
Section titled âAlways-Enabled FeaturesâThe following features are always enabled in v2 and cannot be disabled:
adaptive_long_table
: Adaptive long table detectionhigh_res_ocr
: High-resolution OCR processingmerge_tables_across_pages_in_markdown
: Table merging across pagesoutlined_table_extraction
: Outlined table extraction
These were made default because they improve results for most documents.
Complete Configuration Example
Section titled âComplete Configuration Exampleâ{ "parse_options": { "parse_mode": "parse_with_llm", "parse_with_llm_options": { "model": "gpt-4o", "prompts": { "user_prompt": "Extract all financial data and preserve table structure" }, "ignore": { "ignore_diagonal_text": true, "ignore_text_in_image": false }, "ocr_parameters": { "languages": ["en", "es"] } } }, "source_url": { "url": "https://example.com/report.pdf" }, "page_ranges": { "max_pages": 20, "target_pages": "1-5,10,15-20" }, "crop_box": { "top": 0.05, "bottom": 0.95, "left": 0.05, "right": 0.95 }, "output_options": { "markdown": { "annotate_links": true, "pages": { "prefix": "# Page {pageNumber}\n" }, "tables": { "output_tables_as_markdown": true } }, "extract_layout": { "enable": true }, "screenshots": { "enable": true } }, "webhook_configurations": [ { "webhook_url": "https://myapp.com/webhook", "webhook_events": ["parse.done"] } ], "processing_control": { "timeouts": { "base_in_seconds": 600 }, "job_failure_conditions": { "allowed_page_failure_ratio": 0.05 } }, "disable_cache": false}
Error Handling
Section titled âError Handlingâv2 provides detailed validation errors:
{ "detail": [ { "type": "value_error", "loc": ["parse_options", "parse_with_llm_options"], "msg": "parse_with_llm_options can only be used with parse_mode 'parse_with_llm'", "input": {...} } ]}
Response Format
Section titled âResponse FormatâThe response structure remains the same as v1, returning a ParsingJob
object with job details and status.
Migration from v1
Section titled âMigration from v1âIf youâre migrating from v1, see our detailed migration guide for parameter mapping and breaking changes.