{
  "data": {
    "a": {
      "slug": "convertapi",
      "name": "ConvertAPI",
      "vendor": "ConvertAPI, UAB",
      "vendorUrl": "https://www.convertapi.com",
      "kind": "http-api",
      "category": "pdf-tools",
      "summary": "ConvertAPI is a REST API from ConvertAPI, UAB in Lithuania for file conversion and PDF work, with 300+ converters across Office, PDF, image, HTML and email formats, SDKs in nine languages and a hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/convertapi",
      "markdownUrl": "https://www.anchorterminal.com/tools/convertapi.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/convertapi.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/convertapi.json",
      "dns": "convertapi.grade.anchorterminal.com",
      "repo": "https://github.com/ConvertAPI",
      "license": "Proprietary service. SDKs on GitHub; the npm SDK is MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.convertapi.io",
      "packages": [
        {
          "registry": "npm",
          "name": "convertapi"
        },
        {
          "registry": "pypi",
          "name": "convertapi"
        }
      ],
      "auth": "mixed",
      "authNotes": "API tokens in `Authorization: Bearer`, separated by environment (Production or Development) with usage limits. JWTs with expiry and IP restriction, minted by `POST /token/jwt` or self-signed with HS256. One Master Token per account for admin endpoints, refreshable at once. The hosted MCP server signs in with OAuth. A `Token` query parameter is documented for links, with legacy `Secret` and `Auth` aliases.",
      "pricing": "paid",
      "pricingNotes": "Free trial of 250 conversions with no card, per llms.txt. Plans by conversion count (Developer 1,000 a month, Startup 5,000, Growth 15,000, Business 50,000, Enterprise 100K+), two months free yearly, overage billed per conversion. The pricing page draws prices by script and they were not readable on 6 November 2026 (https://www.convertapi.com/prices, https://www.convertapi.com/llms.txt).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in llms.txt, the docs read or the OpenAPI document (checked 2026-11-06). Payments go through Paddle.",
        "endpoints": []
      },
      "toolCount": 4,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 177344,
        "pypiWeekly": 81556,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://www.convertapi.com/docs",
      "llmsTxt": "https://www.convertapi.com/llms.txt",
      "openapi": "https://v2.convertapi.com/info/openapi",
      "capabilities": [
        "pdf.convert",
        "pdf.merge",
        "pdf.extract",
        "pdf.generate",
        "docs.ocr"
      ],
      "tags": [
        "hosted",
        "openapi",
        "llms-txt",
        "mcp",
        "remote-mcp",
        "oauth",
        "python",
        "typescript",
        "java",
        "dotnet",
        "php",
        "ruby",
        "go",
        "no-card",
        "free-trial",
        "iso27001",
        "soc2",
        "hipaa",
        "eu-region",
        "status-page",
        "closed-source"
      ],
      "lastRelease": "2026-11-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64,
        "grade": "B",
        "agentReady": false,
        "rank": 490,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 2,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 80,
          "payments": 25,
          "reliability": 54,
          "schema": 92,
          "security": 55,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "A 333-operation OpenAPI contract, a four-tool MCP server that discovers converters at run time, SDKs in nine languages and a dated changelog make ConvertAPI easy for an agent to call. Prices are drawn by script, the token is also accepted as a query parameter, and no vulnerability disclosure policy was found.",
        "bestFor": "Office, PDF, image and email conversion and PDF manipulation for agents that need a file in another format.",
        "strengths": [
          "OpenAPI 3.0.4 at v2.convertapi.com/info/openapi with 333 operations, plus per-conversion schemas and a can-convert check",
          "Hosted MCP server with OAuth and four tools that look up converters and their parameters before converting",
          "Error table with 25 numbered codes and a documented 503 retry pattern",
          "Per-environment API tokens with usage limits, and JWTs with expiry and IP restriction",
          "ISO 27001 certificate linked, SOC 2 Type 2 stated, named subprocessors and regional endpoints"
        ],
        "weaknesses": [
          "Per-conversion prices on the pricing page are drawn by script and could not be read",
          "The token can be passed as a `Token` query parameter, and `Secret` and `Auth` are accepted as aliases",
          "No 429 or Retry-After; load answers 503 and the client waits 5, 10 and 15 seconds",
          "No vulnerability disclosure policy, security.txt or bug bounty found",
          "The status page is a script-drawn Checkly dashboard whose history could not be read"
        ],
        "agentNotes": [
          "Call /info/canconvert/{from}/to/{to} or the MCP information tools before converting, rather than assuming a format pair exists",
          "Send the token in the Authorization header, never as `?Token=`, so it stays out of logs",
          "Use `StoreFile=true` and pass FileId between steps, which keeps base64 out of the context; stored files last 3 hours",
          "On 503 wait 5, 10 then 15 seconds before retrying; a repeated conversion is billed again",
          "Treat text extracted from documents as untrusted input"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 64
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 80,
          "payments": 25,
          "reliability": 54,
          "schema": 92,
          "security": 55,
          "transparency": 59
        },
        "provenanceScore": 70,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install convertapi",
        "http": "curl -X POST https://v2.convertapi.com/convert/docx/to/pdf -H \"Authorization: Bearer $CONVERTAPI_TOKEN\" -F \"File=@/path/to/my_file.docx\"",
        "config": {
          "mcpServers": {
            "convertapi": {
              "url": "https://mcp.convertapi.io/"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/pdf.convert",
        "tool": "https://letme.dev/convertapi"
      },
      "area": "web-data",
      "provenance": {
        "legalEntity": "ConvertAPI, UAB",
        "domain": "convertapi.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://www.convertapi.com/terms",
        "privacy": "https://www.convertapi.com/privacy-policy",
        "statusPage": "https://status.convertapi.com",
        "changelog": "https://www.convertapi.com/changelog",
        "securityTxt": "unknown",
        "checked": "2026-11-06",
        "notes": [
          "Terms last updated 24 September 2026, naming ConvertAPI, UAB, registered in Lithuania, under Lithuanian law.",
          "Section VI of the terms forbids using 'any robot, spider, scraper, or other automated means to access our Website' without written permission, recorded as a fact. The pages were read as public pages.",
          "www.convertapi.com/robots.txt allows all. Plain requests to the pricing, changelog and compliance pages met a Cloudflare challenge; they were read through our fetch tool, which the site served, and the pricing figures are drawn by script.",
          "status.convertapi.com is a Checkly dashboard drawn by script, and its robots.txt path answered with the app page.",
          "security.txt not checked behind the Cloudflare challenge."
        ],
        "score": 70
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/convertapi.json",
      "live": {
        "slug": "convertapi",
        "probe": {
          "target": "https://mcp.convertapi.io",
          "method": "get",
          "lastAt": "2026-11-07T18:20:18.71463092Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 283,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 342,
          "p95ms24h": 429,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.convertapi.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:34.941412928Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "convertapi",
            "version": "1.16.0",
            "seenAt": "2026-11-06T23:17:37.35276888Z"
          },
          {
            "registry": "pypi",
            "name": "convertapi",
            "version": "2.0.1",
            "released": "2026-10-20",
            "seenAt": "2026-11-06T23:17:38.215770506Z"
          }
        ],
        "npmWeekly": 177344,
        "pypiWeekly": 81556,
        "securityTxt": {
          "url": "https://convertapi.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:51.603698275Z"
        },
        "llmsTxt": {
          "url": "https://www.convertapi.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:11.685443618Z"
        },
        "pages": [
          {
            "url": "https://www.convertapi.com/changelog",
            "kind": "changelog",
            "status": 403,
            "checkedAt": "2026-11-07T14:27:18.630281923Z",
            "changedAt": "0001-01-01T00:00:00Z"
          },
          {
            "url": "https://www.convertapi.com/prices",
            "kind": "pricing",
            "status": 403,
            "checkedAt": "2026-11-07T14:27:20.737622641Z",
            "changedAt": "0001-01-01T00:00:00Z"
          },
          {
            "url": "https://www.convertapi.com/privacy-policy",
            "kind": "privacy",
            "status": 403,
            "checkedAt": "2026-11-07T14:27:22.78995525Z",
            "changedAt": "0001-01-01T00:00:00Z"
          },
          {
            "url": "https://www.convertapi.com/terms",
            "kind": "terms",
            "status": 403,
            "checkedAt": "2026-11-07T14:27:24.718729715Z",
            "changedAt": "0001-01-01T00:00:00Z"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.convertapi.io/",
          "checkedAt": "2026-11-07T01:43:26.74047423Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:43:26.74047423Z"
        },
        "updatedAt": "2026-11-07T18:20:18.71463092Z"
      }
    },
    "answer": "ConvertAPI scores 64 (B) on agent readiness against iLoveAPI's 42.1 (E), and leads in 6 of 7 scored categories. iLoveAPI leads on payments \u0026 pricing.",
    "b": {
      "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",
      "dns": "iloveapi.grade.anchorterminal.com",
      "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.1,
        "grade": "E",
        "agentReady": false,
        "rank": 1269,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 8,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 61,
          "maintenance": 62,
          "payments": 30,
          "reliability": 26,
          "schema": 37,
          "security": 41,
          "transparency": 53
        },
        "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": 4,
        "avgRating": 2.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 42.1
          }
        ],
        "editorialScores": {
          "ergonomics": 61,
          "maintenance": 62,
          "payments": 30,
          "reliability": 26,
          "schema": 37,
          "security": 41,
          "transparency": 37
        },
        "provenanceScore": 68,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-09",
            "maintenance": "2026-10-09",
            "payments": "2026-10-09",
            "reliability": "2026-10-09",
            "schema": "2026-10-09",
            "security": "2026-10-09",
            "transparency": "2026-10-09"
          },
          "last": "2026-10-09",
          "lastMoved": "2026-10-28",
          "oldest": "2026-10-09",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "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": 68
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/iloveapi.json",
      "live": {
        "slug": "iloveapi",
        "probe": {
          "target": "https://api.ilovepdf.com/v1",
          "method": "get",
          "lastAt": "2026-11-07T18:20:31.513717529Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 140,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.99,
          "p50ms24h": 141,
          "p95ms24h": 232,
          "samples24h": 239,
          "samples30d": 7205,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 252
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "ilovepdf/ilovepdf-python",
            "version": "v1.1.0",
            "released": "2026-07-28",
            "seenAt": "2026-11-06T23:34:09.553845466Z"
          },
          {
            "registry": "npm",
            "name": "@ilovepdf/ilovepdf-nodejs",
            "version": "0.3.1",
            "seenAt": "2026-11-06T23:34:08.831955767Z"
          },
          {
            "registry": "pypi",
            "name": "ilovepdf",
            "version": "1.0.0",
            "released": "2026-04-01",
            "seenAt": "2026-11-06T23:34:07.675969918Z"
          }
        ],
        "githubStars": 17,
        "npmWeekly": 9999,
        "pypiWeekly": 78,
        "securityTxt": {
          "url": "https://iloveapi.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-11-07T15:59:45.2336248Z"
        },
        "domain": {
          "domain": "iloveapi.com",
          "registered": "2005-08-18",
          "source": "https://rdap.verisign.com/com/v1/domain/iloveapi.com",
          "checkedAt": "2026-11-01T14:22:23.350511154Z"
        },
        "pages": [
          {
            "url": "https://www.iloveapi.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:30:09.269157653Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "99ae5ec9f360"
          },
          {
            "url": "https://www.iloveapi.com/policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:30:03.976949459Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "15c457ef8e47"
          },
          {
            "url": "https://www.iloveapi.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:30:09.418441521Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9451d9a5e124"
          }
        ],
        "github": {
          "repo": "ilovepdf/ilovepdf-python",
          "checkedAt": "2026-11-02T08:55:42.160812906Z",
          "stars": 17,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-07-28T18:01:55Z",
          "openIssues": 0,
          "openPRs": 1,
          "issuesOpened90d": 1,
          "issuesClosed90d": 1,
          "prsMerged90d": 0,
          "ci": {
            "branch": "main",
            "runs": 2,
            "success": 1,
            "failure": 1,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-07-28T17:11:24Z"
          },
          "replies": {
            "sampled": 1,
            "unanswered": 0,
            "medianDays": 6.1
          }
        },
        "updatedAt": "2026-11-07T18:20:31.513717529Z"
      }
    },
    "edges": [
      {
        "by": 55,
        "category": "schema",
        "leads": "convertapi",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "OpenAPI 3.0.4 at v2.convertapi.com/info/openapi, 333 operations with token, JWT and secret schemes, plus per-conversion documents and wildcard listings (25). A long llms.txt written for agents (10). llms.txt tells agents to discover conversions rather than assume them and explains workflows and storage; converter pages describe each parameter (16 of 20). Per-converter parameter schemas in the OpenAPI document, validated by the MCP convert tool (12 of 15). 25 numbered error codes with meanings and examples throughout (14 of 15). v2 API and a dated public changelog (15). 25+10+16+12+14+15 = 92.",
          "b": "No OpenAPI file or other machine-readable contract was found (0). `llms.txt` answered 404 and there are no Markdown docs (0). The single-page reference states what each tool and parameter does, without guidance on when not to use one (10). Parameters carry types, accepted values and defaults, such as rotation 0, 90, 180 or 270 (11). JSON response samples, an error table, and file and task status lists, with request examples mostly in the library guides (10). The path carries `/v1`. No API changelog was found, and the Python and PHP libraries keep their own (6)."
        },
        "scores": {
          "a": 92,
          "b": 37
        }
      },
      {
        "by": 28,
        "category": "reliability",
        "leads": "convertapi",
        "name": "Reliability",
        "reasons": {
          "a": "Hosted lines. status.convertapi.com is a Checkly dashboard drawn by script, so its components were not confirmed (10 of 20) and no history could be read (5). Concurrency per plan is published (1 to 4 concurrent conversions), with no request-rate figure (12 of 15). Under load the API answers 503 and llms.txt gives a 5, 10 and 15 second retry pattern; no 429, Retry-After or idempotency key (12 of 15). The compliance page states '99,95% monthly uptime' and says the SLA sits in the terms, but the terms read on 6 November state no uptime figure (5 of 10). Generally available (10). 10+5+12+12+5+10 = 54.",
          "b": "Graded as a hosted API. No status page is linked from the site, the docs or the security page (0), so there is no readable incident history (5). Rate limits are described as tier-dependent and reported in response headers, with no numbers. The open-task cap of 10% of the monthly file limit and two signature reminders a day are the only figures (3). 429 is documented with advice to back off exponentially, and failed files are not charged, but there is no Retry-After and no idempotency key (8). The pricing FAQ says the API guarantees over 99.95% uptime and the functions page says 99.9%+, with no SLA document or remedy, and the terms disclaim availability (0). Generally available (10)."
        },
        "scores": {
          "a": 54,
          "b": 26
        }
      },
      {
        "by": 18,
        "category": "ergonomics",
        "leads": "convertapi",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Four MCP tools that list, search and describe converters before one convert tool (25). `StoreFile=true` returns a URL and FileId instead of base64, and converters can be filtered by tag or search; nothing to paginate (14 of 20). Numbered codes such as 4014 balance exhausted and 5003 password protected an agent can act on (17 of 20). No idempotency key; a repeated conversion is billed again, and MCP tool annotations weren't found (8 of 20). SDKs in nine languages and a CLI, with one required file parameter on most converters (15). 25+14+17+8+15 = 79.",
          "b": "Responses are small JSON and output arrives as a file or ZIP, but every job takes four calls and the start call's server must be reused (12). `/task` lists 50 a page with filters by tool, status and `custom_int`, and the signature list takes page and per-page (14). One error structure with type, message, code and param, plus per-file statuses such as WrongPassword and DamagedFile (14). No idempotency keys. A `debug` parameter echoes a request without processing, and a wrong password leaves the task waiting for a resend (6). Most parameters have defaults, and there are official libraries in five languages (15)."
        },
        "scores": {
          "a": 79,
          "b": 61
        }
      },
      {
        "by": 18,
        "category": "maintenance",
        "leads": "convertapi",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Closed service. Newest changelog entry 5 November 2026 (30). Twelve dated entries from 1 October to 5 November (20). Public changelog, support email, phone and form, and SDK repositories on GitHub; issue replies not sampled (10 of 15). Current official SDKs, npm 1.16.0 on 26 October and PyPI 2.0.1 on 20 October 2026 (15). The MCP repository's last commit is 12 May 2026 and has no LICENSE file though its README says MIT; SDK CI not checked (5 of 10). 30+20+10+15+5 = 80.",
          "b": "The .NET library v1.6.4 was tagged on 3 September 2026, 36 days before this check (20). Three library releases in the last 90 days, PHP v1.4.1 on 22 July, Python v1.1.0 on 28 July and .NET v1.6.4 (20). Closed service with no API changelog. Support is by email and a chat widget, and GitHub issue replies were not read (6). PHP, .NET and Python libraries are current, while Node.js last changed in May 2025 and Ruby in October 2024 (10). CI workflows and tests in the Python, .NET and Node.js repositories (6)."
        },
        "scores": {
          "a": 80,
          "b": 62
        }
      },
      {
        "by": 14,
        "category": "security",
        "leads": "convertapi",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Tokens per environment with usage limits, JWTs with expiry and IP restriction, a separate Master Token for admin endpoints, OAuth on the hosted MCP (30), less 10 for the documented `Token` query parameter and its `Secret` and `Auth` aliases (20 of 30). Usage limits per token, but no read-only token, and stored files can be deleted (8 of 20). Extracted text and OCR output come from the documents, with no prompt-injection guidance (3 of 15). Usage statistics and per-environment consumption through the Master Token (10 of 15). ISO 27001 certificate linked, SOC 2 Type 2 stated with the report on request, cyber insurance; no disclosure policy, security.txt or bug bounty found (14 of 20). 20+8+3+10+14 = 55.",
          "b": "Each project has a public and a secret key, requests carry a JWT signed with the secret that expires after one hour, and domain and IP filters exist depending on tier. No scopes (20). No read-only key or confirmation before a task is deleted, and `/auth` issues a token for the public key alone unless a domain filter is set (4). OCR, Markdown and summary output is untrusted text and the docs give no injection guidance (0). `/task` lists processed tasks and signatures have a downloadable audit trail, with no account audit log found (7). ISO/IEC 27001:2022 certificate linked and a signed security policy of 19 June 2025. security.txt answered 403, and no disclosure policy or bounty was found (10)."
        },
        "scores": {
          "a": 55,
          "b": 41
        }
      },
      {
        "by": 12,
        "category": "transparency",
        "leads": "convertapi",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service with terms dated 24 September 2026 naming ConvertAPI, UAB under Lithuanian law (15 of 30). Files are stored at most 3 hours or converted in memory per the compliance page, and a DPA and BAA are published, but llms.txt also says files are 'deleted immediately after processing by default', and the terms give no periods (20 of 30). The changelog dates changes, including the removal of the AiMode parameter on 22 October 2026 with no prior notice found, and the docs mark the secret as deprecated with no date; no deprecation policy (6 of 20). Subprocessors named with roles and regional endpoints listed (18 of 20). 15+20+6+18 = 59.",
          "b": "Closed service with terms naming iLovePDF S.L., last modified 14 February 2017, and MIT client libraries (15). The reference says files are deleted after an hour depending on tier and elsewhere after two hours, the security page says two hours and the terms say at most 48 hours. The privacy policy is an iubenda document closed to us by robots.txt and was not read (12). No deprecation policy, and the terms allow the API to be discontinued at any time (0). Seven processing regions are selectable per task and Stripe is named for payments. No subprocessor list was read (10)."
        },
        "scores": {
          "a": 65,
          "b": 53
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "ConvertAPI, UAB",
        "b": "iLovePDF S.L.",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.convertapi.io",
        "b": "https://api.ilovepdf.com/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service. SDKs on GitHub; the npm SDK is MIT",
        "b": "Proprietary service under the iLovePDF API terms. The client libraries are MIT",
        "name": "Licence"
      },
      {
        "a": "4",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-11-05",
        "b": "2026-09-03",
        "name": "Last release"
      },
      {
        "a": "2026-09-24",
        "b": "2017-02-14",
        "name": "Terms last updated"
      },
      {
        "a": "2026-11-05",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "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": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "177k npm/wk, 82k PyPI/wk",
        "b": "9.6k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "2.8/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "ConvertAPI scores 64 (B) on agent readiness against iLoveAPI's 42.1 (E), and leads in 6 of 7 scored categories. iLoveAPI leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, ConvertAPI or iLoveAPI?"
      },
      {
        "answer": "ConvertAPI takes an API key or an OAuth sign-in. iLoveAPI needs an API key.",
        "question": "Do ConvertAPI and iLoveAPI need an API key?"
      },
      {
        "answer": "Yes. ConvertAPI has a hosted endpoint at https://mcp.convertapi.io and iLoveAPI at https://api.ilovepdf.com/v1.",
        "question": "Can an agent call ConvertAPI and iLoveAPI without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 54 against 26",
          "Schema \u0026 documentation, 92 against 37",
          "Agent ergonomics, 79 against 61",
          "Security \u0026 auth, 55 against 41",
          "Maintenance \u0026 community, 80 against 62",
          "Transparency \u0026 trust, 65 against 53"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Office, PDF, image and email conversion and PDF manipulation for agents that need a file in another format.",
        "slug": "convertapi",
        "watchFor": "Per-conversion prices on the pricing page are drawn by script and could not be read"
      },
      {
        "aheadOn": [
          "Payments \u0026 pricing, 30 against 25"
        ],
        "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"
      }
    ],
    "history": {
      "convertapi": null,
      "iloveapi": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-10-28",
          "delta": -0.1,
          "from": 42.2,
          "fromGrade": "E",
          "to": 42.1,
          "toGrade": "E"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.2,
          "from": 42,
          "fromGrade": "E",
          "to": 42.2,
          "toGrade": "E"
        }
      ]
    },
    "job": {
      "capability": "pdf.convert",
      "name": "PDF conversion"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/cloudconvert-vs-convertapi.json",
        "title": "CloudConvert API vs ConvertAPI",
        "url": "https://www.anchorterminal.com/compare/cloudconvert-vs-convertapi"
      },
      {
        "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/convertapi-vs-docraptor.json",
        "title": "ConvertAPI vs DocRaptor",
        "url": "https://www.anchorterminal.com/compare/convertapi-vs-docraptor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/convertapi-vs-foxit-pdf-services.json",
        "title": "ConvertAPI vs Foxit PDF Services API",
        "url": "https://www.anchorterminal.com/compare/convertapi-vs-foxit-pdf-services"
      },
      {
        "json": "https://www.anchorterminal.com/compare/convertapi-vs-nutrient-dws-processor.json",
        "title": "ConvertAPI vs Nutrient DWS Processor API",
        "url": "https://www.anchorterminal.com/compare/convertapi-vs-nutrient-dws-processor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/convertapi-vs-pdf-co.json",
        "title": "ConvertAPI vs PDF.co API + MCP",
        "url": "https://www.anchorterminal.com/compare/convertapi-vs-pdf-co"
      },
      {
        "json": "https://www.anchorterminal.com/compare/convertapi-vs-pdfrest.json",
        "title": "ConvertAPI vs pdfRest API Toolkit",
        "url": "https://www.anchorterminal.com/compare/convertapi-vs-pdfrest"
      },
      {
        "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/iloveapi-vs-nutrient-dws-processor.json",
        "title": "iLoveAPI vs Nutrient DWS Processor API",
        "url": "https://www.anchorterminal.com/compare/iloveapi-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/iloveapi-vs-pdfrest.json",
        "title": "iLoveAPI vs pdfRest API Toolkit",
        "url": "https://www.anchorterminal.com/compare/iloveapi-vs-pdfrest"
      },
      {
        "json": "https://www.anchorterminal.com/compare/convertapi-vs-pdfmonkey.json",
        "title": "ConvertAPI vs PDFMonkey",
        "url": "https://www.anchorterminal.com/compare/convertapi-vs-pdfmonkey"
      },
      {
        "json": "https://www.anchorterminal.com/compare/docraptor-vs-iloveapi.json",
        "title": "DocRaptor vs iLoveAPI",
        "url": "https://www.anchorterminal.com/compare/docraptor-vs-iloveapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/iloveapi-vs-pdfmonkey.json",
        "title": "iLoveAPI vs PDFMonkey",
        "url": "https://www.anchorterminal.com/compare/iloveapi-vs-pdfmonkey"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 28,
        "convertapi": 54,
        "edge": "convertapi",
        "iloveapi": 26,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 55,
        "convertapi": 92,
        "edge": "convertapi",
        "iloveapi": 37,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 18,
        "convertapi": 79,
        "edge": "convertapi",
        "iloveapi": 61,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 14,
        "convertapi": 55,
        "edge": "convertapi",
        "iloveapi": 41,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 5,
        "convertapi": 25,
        "edge": "iloveapi",
        "iloveapi": 30,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 18,
        "convertapi": 80,
        "edge": "convertapi",
        "iloveapi": 62,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 12,
        "convertapi": 65,
        "edge": "convertapi",
        "iloveapi": 53,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "ConvertAPI scores 64 (B) on agent readiness against iLoveAPI's 42.1 (E), and leads in 6 of 7 scored categories. iLoveAPI leads on payments \u0026 pricing. Both do pdf conversion.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "convertapi": "A 333-operation OpenAPI contract, a four-tool MCP server that discovers converters at run time, SDKs in nine languages and a dated changelog make ConvertAPI easy for an agent to call. Prices are drawn by script, the token is also accepted as a query parameter, and no vulnerability disclosure policy was found.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/convertapi-vs-iloveapi",
    "json": "https://www.anchorterminal.com/compare/convertapi-vs-iloveapi.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/convertapi-vs-iloveapi.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/convertapi-vs-iloveapi.min.md"
  },
  "markdown": "ConvertAPI scores 64 (B) on agent readiness against iLoveAPI's 42.1 (E), and leads in 6 of 7 scored categories. iLoveAPI leads on payments \u0026 pricing. Both do pdf conversion.\n\n- ConvertAPI: grade B, 64/100, rank #490 of 1486. Markdown https://www.anchorterminal.com/tools/convertapi.md · JSON https://www.anchorterminal.com/api/v1/tools/convertapi.json\n- iLoveAPI: grade E, 42.1/100, rank #1269 of 1486. Markdown https://www.anchorterminal.com/tools/iloveapi.md · JSON https://www.anchorterminal.com/api/v1/tools/iloveapi.json\n- Best PDF manipulation and conversion APIs for AI agents: https://www.anchorterminal.com/best/pdf-tools/index.md\n- All 53 pdf comparisons: https://www.anchorterminal.com/compare/pdf-tools/index.md\n\n## Which one, for what\n\n### ConvertAPI (B)\n\nGood for: Office, PDF, image and email conversion and PDF manipulation for agents that need a file in another format.\n\nAhead on:\n- Reliability, 54 against 26\n- Schema \u0026 documentation, 92 against 37\n- Agent ergonomics, 79 against 61\n- Security \u0026 auth, 55 against 41\n- Maintenance \u0026 community, 80 against 62\n- Transparency \u0026 trust, 65 against 53\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: Per-conversion prices on the pricing page are drawn by script and could not be read\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\nAhead on:\n- Payments \u0026 pricing, 30 against 25\n\nWatch for: No OpenAPI file, llms.txt or Markdown docs. The reference is one HTML page\n\n\n## Why the edge\n\n### Schema \u0026 documentation: ConvertAPI +55\n\n- ConvertAPI (92): OpenAPI 3.0.4 at v2.convertapi.com/info/openapi, 333 operations with token, JWT and secret schemes, plus per-conversion documents and wildcard listings (25). A long llms.txt written for agents (10). llms.txt tells agents to discover conversions rather than assume them and explains workflows and storage; converter pages describe each parameter (16 of 20). Per-converter parameter schemas in the OpenAPI document, validated by the MCP convert tool (12 of 15). 25 numbered error codes with meanings and examples throughout (14 of 15). v2 API and a dated public changelog (15). 25+10+16+12+14+15 = 92.\n- iLoveAPI (37): No OpenAPI file or other machine-readable contract was found (0). `llms.txt` answered 404 and there are no Markdown docs (0). The single-page reference states what each tool and parameter does, without guidance on when not to use one (10). Parameters carry types, accepted values and defaults, such as rotation 0, 90, 180 or 270 (11). JSON response samples, an error table, and file and task status lists, with request examples mostly in the library guides (10). The path carries `/v1`. No API changelog was found, and the Python and PHP libraries keep their own (6).\n\n### Reliability: ConvertAPI +28\n\n- ConvertAPI (54): Hosted lines. status.convertapi.com is a Checkly dashboard drawn by script, so its components were not confirmed (10 of 20) and no history could be read (5). Concurrency per plan is published (1 to 4 concurrent conversions), with no request-rate figure (12 of 15). Under load the API answers 503 and llms.txt gives a 5, 10 and 15 second retry pattern; no 429, Retry-After or idempotency key (12 of 15). The compliance page states '99,95% monthly uptime' and says the SLA sits in the terms, but the terms read on 6 November state no uptime figure (5 of 10). Generally available (10). 10+5+12+12+5+10 = 54.\n- iLoveAPI (26): Graded as a hosted API. No status page is linked from the site, the docs or the security page (0), so there is no readable incident history (5). Rate limits are described as tier-dependent and reported in response headers, with no numbers. The open-task cap of 10% of the monthly file limit and two signature reminders a day are the only figures (3). 429 is documented with advice to back off exponentially, and failed files are not charged, but there is no Retry-After and no idempotency key (8). The pricing FAQ says the API guarantees over 99.95% uptime and the functions page says 99.9%+, with no SLA document or remedy, and the terms disclaim availability (0). Generally available (10).\n\n### Agent ergonomics: ConvertAPI +18\n\n- ConvertAPI (79): Four MCP tools that list, search and describe converters before one convert tool (25). `StoreFile=true` returns a URL and FileId instead of base64, and converters can be filtered by tag or search; nothing to paginate (14 of 20). Numbered codes such as 4014 balance exhausted and 5003 password protected an agent can act on (17 of 20). No idempotency key; a repeated conversion is billed again, and MCP tool annotations weren't found (8 of 20). SDKs in nine languages and a CLI, with one required file parameter on most converters (15). 25+14+17+8+15 = 79.\n- iLoveAPI (61): Responses are small JSON and output arrives as a file or ZIP, but every job takes four calls and the start call's server must be reused (12). `/task` lists 50 a page with filters by tool, status and `custom_int`, and the signature list takes page and per-page (14). One error structure with type, message, code and param, plus per-file statuses such as WrongPassword and DamagedFile (14). No idempotency keys. A `debug` parameter echoes a request without processing, and a wrong password leaves the task waiting for a resend (6). Most parameters have defaults, and there are official libraries in five languages (15).\n\n### Maintenance \u0026 community: ConvertAPI +18\n\n- ConvertAPI (80): Closed service. Newest changelog entry 5 November 2026 (30). Twelve dated entries from 1 October to 5 November (20). Public changelog, support email, phone and form, and SDK repositories on GitHub; issue replies not sampled (10 of 15). Current official SDKs, npm 1.16.0 on 26 October and PyPI 2.0.1 on 20 October 2026 (15). The MCP repository's last commit is 12 May 2026 and has no LICENSE file though its README says MIT; SDK CI not checked (5 of 10). 30+20+10+15+5 = 80.\n- iLoveAPI (62): The .NET library v1.6.4 was tagged on 3 September 2026, 36 days before this check (20). Three library releases in the last 90 days, PHP v1.4.1 on 22 July, Python v1.1.0 on 28 July and .NET v1.6.4 (20). Closed service with no API changelog. Support is by email and a chat widget, and GitHub issue replies were not read (6). PHP, .NET and Python libraries are current, while Node.js last changed in May 2025 and Ruby in October 2024 (10). CI workflows and tests in the Python, .NET and Node.js repositories (6).\n\n### Security \u0026 auth: ConvertAPI +14\n\n- ConvertAPI (55): Tokens per environment with usage limits, JWTs with expiry and IP restriction, a separate Master Token for admin endpoints, OAuth on the hosted MCP (30), less 10 for the documented `Token` query parameter and its `Secret` and `Auth` aliases (20 of 30). Usage limits per token, but no read-only token, and stored files can be deleted (8 of 20). Extracted text and OCR output come from the documents, with no prompt-injection guidance (3 of 15). Usage statistics and per-environment consumption through the Master Token (10 of 15). ISO 27001 certificate linked, SOC 2 Type 2 stated with the report on request, cyber insurance; no disclosure policy, security.txt or bug bounty found (14 of 20). 20+8+3+10+14 = 55.\n- iLoveAPI (41): Each project has a public and a secret key, requests carry a JWT signed with the secret that expires after one hour, and domain and IP filters exist depending on tier. No scopes (20). No read-only key or confirmation before a task is deleted, and `/auth` issues a token for the public key alone unless a domain filter is set (4). OCR, Markdown and summary output is untrusted text and the docs give no injection guidance (0). `/task` lists processed tasks and signatures have a downloadable audit trail, with no account audit log found (7). ISO/IEC 27001:2022 certificate linked and a signed security policy of 19 June 2025. security.txt answered 403, and no disclosure policy or bounty was found (10).\n\n### Transparency \u0026 trust: ConvertAPI +12\n\n- ConvertAPI (65): Closed service with terms dated 24 September 2026 naming ConvertAPI, UAB under Lithuanian law (15 of 30). Files are stored at most 3 hours or converted in memory per the compliance page, and a DPA and BAA are published, but llms.txt also says files are 'deleted immediately after processing by default', and the terms give no periods (20 of 30). The changelog dates changes, including the removal of the AiMode parameter on 22 October 2026 with no prior notice found, and the docs mark the secret as deprecated with no date; no deprecation policy (6 of 20). Subprocessors named with roles and regional endpoints listed (18 of 20). 15+20+6+18 = 59.\n- iLoveAPI (53): Closed service with terms naming iLovePDF S.L., last modified 14 February 2017, and MIT client libraries (15). The reference says files are deleted after an hour depending on tier and elsewhere after two hours, the security page says two hours and the terms say at most 48 hours. The privacy policy is an iubenda document closed to us by robots.txt and was not read (12). No deprecation policy, and the terms allow the API to be discontinued at any time (0). Seven processing regions are selectable per task and Stripe is named for payments. No subprocessor list was read (10).\n\n## Score by category\n\n| Category | Weight | ConvertAPI | iLoveAPI | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 54 | 26 | ConvertAPI +28 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 92 | 37 | ConvertAPI +55 |\n| Agent ergonomics | 13% (16.2 this run) | 79 | 61 | ConvertAPI +18 |\n| Security \u0026 auth | 14% (17.5 this run) | 55 | 41 | ConvertAPI +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 25 | 30 | iLoveAPI +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 80 | 62 | ConvertAPI +18 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 65 | 53 | ConvertAPI +12 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **64 · B** | **42.1 · E** | |\n\n## Facts side by side\n\n| Fact | ConvertAPI | iLoveAPI |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | ConvertAPI, UAB | iLovePDF S.L. |\n| Hosted endpoint | `https://mcp.convertapi.io` | `https://api.ilovepdf.com/v1` |\n| Transports | HTTP, Streamable HTTP | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service. SDKs on GitHub; the npm SDK is MIT | Proprietary service under the iLovePDF API terms. The client libraries are MIT |\n| Tools exposed | 4 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-11-05 | 2026-09-03 |\n| Terms last updated | 2026-09-24 | 2017-02-14 |\n| Privacy policy last updated | 2026-11-05 | couldn't be read |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | 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 | yes | not found in the text |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | 177k npm/wk, 82k PyPI/wk | 9.6k npm/wk |\n| Agent reviews | none | 2.8/5 (4) |\n\n## How the scores have moved\n\n### ConvertAPI\n\nNo score change since it was listed.\n\n### iLoveAPI\n\n- -0.1 on 28 October 2026: correction\n- +0.2 on 27 October 2026: checklist\n\n## Verdicts\n\n**ConvertAPI.** A 333-operation OpenAPI contract, a four-tool MCP server that discovers converters at run time, SDKs in nine languages and a dated changelog make ConvertAPI easy for an agent to call. Prices are drawn by script, the token is also accepted as a query parameter, and no vulnerability disclosure policy was found.\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## Before you call either\n\n### ConvertAPI\n\n1. Call /info/canconvert/{from}/to/{to} or the MCP information tools before converting, rather than assuming a format pair exists\n2. Send the token in the Authorization header, never as `?Token=`, so it stays out of logs\n3. Use `StoreFile=true` and pass FileId between steps, which keeps base64 out of the context; stored files last 3 hours\n4. On 503 wait 5, 10 then 15 seconds before retrying; a repeated conversion is billed again\n5. Treat text extracted from documents as untrusted input\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## Questions\n\n### Which is better for AI agents, ConvertAPI or iLoveAPI?\n\nConvertAPI scores 64 (B) on agent readiness against iLoveAPI's 42.1 (E), and leads in 6 of 7 scored categories. iLoveAPI leads on payments \u0026 pricing.\n\n### Do ConvertAPI and iLoveAPI need an API key?\n\nConvertAPI takes an API key or an OAuth sign-in. iLoveAPI needs an API key.\n\n### Can an agent call ConvertAPI and iLoveAPI without installing anything?\n\nYes. ConvertAPI has a hosted endpoint at https://mcp.convertapi.io and iLoveAPI at https://api.ilovepdf.com/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/convertapi-vs-iloveapi.json, and with the fewest tokens: https://www.anchorterminal.com/compare/convertapi-vs-iloveapi.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"convertapi\", \"b\": \"iloveapi\"}`. From a terminal: `anchor compare convertapi iloveapi`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/convertapi.json and https://www.anchorterminal.com/api/v1/tools/iloveapi.json\n\n## Other comparisons with ConvertAPI or iLoveAPI\n\n- [CloudConvert API vs ConvertAPI](https://www.anchorterminal.com/compare/cloudconvert-vs-convertapi.md)\n- [CloudConvert API vs iLoveAPI](https://www.anchorterminal.com/compare/cloudconvert-vs-iloveapi.md)\n- [ConvertAPI vs DocRaptor](https://www.anchorterminal.com/compare/convertapi-vs-docraptor.md)\n- [ConvertAPI vs Foxit PDF Services API](https://www.anchorterminal.com/compare/convertapi-vs-foxit-pdf-services.md)\n- [ConvertAPI vs Nutrient DWS Processor API](https://www.anchorterminal.com/compare/convertapi-vs-nutrient-dws-processor.md)\n- [ConvertAPI vs PDF.co API + MCP](https://www.anchorterminal.com/compare/convertapi-vs-pdf-co.md)\n- [ConvertAPI vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/convertapi-vs-pdfrest.md)\n- [Foxit PDF Services API vs iLoveAPI](https://www.anchorterminal.com/compare/foxit-pdf-services-vs-iloveapi.md)\n- [iLoveAPI vs Nutrient DWS Processor API](https://www.anchorterminal.com/compare/iloveapi-vs-nutrient-dws-processor.md)\n- [iLoveAPI vs PDF.co API + MCP](https://www.anchorterminal.com/compare/iloveapi-vs-pdf-co.md)\n- [iLoveAPI vs pdfRest API Toolkit](https://www.anchorterminal.com/compare/iloveapi-vs-pdfrest.md)\n- [ConvertAPI vs PDFMonkey](https://www.anchorterminal.com/compare/convertapi-vs-pdfmonkey.md)\n- [DocRaptor vs iLoveAPI](https://www.anchorterminal.com/compare/docraptor-vs-iloveapi.md)\n- [iLoveAPI vs PDFMonkey](https://www.anchorterminal.com/compare/iloveapi-vs-pdfmonkey.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "ConvertAPI vs iLoveAPI",
        "url": ""
      }
    ],
    "description": "ConvertAPI scores 64 (B) to iLoveAPI's 42.1 (E) for pdf conversion. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "ConvertAPI B 64",
      "iLoveAPI E 42.1",
      "scores"
    ],
    "h1": "ConvertAPI vs iLoveAPI",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/convertapi-vs-iloveapi",
    "published": "2026-10-01",
    "section": "tools",
    "title": "ConvertAPI vs iLoveAPI for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/convertapi-vs-iloveapi"
  },
  "tokens": {
    "markdown": 4150,
    "slim": 2630
  },
  "version": 1
}
