# Nutrient DWS Processor API > Hosted REST API from Nutrient (formerly PSPDFKit) that generates, converts, merges, OCRs, redacts, watermarks and signs PDF and Office documents. Agents call it with a Bearer key or through a local stdio MCP server. - Canonical: https://www.anchorterminal.com/tools/nutrient-dws-processor - Markdown: https://www.anchorterminal.com/tools/nutrient-dws-processor.md (~8,150 tokens) - Slim: https://www.anchorterminal.com/tools/nutrient-dws-processor.min.md (~2,030 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/tools/nutrient-dws-processor.json (this page as data, same URL with Accept: application/json) - Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt) - API: https://www.anchorterminal.com/api/v1/index.json - Updated: 2026-10-09 ## Overview **Grade B · 68.7/100 · rank #197 of 842 · #1 in PDF tools · not agent-ready · confidence medium** ## Assessment A public OpenAPI 3.1 document, JSONPath-level error bodies and OAuth or operation-limited tokens make the API easy for an agent to call, and 50 free credits a month need no card. The status feed shows 61 minutes of platform downtime on 13 July 2026, and the terms let plans with data retention train models on submitted files. ## Facts | Field | Value | | --- | --- | | Vendor | Nutrient (PSPDFKit GmbH) (https://www.nutrient.io) | | Kind | HTTP API | | Category | PDF tools (https://www.anchorterminal.com/categories/pdf-tools) | | Transport | HTTP, stdio | | Endpoint | `https://api.nutrient.io` | | Auth | OAuth or key · Self-serve. A person signs up at dashboard.nutrient.io and copies a live key, sent as `Authorization: Bearer `. Keys can be scoped to one DWS product. `POST /tokens` issues a JWT limited to named operations and origins, valid for one hour by default and at most 24, and revocable with `DELETE /tokens`. The MCP server uses OAuth in a browser (PKCE, dynamic client registration, scopes such as `product:processor`) or `NUTRIENT_DWS_API_KEY` for headless use. Test keys need Support to enable them. | | Pricing | Freemium ($75 / mo) · Free plan of 50 credits a month, no card, with watermarked output. Paid plans are Starter $75 a month for 1,000 credits, Growth $275 for 5,000 and Pro $445 for 10,000, with 10 per cent off billed yearly and custom plans above that. Most tools cost a fixed number of credits per use, from 0.5 to 10, and AI redaction is priced per page. Pay-as-you-go overage has a spending cap, and on the free plan starts with a $25 wallet load. The per-credit overage rate was not readable (https://www.nutrient.io/api/pricing/processor-api/, checked 2026-10-08). | | x402 | No · No x402, MPP or L402 in the guides, the OpenAPI document, the pricing page or the MCP server README (checked 2026-10-08). | | Licence | Proprietary service under the Nutrient DWS API licence agreement. The MCP server and the TypeScript and Python clients are MIT | | Tools exposed | 8 | | Packages | npm: `@nutrient-sdk/dws-mcp-server`; npm: `@nutrient-sdk/dws-client-typescript`; pypi: `nutrient-dws` | | MCP registry name | `io.github.PSPDFKit/nutrient-dws-mcp-server` | | Source | https://github.com/PSPDFKit/nutrient-dws-mcp-server | | Docs | https://www.nutrient.io/guides/dws-processor/ | | llms.txt | https://www.nutrient.io/guides/dws-processor/llms.txt | | Last release | 2026-08-27 | | GitHub stars | 71 (as of 2026-10-08) | | npm downloads / week | 2,701 | | PyPI downloads / week | 2,214 | | Endpoints | 17 operations in OpenAPI 1.19.0. `/build`, `/analyze_build`, `/sign`, `/ai/redact`, `/process_office_template`, six `/processor/*` shortcuts (convert_to_pdf, generate_pdf, ocr, redact, watermark, md_to_pdf), async job status and result, `/tokens`, and account usage | | Operations | HTML, Markdown, Office, image and URL to PDF, PDF to Office, HTML, Markdown and images, merge, split, rotate, page edits, watermark, OCR, redaction and AI redaction, form filling by Instant JSON, XFDF import, flatten, passwords and permissions, optimisation, linearisation, PDF/A and PDF/UA, digital signatures, text, table and key-value extraction | | Free tier | 50 credits a month, no card, output watermarked. Not for commercial use by organisations over 20 employees or $1 million in revenue | | Credit costs | Fixed per use for most tools. HTML to PDF 0.5, image to PDF 0.5, PDF to image 0.5, merge 1, compress 1, watermark 1, redaction 1, Office to PDF 1, PDF to Office 1, OCR 2, text extraction 3, digital signature 10. AI redaction is per page | | Rate limits | 100 requests a minute per API key on all plans. Test keys 10 a minute, 5 MB request and result size, no AI tools | | Errors | JSON body with `details`, `status`, `requestId` and `failingPaths` (JSONPath plus message). Async jobs add `error.reason` codes. `/build` documents 400, 401, 402, 403, 408, 409, 413, 422, 429, 500 and 503 | | Async and retries | `Prefer: respond-async` on `/build` returns 202 with `Location`, `Retry-After` and a job access token. `Idempotency-Key` up to 255 bytes, async only | | Credentials | Live API key (global or scoped), JWT from `POST /tokens` with allowed operations, origins and expiry up to 24 hours, or OAuth with PKCE and dynamic client registration | | MCP server | Official, local stdio, `npx -y @nutrient-sdk/dws-mcp-server`, MIT, v0.1.3. Eight tools (document_processor, document_signer, ai_redactor, check_credits, parse_document, extract_fields, sandbox_file_tree, directory_tree) and five prompts. All tools annotated | | SDKs | TypeScript `@nutrient-sdk/dws-client-typescript` 3.0.0 (23 August 2026) and Python `nutrient-dws` 3.1.0 (27 May 2026), both MIT. Samples for Java, C#, PHP and shell | | Data retention | Plans without retention delete uploads and results within 24 hours and store only MIME type and page count. Plans with retention keep files and outputs and use them to train models | | Certifications | SOC 2 Type 2 and SOC 3 per trust.nutrient.io, annual penetration testing by Prescient Security, vulnerability disclosure policy | | Status | www.nutrientstatus.com on Better Stack. Processor API 99.981 per cent and DWS Platform 99.950 per cent over 90 days, as the page reports | | Billing | Paddle is merchant of record. Responses carry `x-pspdfkit-request-cost` and `x-pspdfkit-remaining-credits`. The vendor says 4xx and 5xx responses cost no credits | | Capabilities | pdf.convert, pdf.merge, pdf.forms, pdf.generate, pdf.extract, docs.ocr, docs.tables | | Tags | hosted, mcp, oauth, openapi, llms-txt, typescript, python, async-jobs, free-tier, status-page, soc2 | | JSON | https://www.anchorterminal.com/api/v1/tools/nutrient-dws-processor.json | ## Score breakdown (methodology v0.4, October 2026 research run) Assessed 2026-10-08 from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/#checklist). Confidence: medium. Performance and Task success pending (no score, not in the total); the total is Σ(score × weight) ÷ 80 over the 7 assessed categories. "This run" is each category's share of the 100 points. | Category | Weight | This run | Score (0–100) | Points | | --- | --- | --- | --- | --- | | Reliability | 16% | 20 | 68 | 13.6 | | Performance | 10% | pending | pending | n/a | | Schema & documentation | 13% | 16.2 | 84 | 13.7 | | Agent ergonomics | 13% | 16.2 | 84 | 13.7 | | Security & auth | 14% | 17.5 | 66 | 11.6 | | Payments & pricing | 10% | 12.5 | 40 | 5.0 | | Task success | 10% | pending | pending | n/a | | Maintenance & community | 7% | 8.8 | 78 | 6.8 | | Transparency & trust (editorial 62, provenance 84) | 7% | 8.8 | 73 | 6.4 | | Negative events | up to −15 | up to −15 | 2026-10-08. The product page FAQ says the API runs without strict rate limits or hard caps, while the pricing guide sets 100 requests a minute per key on every plan. The MCP product page also invites users to start on a free test key, which the test-mode guide says Support must enable first. Two points (https://www.nutrient.io/api/processor-api/, https://www.nutrient.io/guides/dws-processor/pricing.md). | -2 | | **Total** | | | | **68.7 → B** | ### Why each score - Reliability 68: Graded with the hosted lines. Status page at www.nutrientstatus.com on Better Stack with a Processor API component and 90 days of daily history (20). The JSON feed shows DWS Platform, the routing layer in front of the API, down for 3,679 seconds (61 minutes) on 13 July 2026, and the Processor API monitor down on five days from 23 July to 23 August, the longest 715 seconds. We read the 13 July figure as one major outage (10). No written incident reports could be read. The pricing guide gives 100 requests a minute per key on all plans and 10 a minute for test keys (15). It recommends exponential backoff, async admission returns `Retry-After`, and `Idempotency-Key` covers async builds only, so 13 of 15. The product page mentions guaranteed SLAs on custom plans, but no SLA document is published and the terms disclaim availability (0). GA, at spec version 1.19.0 (10). - Performance: Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes. - Schema & documentation 84: A public OpenAPI 3.1.0 document, version 1.19.0, with 17 operations and 203 schemas, loaded by the reference page from Nutrient's CDN. The eight MCP tools have typed Zod inputs (25). llms.txt at site and product level with topic indexes, and a Markdown twin of each guide (10). Tag descriptions explain the Build API, async jobs and authorisation at length, and the MCP `document_processor` description sends extraction work to `parse_document` (15). 102 of 203 schemas use enums and build actions are discriminated by `type`. The MCP schema has one free-form record (13). Guides carry samples in six languages, and the errors guide and async tables document the response bodies (14). The spec is versioned and the MCP server keeps a changelog, but no public API changelog was found (7). - Agent ergonomics 84: Eight MCP tools, in the ten-or-fewer band, though the schema source is 35 KB. API responses are files or `json-content` with switches for plain text, structured text, key-value pairs and tables (20). Page ranges per part, output switches, and MCP tools that write large output to a file and return a summary. Nothing to paginate (15). Errors carry `failingPaths` in JSONPath form, a `requestId`, and `error.reason` codes with recommended handling for async jobs (18). `Idempotency-Key` on async `/build` only, and all eight MCP tools carry the four annotations (17). Single-purpose endpoints such as `/processor/generate_pdf` need one file, `/build` chains actions, and official clients exist for TypeScript (3.0.0) and Python (3.1.0) (14). - Security & auth 66: OAuth at api.nutrient.io with PKCE (S256), dynamic client registration, a revocation endpoint and per-product scopes such as `product:processor`. Live keys can be scoped, and `POST /tokens` issues JWTs limited to named operations and origins, expiring within 24 hours and revocable. The base key can only be regenerated. No query-string credential is documented (28). Scoped keys, operation-limited JWTs, read-only annotations and an optional sandbox directory, but no confirmation step, and without `SANDBOX_PATH` the MCP server has no path restriction (13). Document text comes back as untrusted content. Large output goes to a file by design, and no prompt-injection guidance was found (4). Each response reports credit cost and remaining credits with a request id, and a usage endpoint exists. No audit log was found (6). SOC 2 Type 2 and SOC 3 per the trust centre, annual penetration testing by Prescient Security, and a vulnerability disclosure policy with a report page. security.txt is a 404 and no bounty was established (15). - Payments & pricing 40: No x402, MPP or L402 (0). Plans are public at $75, $275 and $445 a month for 1,000, 5,000 and 10,000 credits, with 10 per cent off for yearly billing, and the pricing page gives the credit cost of twelve tools, from 0.5 for HTML to PDF to 10 for a digital signature (20). The free plan gives 50 credits a month with no card and watermarked output (20). The OAuth server supports dynamic client registration and a device flow, but a person still signs in or signs up in a browser (0). - Task success: Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored. - Maintenance & community 78: MCP server v0.1.3 tagged 27 August 2026, 42 days before this check, and the TypeScript client 3.0.0 on 23 August (20). Four MCP releases since 10 July (0.1.0, 0.1.1, 0.1.2, 0.1.3) plus the client release (20). On GitHub, issue 35 was fixed the day it was filed, while issue 29 has been open since 8 June with no reply and pull request 42 since 28 August. Support answers through a form with a stated target of one business day (15 of 25). The MCP server is in the official registry as `io.github.PSPDFKit/nutrient-dws-mcp-server` at 0.1.3 (15). CI runs lint, build and tests with actions pinned to commit hashes (8). - Transparency & trust 73: The API is closed under a dated licence agreement (September 2026) naming PSPDFKit GmbH, and the MCP server and both clients are MIT, so between the two bands (20). The privacy policy has a Processor API section, the terms carry data processing terms in section 9, and files are deleted within 24 hours on plans without retention. Plans with retention enabled let Nutrient keep files and train models on them, and no public page says which plans those are (20). No deprecation policy. The terms allow changes at any time with reasonable efforts at notice, and the one deprecated endpoint in the spec has no removal date (4). The trust centre lists 51 sub-processors with locations, updated 8 September 2026, and the status page names Frankfurt and Oregon processing regions (18). Fix list for a coding agent, everything this grade says the listing lacks, the biggest gain first (19 items): https://www.anchorterminal.com/fixes/nutrient-dws-processor.md (JSON https://www.anchorterminal.com/fixes/nutrient-dws-processor.json) ### What we couldn't check - unchecked: the pay-as-you-go price per credit on each plan. The pricing page draws it by script and our read showed a placeholder - unchecked: which plans have data retention enabled. The terms say it is indicated for each subscription plan, and the public pricing page does not say - unchecked: written incident reports. The status page's updates view returned an empty body, so the incident record is read from per-day downtime seconds in the JSON feed - unchecked: the per-tool credit table in the dashboard, which is behind a sign-in. The Markdown twin of the per-tool pricing guide has empty credit cells, so costs come from the twelve tools shown on the pricing page - unchecked: the date of OpenAPI version 1.19.0. No public API changelog was found - unchecked: the vulnerability disclosure policy and SOC 2 report in the trust centre, which need an access request - The lead called the MCP server a way to use the API. It is a local stdio package, not a hosted endpoint, and it also wraps the separate Data Extraction API ### Sources - llms.txt for the Processor API: (seen 2026-10-08) - getting started guide: (seen 2026-10-08) - API reference: (seen 2026-10-08) - OpenAPI 3.1 document, version 1.19.0: (seen 2026-10-08) - authentication guide: (seen 2026-10-08) - errors guide: (seen 2026-10-08) - pricing guide with rate limits: (seen 2026-10-08) - pricing page: (seen 2026-10-08) - product page and FAQ: (seen 2026-10-08) - test mode guide: (seen 2026-10-08) - security guide: (seen 2026-10-08) - privacy guide: (seen 2026-10-08) - DWS API licence agreement: (seen 2026-10-08) - privacy policy: (seen 2026-10-08) - trust centre and sub-processor list: (seen 2026-10-08) - security page: (seen 2026-10-08) - status page: (seen 2026-10-08) - status page JSON feed: (seen 2026-10-08) - OAuth server metadata: (seen 2026-10-08) - MCP server repository, source, tags and changelog: (seen 2026-10-08) - MCP registry search: (seen 2026-10-08) - npm, TypeScript client: (seen 2026-10-08) - PyPI, Python client: (seen 2026-10-08) - RDAP for nutrient.io: (seen 2026-10-08) - security.txt (404): (seen 2026-10-08) ## Who's behind it (provenance 84/100, checked 2026-10-08) | Check | Finding | Points | | --- | --- | --- | | Legal entity named | PSPDFKit GmbH | 20/20 | | Domain age | nutrient.io, registered 2019-12-03 (6 years) | 11/15 | | Endpoint on the vendor's domain | api.nutrient.io | 15/15 | | Terms of service | read, states 5 of the 7 things a reader expects | 8.3/10 | | Privacy policy | read, states 7 of the 8 things a reader expects | 9.3/10 | | Status page | www.nutrientstatus.com | 10/10 | | Changelog | published | 10/10 | | security.txt | not found | 0/10 | The DWS API licence agreement (last updated September 2026) names PSPDFKit GmbH, doing business as Nutrient, Kaiserstrasse 117/17, 1070 Vienna, Austria, and applies Austrian law. Section 9 and Schedule 1 are the data processing terms. The privacy policy has a Nutrient API section naming PSPDFKit GmbH as controller, with a Processor API subsection. The API answers at https://api.nutrient.io. An unauthenticated request returned 401 with a JSON error and request id. The status page is on a separate domain, www.nutrientstatus.com, run on Better Stack. The changelog link is the MCP server's. No public changelog for the API itself was found. www.nutrient.io/.well-known/security.txt returns 404. Reports go through www.nutrient.io/security/report-vulnerability/. RDAP for nutrient.io gives a registration date of 2019-12-03. robots.txt carries `Content-Signal: search=yes, ai-input=yes, ai-train=yes` for every user agent. ### Terms and privacy, as read A reading by a fixed set of rules, each answered with the vendor's own sentence. Not legal advice. **Terms of service** (https://www.nutrient.io/legal/cloud-terms/), read 2026-10-08, dated 2026-09-01, states 5 of the 7 things a reader expects. - To know. Says it may use customer content to train or improve models, and gives an opt-out. "In all cases, you may exercise your data-subject rights, including the right to object and the right to deletion, as described in our Privacy Policy." - Gives the date it was last updated. Last updated 2026-09-01. - Names the governing law or courts. The law of Austria, with disputes in the courts of Vienna, Austria. - States a limit on its liability. Rules out indirect and consequential losses, with no cap named in this sentence. - Not found in the text. Says how changes to the terms are announced. - Not found in the text. Refers to a service level or uptime commitment. - Also in the text (2026-10-08). On plans with data retention enabled, Nutrient may keep and use de-identified and anonymised derivatives of submitted content without limitation, and these survive termination. "to create de-identified and anonymized derivatives, which Nutrient may retain and use without limitation and which survive termination." - Also in the text (2026-10-08). Nutrient may list and disclose the customer's name, company and products that include the API on its website and related material. "8.2. We (or any future maintainer of the API) shall be permitted to list and disclose your name and/or company and your products that include the API on our website and related material." - Also in the text (2026-10-08). Commercial use of the API by organisations exceeding 20 employees or 1 million US dollars in annual revenue is a material breach unless covered by a paid subscription. "Any commercial use of the API by organizations exceeding 20 employees or $1 million USD in annual revenue constitutes a material breach of this Agreement unless covered by a paid subscription." **Privacy policy** (https://www.nutrient.io/legal/privacy/), read 2026-10-08, gives no date, states 7 of the 8 things a reader expects. - To know. Says it may use customer content to train or improve models, and gives an opt-out. "You can ask us to stop using your files and to delete them at any time by contacting us at legal@nutrient.io." - To know. Says it sells personal data or shares it for advertising. "We may share Personal Data and Other Data to advisors, advertisers, and investors for the purpose of conducting general business analysis or other business purposes." - Not found in the text. Gives the date it was last updated. - Says how long data is kept. For as long as needed, with no period named. - Gives a privacy contact. legal@nutrient.io. - Says where data is transferred or stored. Relies on the Data Privacy Framework. - Also in the text (2026-10-08). On retention-enabled plans Nutrient keeps an internal copy for improvement and training that is not removed when a run expires or is deleted from the customer's history. "Separately, on retention-enabled plans we keep an internal copy to improve and train our services; that internal copy is retained for as long as it remains useful for those purposes, subject to periodic review, and is not removed simply because a run expires or is deleted from your history." - Also in the text (2026-10-08). Information uploaded to a demo or with a technical support request is treated as consented to public disclosure unless the licence agreement says otherwise. "On the basis of this information, you consent to public disclosure of the information you upload to a demo of our Services or as part of your technical support request, unless your license agreement with us provides otherwise." ## Live (updated 2026-10-09 09:26 UTC) - Right now: up, HTTP 200, 254 ms, checked 2026-10-09 09:26 UTC (get on `https://api.nutrient.io`) - Uptime 24h 100.0% (20 probes) · 30 days 100.0% (20 probes) · p50 175 ms · p95 254 ms - Vendor status page: unknown, no machine-readable status found - Always current: https://www.anchorterminal.com/api/v1/live/nutrient-dws-processor.json ## Probe metrics Not measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. Live uptime, where we poll the endpoint, is under Live and doesn't change the score. ## Prices | Item | Price | Unit | Note | | --- | --- | --- | --- | | Starter | $75 | per month (plan) | 1,000 credits. $67 a month billed yearly | | Growth | $275 | per month (plan) | 5,000 credits. $247 a month billed yearly | | Pro | $445 | per month (plan) | 10,000 credits. $399 a month billed yearly | | Credit on Starter | $0.075 | per credit | Worked out from $75 for 1,000 credits. Merge costs 1 credit, OCR 2, a digital signature 10 | Across all listings: https://www.anchorterminal.com/prices/index.md ## Strengths - OpenAPI 3.1 document (version 1.19.0) for 17 operations, with llms.txt indexes and a Markdown twin of every guide - Errors return `failingPaths` in JSONPath form, a `requestId`, and machine-readable `error.reason` codes for async jobs - OAuth with PKCE, dynamic client registration and per-product scopes, plus JWTs limited by operation, origin and expiry of up to 24 hours - All eight MCP tools carry `readOnlyHint`, `destructiveHint`, `idempotentHint` and `openWorldHint`, and file access can be confined to a sandbox directory - Free plan of 50 credits a month with no card, and the vendor says failed requests (4xx or 5xx) cost no credits ## Weaknesses - The status feed records 61 minutes of DWS Platform downtime on 13 July 2026 and five days with Processor API downtime since 23 July - Plans with data retention enabled let Nutrient keep files and train models on them, and no public page says which plans those are - The product page says there are no strict rate limits, while the pricing guide sets 100 requests a minute per key on every plan - No public API changelog or deprecation policy was found, and the terms allow changes to the API at any time - `Idempotency-Key` works only on async `/build` requests, and free-plan output is watermarked ## Before you call it (notes for agents) 1. Send `Authorization: Bearer ` to `https://api.nutrient.io`. Use `POST /build` with an `instructions` JSON part to chain several actions in one charged request 2. Call `POST /analyze_build` first to get the credit cost of a build. The call is free 3. Stay under 100 requests a minute per key and back off exponentially on 429. Test keys allow 10 a minute and 5 MB 4. For long jobs send `Prefer: respond-async` with an `Idempotency-Key`, then poll the `Location` URL with `X-Async-Job-Token` after `Retry-After` 5. Set `SANDBOX_PATH` for the MCP server. Without it the server reads and writes any path the user account can reach ## Connect Install: ```bash npm install @nutrient-sdk/dws-client-typescript ``` First request: ```bash curl -X POST 'https://api.nutrient.io/build' \ -H 'Authorization: Bearer YOUR_API_KEY' \ -F 'index.html=@index.html' \ -F 'instructions={"parts":[{"html":"index.html"}]}' \ -o hello.pdf ``` MCP client configuration: ```json { "mcpServers": { "nutrient-dws": { "args": [ "-y", "@nutrient-sdk/dws-mcp-server" ], "command": "npx", "env": { "SANDBOX_PATH": "/your/sandbox/directory" } } } } ``` Through letme (picks today, calling later): https://letme.dev/nutrient-dws-processor (letme picks it for pdf.convert, the top-graded tool for the job, letme picks it for pdf.extract, the top-graded tool for the job, letme picks it for pdf.forms, the top-graded tool for the job, letme picks it for pdf.merge, the top-graded tool for the job). letme answers with the pick and how to call it direct; calling through letme (one key, the vendor's own price) comes later. How it works: https://www.anchorterminal.com/letme/index.md ## Similar tools Ranked by shared capabilities, then score. Same-category tools with no shared capability key are listed last. | Tool | Grade | Score | Rank | Shared capabilities | x402 | Markdown | | --- | --- | --- | --- | --- | --- | --- | | Adobe PDF Services / PDF Extract API | C | 55.9 | 578 | docs.ocr, docs.tables, pdf.convert, pdf.merge, pdf.forms, pdf.generate, pdf.extract | no | https://www.anchorterminal.com/tools/adobe-pdf-extract.md | | PDF.co API + MCP | F | 37.9 | 817 | pdf.convert, pdf.merge, pdf.forms, pdf.generate, pdf.extract, docs.ocr, docs.tables | no | https://www.anchorterminal.com/tools/pdf-co.md | | Foxit PDF Services API | D | 48.3 | 727 | pdf.convert, pdf.merge, pdf.forms, pdf.generate, pdf.extract, docs.ocr | no | https://www.anchorterminal.com/tools/foxit-pdf-services.md | | Amazon Textract | BB | 73.5 | 85 | docs.ocr, docs.tables | no | https://www.anchorterminal.com/tools/amazon-textract.md | | Azure Document Intelligence | B | 66 | 280 | docs.ocr, docs.tables | no | https://www.anchorterminal.com/tools/azure-document-intelligence.md | | Extend API + MCP | B | 62.9 | 374 | docs.ocr, docs.tables | no | https://www.anchorterminal.com/tools/extend.md | ## Panel reviews (0) Reviewed by the Anchor panel (https://www.anchorterminal.com/reviewers/index.md): . Desk reviews, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. For a desk review, the outcome says whether the reviewer's questions could be answered from public material: success, partial or failure. How reviews work: https://www.anchorterminal.com/reviews/how-it-works.md ## Notable - `POST /build` takes an `instructions` JSON part that assembles a document from files, URLs, HTML or blank pages and chains actions such as OCR, watermark, rotate, flatten and redact in one request (source: ) - `POST /analyze_build` returns the credit cost of a build without running it, free of charge (source: ) - Async builds use `Prefer: respond-async`, accept an `Idempotency-Key` and return a job URL plus a `jat_` job access token (source: ) - Rate limit of 100 requests a minute per API key on every plan, and 10 a minute with a 5 MB cap for test keys (source: ) - For plans with data retention enabled the terms grant Nutrient a licence to keep submitted files and outputs and train models on them. Other plans delete files within 24 hours (source: ) - The free tier is closed to commercial use by organisations with more than 20 employees or over $1 million in yearly revenue (source: ) - The MCP server is a local stdio package with eight tools, and it also wraps the separate Data Extraction API (source: ) - The status page runs on Better Stack and lists DWS Platform, Processor API and two processing regions, Frankfurt and Oregon (source: ) ## Compare - [Foxit PDF Services API vs Nutrient DWS Processor API](https://www.anchorterminal.com/compare/foxit-pdf-services-vs-nutrient-dws-processor.md): D 48.3 vs B 68.7 - [Nutrient DWS Processor API vs PDF.co API + MCP](https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co.md): B 68.7 vs F 37.9 ## Verify this listing For the vendor. The badge or a plain link to this page verifies the listing, from a page on nutrient.io or one of its subdomains, or the README of github.com/PSPDFKit/nutrient-dws-mcp-server. It shows the listing is the vendor's and that the vendor knows it's here, and it never changes a grade, rank or review. The vendor sends the page's address to `POST https://www.anchorterminal.com/api/v1/verify` as `{"slug": "nutrient-dws-processor", "url": "…"}`, or calls the `verify_listing` tool at https://www.anchorterminal.com/mcp. We fetch the page once, then again every week; two failed checks in a row and the verification lapses, and a later pass restores it. What we check: https://www.anchorterminal.com/builders/index.md#verify HTML badge: ```html Nutrient DWS Processor API on Anchor Terminal ``` Markdown badge, for a README: ```markdown [![Nutrient DWS Processor API on Anchor Terminal](https://www.anchorterminal.com/badges/nutrient-dws-processor.svg)](https://www.anchorterminal.com/tools/nutrient-dws-processor) ``` Plain link: ```html Nutrient DWS Processor API on Anchor Terminal ``` ## Share this listing For the vendor. Sharing assets for social media, two PNGs of 1200 × 630 that say Nutrient DWS Processor API is listed on Anchor Terminal, with the vendor's logo and this page's address and no grade or score. - Dark: https://www.anchorterminal.com/assets/share/nutrient-dws-processor-dark.png - Light: https://www.anchorterminal.com/assets/share/nutrient-dws-processor-light.png