{
  "data": {
    "a": {
      "slug": "activepieces",
      "name": "Activepieces API + MCP",
      "vendor": "Activepieces",
      "vendorUrl": "https://www.activepieces.com",
      "kind": "http-api",
      "category": "workflow-automation",
      "summary": "Open-source flow builder with 760+ app integrations (pieces), run on Activepieces Cloud or self-hosted.",
      "url": "https://www.anchorterminal.com/tools/activepieces",
      "markdownUrl": "https://www.anchorterminal.com/tools/activepieces.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/activepieces.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/activepieces.json",
      "repo": "https://github.com/activepieces/activepieces",
      "license": "MIT (core), commercial licence for enterprise-only parts",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://cloud.activepieces.com/api/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@activepieces/pieces-framework"
        }
      ],
      "auth": "mixed",
      "authNotes": "REST API keys are created in the platform dashboard and sent as `Authorization: Bearer`. The docs say that dashboard is only in the Platform and Enterprise editions. The MCP server at https://\u003cinstance\u003e/mcp uses OAuth and is scoped to one project.",
      "pricing": "freemium",
      "pricingNotes": "Cloud Free 1,000 credits a month, one user, no card. Plus $20 a month (10,000 credits, up to 5 users), Team $200 a month (50,000 credits, 25 users), extra credits $0.007 each. Ultimate and Enterprise custom, embedding from $36,000 a year. Self-hosted Community Edition is free under MIT, enterprise-only parts need a licence key (https://www.activepieces.com/pricing).",
      "priceSummary": "$20 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 45,
      "popularity": {
        "githubStars": 24814,
        "npmWeekly": 451816,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://www.activepieces.com/docs",
      "llmsTxt": "https://www.activepieces.com/docs/llms.txt",
      "openapi": "https://www.activepieces.com/docs/openapi.json",
      "capabilities": [
        "automation.workflows",
        "automation.apps",
        "automation.embedded",
        "automation.code",
        "automation.webhooks",
        "agent.tools"
      ],
      "tags": [
        "hosted",
        "self-hosted",
        "open-source",
        "local",
        "freemium",
        "no-card",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "webhooks"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 57.8,
        "grade": "C",
        "agentReady": false,
        "rank": 288,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 4,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 65,
          "maintenance": 80,
          "payments": 35,
          "reliability": 55,
          "schema": 80,
          "security": 64,
          "transparency": 76
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -6,
        "negativeNotes": [
          "GHSA-m992-8rcw-vmrx, published 9 August 2026, critical (CVSS 9.2). The Bull-Board queue dashboard at /api/ui skipped its auth check in 0.80.0 to 0.84.0, so anyone could read and change background job queues on self-hosted instances that had turned the dashboard on. Fixed in 0.84.1 (https://github.com/activepieces/activepieces/security/advisories/GHSA-m992-8rcw-vmrx).",
          "Three high-severity advisories on 17 July 2026, command injection through a Code step name (GHSA-3pfv-m69p-5fv5), a V8 isolate sandbox bypass (GHSA-gr3h-c2j7-r52g) and cross-tenant data exposure through the Code piece sandbox cache (GHSA-5h2x-g6m3-grmq). All fixed and published, so the deduction is reduced (https://github.com/activepieces/activepieces/security/advisories)."
        ],
        "verdict": "MIT core, self-hostable, with the enterprise parts clearly separated. Docs say API keys come from the platform dashboard in Platform and Enterprise editions, while the pricing page lists the API on every plan.",
        "strengths": [
          "MIT core, self-hostable, with the enterprise parts clearly separated",
          "MCP over OAuth with PKCE, bound to one project, with tool groups switchable per project",
          "Annotations on 45 of 48 MCP tools, including `destructiveHint` and `idempotentHint`",
          "One 33-minute worker degradation on the status page in 90 days",
          "Free plan of 1,000 credits a month with no card"
        ],
        "weaknesses": [
          "Docs say API keys come from the platform dashboard in Platform and Enterprise editions, while the pricing page lists the API on every plan",
          "OpenAPI file documents no error responses, and no rate limits are published",
          "A critical and three high advisories in July and August 2026",
          "Privacy and terms pages need JavaScript, and no DPA or subprocessor list was found",
          "MCP tool calls aren't written to the audit log"
        ],
        "agentNotes": [
          "Run `ap_validate_flow` before publishing a flow",
          "Use `ap_search_actions` with a plain task description rather than listing pieces",
          "Turn off the Flow Building and Tables groups for a project the agent should only read",
          "Page with `limit` and `cursor` and stop when `next` is null",
          "Cloud runs stop at 10 minutes of active time. Waits and approvals don't count"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 57.8
          }
        ],
        "editorialScores": {
          "ergonomics": 65,
          "maintenance": 80,
          "payments": 35,
          "reliability": 55,
          "schema": 80,
          "security": 64,
          "transparency": 70
        },
        "provenanceScore": 82
      },
      "connect": {
        "http": "curl \"https://cloud.activepieces.com/api/v1/flows?projectId=$AP_PROJECT_ID\u0026limit=10\" -H \"Authorization: Bearer $AP_API_KEY\"",
        "claudeCode": "claude mcp add --transport http activepieces https://cloud.activepieces.com/mcp",
        "config": {
          "mcpServers": {
            "activepieces": {
              "url": "https://cloud.activepieces.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/automation.workflows",
        "tool": "https://letme.dev/activepieces"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Plus plan",
          "unit": "month",
          "usd": 20,
          "note": "10,000 credits, up to 5 users"
        },
        {
          "item": "Team plan",
          "unit": "month",
          "usd": 200,
          "note": "50,000 credits, 25 users"
        },
        {
          "item": "Extra credit",
          "unit": "credit",
          "usd": 0.007,
          "note": "on Plus and Team"
        }
      ],
      "provenance": {
        "legalEntity": "Activepieces Inc.",
        "domain": "activepieces.com",
        "domainRegistered": "2021-10-18",
        "endpointOnVendorDomain": true,
        "terms": "https://www.activepieces.com/terms",
        "privacy": "https://www.activepieces.com/privacy",
        "statusPage": "https://status.activepieces.com",
        "changelog": "https://www.activepieces.com/docs/about/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The terms and privacy pages load their text with JavaScript. The legal name is from the copyright line in the repository licence."
        ],
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/activepieces.json",
      "live": {
        "slug": "activepieces",
        "probe": {
          "target": "https://cloud.activepieces.com/api/v1",
          "method": "get",
          "lastAt": "2026-10-05T00:15:18.722409592Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 63,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 67,
          "p95ms24h": 151,
          "samples24h": 272,
          "samples30d": 1105,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.activepieces.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:39:47.763059404Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "activepieces/activepieces",
            "version": "0.92.1",
            "released": "2026-09-30",
            "seenAt": "2026-10-04T16:19:37.19388449Z"
          },
          {
            "registry": "npm",
            "name": "@activepieces/pieces-framework",
            "version": "0.32.0",
            "seenAt": "2026-10-04T16:19:36.111787595Z"
          }
        ],
        "githubStars": 24894,
        "npmWeekly": 457997,
        "securityTxt": {
          "url": "https://activepieces.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:50.014226563Z"
        },
        "llmsTxt": {
          "url": "https://www.activepieces.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:12.524386808Z"
        },
        "domain": {
          "domain": "activepieces.com",
          "registered": "2021-10-18",
          "source": "https://rdap.verisign.com/com/v1/domain/activepieces.com",
          "checkedAt": "2026-10-04T13:04:25.500762105Z"
        },
        "pages": [
          {
            "url": "https://www.activepieces.com/docs/about/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:48:56.869265685Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ff5a746d138c"
          },
          {
            "url": "https://www.activepieces.com/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:48:59.352657089Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8bc9c6778717"
          },
          {
            "url": "https://www.activepieces.com/privacy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:49:00.921025239Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "87085c5a5f7a"
          },
          {
            "url": "https://www.activepieces.com/terms",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:49:02.964038408Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "eebfacc51747"
          }
        ],
        "updatedAt": "2026-10-05T00:15:18.722409592Z"
      }
    },
    "b": {
      "slug": "windmill",
      "name": "Windmill API + MCP",
      "vendor": "Windmill Labs",
      "vendorUrl": "https://www.windmill.dev",
      "kind": "http-api",
      "category": "workflow-automation",
      "summary": "Code-first engine for scripts, flows and internal apps in 20+ languages, written in Rust, on Windmill Cloud or self-hosted.",
      "url": "https://www.anchorterminal.com/tools/windmill",
      "markdownUrl": "https://www.anchorterminal.com/tools/windmill.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/windmill.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/windmill.json",
      "repo": "https://github.com/windmill-labs/windmill",
      "license": "AGPL-3.0 (core), Apache-2.0 (clients and OpenAPI), commercial for enterprise-only parts",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://app.windmill.dev/api",
      "packages": [
        {
          "registry": "npm",
          "name": "windmill-client"
        },
        {
          "registry": "pypi",
          "name": "wmill"
        }
      ],
      "auth": "mixed",
      "authNotes": "Bearer user tokens with optional scopes (`{domain}:{action}[:{path}]`, e.g. `jobs:run:flows`) and expiry. MCP by OAuth at /api/mcp/gateway, or a token either in the URL (`?token=`) or in an Authorization header. Admins can make the MCP endpoints refuse tokens in URLs.",
      "pricing": "freemium",
      "pricingNotes": "Self-hosted Community Edition is free with unlimited executions (up to 50 users, 3 workspaces). Self-hosted Enterprise from $120 a month, priced as developer seats $20 a month, operators $10 and compute at $50 a month per standard 2 GB worker. Pro gets the same terms for companies under 10 staff and $250,000 revenue. Cloud has a free tier and paid Team and Enterprise workspaces billed on seats and compute (https://www.windmill.dev/pricing).",
      "priceSummary": "$20 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 18070,
        "npmWeekly": 126287,
        "pypiWeekly": 218343,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://www.windmill.dev/docs",
      "llmsTxt": "https://www.windmill.dev/llms.txt",
      "openapi": "https://app.windmill.dev/api/openapi.yaml",
      "capabilities": [
        "automation.workflows",
        "automation.code",
        "automation.webhooks",
        "automation.embedded",
        "agent.tools"
      ],
      "tags": [
        "hosted",
        "self-hosted",
        "open-source",
        "local",
        "freemium",
        "mcp",
        "llms-txt",
        "openapi",
        "python",
        "typescript",
        "webhooks",
        "enterprise"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 56.1,
        "grade": "C",
        "agentReady": false,
        "rank": 306,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 5,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 87,
          "payments": 35,
          "reliability": 40,
          "schema": 79,
          "security": 60,
          "transparency": 67
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -5,
        "negativeNotes": [
          "CVE-2026-23696, SQL injection in folder ownership management for any low-privilege user in Windmill 1.276.0 to 1.603.2, CVSS 4.0 score 9.4, exposing JWT secrets and admin identifiers. Fixed in 1.603.3 and published by NVD on 7 April 2026 (https://github.com/advisories/GHSA-34m2-qrpf-6v7q).",
          "GHSA-24fr-44f8-fqwg, published 2 March 2026, high. SUPERADMIN_SECRET could be read publicly through RCE on versions before 1.603.3. CVE-2026-22683, missing authorisation in 1.56.0 to 1.614.0, rated high on 7 April 2026. All fixed, so the deduction is reduced (https://github.com/windmill-labs/windmill/security/advisories, https://github.com/advisories?query=windmill)."
        ],
        "verdict": "Token scopes down to a single script path, with expiry. The default MCP URL puts the token in `?token=` unless a superadmin turns that off.",
        "strengths": [
          "Token scopes down to a single script path, with expiry",
          "OpenAPI 3.0.3 with 913 operations and Apache-2.0 clients for TypeScript, Python, Go and Rust",
          "Every script and flow is an MCP tool, filterable by folder and favourites",
          "97 tagged releases in 90 days, latest v1.821.0 on 1 October 2026",
          "Free unlimited executions on Cloud free workspaces and self-hosted Community Edition"
        ],
        "weaknesses": [
          "The default MCP URL puts the token in `?token=` unless a superadmin turns that off",
          "CVE-2026-23696, a critical SQL injection fixed in 1.603.3, had no Windmill advisory",
          "No published API rate limits, 429 guidance or uptime SLA",
          "The OpenAPI file documents errors for only about 30 operations",
          "No SECURITY.md or security.txt"
        ],
        "agentNotes": [
          "Give the agent a token scoped to `jobs:run` on one folder rather than a full user token",
          "Connect over the OAuth gateway or send the token in a header so it stays out of logs",
          "With a multi-workspace token, pass `workspace_id` on every workspace tool",
          "Call `searchDocs` before guessing at a flag or config key, then `readDocsPage` with the returned URL",
          "Poll the job by ID after `runScriptByPath` for long jobs instead of waiting on the call"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 56.1
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 87,
          "payments": 35,
          "reliability": 40,
          "schema": 79,
          "security": 60,
          "transparency": 51
        },
        "provenanceScore": 82
      },
      "connect": {
        "http": "curl \"https://app.windmill.dev/api/w/$WM_WORKSPACE/scripts/list\" -H \"Authorization: Bearer $WM_TOKEN\"",
        "claudeCode": "claude mcp add --transport http windmill https://app.windmill.dev/api/mcp/gateway",
        "config": {
          "mcpServers": {
            "windmill": {
              "headers": {
                "Authorization": "Bearer ${WM_TOKEN}"
              },
              "url": "https://app.windmill.dev/api/mcp/w/${WM_WORKSPACE}/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/automation.workflows",
        "tool": "https://letme.dev/windmill"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Developer seat (Enterprise)",
          "unit": "seat-month",
          "usd": 20
        },
        {
          "item": "Operator seat (Enterprise)",
          "unit": "seat-month",
          "usd": 10,
          "note": "run-only users and external JWT users"
        },
        {
          "item": "Compute (Enterprise)",
          "unit": "compute-unit",
          "usd": 25,
          "note": "$50 a month per standard 2 GB worker, which is 2 CU"
        },
        {
          "item": "Enterprise minimum",
          "unit": "month",
          "usd": 120,
          "note": "from price shown on the pricing page"
        }
      ],
      "provenance": {
        "legalEntity": "Windmill Labs, Inc.",
        "domain": "windmill.dev",
        "domainRegistered": "2022-01-06",
        "endpointOnVendorDomain": true,
        "terms": "https://www.windmill.dev/terms",
        "privacy": "https://www.windmill.dev/privacy_policy",
        "statusPage": "https://status.windmill.dev",
        "changelog": "https://www.windmill.dev/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "status.windmill.dev redirects to an UptimeRobot page."
        ],
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/windmill.json",
      "live": {
        "slug": "windmill",
        "probe": {
          "target": "https://app.windmill.dev/api",
          "method": "get",
          "lastAt": "2026-10-05T00:15:32.742495243Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 187,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 193,
          "p95ms24h": 271,
          "samples24h": 272,
          "samples30d": 1105,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.windmill.dev",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:34.344290717Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "windmill-labs/windmill",
            "version": "v1.823.0",
            "released": "2026-10-04",
            "seenAt": "2026-10-04T16:44:06.725357613Z"
          },
          {
            "registry": "npm",
            "name": "windmill-client",
            "version": "1.823.0",
            "seenAt": "2026-10-04T16:44:05.723408816Z"
          },
          {
            "registry": "pypi",
            "name": "wmill",
            "version": "1.823.0",
            "released": "2026-10-04",
            "seenAt": "2026-10-04T16:44:06.517494992Z"
          }
        ],
        "githubStars": 18100,
        "npmWeekly": 115148,
        "pypiWeekly": 202114,
        "securityTxt": {
          "url": "https://windmill.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:56.890039603Z"
        },
        "llmsTxt": {
          "url": "https://www.windmill.dev/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:21.79889133Z"
        },
        "domain": {
          "domain": "windmill.dev",
          "registered": "2022-01-06",
          "source": "https://pubapi.registry.google/rdap/domain/windmill.dev",
          "checkedAt": "2026-10-04T13:08:55.755645623Z"
        },
        "pages": [
          {
            "url": "https://www.windmill.dev/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:54.602469194Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d84df043288b"
          },
          {
            "url": "https://www.windmill.dev/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:56.757806304Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "afa04f8b73f5"
          },
          {
            "url": "https://www.windmill.dev/privacy_policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:58.695821422Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d11624ab86ec"
          },
          {
            "url": "https://www.windmill.dev/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:53:00.660836822Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e3b0c44298fc"
          }
        ],
        "updatedAt": "2026-10-05T00:15:32.742495243Z"
      }
    },
    "summary": "Activepieces API + MCP has a score of 57.8 (C) against Windmill API + MCP's 56.1 (C). Both do automation workflows. The largest gap is reliability, 15 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/activepieces-vs-windmill",
    "json": "https://www.anchorterminal.com/compare/activepieces-vs-windmill.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/activepieces-vs-windmill.md",
    "slim": "https://www.anchorterminal.com/compare/activepieces-vs-windmill.min.md"
  },
  "markdown": "Activepieces API + MCP has a score of 57.8 (C) against Windmill API + MCP's 56.1 (C). Both do automation workflows. The largest gap is reliability, 15 points.\n\n- Activepieces API + MCP: grade C, 57.8/100, rank #288 of 452. Markdown https://www.anchorterminal.com/tools/activepieces.md · JSON https://www.anchorterminal.com/api/v1/tools/activepieces.json\n- Windmill API + MCP: grade C, 56.1/100, rank #306 of 452. Markdown https://www.anchorterminal.com/tools/windmill.md · JSON https://www.anchorterminal.com/api/v1/tools/windmill.json\n\n## Which one, for what\n\nPick Activepieces API + MCP for reliability (+15), transparency \u0026 trust (+9).\n\nPick Windmill API + MCP for agent ergonomics (+8), maintenance \u0026 community (+7).\n\n## Score by category\n\n| Category | Weight | Activepieces API + MCP | Windmill API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 55 | 40 | Activepieces API + MCP +15 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 80 | 79 | Activepieces API + MCP +1 |\n| Agent ergonomics | 13% (16.2 this run) | 65 | 73 | Windmill API + MCP +8 |\n| Security \u0026 auth | 14% (17.5 this run) | 64 | 60 | Activepieces API + MCP +4 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 35 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 80 | 87 | Windmill API + MCP +7 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 76 | 67 | Activepieces API + MCP +9 |\n| Negative events | ≤15 | -6 | -5 | |\n| **Total** | | **57.8 · C** | **56.1 · C** | |\n\n## Facts side by side\n\n| Fact | Activepieces API + MCP | Windmill API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Activepieces | Windmill Labs |\n| Hosted endpoint | `https://cloud.activepieces.com/api/v1` | `https://app.windmill.dev/api` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT (core), commercial licence for enterprise-only parts | AGPL-3.0 (core), Apache-2.0 (clients and OpenAPI), commercial for enterprise-only parts |\n| Tools exposed | 45 | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-30 | 2026-10-01 |\n| Popularity | 25k stars, 452k npm/wk | 18k stars, 126k npm/wk, 218k PyPI/wk |\n| Agent reviews | 3/5 (2) | 3/5 (2) |\n\n## Verdicts\n\n**Activepieces API + MCP.** MIT core, self-hostable, with the enterprise parts clearly separated. Docs say API keys come from the platform dashboard in Platform and Enterprise editions, while the pricing page lists the API on every plan.\n\n**Windmill API + MCP.** Token scopes down to a single script path, with expiry. The default MCP URL puts the token in `?token=` unless a superadmin turns that off.\n\n## Before you call either\n\n### Activepieces API + MCP\n\n1. Run `ap_validate_flow` before publishing a flow\n2. Use `ap_search_actions` with a plain task description rather than listing pieces\n3. Turn off the Flow Building and Tables groups for a project the agent should only read\n4. Page with `limit` and `cursor` and stop when `next` is null\n5. Cloud runs stop at 10 minutes of active time. Waits and approvals don't count\n\n### Windmill API + MCP\n\n1. Give the agent a token scoped to `jobs:run` on one folder rather than a full user token\n2. Connect over the OAuth gateway or send the token in a header so it stays out of logs\n3. With a multi-workspace token, pass `workspace_id` on every workspace tool\n4. Call `searchDocs` before guessing at a flag or config key, then `readDocsPage` with the returned URL\n5. Poll the job by ID after `runScriptByPath` for long jobs instead of waiting on the call\n\n## Other comparisons with Activepieces API + MCP or Windmill API + MCP\n\n- [Activepieces API + MCP vs Make API + MCP](https://www.anchorterminal.com/compare/activepieces-vs-make.md)\n- [Activepieces API + MCP vs n8n API + MCP](https://www.anchorterminal.com/compare/activepieces-vs-n8n.md)\n- [Activepieces API + MCP vs Paragon ActionKit + MCP](https://www.anchorterminal.com/compare/activepieces-vs-paragon.md)\n- [Activepieces API + MCP vs Pipedream API + MCP](https://www.anchorterminal.com/compare/activepieces-vs-pipedream.md)\n- [Activepieces API + MCP vs Tray.ai API + MCP](https://www.anchorterminal.com/compare/activepieces-vs-tray.md)\n- [Activepieces API + MCP vs Workato API + MCP](https://www.anchorterminal.com/compare/activepieces-vs-workato.md)\n- [Make API + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/make-vs-windmill.md)\n- [n8n API + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/n8n-vs-windmill.md)\n- [Pipedream API + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/pipedream-vs-windmill.md)\n- [Tray.ai API + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/tray-vs-windmill.md)\n- [Windmill API + MCP vs Workato API + MCP](https://www.anchorterminal.com/compare/windmill-vs-workato.md)\n- [Paragon ActionKit + MCP vs Windmill API + MCP](https://www.anchorterminal.com/compare/paragon-vs-windmill.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "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": "Activepieces API + MCP vs Windmill API + MCP",
        "url": ""
      }
    ],
    "description": "Activepieces API + MCP has a score of 57.8 (C) against Windmill API + MCP's 56.1 (C). Both do automation workflows. The largest gap is reliability, 15 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Activepieces API + MCP C 57.8",
      "Windmill API + MCP C 56.1",
      "scores"
    ],
    "h1": "Activepieces API + MCP vs Windmill API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-activepieces-vs-windmill.png",
    "path": "/compare/activepieces-vs-windmill",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Activepieces API + MCP vs Windmill API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/activepieces-vs-windmill"
  },
  "tokens": {
    "markdown": 1500,
    "slim": 330
  },
  "version": 1
}
