{
  "schemaVersion": "1.0",
  "item": {
    "slug": "nutrient-document-processing-universal",
    "name": "Nutrient Document Processing (Universal Agent Skill)",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/jdrhyne/nutrient-document-processing-universal",
    "canonicalUrl": "https://clawhub.ai/jdrhyne/nutrient-document-processing-universal",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/nutrient-document-processing-universal",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=nutrient-document-processing-universal",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "_meta.json"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "nutrient-document-processing-universal",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-06T07:04:08.105Z",
      "expiresAt": "2026-05-13T07:04:08.105Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=nutrient-document-processing-universal",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=nutrient-document-processing-universal",
        "contentDisposition": "attachment; filename=\"nutrient-document-processing-universal-1.1.2.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "nutrient-document-processing-universal"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/nutrient-document-processing-universal"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/nutrient-document-processing-universal",
    "agentPageUrl": "https://openagent3.xyz/skills/nutrient-document-processing-universal/agent",
    "manifestUrl": "https://openagent3.xyz/skills/nutrient-document-processing-universal/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/nutrient-document-processing-universal/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Nutrient Document Processing (Universal Agent Skill)",
        "body": "Best for Claude Code/Codex/Gemini/Cursor/Windsurf and other non-OpenClaw agents. Process, convert, extract, OCR, redact, sign, and manipulate documents using the Nutrient DWS Processor API."
      },
      {
        "title": "Setup",
        "body": "You need a Nutrient DWS API key. Get one free at https://dashboard.nutrient.io/sign_up/?product=processor."
      },
      {
        "title": "Option 1: MCP Server (Recommended)",
        "body": "If your agent supports MCP (Model Context Protocol), use the Nutrient DWS MCP Server. It provides all operations as native tools.\n\nConfigure your MCP client (e.g., claude_desktop_config.json or .mcp.json):\n\n{\n  \"mcpServers\": {\n    \"nutrient-dws\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@nutrient-sdk/dws-mcp-server\"],\n      \"env\": {\n        \"NUTRIENT_DWS_API_KEY\": \"YOUR_API_KEY\",\n        \"SANDBOX_PATH\": \"/path/to/working/directory\"\n      }\n    }\n  }\n}\n\nThen use the MCP tools directly (e.g., convert_to_pdf, extract_text, redact, etc.)."
      },
      {
        "title": "Option 2: Direct API (curl)",
        "body": "For agents without MCP support, call the API directly:\n\nexport NUTRIENT_API_KEY=\"your_api_key_here\"\n\nAll requests go to https://api.nutrient.io/build as multipart POST with an instructions JSON field."
      },
      {
        "title": "Safety Boundaries",
        "body": "This skill sends documents to the Nutrient DWS API (api.nutrient.io) for processing. Documents may contain sensitive data — ensure your Nutrient account's data handling policies are acceptable.\nIt does NOT access local files beyond those explicitly passed for processing.\nIt does NOT store API keys or credentials beyond the current session.\nMCP server mode (npx @nutrient-sdk/dws-mcp-server) downloads the official Nutrient MCP server package from npm at runtime.\nAll API calls require an explicit API key — no anonymous access is possible."
      },
      {
        "title": "1. Convert Documents",
        "body": "Convert between PDF, DOCX, XLSX, PPTX, HTML, and image formats.\n\nHTML to PDF:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"index.html=@index.html\" \\\n  -F 'instructions={\"parts\":[{\"html\":\"index.html\"}]}' \\\n  -o output.pdf\n\nDOCX to PDF:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.docx=@document.docx\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.docx\"}]}' \\\n  -o output.pdf\n\nPDF to DOCX/XLSX/PPTX:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"output\":{\"type\":\"docx\"}}' \\\n  -o output.docx\n\nImage to PDF:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"image.jpg=@image.jpg\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"image.jpg\"}]}' \\\n  -o output.pdf"
      },
      {
        "title": "2. Extract Text and Data",
        "body": "Extract plain text:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"output\":{\"type\":\"text\"}}' \\\n  -o output.txt\n\nExtract tables (as JSON, CSV, or Excel):\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"output\":{\"type\":\"xlsx\"}}' \\\n  -o tables.xlsx\n\nExtract key-value pairs:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"actions\":[{\"type\":\"extraction\",\"strategy\":\"key-values\"}]}' \\\n  -o result.json"
      },
      {
        "title": "3. OCR Scanned Documents",
        "body": "Apply OCR to scanned PDFs or images, producing searchable PDFs with selectable text.\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"scanned.pdf=@scanned.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"scanned.pdf\"}],\"actions\":[{\"type\":\"ocr\",\"language\":\"english\"}]}' \\\n  -o searchable.pdf\n\nSupported languages: english, german, french, spanish, italian, portuguese, dutch, swedish, danish, norwegian, finnish, polish, czech, turkish, japanese, korean, chinese-simplified, chinese-traditional, arabic, hebrew, thai, hindi, russian, and more."
      },
      {
        "title": "4. Redact Sensitive Information",
        "body": "Pattern-based redaction (preset patterns):\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"actions\":[{\"type\":\"redaction\",\"strategy\":\"preset\",\"preset\":\"social-security-number\"}]}' \\\n  -o redacted.pdf\n\nAvailable presets: social-security-number, credit-card-number, email-address, north-american-phone-number, international-phone-number, date, url, ipv4, ipv6, mac-address, us-zip-code, vin, time.\n\nRegex-based redaction:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"actions\":[{\"type\":\"redaction\",\"strategy\":\"regex\",\"regex\":\"\\\\b[A-Z]{2}\\\\d{6}\\\\b\"}]}' \\\n  -o redacted.pdf\n\nAI-powered PII redaction:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"actions\":[{\"type\":\"ai_redaction\",\"criteria\":\"All personally identifiable information\"}]}' \\\n  -o redacted.pdf\n\nThe criteria field accepts natural language (e.g., \"Names and phone numbers\", \"Protected health information\", \"Financial account numbers\")."
      },
      {
        "title": "5. Add Watermarks",
        "body": "Text watermark:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"actions\":[{\"type\":\"watermark\",\"text\":\"CONFIDENTIAL\",\"fontSize\":48,\"fontColor\":\"#FF0000\",\"opacity\":0.5,\"rotation\":45,\"width\":\"50%\",\"height\":\"50%\"}]}' \\\n  -o watermarked.pdf\n\nImage watermark:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F \"logo.png=@logo.png\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"actions\":[{\"type\":\"watermark\",\"imagePath\":\"logo.png\",\"width\":\"30%\",\"height\":\"30%\",\"opacity\":0.3}]}' \\\n  -o watermarked.pdf"
      },
      {
        "title": "6. Digital Signatures",
        "body": "Sign a PDF with CMS signature:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"actions\":[{\"type\":\"sign\",\"signatureType\":\"cms\",\"signerName\":\"John Doe\",\"reason\":\"Approval\",\"location\":\"New York\"}]}' \\\n  -o signed.pdf\n\nSign with CAdES-B-LT (long-term validation):\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"actions\":[{\"type\":\"sign\",\"signatureType\":\"cades\",\"cadesLevel\":\"b-lt\",\"signerName\":\"Jane Smith\"}]}' \\\n  -o signed.pdf"
      },
      {
        "title": "7. Form Filling (Instant JSON)",
        "body": "Fill PDF form fields using Instant JSON format:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"form.pdf=@form.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"form.pdf\"}],\"actions\":[{\"type\":\"fillForm\",\"fields\":[{\"name\":\"firstName\",\"value\":\"John\"},{\"name\":\"lastName\",\"value\":\"Doe\"},{\"name\":\"email\",\"value\":\"john@example.com\"}]}]}' \\\n  -o filled.pdf"
      },
      {
        "title": "8. Merge and Split PDFs",
        "body": "Merge multiple PDFs:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"doc1.pdf=@doc1.pdf\" \\\n  -F \"doc2.pdf=@doc2.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"doc1.pdf\"},{\"file\":\"doc2.pdf\"}]}' \\\n  -o merged.pdf\n\nExtract specific pages:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\",\"pages\":{\"start\":0,\"end\":4}}]}' \\\n  -o pages1-5.pdf"
      },
      {
        "title": "9. Render PDF Pages as Images",
        "body": "curl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\",\"pages\":{\"start\":0,\"end\":0}}],\"output\":{\"type\":\"png\",\"dpi\":300}}' \\\n  -o page1.png"
      },
      {
        "title": "10. Check Credits",
        "body": "curl -X GET https://api.nutrient.io/credits \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\""
      },
      {
        "title": "Best Practices",
        "body": "Use the MCP server when your agent supports it — it handles file I/O, error handling, and sandboxing automatically.\nSet SANDBOX_PATH to restrict file access to a specific directory.\nCheck credit balance before batch operations to avoid interruptions.\nUse AI redaction for complex PII detection; use preset/regex redaction for known patterns (faster, cheaper).\nChain operations — the API supports multiple actions in a single call (e.g., OCR then redact)."
      },
      {
        "title": "Troubleshooting",
        "body": "IssueSolution401 UnauthorizedCheck your API key is valid and has credits413 Payload Too LargeFiles must be under 100 MBSlow AI redactionAI analysis takes 60–120 seconds; this is normalOCR quality poorTry a different language parameter or improve scan qualityMissing text in extractionRun OCR first on scanned documents"
      },
      {
        "title": "More Information",
        "body": "Full API reference — Detailed endpoints, parameters, and error codes\nAPI Playground — Interactive API testing\nAPI Documentation — Official guides\nMCP Server repo — Source code and issues"
      }
    ],
    "body": "Nutrient Document Processing (Universal Agent Skill)\n\nBest for Claude Code/Codex/Gemini/Cursor/Windsurf and other non-OpenClaw agents. Process, convert, extract, OCR, redact, sign, and manipulate documents using the Nutrient DWS Processor API.\n\nSetup\n\nYou need a Nutrient DWS API key. Get one free at https://dashboard.nutrient.io/sign_up/?product=processor.\n\nOption 1: MCP Server (Recommended)\n\nIf your agent supports MCP (Model Context Protocol), use the Nutrient DWS MCP Server. It provides all operations as native tools.\n\nConfigure your MCP client (e.g., claude_desktop_config.json or .mcp.json):\n\n{\n  \"mcpServers\": {\n    \"nutrient-dws\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@nutrient-sdk/dws-mcp-server\"],\n      \"env\": {\n        \"NUTRIENT_DWS_API_KEY\": \"YOUR_API_KEY\",\n        \"SANDBOX_PATH\": \"/path/to/working/directory\"\n      }\n    }\n  }\n}\n\n\nThen use the MCP tools directly (e.g., convert_to_pdf, extract_text, redact, etc.).\n\nOption 2: Direct API (curl)\n\nFor agents without MCP support, call the API directly:\n\nexport NUTRIENT_API_KEY=\"your_api_key_here\"\n\n\nAll requests go to https://api.nutrient.io/build as multipart POST with an instructions JSON field.\n\nSafety Boundaries\nThis skill sends documents to the Nutrient DWS API (api.nutrient.io) for processing. Documents may contain sensitive data — ensure your Nutrient account's data handling policies are acceptable.\nIt does NOT access local files beyond those explicitly passed for processing.\nIt does NOT store API keys or credentials beyond the current session.\nMCP server mode (npx @nutrient-sdk/dws-mcp-server) downloads the official Nutrient MCP server package from npm at runtime.\nAll API calls require an explicit API key — no anonymous access is possible.\nOperations\n1. Convert Documents\n\nConvert between PDF, DOCX, XLSX, PPTX, HTML, and image formats.\n\nHTML to PDF:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"index.html=@index.html\" \\\n  -F 'instructions={\"parts\":[{\"html\":\"index.html\"}]}' \\\n  -o output.pdf\n\n\nDOCX to PDF:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.docx=@document.docx\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.docx\"}]}' \\\n  -o output.pdf\n\n\nPDF to DOCX/XLSX/PPTX:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"output\":{\"type\":\"docx\"}}' \\\n  -o output.docx\n\n\nImage to PDF:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"image.jpg=@image.jpg\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"image.jpg\"}]}' \\\n  -o output.pdf\n\n2. Extract Text and Data\n\nExtract plain text:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"output\":{\"type\":\"text\"}}' \\\n  -o output.txt\n\n\nExtract tables (as JSON, CSV, or Excel):\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"output\":{\"type\":\"xlsx\"}}' \\\n  -o tables.xlsx\n\n\nExtract key-value pairs:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"actions\":[{\"type\":\"extraction\",\"strategy\":\"key-values\"}]}' \\\n  -o result.json\n\n3. OCR Scanned Documents\n\nApply OCR to scanned PDFs or images, producing searchable PDFs with selectable text.\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"scanned.pdf=@scanned.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"scanned.pdf\"}],\"actions\":[{\"type\":\"ocr\",\"language\":\"english\"}]}' \\\n  -o searchable.pdf\n\n\nSupported languages: english, german, french, spanish, italian, portuguese, dutch, swedish, danish, norwegian, finnish, polish, czech, turkish, japanese, korean, chinese-simplified, chinese-traditional, arabic, hebrew, thai, hindi, russian, and more.\n\n4. Redact Sensitive Information\n\nPattern-based redaction (preset patterns):\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"actions\":[{\"type\":\"redaction\",\"strategy\":\"preset\",\"preset\":\"social-security-number\"}]}' \\\n  -o redacted.pdf\n\n\nAvailable presets: social-security-number, credit-card-number, email-address, north-american-phone-number, international-phone-number, date, url, ipv4, ipv6, mac-address, us-zip-code, vin, time.\n\nRegex-based redaction:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"actions\":[{\"type\":\"redaction\",\"strategy\":\"regex\",\"regex\":\"\\\\b[A-Z]{2}\\\\d{6}\\\\b\"}]}' \\\n  -o redacted.pdf\n\n\nAI-powered PII redaction:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"actions\":[{\"type\":\"ai_redaction\",\"criteria\":\"All personally identifiable information\"}]}' \\\n  -o redacted.pdf\n\n\nThe criteria field accepts natural language (e.g., \"Names and phone numbers\", \"Protected health information\", \"Financial account numbers\").\n\n5. Add Watermarks\n\nText watermark:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"actions\":[{\"type\":\"watermark\",\"text\":\"CONFIDENTIAL\",\"fontSize\":48,\"fontColor\":\"#FF0000\",\"opacity\":0.5,\"rotation\":45,\"width\":\"50%\",\"height\":\"50%\"}]}' \\\n  -o watermarked.pdf\n\n\nImage watermark:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F \"logo.png=@logo.png\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"actions\":[{\"type\":\"watermark\",\"imagePath\":\"logo.png\",\"width\":\"30%\",\"height\":\"30%\",\"opacity\":0.3}]}' \\\n  -o watermarked.pdf\n\n6. Digital Signatures\n\nSign a PDF with CMS signature:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"actions\":[{\"type\":\"sign\",\"signatureType\":\"cms\",\"signerName\":\"John Doe\",\"reason\":\"Approval\",\"location\":\"New York\"}]}' \\\n  -o signed.pdf\n\n\nSign with CAdES-B-LT (long-term validation):\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\"}],\"actions\":[{\"type\":\"sign\",\"signatureType\":\"cades\",\"cadesLevel\":\"b-lt\",\"signerName\":\"Jane Smith\"}]}' \\\n  -o signed.pdf\n\n7. Form Filling (Instant JSON)\n\nFill PDF form fields using Instant JSON format:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"form.pdf=@form.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"form.pdf\"}],\"actions\":[{\"type\":\"fillForm\",\"fields\":[{\"name\":\"firstName\",\"value\":\"John\"},{\"name\":\"lastName\",\"value\":\"Doe\"},{\"name\":\"email\",\"value\":\"john@example.com\"}]}]}' \\\n  -o filled.pdf\n\n8. Merge and Split PDFs\n\nMerge multiple PDFs:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"doc1.pdf=@doc1.pdf\" \\\n  -F \"doc2.pdf=@doc2.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"doc1.pdf\"},{\"file\":\"doc2.pdf\"}]}' \\\n  -o merged.pdf\n\n\nExtract specific pages:\n\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\",\"pages\":{\"start\":0,\"end\":4}}]}' \\\n  -o pages1-5.pdf\n\n9. Render PDF Pages as Images\ncurl -X POST https://api.nutrient.io/build \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\" \\\n  -F \"document.pdf=@document.pdf\" \\\n  -F 'instructions={\"parts\":[{\"file\":\"document.pdf\",\"pages\":{\"start\":0,\"end\":0}}],\"output\":{\"type\":\"png\",\"dpi\":300}}' \\\n  -o page1.png\n\n10. Check Credits\ncurl -X GET https://api.nutrient.io/credits \\\n  -H \"Authorization: Bearer $NUTRIENT_API_KEY\"\n\nBest Practices\nUse the MCP server when your agent supports it — it handles file I/O, error handling, and sandboxing automatically.\nSet SANDBOX_PATH to restrict file access to a specific directory.\nCheck credit balance before batch operations to avoid interruptions.\nUse AI redaction for complex PII detection; use preset/regex redaction for known patterns (faster, cheaper).\nChain operations — the API supports multiple actions in a single call (e.g., OCR then redact).\nTroubleshooting\nIssue\tSolution\n401 Unauthorized\tCheck your API key is valid and has credits\n413 Payload Too Large\tFiles must be under 100 MB\nSlow AI redaction\tAI analysis takes 60–120 seconds; this is normal\nOCR quality poor\tTry a different language parameter or improve scan quality\nMissing text in extraction\tRun OCR first on scanned documents\nMore Information\nFull API reference — Detailed endpoints, parameters, and error codes\nAPI Playground — Interactive API testing\nAPI Documentation — Official guides\nMCP Server repo — Source code and issues"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/jdrhyne/nutrient-document-processing-universal",
    "publisherUrl": "https://clawhub.ai/jdrhyne/nutrient-document-processing-universal",
    "owner": "jdrhyne",
    "version": "1.1.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/nutrient-document-processing-universal",
    "downloadUrl": "https://openagent3.xyz/downloads/nutrient-document-processing-universal",
    "agentUrl": "https://openagent3.xyz/skills/nutrient-document-processing-universal/agent",
    "manifestUrl": "https://openagent3.xyz/skills/nutrient-document-processing-universal/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/nutrient-document-processing-universal/agent.md"
  }
}