{
  "data": {
    "a": {
      "slug": "iloveapi",
      "name": "iLoveAPI",
      "vendor": "iLovePDF S.L.",
      "vendorUrl": "https://www.iloveapi.com",
      "kind": "http-api",
      "category": "pdf-tools",
      "summary": "REST API from iLovePDF S.L. of Barcelona for merging, splitting, compressing, converting, protecting, editing and running OCR on PDFs, with image tools and signature requests. Tasks run in four calls, billed in credits.",
      "url": "https://www.anchorterminal.com/tools/iloveapi",
      "markdownUrl": "https://www.anchorterminal.com/tools/iloveapi.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/iloveapi.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/iloveapi.json",
      "repo": "https://github.com/ilovepdf/ilovepdf-python",
      "license": "Proprietary service under the iLovePDF API terms. The client libraries are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.ilovepdf.com/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "ilovepdf"
        },
        {
          "registry": "npm",
          "name": "@ilovepdf/ilovepdf-nodejs"
        },
        {
          "registry": "packagist",
          "name": "ilovepdf/ilovepdf-php"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve. Each project has a public key and a secret key in the developer console. Requests carry `Authorization: Bearer` with a JWT signed by the secret key, valid for one hour, or a token from `POST /v1/auth` given the public key. Domain and IP filters are available depending on tier.",
      "pricing": "freemium",
      "pricingNotes": "Free accounts get 2,500 credits a month with no card asked at sign-up. Paid credits come as monthly or yearly subscriptions or non-expiring prepaid packages. Euro prices are drawn by script and were not read. Only successfully processed files are charged (https://www.iloveapi.com/pricing, checked 2026-10-09).",
      "priceSummary": "Freemium",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API reference, the pricing page or the terms (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 9582,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://www.iloveapi.com/docs/api-reference",
      "capabilities": [
        "pdf.convert",
        "pdf.merge",
        "pdf.generate",
        "pdf.extract",
        "docs.ocr"
      ],
      "tags": [
        "hosted",
        "rest",
        "jwt",
        "credits",
        "free-tier",
        "webhooks",
        "php",
        "dotnet",
        "python",
        "nodejs",
        "ruby",
        "iso27001",
        "eu"
      ],
      "lastRelease": "2026-09-03",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 42,
        "grade": "E",
        "agentReady": false,
        "rank": 897,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 61,
          "maintenance": 62,
          "payments": 30,
          "reliability": 26,
          "schema": 37,
          "security": 41,
          "transparency": 52
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "Per-tool credit costs are public, 2,500 free credits arrive each month on a sign-up that asks for no card, and five official libraries are MIT. No OpenAPI file, status page or published rate-limit numbers were found, and the governing terms date from 14 February 2017.",
        "bestFor": "An agent that needs common PDF and image operations with a monthly free allowance and a choice of processing region.",
        "strengths": [
          "2,500 free credits a month on registration, and the sign-up form asks for name, email and password only",
          "Credit cost of each tool is public, from 2 credits an image file to 5 a merge task and 10 a file for most PDF tools",
          "Seven processing regions can be chosen per task (eu, us, fr, de, pl, in, sg)",
          "Official MIT libraries for PHP, .NET, Python, Node.js and Ruby, with three tagged releases between 22 July and 3 September 2026",
          "ISO/IEC 27001:2022 certificate linked from the security page, and optional per-task file encryption with a caller-held key"
        ],
        "weaknesses": [
          "No OpenAPI file, llms.txt or Markdown docs. The reference is one HTML page",
          "No status page is linked from the site or docs, and rate limits are described as tier-dependent with no numbers",
          "The API terms were last modified on 14 February 2017 and let iLovePDF discontinue the API at any time without liability",
          "Uptime is stated as over 99.95% on the pricing page and 99.9%+ on the functions page, while the terms disclaim availability",
          "The reference still says a free account has a 250-file monthly limit, while the pricing page says 2,500 credits",
          "No idempotency keys, no scoped or read-only keys, and no guidance on untrusted text returned by OCR, Markdown or summary tools"
        ],
        "agentNotes": [
          "Run four calls per job. `GET /v1/start/{tool}/{region}` returns a `server` and a `task`, then send upload, process and download to that server",
          "Sign a JWT with the project secret key and send it as `Authorization: Bearer`. Tokens expire after one hour",
          "Download results promptly. The reference says files are deleted one to two hours after processing, depending on tier",
          "Back off exponentially on 429 and read the rate-limit headers on each response. No limit numbers are published",
          "Add `debug=true` to any request to have the server echo the parameters without processing or spending credits"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 42
          }
        ],
        "editorialScores": {
          "ergonomics": 61,
          "maintenance": 62,
          "payments": 30,
          "reliability": 26,
          "schema": 37,
          "security": 41,
          "transparency": 37
        },
        "provenanceScore": 66
      },
      "connect": {
        "install": "pip install ilovepdf",
        "http": "curl -X POST https://api.ilovepdf.com/v1/auth -d \"public_key=$ILOVEPDF_PUBLIC_KEY\""
      },
      "letme": {
        "capability": "https://letme.dev/pdf.convert",
        "tool": "https://letme.dev/iloveapi"
      },
      "area": "web-data",
      "provenance": {
        "legalEntity": "iLovePDF S.L.",
        "domain": "iloveapi.com",
        "domainRegistered": "2005-08-18",
        "endpointOnVendorDomain": true,
        "terms": "https://www.iloveapi.com/terms",
        "privacy": "https://www.iloveapi.com/policy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "unknown",
        "checked": "2026-10-09",
        "notes": [
          "The API answers at api.ilovepdf.com, the vendor's main domain, and the product site is iloveapi.com",
          "The privacy page at iloveapi.com/policy embeds an iubenda document (www.iubenda.com/privacy-policy/331973) that iubenda's robots.txt disallows, so its text was not read",
          "www.iloveapi.com/.well-known/security.txt answered 403 and was not retried",
          "No status page or API changelog is linked from the site or the docs"
        ],
        "score": 66
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/iloveapi.json",
      "live": {
        "slug": "iloveapi",
        "probe": {
          "target": "https://api.ilovepdf.com/v1",
          "method": "get",
          "lastAt": "2026-10-10T05:38:53.677488167Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 88,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 122,
          "p95ms24h": 189,
          "samples24h": 143,
          "samples30d": 143,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 58,
              "ok": 58
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "ilovepdf/ilovepdf-python",
            "version": "v1.1.0",
            "released": "2026-07-28",
            "seenAt": "2026-10-09T16:58:36.678829815Z"
          },
          {
            "registry": "npm",
            "name": "@ilovepdf/ilovepdf-nodejs",
            "version": "0.3.1",
            "seenAt": "2026-10-09T16:58:35.841962669Z"
          },
          {
            "registry": "pypi",
            "name": "ilovepdf",
            "version": "1.0.0",
            "released": "2026-04-01",
            "seenAt": "2026-10-09T16:58:35.730864554Z"
          }
        ],
        "githubStars": 15,
        "npmWeekly": 9582,
        "pypiWeekly": 60,
        "pages": [
          {
            "url": "https://www.iloveapi.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:51:09.812140969Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "99ae5ec9f360"
          },
          {
            "url": "https://www.iloveapi.com/policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:51:07.694318062Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "15c457ef8e47"
          },
          {
            "url": "https://www.iloveapi.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:51:11.762653183Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9451d9a5e124"
          }
        ],
        "updatedAt": "2026-10-10T05:38:53.677488167Z"
      }
    },
    "answer": "Nutrient DWS Processor API scores 68.7 (B) on agent readiness against iLoveAPI's 42 (E), and leads in every scored category.",
    "b": {
      "slug": "nutrient-dws-processor",
      "name": "Nutrient DWS Processor API",
      "vendor": "Nutrient (PSPDFKit GmbH)",
      "vendorUrl": "https://www.nutrient.io",
      "kind": "http-api",
      "category": "pdf-tools",
      "summary": "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.",
      "url": "https://www.anchorterminal.com/tools/nutrient-dws-processor",
      "markdownUrl": "https://www.anchorterminal.com/tools/nutrient-dws-processor.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/nutrient-dws-processor.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/nutrient-dws-processor.json",
      "repo": "https://github.com/PSPDFKit/nutrient-dws-mcp-server",
      "license": "Proprietary service under the Nutrient DWS API licence agreement. The MCP server and the TypeScript and Python clients are MIT",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.nutrient.io",
      "packages": [
        {
          "registry": "npm",
          "name": "@nutrient-sdk/dws-mcp-server"
        },
        {
          "registry": "npm",
          "name": "@nutrient-sdk/dws-client-typescript"
        },
        {
          "registry": "pypi",
          "name": "nutrient-dws"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. A person signs up at dashboard.nutrient.io and copies a live key, sent as `Authorization: Bearer \u003ckey\u003e`. 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",
      "pricingNotes": "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).",
      "priceSummary": "$75 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the guides, the OpenAPI document, the pricing page or the MCP server README (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 8,
      "popularity": {
        "githubStars": 71,
        "npmWeekly": 2701,
        "pypiWeekly": 2214,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://www.nutrient.io/guides/dws-processor/",
      "llmsTxt": "https://www.nutrient.io/guides/dws-processor/llms.txt",
      "openapi": "https://cdn.cloud.nutrient.io/dws/assets/specs/public@1.19.0-ec566a84de4ef6c97fd9b586262ddcc4.yml",
      "registryName": "io.github.PSPDFKit/nutrient-dws-mcp-server",
      "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"
      ],
      "lastRelease": "2026-08-27",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68.7,
        "grade": "B",
        "agentReady": false,
        "rank": 209,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 84,
          "maintenance": 78,
          "payments": 40,
          "reliability": 68,
          "schema": 84,
          "security": 66,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -2,
        "negativeNotes": [
          "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)."
        ],
        "verdict": "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.",
        "bestFor": "An agent that must change or produce documents (merge, convert, OCR, redact, sign, fill forms) in one chained request with predictable per-use cost.",
        "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"
        ],
        "agentNotes": [
          "Send `Authorization: Bearer \u003ckey\u003e` to `https://api.nutrient.io`. Use `POST /build` with an `instructions` JSON part to chain several actions in one charged request",
          "Call `POST /analyze_build` first to get the credit cost of a build. The call is free",
          "Stay under 100 requests a minute per key and back off exponentially on 429. Test keys allow 10 a minute and 5 MB",
          "For long jobs send `Prefer: respond-async` with an `Idempotency-Key`, then poll the `Location` URL with `X-Async-Job-Token` after `Retry-After`",
          "Set `SANDBOX_PATH` for the MCP server. Without it the server reads and writes any path the user account can reach"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.7
          }
        ],
        "editorialScores": {
          "ergonomics": 84,
          "maintenance": 78,
          "payments": 40,
          "reliability": 68,
          "schema": 84,
          "security": 66,
          "transparency": 62
        },
        "provenanceScore": 84
      },
      "connect": {
        "install": "npm install @nutrient-sdk/dws-client-typescript",
        "http": "curl -X POST 'https://api.nutrient.io/build' \\\n  -H 'Authorization: Bearer YOUR_API_KEY' \\\n  -F 'index.html=@index.html' \\\n  -F 'instructions={\"parts\":[{\"html\":\"index.html\"}]}' \\\n  -o hello.pdf",
        "config": {
          "mcpServers": {
            "nutrient-dws": {
              "args": [
                "-y",
                "@nutrient-sdk/dws-mcp-server"
              ],
              "command": "npx",
              "env": {
                "SANDBOX_PATH": "/your/sandbox/directory"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/pdf.convert",
        "tool": "https://letme.dev/nutrient-dws-processor"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 75,
          "note": "1,000 credits. $67 a month billed yearly"
        },
        {
          "item": "Growth",
          "unit": "month",
          "usd": 275,
          "note": "5,000 credits. $247 a month billed yearly"
        },
        {
          "item": "Pro",
          "unit": "month",
          "usd": 445,
          "note": "10,000 credits. $399 a month billed yearly"
        },
        {
          "item": "Credit on Starter",
          "unit": "credit",
          "usd": 0.075,
          "note": "Worked out from $75 for 1,000 credits. Merge costs 1 credit, OCR 2, a digital signature 10"
        }
      ],
      "provenance": {
        "legalEntity": "PSPDFKit GmbH",
        "domain": "nutrient.io",
        "domainRegistered": "2019-12-03",
        "endpointOnVendorDomain": true,
        "terms": "https://www.nutrient.io/legal/cloud-terms/",
        "privacy": "https://www.nutrient.io/legal/privacy/",
        "statusPage": "https://www.nutrientstatus.com",
        "changelog": "https://github.com/PSPDFKit/nutrient-dws-mcp-server/blob/main/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "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."
        ],
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/nutrient-dws-processor.json",
      "live": {
        "slug": "nutrient-dws-processor",
        "probe": {
          "target": "https://api.nutrient.io",
          "method": "get",
          "lastAt": "2026-10-10T05:38:58.920026302Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 182,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 178,
          "p95ms24h": 311,
          "samples24h": 227,
          "samples30d": 227,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 169,
              "ok": 169
            },
            {
              "date": "2026-10-10",
              "probes": 58,
              "ok": 58
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.nutrientstatus.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:50:52.550543026Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "PSPDFKit/nutrient-dws-mcp-server",
            "version": "v0.1.3",
            "released": "2026-08-28",
            "seenAt": "2026-10-09T17:08:59.802686806Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.PSPDFKit/nutrient-dws-mcp-server",
            "version": "0.1.3",
            "seenAt": "2026-10-10T03:11:32.438759038Z"
          },
          {
            "registry": "npm",
            "name": "@nutrient-sdk/dws-client-typescript",
            "version": "3.0.0",
            "seenAt": "2026-10-09T17:08:58.25092768Z"
          },
          {
            "registry": "npm",
            "name": "@nutrient-sdk/dws-mcp-server",
            "version": "0.1.3",
            "seenAt": "2026-10-09T17:08:57.387345054Z"
          },
          {
            "registry": "pypi",
            "name": "nutrient-dws",
            "version": "3.1.0",
            "released": "2026-05-27",
            "seenAt": "2026-10-09T17:08:59.618357401Z"
          }
        ],
        "githubStars": 71,
        "npmWeekly": 104,
        "pypiWeekly": 2214,
        "securityTxt": {
          "url": "https://nutrient.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:51.040080182Z"
        },
        "llmsTxt": {
          "url": "https://www.nutrient.io/guides/dws-processor/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:28.463227094Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/PSPDFKit/nutrient-dws-mcp-server/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:44:41.120278115Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8a1c5e1c4c5e"
          },
          {
            "url": "https://www.nutrient.io/api/pricing/processor-api/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:31.43057066Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "697e6a6df784"
          },
          {
            "url": "https://www.nutrient.io/legal/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:36.685167408Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c741b79fc3f2"
          },
          {
            "url": "https://www.nutrient.io/legal/cloud-terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:34.76762467Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "fb0a77e35d4f"
          }
        ],
        "updatedAt": "2026-10-10T05:38:58.920026302Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "iLovePDF S.L.",
        "b": "Nutrient (PSPDFKit GmbH)",
        "name": "Vendor"
      },
      {
        "a": "https://api.ilovepdf.com/v1",
        "b": "https://api.nutrient.io",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the iLovePDF API terms. The client libraries are MIT",
        "b": "Proprietary service under the Nutrient DWS API licence agreement. The MCP server and the TypeScript and Python clients are MIT",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "8",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.PSPDFKit/nutrient-dws-mcp-server",
        "name": "MCP registry"
      },
      {
        "a": "2026-09-03",
        "b": "2026-08-27",
        "name": "Last release"
      },
      {
        "a": "2017-02-14",
        "b": "2026-09-01",
        "name": "Terms last updated"
      },
      {
        "a": "couldn't be read",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes, with an opt-out",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "9.6k npm/wk",
        "b": "71 stars, 2.7k npm/wk, 2.2k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Nutrient DWS Processor API scores 68.7 (B) on agent readiness against iLoveAPI's 42 (E), and leads in every scored category.",
        "question": "Which is better for AI agents, iLoveAPI or Nutrient DWS Processor API?"
      },
      {
        "answer": "iLoveAPI needs an API key. Nutrient DWS Processor API takes an API key or an OAuth sign-in.",
        "question": "Do iLoveAPI and Nutrient DWS Processor API need an API key?"
      },
      {
        "answer": "Yes. iLoveAPI has a hosted endpoint at https://api.ilovepdf.com/v1 and Nutrient DWS Processor API at https://api.nutrient.io.",
        "question": "Can an agent call iLoveAPI and Nutrient DWS Processor API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "An agent that needs common PDF and image operations with a monthly free allowance and a choice of processing region.",
        "slug": "iloveapi",
        "watchFor": "No OpenAPI file, llms.txt or Markdown docs. The reference is one HTML page"
      },
      {
        "aheadOn": [
          "Reliability, 68 against 26",
          "Schema \u0026 documentation, 84 against 37",
          "Agent ergonomics, 84 against 61",
          "Security \u0026 auth, 66 against 41",
          "Payments \u0026 pricing, 40 against 30",
          "Maintenance \u0026 community, 78 against 62",
          "Transparency \u0026 trust, 73 against 52"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "An agent that must change or produce documents (merge, convert, OCR, redact, sign, fill forms) in one chained request with predictable per-use cost.",
        "slug": "nutrient-dws-processor",
        "watchFor": "The status feed records 61 minutes of DWS Platform downtime on 13 July 2026 and five days with Processor API downtime since 23 July"
      }
    ],
    "job": {
      "capability": "pdf.convert",
      "name": "PDF conversion"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/cloudconvert-vs-iloveapi.json",
        "title": "CloudConvert API vs iLoveAPI",
        "url": "https://www.anchorterminal.com/compare/cloudconvert-vs-iloveapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloudconvert-vs-nutrient-dws-processor.json",
        "title": "CloudConvert API vs Nutrient DWS Processor API",
        "url": "https://www.anchorterminal.com/compare/cloudconvert-vs-nutrient-dws-processor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/foxit-pdf-services-vs-iloveapi.json",
        "title": "Foxit PDF Services API vs iLoveAPI",
        "url": "https://www.anchorterminal.com/compare/foxit-pdf-services-vs-iloveapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/foxit-pdf-services-vs-nutrient-dws-processor.json",
        "title": "Foxit PDF Services API vs Nutrient DWS Processor API",
        "url": "https://www.anchorterminal.com/compare/foxit-pdf-services-vs-nutrient-dws-processor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/iloveapi-vs-pdf-co.json",
        "title": "iLoveAPI vs PDF.co API + MCP",
        "url": "https://www.anchorterminal.com/compare/iloveapi-vs-pdf-co"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co.json",
        "title": "Nutrient DWS Processor API vs PDF.co API + MCP",
        "url": "https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co"
      }
    ],
    "scores": [
      {
        "by": 42,
        "edge": "nutrient-dws-processor",
        "iloveapi": 26,
        "key": "reliability",
        "name": "Reliability",
        "nutrient-dws-processor": 68,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 47,
        "edge": "nutrient-dws-processor",
        "iloveapi": 37,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "nutrient-dws-processor": 84,
        "weight": 13
      },
      {
        "by": 23,
        "edge": "nutrient-dws-processor",
        "iloveapi": 61,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "nutrient-dws-processor": 84,
        "weight": 13
      },
      {
        "by": 25,
        "edge": "nutrient-dws-processor",
        "iloveapi": 41,
        "key": "security",
        "name": "Security \u0026 auth",
        "nutrient-dws-processor": 66,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "nutrient-dws-processor",
        "iloveapi": 30,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "nutrient-dws-processor": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 16,
        "edge": "nutrient-dws-processor",
        "iloveapi": 62,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "nutrient-dws-processor": 78,
        "weight": 7
      },
      {
        "by": 21,
        "edge": "nutrient-dws-processor",
        "iloveapi": 52,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "nutrient-dws-processor": 73,
        "weight": 7
      }
    ],
    "summary": "Nutrient DWS Processor API scores 68.7 (B) on agent readiness against iLoveAPI's 42 (E), and leads in every scored category. Both do pdf conversion.",
    "verdicts": {
      "iloveapi": "Per-tool credit costs are public, 2,500 free credits arrive each month on a sign-up that asks for no card, and five official libraries are MIT. No OpenAPI file, status page or published rate-limit numbers were found, and the governing terms date from 14 February 2017.",
      "nutrient-dws-processor": "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/iloveapi-vs-nutrient-dws-processor",
    "json": "https://www.anchorterminal.com/compare/iloveapi-vs-nutrient-dws-processor.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/iloveapi-vs-nutrient-dws-processor.md",
    "slim": "https://www.anchorterminal.com/compare/iloveapi-vs-nutrient-dws-processor.min.md"
  },
  "markdown": "Nutrient DWS Processor API scores 68.7 (B) on agent readiness against iLoveAPI's 42 (E), and leads in every scored category. Both do pdf conversion.\n\n- iLoveAPI: grade E, 42/100, rank #897 of 950. Markdown https://www.anchorterminal.com/tools/iloveapi.md · JSON https://www.anchorterminal.com/api/v1/tools/iloveapi.json\n- Nutrient DWS Processor API: grade B, 68.7/100, rank #209 of 950. Markdown https://www.anchorterminal.com/tools/nutrient-dws-processor.md · JSON https://www.anchorterminal.com/api/v1/tools/nutrient-dws-processor.json\n- Best PDF manipulation and conversion APIs for AI agents: https://www.anchorterminal.com/best/pdf-tools/index.md\n- All 24 pdf comparisons: https://www.anchorterminal.com/compare/pdf-tools/index.md\n\n## Which one, for what\n\n### iLoveAPI (E)\n\nGood for: An agent that needs common PDF and image operations with a monthly free allowance and a choice of processing region.\n\nWatch for: No OpenAPI file, llms.txt or Markdown docs. The reference is one HTML page\n\n### Nutrient DWS Processor API (B)\n\nGood for: An agent that must change or produce documents (merge, convert, OCR, redact, sign, fill forms) in one chained request with predictable per-use cost.\n\nAhead on:\n- Reliability, 68 against 26\n- Schema \u0026 documentation, 84 against 37\n- Agent ergonomics, 84 against 61\n- Security \u0026 auth, 66 against 41\n- Payments \u0026 pricing, 40 against 30\n- Maintenance \u0026 community, 78 against 62\n- Transparency \u0026 trust, 73 against 52\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: The status feed records 61 minutes of DWS Platform downtime on 13 July 2026 and five days with Processor API downtime since 23 July\n\n\n## Score by category\n\n| Category | Weight | iLoveAPI | Nutrient DWS Processor API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 26 | 68 | Nutrient DWS Processor API +42 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 37 | 84 | Nutrient DWS Processor API +47 |\n| Agent ergonomics | 13% (16.2 this run) | 61 | 84 | Nutrient DWS Processor API +23 |\n| Security \u0026 auth | 14% (17.5 this run) | 41 | 66 | Nutrient DWS Processor API +25 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 40 | Nutrient DWS Processor API +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 62 | 78 | Nutrient DWS Processor API +16 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 52 | 73 | Nutrient DWS Processor API +21 |\n| Negative events | ≤15 | 0 | -2 | |\n| **Total** | | **42 · E** | **68.7 · B** | |\n\n## Facts side by side\n\n| Fact | iLoveAPI | Nutrient DWS Processor API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | iLovePDF S.L. | Nutrient (PSPDFKit GmbH) |\n| Hosted endpoint | `https://api.ilovepdf.com/v1` | `https://api.nutrient.io` |\n| Transports | HTTP | HTTP, stdio |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under the iLovePDF API terms. The client libraries are MIT | Proprietary service under the Nutrient DWS API licence agreement. The MCP server and the TypeScript and Python clients are MIT |\n| Tools exposed | none | 8 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| MCP registry | not listed | `io.github.PSPDFKit/nutrient-dws-mcp-server` |\n| Last release | 2026-09-03 | 2026-08-27 |\n| Terms last updated | 2017-02-14 | 2026-09-01 |\n| Privacy policy last updated | couldn't be read | no date given |\n| Customer content may train models | not found in the text | yes, with an opt-out |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 9.6k npm/wk | 71 stars, 2.7k npm/wk, 2.2k PyPI/wk |\n\n## Verdicts\n\n**iLoveAPI.** Per-tool credit costs are public, 2,500 free credits arrive each month on a sign-up that asks for no card, and five official libraries are MIT. No OpenAPI file, status page or published rate-limit numbers were found, and the governing terms date from 14 February 2017.\n\n**Nutrient DWS Processor API.** 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.\n\n## Before you call either\n\n### iLoveAPI\n\n1. Run four calls per job. `GET /v1/start/{tool}/{region}` returns a `server` and a `task`, then send upload, process and download to that server\n2. Sign a JWT with the project secret key and send it as `Authorization: Bearer`. Tokens expire after one hour\n3. Download results promptly. The reference says files are deleted one to two hours after processing, depending on tier\n4. Back off exponentially on 429 and read the rate-limit headers on each response. No limit numbers are published\n5. Add `debug=true` to any request to have the server echo the parameters without processing or spending credits\n\n### Nutrient DWS Processor API\n\n1. Send `Authorization: Bearer \u003ckey\u003e` to `https://api.nutrient.io`. Use `POST /build` with an `instructions` JSON part to chain several actions in one charged request\n2. Call `POST /analyze_build` first to get the credit cost of a build. The call is free\n3. Stay under 100 requests a minute per key and back off exponentially on 429. Test keys allow 10 a minute and 5 MB\n4. For long jobs send `Prefer: respond-async` with an `Idempotency-Key`, then poll the `Location` URL with `X-Async-Job-Token` after `Retry-After`\n5. Set `SANDBOX_PATH` for the MCP server. Without it the server reads and writes any path the user account can reach\n\n## Questions\n\n### Which is better for AI agents, iLoveAPI or Nutrient DWS Processor API?\n\nNutrient DWS Processor API scores 68.7 (B) on agent readiness against iLoveAPI's 42 (E), and leads in every scored category.\n\n### Do iLoveAPI and Nutrient DWS Processor API need an API key?\n\niLoveAPI needs an API key. Nutrient DWS Processor API takes an API key or an OAuth sign-in.\n\n### Can an agent call iLoveAPI and Nutrient DWS Processor API without installing anything?\n\nYes. iLoveAPI has a hosted endpoint at https://api.ilovepdf.com/v1 and Nutrient DWS Processor API at https://api.nutrient.io.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/iloveapi-vs-nutrient-dws-processor.json, and with the fewest tokens: https://www.anchorterminal.com/compare/iloveapi-vs-nutrient-dws-processor.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"iloveapi\", \"b\": \"nutrient-dws-processor\"}`. From a terminal: `anchor compare iloveapi nutrient-dws-processor`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/iloveapi.json and https://www.anchorterminal.com/api/v1/tools/nutrient-dws-processor.json\n\n## Other comparisons with iLoveAPI or Nutrient DWS Processor API\n\n- [CloudConvert API vs iLoveAPI](https://www.anchorterminal.com/compare/cloudconvert-vs-iloveapi.md)\n- [CloudConvert API vs Nutrient DWS Processor API](https://www.anchorterminal.com/compare/cloudconvert-vs-nutrient-dws-processor.md)\n- [Foxit PDF Services API vs iLoveAPI](https://www.anchorterminal.com/compare/foxit-pdf-services-vs-iloveapi.md)\n- [Foxit PDF Services API vs Nutrient DWS Processor API](https://www.anchorterminal.com/compare/foxit-pdf-services-vs-nutrient-dws-processor.md)\n- [iLoveAPI vs PDF.co API + MCP](https://www.anchorterminal.com/compare/iloveapi-vs-pdf-co.md)\n- [Nutrient DWS Processor API vs PDF.co API + MCP](https://www.anchorterminal.com/compare/nutrient-dws-processor-vs-pdf-co.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "iLoveAPI vs Nutrient DWS Processor API",
        "url": ""
      }
    ],
    "description": "Nutrient DWS Processor scores 68.7 (B) to iLoveAPI's 42 (E) for pdf conversion. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "iLoveAPI E 42",
      "Nutrient DWS Processor API B 68.7",
      "scores"
    ],
    "h1": "iLoveAPI vs Nutrient DWS Processor API",
    "image": "https://www.anchorterminal.com/assets/og/compare-iloveapi-vs-nutrient-dws-processor.png",
    "path": "/compare/iloveapi-vs-nutrient-dws-processor",
    "published": "2026-10-01",
    "section": "tools",
    "title": "iLoveAPI vs Nutrient DWS Processor for AI agents (2026)",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/iloveapi-vs-nutrient-dws-processor"
  },
  "tokens": {
    "markdown": 2150,
    "slim": 680
  },
  "version": 1
}
