Skip to content
ai-supply.store
DiscoverCategoriesLeaderboardsCommunityAgent APIFAQ
Sign inSign up free
catalog / Data & ETL / Unstructured
⇄ConnectorData & ETLFree

Unstructured

Open-source document ingestion library — partition PDFs, HTML, DOCX, and 25+ formats into clean elements for RAG pipelines.

@ai-supply
Installs72k
⟳ upstream 0.24.1 · updated 14d ago
↗ Source repository
← More Data & ETLData & ETL leaderboard →How we grade security →Source ↗
! Grade B · 75/100 · ReviewSecurity assessment
✓No compromise signals28capabilities surfaced1known CVE5of 20 OWASP controls clear
Suspicious code patternsBroad capability surfaceSuspicious code patternsInternal host / private infrastructure reference
scanned 14d ago·osv · gitleaks · opengrep · picklescan + heuristics·full breakdown in the Security tab ↓

Unstructured

Unstructured is the leading open-source library for ingesting and preprocessing unstructured documents for use in LLM applications. It partitions documents into typed elements (Title, NarrativeText, Table, Image, etc.), extracts metadata, and cleans text — making raw files ready for chunking and embedding.

Key Features

  • 25+ file formats — PDF, HTML, DOCX, PPTX, XLSX, EML, MSG, MD, RST, TXT, images, and more
  • Partition strategies — fast (rule-based), hi_res (layout detection with detectron2), ocr_only
  • Element types — Title, NarrativeText, Table, ListItem, Image, Header, Footer, FigureCaption
  • Table extraction — HTML table extraction from PDFs with hi_res strategy
  • LangChain / LlamaIndex connectors — UnstructuredLoader is a first-class integration in both
  • Connectors — S3, GCS, Azure Blob, Confluence, Google Drive, SharePoint, Slack, and more

Quick Start

pip install unstructured[pdf]
from unstructured.partition.pdf import partition_pdf

elements = partition_pdf("research_paper.pdf", strategy="hi_res")
for el in elements[:5]:
    print(el.category, ":", str(el)[:80])

Install via ai-supply

npx ai-supply add unstructured-document-ingestion

Curated mirror of the open-source Unstructured project (Apache-2.0). Install upstream from the repository.

Rating rank
#1
of 24 in Data & ETL
Install rank
#15
of 24 in Data & ETL
Security score
75/100 · B
review
Security rank
#12
of 24 in Data & ETL
Installs
72k
cat avg 164k
This listing vs category average
Installs
this
cat avg
Security (of 100)
this
cat avg
Adoption trend
See the Data & ETL leaderboard →
! Security: Review · 7575/100 · grade Bscanned 14d ago
✓ no compromise signals29 risk-surface · 9/20 OWASP controls flagged

Compromise signals — malicious or tampered code (leaked secrets, backdoors, a dropped executable) — reduce the score, and known dependency CVEs carry a bounded penalty (they warrant review but never QUARANTINE — update the dependency to clear). Other dangerous-by-capability traits are risk surface, expected for some capabilities. Every finding is mapped to its OWASP control below.

What this capability can do · med confidence (static)
⚑ filesystem⚑ shell⚑ network⚑ secretsinstall: script:Unstructured-IO-unstructured-cda16b3/scripts/setup_al2.shinstall: script:Unstructured-IO-unstructured-cda16b3/scripts/setup_ubuntu.sh
egress → get.docker.com, aka.ms, docs.github.com, api.github.com, pkgs.dev.azure.com, docs.python.org, www.contributor-covenant.org, img.shields.io +32
auth: api_keyget.docker.comgithub.comaka.msdocs.github.comapi.github.compkgs.dev.azure.comdocs.python.orgwww.contributor-covenant.org

Findings mapped to the OWASP Top 10 for LLM Applications (2025) and the OWASP Machine Learning Security Top 10. Expand any flagged control for the exact findings — compromise reduces the score; expected/risk-surface do not, except a known CVE, which carries a small bounded penalty (high/critical → Review).

