How Unstructured’s scores are calculated
The full audit trail, recomputed from the verdict data at build time through the same code that produced the leaderboard: verdict × quality × story weight per cell, cells sum to dimension scores, dimensions blend into the PA Score. Every number on the product page is reproducible from this page alone; for why the formula looks like this, see the methodology.
verdict factors: full ×1.0 · partial ×0.6 · disputed ×0.3 · none ×0.0 · n/a excluded from both sides · cell points = weight × quality × factor · cell max = weight × 10
PA Score26/100
Agent-ready 45.7 × 0.30 = 13.71
API quality 8.6 × 0.20 = 1.72
Openness 25.2 × 0.20 = 5.04
Built-in AI 17.3 × 0.15 = 2.60
Automation 20.0 × 0.15 = 3.00
(13.71 + 1.72 + 5.04 + 2.60 + 3.00) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 26.07 ÷ 1.00 = 26.1
Scores are stored to 1 decimal; the product page’s pills round to whole numbers for display. Each dimension below shows the stories, verdicts, and cited evidence behind its number.
Agent-ready45.7/100×0.30 of the PA blend
Outside-in: can YOUR agent reach and drive this product — API, MCP, CLI, headless runs, agent docs.
Point an agent at llms.txt or agent-oriented docsweight 2
2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max
- [probe] https://docs.unstructured.io/llms.txt“PROBE llms.txt: HTTP 200 at https://docs.unstructured.io/llms.txt # Unstructured > ## Agent Instructions > Fetch site content guidance and key links about the MCP server, SDK, and API a”
- [probe] https://docs.unstructured.io/openapi.json“PROBE openapi: all candidate paths 404 (https://docs.unstructured.io/openapi.json, https://docs.unstructured.io/swagger.json, https://docs.unstructured.io/api/openapi.json, https://docs.unstructured.io/.well-known/openapi.json)”
Run the product headlessly / in CI for automationweight 2
2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max
- [claimed-docs] https://docs.unstructured.io/api-reference/transform/overview“You can call the Unstructured API with the Unstructured Python SDK and with standard REST clients (such as cURL and Postman).”
- [claimed-docs] https://docs.unstructured.io/api-reference/api/job/job-apis“Track and control the processing jobs that execute your workflows. Trigger runs, monitor status, download results, and inspect any files that failed during processing.”
- [claimed-docs] https://docs.unstructured.io/api-reference/workflow/workflows“Build and manage Unstructured workflows with the Python SDK or REST endpoints. Create, update, run, and delete workflows that process and transform documents from source to destination.”
- [claimed-docs] https://docs.unstructured.io/overview-python-sdk“The Unstructured Python SDK enables you to call the Unstructured API with standard Python code to partition, enrich, chunk, and embed your files.”
- [claimed-docs] https://docs.unstructured.io/overview-rest-api“You can call the Unstructured API through REST endpoints by using a REST client (such as cURL or Postman) to partition, enrich, chunk, and embed your files.”
Plug MCP servers into this product so it can use their toolsweight 3
3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max
- [claimed-docs] https://docs.unstructured.io/transform/overview“The Transform MCP server enables you to link your AI tools to Transform. You can then use your AI tools to have Transform ingest your local files and output the results as partitioned, enriched, chunked, and embedded data, ready for your immediate use.”
- [claimed-docs] https://docs.unstructured.io/transform/overview“This includes most AI code editors, IDEs, desktop assistants, and coding-agent frameworks. Tools such as the Codex CLI, Claude Code, Visual Studio Code, Cursor, Devin, and JetBrains IDEs are just a few examples.”
Connect an agent via an official MCP serverweight 3
3 (weight) × 8 (quality) × 1.0 (full) = 24.0 of 30 max
- [claimed-docs] https://docs.unstructured.io/transform/overview“The Transform MCP server enables you to link your AI tools to Transform. You can then use your AI tools to have Transform ingest your local files and output the results as partitioned, enriched, chunked, and embedded data, ready for your immediate use.”
- [claimed-docs] https://docs.unstructured.io/transform/overview“This includes most AI code editors, IDEs, desktop assistants, and coding-agent frameworks. Tools such as the Codex CLI, Claude Code, Visual Studio Code, Cursor, Devin, and JetBrains IDEs are just a few examples.”
- [probe] https://docs.unstructured.io/llms.txt“PROBE llms.txt: HTTP 200 at https://docs.unstructured.io/llms.txt # Unstructured > ## Agent Instructions > Fetch site content guidance and key links about the MCP server, SDK, and API a”
Use an official CLIweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
- [claimed-docs] https://docs.unstructured.io/api-reference/transform/overview“You can call the Unstructured API with the Unstructured Python SDK and with standard REST clients (such as cURL and Postman).”
- [claimed-docs] https://docs.unstructured.io/api-reference/transform/overview“You can call the Unstructured API with the [Unstructured Python SDK](/overview-python-sdk) and with standard [REST clients](/overview-rest-api) (such as cURL and Postman).”
- [claimed-docs] https://docs.unstructured.io/overview-python-sdk“The Unstructured Python SDK enables you to call the Unstructured API with standard Python code to partition, enrich, chunk, and embed your files.”
- [claimed-docs] https://docs.unstructured.io/overview-rest-api“You can call the Unstructured API through REST endpoints by using a REST client (such as cURL or Postman) to partition, enrich, chunk, and embed your files.”
- [claimed-docs] https://docs.unstructured.io/transform/overview“The Transform MCP server enables you to link your AI tools to Transform. You can then use your AI tools to have Transform ingest your local files and output the results as partitioned, enriched, chunked, and embedded data, ready for your immediate use.”
Drive the product through a documented public APIweight 3
3 (weight) × 8 (quality) × 1.0 (full) = 24.0 of 30 max
- [claimed-docs] https://docs.unstructured.io/api-reference/transform/overview“You can call the Unstructured API with the Unstructured Python SDK and with standard REST clients (such as cURL and Postman).”
- [claimed-docs] https://docs.unstructured.io/api-reference/api/job/job-apis“Track and control the processing jobs that execute your workflows. Trigger runs, monitor status, download results, and inspect any files that failed during processing.”
- [claimed-docs] https://docs.unstructured.io/api-reference/workflow/workflows“Build and manage Unstructured workflows with the Python SDK or REST endpoints. Create, update, run, and delete workflows that process and transform documents from source to destination.”
- [claimed-docs] https://docs.unstructured.io/api-reference/transform/overview“You can call the Unstructured API with the [Unstructured Python SDK](/overview-python-sdk) and with standard [REST clients](/overview-rest-api) (such as cURL and Postman).”
- [claimed-docs] https://docs.unstructured.io/overview-python-sdk“The Unstructured Python SDK enables you to call the Unstructured API with standard Python code to partition, enrich, chunk, and embed your files.”
- [claimed-docs] https://docs.unstructured.io/overview-rest-api“You can call the Unstructured API through REST endpoints by using a REST client (such as cURL or Postman) to partition, enrich, chunk, and embed your files.”
- [probe] https://docs.unstructured.io/openapi.json“PROBE openapi: all candidate paths 404 (https://docs.unstructured.io/openapi.json, https://docs.unstructured.io/swagger.json, https://docs.unstructured.io/api/openapi.json, https://docs.unstructured.io/.well-known/openapi.json)”
Issue scoped/least-privilege API credentials for an agentweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Build against official SDKsweight 2
2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max
- [claimed-docs] https://docs.unstructured.io/api-reference/transform/overview“You can call the Unstructured API with the Unstructured Python SDK and with standard REST clients (such as cURL and Postman).”
- [claimed-docs] https://docs.unstructured.io/api-reference/transform/overview“You can call the Unstructured API with the [Unstructured Python SDK](/overview-python-sdk) and with standard [REST clients](/overview-rest-api) (such as cURL and Postman).”
- [claimed-docs] https://docs.unstructured.io/overview-python-sdk“The Unstructured Python SDK enables you to call the Unstructured API with standard Python code to partition, enrich, chunk, and embed your files.”
- [claimed-docs] https://docs.unstructured.io/overview-rest-api“You can call the Unstructured API through REST endpoints by using a REST client (such as cURL or Postman) to partition, enrich, chunk, and embed your files.”
- [claimed-docs] https://docs.unstructured.io/quickstart-api“Use Unstructured with Python to go from an unstructured source file to structured data output in about 5 minutes.”
- [claimed-docs] https://docs.unstructured.io/api-reference/workflow/workflows“Build and manage Unstructured workflows with the Python SDK or REST endpoints. Create, update, run, and delete workflows that process and transform documents from source to destination.”
Subscribe to events via webhooksweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
- [claimed-docs] https://docs.unstructured.io/api-reference/api/job/job-apis“Track and control the processing jobs that execute your workflows. Trigger runs, monitor status, download results, and inspect any files that failed during processing.”
Agent-ready = 96.0 ÷ 210 × 100 = 45.7
API quality8.6/100×0.20 of the PA blend
The programmable surface once an agent is there — machine-readable spec, interactive docs, sandbox, versioning discipline.
Explore an interactive API reference with runnable examplesweight 2
2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max
- [claimed-docs] https://docs.unstructured.io/api-reference/transform/overview“You can call the Unstructured API with the Unstructured Python SDK and with standard REST clients (such as cURL and Postman).”
- [claimed-docs] https://docs.unstructured.io/quickstart-api“This quickstart partitions an example company annual report with a sample Python script and the Unstructured API.”
- [claimed-docs] https://docs.unstructured.io/api-reference/transform/overview“You can call the Unstructured API with the [Unstructured Python SDK](/overview-python-sdk) and with standard [REST clients](/overview-rest-api) (such as cURL and Postman).”
- [claimed-docs] https://docs.unstructured.io/overview-rest-api“You can call the Unstructured API through REST endpoints by using a REST client (such as cURL or Postman) to partition, enrich, chunk, and embed your files.”
- [claimed-docs] https://docs.unstructured.io/quickstart-api“From login to structured JSON in about 5 minutes, with Unstructured and Python.”
- [probe] https://docs.unstructured.io/openapi.json“PROBE openapi: all candidate paths 404 (https://docs.unstructured.io/openapi.json, https://docs.unstructured.io/swagger.json, https://docs.unstructured.io/api/openapi.json, https://docs.unstructured.io/.well-known/openapi.json)”
Download a machine-readable API spec (OpenAPI or equivalent)weight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
- [probe] https://docs.unstructured.io/openapi.json“PROBE openapi: all candidate paths 404 (https://docs.unstructured.io/openapi.json, https://docs.unstructured.io/swagger.json, https://docs.unstructured.io/api/openapi.json, https://docs.unstructured.io/.well-known/openapi.json)”
- [claimed-docs] https://docs.unstructured.io/api-reference/transform/overview“You can call the Unstructured API with the [Unstructured Python SDK](/overview-python-sdk) and with standard [REST clients](/overview-rest-api) (such as cURL and Postman).”
- [claimed-docs] https://docs.unstructured.io/overview-rest-api“You can call the Unstructured API through REST endpoints by using a REST client (such as cURL or Postman) to partition, enrich, chunk, and embed your files.”
Test against a sandbox environment without touching production dataweight 1
1 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 10 max
- [claimed-docs] https://unstructured.io/pricing“Start processing your data with 10,000 free pages.”
- [claimed-docs] https://unstructured.io/pricing“Deploy Unstructured in your own dedicated instance or VPC with multi-user access, full data isolation, dedicated technical support, and pricing tailored to your needs.”
- [claimed-docs] https://unstructured.io/pricing“Built for teams of any size that need privacy, control, and security. Deploy Unstructured in your own dedicated instance or VPC with multi-user access, full data isolation, dedicated technical support, and pricing tailored to your needs.”
Rely on versioned APIs with a documented deprecation policyweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
- [probe] https://docs.unstructured.io/openapi.json“PROBE openapi: all candidate paths 404 (https://docs.unstructured.io/openapi.json, https://docs.unstructured.io/swagger.json, https://docs.unstructured.io/api/openapi.json, https://docs.unstructured.io/.well-known/openapi.json)”
API quality = 6.0 ÷ 70 × 100 = 8.6
Openness25.2/100×0.20 of the PA blend
Can you leave, inspect, or self-host — data export, open source, portability.
Do everything through the API that I can do in the UIweight 2
2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max
- [claimed-docs] https://docs.unstructured.io/api-reference/workflow/overview“The Unstructured Pipelines workflow designer features a no-code user interface for transforming your unstructured data into data that is ready for retrieval-augmented generation (RAG).”
- [claimed-docs] https://docs.unstructured.io/api-reference/workflow/workflows“Build and manage Unstructured workflows with the Python SDK or REST endpoints. Create, update, run, and delete workflows that process and transform documents from source to destination.”
- [claimed-docs] https://docs.unstructured.io/api-reference/api/job/job-apis“Track and control the processing jobs that execute your workflows. Trigger runs, monitor status, download results, and inspect any files that failed during processing.”
- [claimed-docs] https://docs.unstructured.io/api-reference/transform/overview“You can call the Unstructured API with the [Unstructured Python SDK](/overview-python-sdk) and with standard [REST clients](/overview-rest-api) (such as cURL and Postman).”
- [probe] https://docs.unstructured.io/openapi.json“PROBE openapi: all candidate paths 404 (https://docs.unstructured.io/openapi.json, https://docs.unstructured.io/swagger.json, https://docs.unstructured.io/api/openapi.json, https://docs.unstructured.io/.well-known/openapi.json)”
Export all of my data in open formats and leaveweight 3
3 (weight) × 5 (quality) × 0.6 (partial) = 9.0 of 30 max
- [claimed-docs] https://docs.unstructured.io“Unify data silos: Discover hidden insights with 35+ connectors and 65+ file types. Consistent JSON format. All-in-one data layer.”
- [claimed-docs] https://docs.unstructured.io“Discover hidden insights with 35+ connectors and 65+ file types. Consistent JSON format. All-in-one data layer.”
- [claimed-docs] https://docs.unstructured.io/concepts/partitioning“_Partitioning_ converts content from unstructured files and semi-structured data records into structured [document elements and metadata](/concepts/document-elements) in a predefined, consistent, expressive, and contextualized JSON format.”
- [claimed-docs] https://docs.unstructured.io/api-reference/api/job/job-apis“Track and control the processing jobs that execute your workflows. Trigger runs, monitor status, download results, and inspect any files that failed during processing.”
Read the product's source under an open licenseweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Self-host the core productweight 3
3 (weight) × 5 (quality) × 0.6 (partial) = 9.0 of 30 max
- [claimed-docs] https://unstructured.io/pricing“Deploy Unstructured in your own dedicated instance or VPC with multi-user access, full data isolation, dedicated technical support, and pricing tailored to your needs.”
- [claimed-docs] https://docs.unstructured.io/business/dedicated-instances/security/security-model“**IP Allowlisting** - restricts Unstructured platform access to specific source IP addresses or CIDR ranges. Submit a support ticket with your IP list to enable this.”
- [claimed-docs] https://unstructured.io/pricing“Built for teams of any size that need privacy, control, and security. Deploy Unstructured in your own dedicated instance or VPC with multi-user access, full data isolation, dedicated technical support, and pricing tailored to your needs.”
Openness = 25.2 ÷ 100 × 100 = 25.2
Built-in AI17.3/100×0.15 of the PA blend
Inside-out: how agentic the product itself is for its users — built-in assistants, autonomous features.
Get AI-generated insights and suggestions from my data inside the productweight 2
2 (weight) × 2 (quality) × 0.6 (partial) = 2.4 of 20 max
- [claimed-docs] https://docs.unstructured.io“Unify data silos: Discover hidden insights with 35+ connectors and 65+ file types. Consistent JSON format. All-in-one data layer.”
- [claimed-docs] https://docs.unstructured.io“Discover hidden insights with 35+ connectors and 65+ file types. Consistent JSON format. All-in-one data layer.”
- [claimed-docs] https://docs.unstructured.io/concepts/structured-data-extractor/data-extractor“It lets you define the target structure up front. Unstructured then extracts values in a consistent JSON format that matches your fields, ready to use in your own applications.”
- [claimed-docs] https://docs.unstructured.io/concepts/enriching/table-to-html“After partitioning, you can have Unstructured generate representations of each detected table in HTML markup format. This table-to-HTML output is generated by using agentic AI or a vision language model (VLM).”
Set up automations that run autonomously in the backgroundweight 2
2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max
- [claimed-docs] https://docs.unstructured.io/api-reference/api/job/job-apis“Track and control the processing jobs that execute your workflows. Trigger runs, monitor status, download results, and inspect any files that failed during processing.”
- [claimed-docs] https://docs.unstructured.io/api-reference/workflow/workflows“Build and manage Unstructured workflows with the Python SDK or REST endpoints. Create, update, run, and delete workflows that process and transform documents from source to destination.”
- [claimed-docs] https://docs.unstructured.io/api-reference/workflow/overview“The Unstructured Pipelines workflow designer features a no-code user interface for transforming your unstructured data into data that is ready for retrieval-augmented generation (RAG).”
- [claimed-docs] https://docs.unstructured.io/api-reference/transform/quickstart/embed.md“Create a job to partition, chunk, and embed local files into AI-ready JSON with vector embeddings for semantic search.”
Delegate tasks to a built-in AI assistant inside the productweight 3
3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max
- [claimed-docs] https://docs.unstructured.io/quickstart“Use Unstructured with Claude and plain language prompts to go from an unstructured source file to structured data output in about 5 minutes.”
- [claimed-docs] https://docs.unstructured.io/transform/overview“The Transform MCP server enables you to link your AI tools to Transform. You can then use your AI tools to have Transform ingest your local files and output the results as partitioned, enriched, chunked, and embedded data, ready for your immediate use.”
- [claimed-docs] https://docs.unstructured.io/transform/overview“This includes most AI code editors, IDEs, desktop assistants, and coding-agent frameworks. Tools such as the Codex CLI, Claude Code, Visual Studio Code, Cursor, Devin, and JetBrains IDEs are just a few examples.”
Operate the product with natural-language commandsweight 2
2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max
- [claimed-docs] https://docs.unstructured.io/quickstart“Use Unstructured with Claude and plain language prompts to go from an unstructured source file to structured data output in about 5 minutes.”
- [claimed-docs] https://docs.unstructured.io/transform/overview“The Transform MCP server enables you to link your AI tools to Transform. You can then use your AI tools to have Transform ingest your local files and output the results as partitioned, enriched, chunked, and embedded data, ready for your immediate use.”
- [claimed-docs] https://docs.unstructured.io/transform/overview“This includes most AI code editors, IDEs, desktop assistants, and coding-agent frameworks. Tools such as the Codex CLI, Claude Code, Visual Studio Code, Cursor, Devin, and JetBrains IDEs are just a few examples.”
Built-in AI = 15.6 ÷ 90 × 100 = 17.3
Automation20.0/100×0.15 of the PA blend
Depth of automation primitives — rules, scheduling, bulk operations, webhooks.
Perform bulk operations across many items at onceweight 2
2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max
- [claimed-docs] https://docs.unstructured.io/api-reference/api/job/job-apis“Track and control the processing jobs that execute your workflows. Trigger runs, monitor status, download results, and inspect any files that failed during processing.”
- [claimed-docs] https://docs.unstructured.io/api-reference/workflow/workflows“Build and manage Unstructured workflows with the Python SDK or REST endpoints. Create, update, run, and delete workflows that process and transform documents from source to destination.”
- [claimed-docs] https://docs.unstructured.io“Unify data silos: Discover hidden insights with 35+ connectors and 65+ file types. Consistent JSON format. All-in-one data layer.”
- [claimed-docs] https://docs.unstructured.io/api-reference/transform/quickstart/embed.md“Create a job to partition, chunk, and embed local files into AI-ready JSON with vector embeddings for semantic search.”
- [claimed-docs] https://docs.unstructured.io/api-reference/transform/quickstart/enrich.md“Create a job to partition and enrich local files into AI-ready JSON with image descriptions, table HTML, named entities, and generative OCR output.”
- [claimed-docs] https://docs.unstructured.io/api-reference/workflow/sources/azure-blob-storage.md“Ingest your files into Unstructured from Azure Blob Storage.”
- [claimed-docs] https://docs.unstructured.io“Replace DIY pipelines: Move solutions into production faster. Reduce engineering costs. Eliminate maintenance. Resilient partitioning logic and robust visibility built in from day one.”
Define rules that trigger actions automatically on eventsweight 3
3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Schedule recurring jobs or workflowsweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
- [claimed-docs] https://docs.unstructured.io/api-reference/api/job/job-apis“Track and control the processing jobs that execute your workflows. Trigger runs, monitor status, download results, and inspect any files that failed during processing.”
- [claimed-docs] https://docs.unstructured.io/api-reference/workflow/workflows“Build and manage Unstructured workflows with the Python SDK or REST endpoints. Create, update, run, and delete workflows that process and transform documents from source to destination.”
- [claimed-docs] https://docs.unstructured.io/api-reference/workflow/overview“The Unstructured Pipelines workflow designer features a no-code user interface for transforming your unstructured data into data that is ready for retrieval-augmented generation (RAG).”
Version, review, and roll back my automationsweight 1
1 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 10 max
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Automation = 16.0 ÷ 80 × 100 = 20.0