Skip to content

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.txtPROBE 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.jsonPROBE 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/overviewYou 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-apisTrack 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/workflowsBuild 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-sdkThe 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-apiYou 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/overviewThe 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/overviewThis 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/overviewThe 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/overviewThis 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.txtPROBE 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/overviewYou 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/overviewYou 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-sdkThe 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-apiYou 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/overviewThe 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/overviewYou 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-apisTrack 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/workflowsBuild 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/overviewYou 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-sdkThe 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-apiYou 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.jsonPROBE 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/overviewYou 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/overviewYou 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-sdkThe 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-apiYou 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-apiUse 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/workflowsBuild 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-apisTrack 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/overviewYou 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-apiThis 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/overviewYou 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-apiYou 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-apiFrom login to structured JSON in about 5 minutes, with Unstructured and Python.
  • [probe] https://docs.unstructured.io/openapi.jsonPROBE 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.jsonPROBE 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/overviewYou 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-apiYou 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/pricingStart processing your data with 10,000 free pages.
  • [claimed-docs] https://unstructured.io/pricingDeploy 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/pricingBuilt 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.jsonPROBE 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/overviewThe 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/workflowsBuild 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-apisTrack 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/overviewYou 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.jsonPROBE 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.ioUnify 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.ioDiscover 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-apisTrack 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/pricingDeploy 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/pricingBuilt 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.ioUnify 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.ioDiscover 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-extractorIt 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-htmlAfter 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-apisTrack 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/workflowsBuild 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/overviewThe 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.mdCreate 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/quickstartUse 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/overviewThe 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/overviewThis 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/quickstartUse 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/overviewThe 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/overviewThis 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-apisTrack 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/workflowsBuild 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.ioUnify 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.mdCreate 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.mdCreate 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.mdIngest your files into Unstructured from Azure Blob Storage.
  • [claimed-docs] https://docs.unstructured.ioReplace 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-apisTrack 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/workflowsBuild 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/overviewThe 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