OWASP Top 10 for LLM Applications
⚠LLM03Supply Chaincritical
Vulnerable/compromised dependencies, models or archives in the artifact.
•Dependency manifest — 4 pip requirements declared · Unstructured-IO-unstructured-cda16b3/scripts/performance/requirements.txtrisk surface
•Vulnerable dependencies — 66 known vulnerabilities in: memray@1.9.1, aiohttp@3.13.5, authlib@1.6.9, chromadb@1.5.7, couchbase@4.6.0, cryptography@46.0.7, idna@3.11, langchain-core@1.2.28 (CWE-1395)known CVE · -25 pts
⚠LLM01Prompt Injectionhigh
Adversarial instructions embedded in an artifact that hijack a downstream LLM.
•Prompt-injection phrasing — instruction-subversion language detected · Unstructured-IO-unstructured-cda16b3/test_unstructured_ingest/expected-structured-output-html/azure/rfc854.txt.html (CWE-77)risk surface
⚠LLM05Improper Output Handlinghigh
Code that pipes model/user output into shell, eval, SQL or paths unsafely.
•Suspicious code patterns — pipe-to-shell install · Unstructured-IO-unstructured-cda16b3/.github/workflows/build-opencv-wheels.yml (CWE-494)risk surface
•Suspicious code patterns — destructive rm -rf / · Unstructured-IO-unstructured-cda16b3/Dockerfile (CWE-78)risk surface
•Suspicious code patterns — OS command execution · Unstructured-IO-unstructured-cda16b3/scripts/collect_env.py (CWE-78)risk surface
•Suspicious code patterns — dynamic code execution · Unstructured-IO-unstructured-cda16b3/test_unstructured/partition/html/test_partition_v2.py (CWE-95)risk surface
⚠LLM06Excessive Agencyhigh
Over-broad tool/permission surface or unrestricted egress.
•External endpoints declared — 1 distinct host(s) · Unstructured-IO-unstructured-cda16b3/.github/workflows/build-opencv-wheels.ymlexpected
•External endpoints declared — 3 distinct host(s) · Unstructured-IO-unstructured-cda16b3/.github/workflows/codeql-analysis.ymlexpected
•Broad capability surface — 4 high-impact capability categories referenced — verify least-privilege · Unstructured-IO-unstructured-cda16b3/CHANGELOG.md (CWE-272)risk surface
•External endpoints declared — 2 distinct host(s) · Unstructured-IO-unstructured-cda16b3/CHANGELOG.mdexpected
•External endpoints declared — 11 distinct host(s) · Unstructured-IO-unstructured-cda16b3/CONTRIBUTING.mdexpected
•External endpoints declared — 18 distinct host(s) · Unstructured-IO-unstructured-cda16b3/README.mdexpected
•External endpoints declared — 9 distinct host(s) · Unstructured-IO-unstructured-cda16b3/example-docs/eml/email-replace-mime-encodings-error-1.emlexpected
•External endpoints declared — 4 distinct host(s) · Unstructured-IO-unstructured-cda16b3/example-docs/eml/email-replace-mime-encodings-error-2.emlexpected
•External endpoints declared — 8 distinct host(s) · Unstructured-IO-unstructured-cda16b3/example-docs/eml/email-replace-mime-encodings-error-3.emlexpected
•External endpoints declared — 17 distinct host(s) · Unstructured-IO-unstructured-cda16b3/example-docs/eml/email-replace-mime-encodings-error-4.emlexpected
•External endpoints declared — 6 distinct host(s) · Unstructured-IO-unstructured-cda16b3/example-docs/example-steelJIS-datasheet.htmlexpected
•External endpoints declared — 37 distinct host(s) · Unstructured-IO-unstructured-cda16b3/example-docs/example-with-scripts.htmlexpected
•Broad capability surface — 3 high-impact capability categories referenced — verify least-privilege · Unstructured-IO-unstructured-cda16b3/example-docs/fake-html-pre.htm (CWE-272)risk surface
•External endpoints declared — 41 distinct host(s) · Unstructured-IO-unstructured-cda16b3/example-docs/norwich-city.txtexpected
•External endpoints declared — 7 distinct host(s) · Unstructured-IO-unstructured-cda16b3/test_unstructured/cleaners/test_extract.pyexpected
•Egress to a private/loopback host — 127.0.0.1, 169.254.169.254, 10.0.0.1, [::1], [::ffff:a9fe:a9fe] · Unstructured-IO-unstructured-cda16b3/test_unstructured/test_safe_http.py (CWE-918)expected
•External endpoints declared — 14 distinct host(s) · Unstructured-IO-unstructured-cda16b3/test_unstructured_ingest/expected-structured-output-html/azure/spring-weather.html.htmlexpected
•External endpoints declared — 5 distinct host(s) · Unstructured-IO-unstructured-cda16b3/test_unstructured_ingest/expected-structured-output-html/biomed-api/75/29/main.PMC6312793.pdf.htmlexpected
⚠LLM07System Prompt Leakagemedium
Secrets, internal hosts or proprietary logic exposed in shipped prompts.
•Internal host / private infrastructure reference — shipped content references a private IP range or internal-only host · Unstructured-IO-unstructured-cda16b3/example-docs/eml/email-no-html-content-1.eml (CWE-200)risk surface
•Low-confidence secret match — 1 possible: generic-api-key · Unstructured-IO-unstructured-cda16b3/example-docs/example-with-scripts.html (CWE-798)risk surface
⚠LLM02Sensitive Information Disclosurelow
Secrets, credentials or PII shipped inside the artifact.
•Low-confidence secret match — 1 possible: generic-api-key · Unstructured-IO-unstructured-cda16b3/example-docs/example-with-scripts.html (CWE-798)risk surface
§LLM09MisinformationGovernance
Artifacts designed to produce false/deceptive output.
Detectable only by runtime behavioral evaluation; addressed via responsible-use attestation.
◷LLM10Unbounded ConsumptionRuntime-enforced
Unbounded loops/recursion causing DoS or runaway cost.
Enforced at runtime by the gateway (rate limits + spend caps + size caps); static check flags unbounded loops.
✓LLM04Data and Model PoisoningPassed
Backdoors/poisoning in training data or serialized models.
Behavioral poisoning needs model execution; static check covers unsafe serialization + dataset skew only.
✓LLM08Vector and Embedding WeaknessesPassed
PII or plaintext source leakage in embedding/vector exports.
Embedding inversion/poisoning is largely runtime; static check covers PII in vector exports.
OWASP Machine Learning Security Top 10
⚠ML06AI Supply Chaincritical
Compromised PyPI/npm packages, typosquats, unsafe serialized models.
•Dependency manifest — 4 pip requirements declared · Unstructured-IO-unstructured-cda16b3/scripts/performance/requirements.txtrisk surface
•Vulnerable dependencies — 66 known vulnerabilities in: memray@1.9.1, aiohttp@3.13.5, authlib@1.6.9, chromadb@1.5.7, couchbase@4.6.0, cryptography@46.0.7, idna@3.11, langchain-core@1.2.28 (CWE-1395)known CVE · -25 pts
⚠ML02Data Poisoninghigh
Poisoned training datasets with triggers or anomalous distributions.
Static check covers trigger phrasing, PII and label skew; full poisoning detection is runtime.
•Prompt-injection phrasing — instruction-subversion language detected · Unstructured-IO-unstructured-cda16b3/test_unstructured_ingest/expected-structured-output-html/azure/rfc854.txt.html (CWE-77)risk surface
⚠ML09Output Integrityhigh
Middleware tampering with model outputs in transit.
Gateway enforces TLS + response integrity; static check flags output-rewriting code.
•Suspicious code patterns — pipe-to-shell install · Unstructured-IO-unstructured-cda16b3/.github/workflows/build-opencv-wheels.yml (CWE-494)risk surface
•Suspicious code patterns — destructive rm -rf / · Unstructured-IO-unstructured-cda16b3/Dockerfile (CWE-78)risk surface
•Suspicious code patterns — OS command execution · Unstructured-IO-unstructured-cda16b3/scripts/collect_env.py (CWE-78)risk surface
•Suspicious code patterns — dynamic code execution · Unstructured-IO-unstructured-cda16b3/test_unstructured/partition/html/test_partition_v2.py (CWE-95)risk surface
§ML01Input Manipulation (Adversarial)Governance
Models vulnerable to adversarial perturbations.
Requires runtime robustness evaluation; addressed via publisher robustness attestation.
§ML03Model InversionGovernance
Training data reconstructable from a model's outputs.
Runtime/evaluation property; addressed via model-card data-provenance + DP attestation.
§ML04Membership InferenceGovernance
Determining whether a record was in the training set.
Runtime/evaluation property; addressed via overfitting disclosure + DP attestation.
§ML08Model SkewingGovernance
Models trained on skewed data producing biased output.
Requires fairness evaluation; addressed via model-card bias/limitations disclosure.
✓ML05Model TheftPassed
Unlicensed re-distribution / license-incompatible derivatives.
Static check verifies license declaration; extraction throttling is runtime.
✓ML07Transfer Learning AttackPassed
Backdoored base models / LoRA adapters propagating to derivatives.
Backdoor detection needs behavioral probing; static check covers unsafe serialization + provenance.
✓ML10Model Poisoning (Weights)Passed
Tampered model weight files; integrity must be verifiable.
Static check enforces safe formats + records a content hash for downstream verification.
Other findings (26) · hygiene / uncategorized
•Unrecognized file type — '.coveragerc' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/.coveragercrisk surface
•Unrecognized file type — '.dockerignore' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/.dockerignorerisk surface
•Unrecognized file type — '.gitignore' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/.gitignorerisk surface
•Unrecognized file type — '.python-version' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/.python-versionrisk surface
•Unrecognized file type — '.?' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/Dockerfilerisk surface
•Unrecognized file type — '.docx' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/example-docs/duplicate-paragraphs.docxrisk surface
•Archive disguised as another type — content is a zip but extension is .docx · Unstructured-IO-unstructured-cda16b3/example-docs/duplicate-paragraphs.docxrisk surface
•Unrecognized file type — '.eml' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/example-docs/eml/email-equals-attachment-filename.emlrisk surface
•Unrecognized file type — '.p7s' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/example-docs/eml/signed-doc.p7srisk surface
•Suspicious network references — URL shortener (331 URLs) · Unstructured-IO-unstructured-cda16b3/example-docs/example-with-scripts.htmlrisk surface
•Unrecognized file type — '.rtf' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/example-docs/fake-doc.rtfrisk surface
•Unrecognized file type — '.htm' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/example-docs/fake-html-pre.htmrisk surface
•Unrecognized file type — '.pptx' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/example-docs/fake-power-point-many-pages.pptxrisk surface
•Archive disguised as another type — content is a zip but extension is .pptx · Unstructured-IO-unstructured-cda16b3/example-docs/fake-power-point-many-pages.pptxrisk surface
•Unrecognized file type — '.odt' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/example-docs/language-docs/eng_spa_mult.odtrisk surface
•Archive disguised as another type — content is a zip but extension is .odt · Unstructured-IO-unstructured-cda16b3/example-docs/language-docs/eng_spa_mult.odtrisk surface
•Unrecognized file type — '.xlsx' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/example-docs/more-than-1k-cells.xlsxrisk surface
•Archive disguised as another type — content is a zip but extension is .xlsx · Unstructured-IO-unstructured-cda16b3/example-docs/more-than-1k-cells.xlsxrisk surface
•Unrecognized file type — '.ndjson' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/example-docs/simple.ndjsonrisk surface
•Unrecognized file type — '.xsl' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/example-docs/unsupported/factbook.xslrisk surface
•Unrecognized file type — '.json5' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/renovate.json5risk surface
•Unrecognized file type — '.env' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/scripts/elasticsearch-test-helpers/common/es-dest-ingest-test-creds.envrisk surface
•Suspicious network references — raw IP URL (53 URLs) · Unstructured-IO-unstructured-cda16b3/test_unstructured/test_safe_http.pyrisk surface
•Unrecognized file type — '.pyi' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/typings/filetype/__init__.pyirisk surface
•Suspicious network references — suspicious TLD (2 URLs) · Unstructured-IO-unstructured-cda16b3/unstructured/partition/utils/ocr_models/paddle_ocr.pyrisk surface
•Unrecognized file type — '.typed' is not on the allowlist · Unstructured-IO-unstructured-cda16b3/unstructured/py.typedrisk surface
✔ verified source · pinned Unstructured-IO-unstructured-cda16b3
Check against a policy

The same gate an agent runs before installing (POST /api/v1/trust/unstructured-document-ingestion/check). Click a policy:

Consume Unstructured programmatically. Authenticate with an API key or session — see Authorize an agent.

# Agents: CHECK BEFORE YOU INSTALL (no auth) — score, grade, level, capability manifest
curl https://ai-supply.store/api/v1/trust/unstructured-document-ingestion

# Gate against your org policy (returns { pass, violations })
curl -X POST https://ai-supply.store/api/v1/trust/unstructured-document-ingestion/check \
  -H "Content-Type: application/json" \
  -d '{"minGrade":"B","denyPermissions":["shell"],"denyUnknownEgress":true}'

# CLI
npx ai-supply add unstructured-document-ingestion

# REST (install → download)
curl -X POST https://ai-supply.store/api/v1/listings/unstructured-document-ingestion/install \
  -H "Authorization: Bearer $AIM_KEY"

# MCP tool
install_listing({ "slug": "unstructured-document-ingestion" })
OpenAPI spec →
vlatest
! Security: Review · 751mo ago

Curated mirror — latest upstream source. See the repository for tagged releases.

Sign in and install this listing to leave a review.

More from @ai-supply

View profile →
◉Agent
MetaGPT
Multi-agent framework that assigns GPT roles (PM, engineer, QA) to solve complex software tasks end-to-end.
↓ 1.0M
⇄Connector
vLLM
High-throughput, memory-efficient LLM inference engine with PagedAttention and continuous batching.
↓ 892k
⇄Connector
Meilisearch
Lightning-fast open-source search engine with typo-tolerance, semantic hybrid search, and sub-50ms response times.
↓ 811k
△Eval
Weights & Biases (wandb)
ML experiment tracking and visualization — log metrics, hyperparameters, models, and media in real time.
↓ 784k
ai-supply.store

Free, security-vetted AI capabilities — skills, MCPs, plugins, agents, datasets and more, each graded and freshness-tracked, and built for humans and agents alike.

api · v3.1status · all green
Contact
support@ai-supply.storesecurity@ai-supply.store
Catalog
  • Discover
  • Categories
  • Leaderboards
  • Benchmarks
  • Security
  • Scan a repo
Community
  • Community
  • FAQ
For agents
  • Quickstart (60s)
  • Authorize an agent
  • Agent API
  • OpenAPI spec
For builders
  • Publish
  • Dashboard
Account
  • Create account
  • Sign in
  • Settings
Legal
  • Terms
  • Publisher Agreement
  • Acceptable Use
  • Privacy