{
 "slug": "make",
 "name": "Make",
 "url": "https://make.com",
 "domain": "make.com",
 "category": "automation",
 "category_name": "Automation",
 "tested_at": "2026-10-06",
 "run": "20261006T083347Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261002T070123Z",
   "date": "2026-10-02",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": null,
    "robots": "start"
   }
  },
  {
   "run": "20261006T083347Z",
   "date": "2026-10-06",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": null,
    "robots": "start"
   }
  }
 ],
 "level": 1,
 "level_name": "Needs a person",
 "level_selfhost": null,
 "entry": "closed",
 "door": {
  "passed": 0,
  "tries": 2,
  "self_start": false
 },
 "badges": [],
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "card_checkout"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Find",
   "state": "yes",
   "text": "Docs agents can read: llms.txt, an OpenAPI and an MCP server",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ]
  },
  {
   "key": "access",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "card_checkout",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account",
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "person",
   "label": "A person sets it up",
   "routes": [],
   "minutes": null,
   "core": null
  }
 ],
 "minutes": null,
 "next": {
  "to": 2,
  "text": "Next: let an agent sign up on its own"
 },
 "stop": "signup",
 "core": "0/8",
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 100,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 100,
  "security": null,
  "standards": [
   {
    "standard": "MCP client registration",
    "state": "behind",
    "behind": null,
    "value": "dcr"
   },
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 2,
    "value": "3.0.0"
   }
  ]
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [],
 "surface_audit": null,
 "coverage_core": null,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 2,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": null,
  "prompt_sha": "f3d0adeeb256",
  "kb_version": "2+overlay-9e43028a2c",
  "identity": null
 },
 "methodology": 15,
 "rules_date": "2026-10-15",
 "engine": {
  "runner": "omp",
  "model": "claude-opus-5-5",
  "driver": 2,
  "signed": true,
  "inbox": null,
  "robots": "start"
 },
 "same_level_drives": 2,
 "drives": 2,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "Cloudflare managed challenge (interstitial)",
  "visible": true,
  "type": "network",
  "human": null,
  "how": "Let verified bots and signed agents past the check on sign-up: in Cloudflare, add a WAF custom rule that skips the bot challenge on your sign-up paths for verified bots and for signed agents (rule field cf.bot_management.signed_agent; since 1 July 2026 signed agents count as verified bots), and render Turnstile only when the request is not from a verified agent.",
  "signed": true
 },
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "edge"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-12"
  },
  "browser": {
   "state": "through",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": true
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "developers.make.com/llms.txt and help.make.com/llms.txt; .md pages; Accept: text/markdown negotiated"
  },
  "signup": {
   "status": "human",
   "note": "Cloudflare managed challenge (interstitial, cf-mitigated: challenge) on www.make.com/en/register, headless and in browser."
  },
  "verify": {
   "status": "",
   "note": "not reached: no account",
   "reached": false
  },
  "credentials": {
   "status": "",
   "note": "OAuth DCR works headless (201), but authorize redirects to the challenged /en/login; API/MCP tokens only in web UI; no device flow",
   "via": "",
   "reached": false
  },
  "first_call": {
   "status": "",
   "note": "no credentials: API 401 IM015, CLI 'API key is required'",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "no account",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P1",
   "rails": [
    "card / wallets / Link / Klarna / ACH in the in-app Subscription tab (processor not confirmed)"
   ],
   "rail_ids": [
    "card"
   ],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "free tier",
   "note": "No 402/x402/MPP/UCP/auth.md; Cashier API only reads prices and VAT patterns; checkout is in the web app behind the challenged login, so a human is needed",
   "reached": false
  },
  "cancel": {
   "status": "",
   "note": "No account reached to cancel (sign-up blocked by Cloudflare challenge). Help center documents Org > Subscription > Cancel subscription in the web UI, but this is a doc reference only, not first-party proof of the flow; not exercised.",
   "docs_grade": "",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No account reached to delete (sign-up blocked by Cloudflare challenge). Help center documents Profile > Delete profile with password in the web UI; not exercised, and no evidence of an account being deleted or a subsequent login/key rejection.",
   "account": false,
   "reached": false
  }
 },
 "routes": [],
 "checkout": null,
 "docs": null,
 "claims": null,
 "pay_options": {
  "checked": "2026-10-06",
  "source": "drive",
  "options": [
   {
    "id": "card",
    "name": "Card checkout",
    "kind": "checkout",
    "first_party": false,
    "lead": false,
    "networks": [],
    "testnet": false
   }
  ],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": null,
   "card_required": null,
   "free_plan": true
  },
  "owner_fixes": [
   {
    "title": "Accept x402 or MPP on your API",
    "how": "Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card."
   },
   {
    "title": "List your plans on Stripe Projects",
    "how": "Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev)."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": true,
  "cli": true,
  "sdk": true,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": false
 },
 "surface_notes": {
  "api": "REST Web API v2, zones eu1/eu2/us1/us2",
  "openapi": "3.0.0 fragments embedded per reference page, no standalone file found",
  "mcp": "official, hosted, OAuth (DCR) or MCP token",
  "cli": "@makehq/cli 1.4.0 via npm"
 },
 "can_do": [
  "Read the full developer and help docs as markdown via llms.txt",
  "Register an OAuth client for the Make MCP server headless (DCR)",
  "Install the Make CLI and list its commands"
 ],
 "cannot_do": [
  {
   "what": "Create a Make account",
   "why": "Cloudflare managed challenge on www.make.com/en/register; no sign-up API"
  },
  {
   "what": "Get an API or MCP token",
   "why": "tokens are made in the web UI; OAuth authorize redirects to the challenged login page"
  },
  {
   "what": "Build, run or manage scenarios, connections, AI agents",
   "why": "no account or token"
  }
 ],
 "blockers": [
  "Cloudflare managed challenge on www.make.com sign-up and login pages"
 ],
 "tips_for_owner": [
  "Let verified bots through sign-up and login",
  "Add a headless credential path",
  "Publish a single OpenAPI file",
  "Serve an MCP server card, support CIMD",
  "Add API routes to leave"
 ],
 "tips_for_agents": [
  "Use developers.make.com/llms.txt and .md pages for docs",
  "Needs a human-made API token per zone (Profile > API access); then make-cli with MAKE_API_KEY+MAKE_ZONE or https://<zone>/mcp with Bearer",
  "www.make.com HTML pages are Cloudflare-challenged; developers/help hosts and /.well-known are not"
 ],
 "selfhost": null,
 "summary": "Make documents a full REST API, CLI, SDK and hosted MCP server, and its docs are agent-friendly (llms.txt, markdown). But sign-up, login and OAuth consent all run through www.make.com pages behind a Cloudflare managed challenge that did not clear for our signed agent, so no account, token or capability could be driven.",
 "wall": "Cloudflare challenge on sign-up and login",
 "plan_scope": "",
 "robots_stop": null,
 "robots": null,
 "plain": {
  "summary": "Make is a workflow-automation platform with solid developer docs, a CLI, SDK and a hosted MCP server, but an AI agent could not actually sign up: the sign-up and login pages are behind a Cloudflare security check that only a human can pass during this test.",
  "can_do": [
   "Read Make's full developer and help documentation automatically",
   "Register itself as an OAuth app for Make's MCP server without a person's help",
   "Install Make's command-line tool and see what commands it offers"
  ],
  "cannot_do": [
   {
    "what": "Create a Make account",
    "why": "the sign-up page shows a security check only a person can get past"
   },
   {
    "what": "Get an API or login token",
    "why": "token creation needs a login, which is behind the same security check"
   },
   {
    "what": "Build, run, or connect anything in Make (scenarios, AI agents, apps)",
    "why": "no account could be created"
   },
   {
    "what": "Cancel a subscription or delete a profile",
    "why": "there was no account to cancel or delete, so this was only read from help pages, not actually done"
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "core",
   "capability": "Build a scenario in the visual drag-and-drop editor",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /scenarios (blueprint)",
    "mcp": null,
    "cli": null,
    "ui": "Scenario editor"
   },
   "check": "GET /scenarios/{scenarioId}/blueprint returns the module graph just authored",
   "source": "https://www.make.com/en/pricing; https://developers.make.com/api-documentation/api-reference/scenarios.md"
  },
  {
   "id": "cap-02",
   "group": "core",
   "capability": "Activate/run a scenario on a schedule or trigger",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "PATCH /scenarios/{scenarioId} (isActive); POST /scenarios/{scenarioId}/run",
    "mcp": null,
    "cli": null,
    "ui": "Scenario editor run/activate toggle"
   },
   "check": "GET /scenarios/{scenarioId} shows isActive:true and nextExec populated, or executions count increments",
   "source": "https://developers.make.com/api-documentation/api-reference/scenarios.md"
  },
  {
   "id": "cap-03",
   "group": "core",
   "capability": "Connect a third-party app/account (3,000+ apps)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "/connections (Connections resource)",
    "mcp": null,
    "cli": null,
    "ui": "Connections panel"
   },
   "check": "GET /connections lists the new connection with status valid",
   "source": "https://www.make.com/en/pricing (3,000+ standard apps); https://developers.make.com/api-documentation/api-reference/connections.md"
  },
  {
   "id": "cap-04",
   "group": "core",
   "capability": "Build and run an AI Agent with tools (scenarios/MCP/RAG)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /ai-agents/v1/agents; POST /ai-agents/v1/agents/{agentId}/run",
    "mcp": null,
    "cli": null,
    "ui": "AI Agents builder"
   },
   "check": "Response includes executionSteps/toolCalls showing the agent invoked a configured scenario or MCP tool",
   "source": "https://developers.make.com/api-documentation/api-reference/ai-agents.md; https://www.make.com/en/pricing (Make AI Agents (beta))"
  },
  {
   "id": "cap-05",
   "group": "core",
   "capability": "Expose scenarios as tools to external AI via Make MCP Server",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": "Make MCP Server",
    "cli": null,
    "ui": "MCP connection settings"
   },
   "check": "An external MCP client's tools/list shows the published scenario as a callable tool",
   "source": "https://www.make.com/en/mcp; https://www.make.com/en/pricing (MCP server)"
  },
  {
   "id": "cap-06",
   "group": "core",
   "capability": "Chain scenarios together (subscenarios / scenario chaining)",
   "weight": "core",
   "plan": "core",
   "surfaces": {
    "api": "scenario field chainingRole; /scenarios/{id}/run",
    "mcp": null,
    "cli": null,
    "ui": "Scenario editor - call subscenario module"
   },
   "check": "GET /scenarios/{scenarioId} shows chainingRole set (parent/child) for the linked scenario",
   "source": "https://www.make.com/en/pricing (Subscenarios); https://developers.make.com/api-documentation/api-reference/scenarios.md"
  },
  {
   "id": "cap-07",
   "group": "core",
   "capability": "Run custom JavaScript/Python code inside a scenario (Code App)",
   "weight": "core",
   "plan": "core",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Code App module in scenario editor"
   },
   "check": "Scenario execution log for the Code module shows the script's stdout/return value",
   "source": "https://www.make.com/en/pricing (Make Code App)"
  },
  {
   "id": "cap-08",
   "group": "core",
   "capability": "Build a custom app/connector with its own modules via the Apps SDK",
   "weight": "core",
   "plan": "core",
   "surfaces": {
    "api": "/sdk-apps (Modules, Connections, Webhooks, RPCs)",
    "mcp": null,
    "cli": "Apps SDK (VS Code CLI)",
    "ui": "Custom Apps editor"
   },
   "check": "GET /sdk-apps/{appId}/modules lists the newly created module, usable inside a scenario",
   "source": "https://developers.make.com/custom-apps-documentation/get-started/readme.md; https://developers.make.com/api-documentation/api-reference/sdk-apps.md"
  },
  {
   "id": "cap-09",
   "group": "secondary",
   "capability": "Store and query records in a Data Store",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /data-stores; /data-stores/{id}/data",
    "mcp": null,
    "cli": null,
    "ui": "Data stores panel"
   },
   "check": "GET /data-stores/{dataStoreId}/data returns the inserted record",
   "source": "https://developers.make.com/api-documentation/api-reference/data-stores.md"
  },
  {
   "id": "cap-10",
   "group": "secondary",
   "capability": "Receive events instantly via webhooks (instant triggers)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "/hooks, /hooks/{id}/incomings",
    "mcp": null,
    "cli": null,
    "ui": "Webhooks module"
   },
   "check": "GET /hooks/{hookId}/logs shows the inbound webhook call that triggered the scenario",
   "source": "https://developers.make.com/api-documentation/api-reference/hooks.md"
  },
  {
   "id": "cap-11",
   "group": "secondary",
   "capability": "Write custom IML functions for data transformation",
   "weight": "secondary",
   "plan": "core",
   "surfaces": {
    "api": "/custom-functions",
    "mcp": null,
    "cli": null,
    "ui": "Custom functions editor"
   },
   "check": "GET /custom-functions lists the function; a scenario mapping it evaluates the custom output",
   "source": "https://www.make.com/en/pricing (Custom functions); https://developers.make.com/api-documentation/api-reference/custom-functions.md"
  },
  {
   "id": "cap-12",
   "group": "secondary",
   "capability": "Create and share a scenario as a reusable template",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /scenarios (basedon param); /templates/public",
    "mcp": null,
    "cli": null,
    "ui": "Templates library / 'Save as template'"
   },
   "check": "GET /templates/public lists the template; creating a new scenario with basedon=templateId pre-fills its blueprint",
   "source": "https://www.make.com/en/templates; https://www.make.com/en/pricing (Create and share scenario templates)"
  },
  {
   "id": "cap-13",
   "group": "secondary",
   "capability": "Organize scenarios into folders",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "/scenarios-folders",
    "mcp": null,
    "cli": null,
    "ui": "Scenario list sidebar"
   },
   "check": "GET /scenarios?folderId=X returns the moved scenario",
   "source": "https://developers.make.com/api-documentation/api-reference/scenarios-folders.md"
  },
  {
   "id": "cap-14",
   "group": "secondary",
   "capability": "Tag scenarios with labels for filtering",
   "weight": "secondary",
   "plan": "core",
   "surfaces": {
    "api": "/scenario-labels; GET /scenarios?labelIds[]=",
    "mcp": null,
    "cli": null,
    "ui": "Scenario editor label picker"
   },
   "check": "GET /scenarios?labelIds[]=X returns only scenarios carrying that label",
   "source": "https://developers.make.com/api-documentation/api-reference/scenario-labels.md"
  },
  {
   "id": "cap-15",
   "group": "secondary",
   "capability": "Search and inspect scenario execution history (full-text log search)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /scenarios/{scenarioId}/logs",
    "mcp": null,
    "cli": null,
    "ui": "Execution history panel"
   },
   "check": "GET /scenarios/{scenarioId}/logs returns the run with matching status/items for a searched term",
   "source": "https://www.make.com/en/pricing (Full-text execution log search); https://developers.make.com/api-documentation/api-reference/scenarios/logs.md"
  },
  {
   "id": "cap-16",
   "group": "secondary",
   "capability": "Detect and resolve incomplete/failed executions (DLQ)",
   "weight": "secondary",
   "plan": "core",
   "surfaces": {
    "api": "/incomplete-executions",
    "mcp": null,
    "cli": null,
    "ui": "Incomplete executions queue"
   },
   "check": "GET /incomplete-executions no longer lists the item after it is resolved/retried",
   "source": "https://developers.make.com/api-documentation/api-reference/incomplete-executions.md"
  },
  {
   "id": "cap-17",
   "group": "secondary",
   "capability": "Define scenario inputs/outputs for structured invocation",
   "weight": "secondary",
   "plan": "core",
   "surfaces": {
    "api": "metadata.input_spec/output_spec on POST /scenarios",
    "mcp": null,
    "cli": null,
    "ui": "Scenario settings - Inputs/Outputs"
   },
   "check": "Running the scenario via its input form enforces the required fields and returns the declared output_spec shape",
   "source": "https://www.make.com/en/help/scenarios/scenario-inputs; https://www.make.com/en/pricing (Scenario inputs, Scenario Outputs)"
  },
  {
   "id": "cap-18",
   "group": "secondary",
   "capability": "Attach custom metadata properties to scenarios",
   "weight": "secondary",
   "plan": "teams",
   "surfaces": {
    "api": "/custom-properties; /scenarios/{id}/custom-properties-data",
    "mcp": null,
    "cli": null,
    "ui": "Scenario custom properties panel"
   },
   "check": "GET /scenarios/{scenarioId}?cols[]=customProperties reflects the set value",
   "source": "https://developers.make.com/api-documentation/api-reference/custom-properties.md; https://www.make.com/en/pricing (Custom scenario properties)"
  },
  {
   "id": "cap-19",
   "group": "secondary",
   "capability": "Share editable global variables across scenarios",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Custom variables panel"
   },
   "check": "A scenario mapping the variable reflects a value edited elsewhere",
   "source": "https://www.make.com/en/pricing (Custom variables)"
  },
  {
   "id": "cap-20",
   "group": "secondary",
   "capability": "Invite teammates and manage team roles/permissions",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "/teams; /teams/user-team-roles",
    "mcp": null,
    "cli": null,
    "ui": "Team members settings"
   },
   "check": "GET /users/{id}/user-team-roles shows the newly assigned role for the invited user",
   "source": "https://developers.make.com/api-documentation/api-reference/teams.md; https://www.make.com/en/pricing (Teams and team roles)"
  },
  {
   "id": "cap-21",
   "group": "secondary",
   "capability": "Reach on-premise systems via the On-Prem Agent",
   "weight": "secondary",
   "plan": "teams",
   "surfaces": {
    "api": "/on-prem-agents",
    "mcp": null,
    "cli": null,
    "ui": "On-prem agent settings"
   },
   "check": "GET /on-prem-agents shows the agent as connected/online after local install",
   "source": "https://developers.make.com/api-documentation/api-reference/on-prem-agents.md; https://www.make.com/en/pricing (On-prem agent)"
  },
  {
   "id": "cap-22",
   "group": "secondary",
   "capability": "View usage/performance in an Analytics Dashboard",
   "weight": "secondary",
   "plan": "teams",
   "surfaces": {
    "api": "/analytics",
    "mcp": null,
    "cli": null,
    "ui": "Analytics Dashboard"
   },
   "check": "GET /analytics returns operations/execution metrics matching the dashboard view",
   "source": "https://developers.make.com/api-documentation/api-reference/analytics.md; https://www.make.com/en/pricing (Analytics Dashboard)"
  },
  {
   "id": "cap-23",
   "group": "secondary",
   "capability": "Review an audit log of user actions",
   "weight": "secondary",
   "plan": "pro",
   "surfaces": {
    "api": "/audit-logs",
    "mcp": null,
    "cli": null,
    "ui": "Audit logs panel"
   },
   "check": "GET /audit-logs contains an entry for the action just performed (e.g. scenario activated)",
   "source": "https://developers.make.com/api-documentation/api-reference/audit-logs.md; https://www.make.com/en/pricing (Audit logs)"
  },
  {
   "id": "cap-24",
   "group": "secondary",
   "capability": "Receive in-app notifications on scenario/team events",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "/notifications; /users/me/unread-notifications",
    "mcp": null,
    "cli": null,
    "ui": "Notification bell"
   },
   "check": "GET /notifications lists the new unread notification after the triggering event",
   "source": "https://developers.make.com/api-documentation/api-reference/notifications.md"
  },
  {
   "id": "cap-25",
   "group": "secondary",
   "capability": "Export/import a scenario blueprint (JSON) for backup or migration",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /scenarios/{scenarioId}/blueprint",
    "mcp": null,
    "cli": null,
    "ui": "Scenario editor - Export/Import blueprint"
   },
   "check": "Re-importing the exported blueprint JSON recreates an identical scenario graph",
   "source": "https://developers.make.com/api-documentation/api-reference/scenarios/blueprints.md"
  },
  {
   "id": "cap-26",
   "group": "secondary",
   "capability": "Restore a deleted scenario from trash within 30 days",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /scenarios?deleted=true; POST /scenarios/move-to-trash",
    "mcp": null,
    "cli": null,
    "ui": "Scenario trash"
   },
   "check": "GET /scenarios?deleted=true lists the scenario and it reappears in the active list once restored",
   "source": "https://developers.make.com/api-documentation/api-reference/scenarios.md"
  },
  {
   "id": "cap-27",
   "group": "peripheral",
   "capability": "Enable company single sign-on (SSO/SAML2/OAuth2)",
   "weight": "peripheral",
   "plan": "pro",
   "surfaces": {
    "api": "/sso-certificates",
    "mcp": null,
    "cli": null,
    "ui": "Organization SSO settings"
   },
   "check": "GET /sso-certificates shows the configured IdP certificate active",
   "source": "https://developers.make.com/api-documentation/api-reference/sso-certificates.md; https://www.make.com/en/pricing (Company single sign-on (SSO))"
  },
  {
   "id": "cap-28",
   "group": "peripheral",
   "capability": "Enforce two-factor authentication org-wide",
   "weight": "peripheral",
   "plan": "pro",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Organization security settings"
   },
   "check": "A user without 2FA enabled is blocked from signing in after enforcement is turned on",
   "source": "https://www.make.com/en/pricing (Two-factor authentication enforcement)"
  },
  {
   "id": "cap-29",
   "group": "peripheral",
   "capability": "Define custom organization/team roles with tailored permissions",
   "weight": "peripheral",
   "plan": "pro",
   "surfaces": {
    "api": "/organizations/user-organization-roles; /users/roles",
    "mcp": null,
    "cli": null,
    "ui": "Custom roles settings"
   },
   "check": "GET /users/roles lists the new custom role with its configured permission set",
   "source": "https://www.make.com/en/pricing (Custom Roles)"
  },
  {
   "id": "cap-30",
   "group": "peripheral",
   "capability": "Claim a domain to force SSO login for all users under it",
   "weight": "peripheral",
   "plan": "enterprise",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Organization domain claim settings"
   },
   "check": "A user signing up with an email on the claimed domain is redirected to the enforced SSO flow",
   "source": "https://www.make.com/en/pricing (Domain claim)"
  },
  {
   "id": "cap-31",
   "group": "peripheral",
   "capability": "Give each member a Private Space, with admin read-only oversight",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "/private-spaces",
    "mcp": null,
    "cli": null,
    "ui": "Private Spaces"
   },
   "check": "GET /private-spaces lists the member's private space; an Enterprise admin's read-only view shows its scenario names/credit usage",
   "source": "https://developers.make.com/api-documentation/api-reference/private-spaces.md; https://www.make.com/en/pricing (Private Spaces)"
  },
  {
   "id": "cap-32",
   "group": "peripheral",
   "capability": "Protect against interruption with credit overage protection",
   "weight": "peripheral",
   "plan": "teams",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Billing settings"
   },
   "check": "Scenarios keep executing after the monthly credit quota is exceeded instead of pausing",
   "source": "https://www.make.com/en/pricing (Credits overage protection)"
  },
  {
   "id": "cap-33",
   "group": "peripheral",
   "capability": "Track referral/affiliate program earnings",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "/affiliate",
    "mcp": null,
    "cli": null,
    "ui": "Affiliate dashboard"
   },
   "check": "GET /affiliate returns referral/commission data for the account",
   "source": "https://developers.make.com/api-documentation/api-reference/affiliate.md"
  }
 ],
 "attempts": [
  {
   "t": "01:18",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "llms.txt",
   "task": "Fetch llms.txt",
   "result": "done",
   "evidence": "www.make.com/llms.txt 200 text/plain (H1 'Make' missing #? first line 'Make'); developers.make.com/llms.txt 200 text/markdown, 61757 bytes, indexes API, MCP server, CLI, SDK"
  },
  {
   "t": "01:18",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "MCP discover",
   "task": "POST server/discover to https://mcp.make.com with MCP-Protocol-Version 2026-07-28",
   "result": "partial",
   "evidence": "401 application/json {code:SC401,...}; WWW-Authenticate: Bearer resource_metadata=\"https://mcp.make.com/.well-known/oauth-protected-resource\"",
   "notes": "auth required before discover; retry with token later"
  },
  {
   "t": "01:18",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "PRM / AS metadata",
   "task": "GET mcp.make.com/.well-known/oauth-protected-resource and AS metadata",
   "result": "done",
   "evidence": "PRM 200 {resource:https://mcp.make.com/, authorization_servers:[https://www.make.com/mcp]}; AS metadata 200: S256 PKCE, authorization_code+refresh_token, registration_endpoint https://www.make.com/oauth/v2/register/mcp (DCR), no client_id_metadata_document_supported, no device flow, no agent_auth"
  },
  {
   "t": "01:18",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "cards",
   "task": "server-card, ai-catalog, agent-card",
   "result": "failed",
   "evidence": "mcp.make.com/server-card 404 JSON; www.make.com/.well-known/ai-catalog.json 404 html; /.well-known/agent-card.json 404; /.well-known/mcp/server-card.json 404"
  },
  {
   "t": "01:18",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "aipref",
   "task": "robots.txt Content-Usage lines",
   "result": "done",
   "evidence": "robots.txt 200: User-agent * Allow / plus Disallow lines; no Content-Usage or Content-signal line"
  },
  {
   "t": "01:18",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "markdown",
   "task": "Accept: text/markdown on docs page and .md URL",
   "result": "done",
   "evidence": "developers.make.com/api-documentation/getting-started with Accept text/markdown -> 200 content-type text/markdown, vary includes Accept; .md URLs serve markdown"
  },
  {
   "t": "01:18",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": false,
   "capability": "bot check on www.make.com",
   "task": "",
   "result": "blocked",
   "evidence": "HTTP 403 cf-mitigated: challenge, 'Just a moment...' Cloudflare managed challenge on www.make.com/en pages (robots.txt, llms.txt, /.well-known pass)"
  },
  {
   "t": "01:18",
   "cap": "pay",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "402 / agentic payment probes",
   "task": "Probe x402./mpp./agents. subdomains, /auth.md, /SKILL.md, /.well-known/ucp, unauthenticated API, x402 Bazaar, mpp.dev",
   "result": "done",
   "evidence": "x402/mpp/agents.make.com: DNS not resolved; /auth.md, /SKILL.md, /.well-known/ucp 404 html; eu1/us1 API unauthenticated 401 JSON (no 402); no make.com in CDP Bazaar resources or mpp.dev/api/services"
  },
  {
   "t": "02:15",
   "cap": "signup",
   "capability": "Sign up",
   "task": "Create a free Make account",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No documented sign-up API; registration only at https://www.make.com/en/register.",
   "quality": {
    "error_legibility": "vague",
    "recoverable": "no"
   }
  },
  {
   "t": "02:15",
   "cap": "signup",
   "capability": "Sign up",
   "task": "Open the sign-up form in the browser",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "",
   "notes": "Cloudflare managed challenge (interstitial) in front of www.make.com"
  },
  {
   "t": "03:52",
   "cap": "discovery",
   "route": "mcp",
   "documented": true,
   "verified": true,
   "capability": "zone MCP endpoints",
   "task": "POST server/discover to eu1/eu2/us1/us2.make.com/mcp",
   "result": "partial",
   "evidence": "all 401 SC401 with WWW-Authenticate Bearer resource_metadata=https://<zone>/.well-known/oauth-protected-resource/mcp; PRM 200 resource https://eu1.make.com/mcp, AS https://www.make.com/mcp",
   "notes": "discover not reachable without credentials; no initialize fallback possible unauthenticated"
  },
  {
   "t": "03:52",
   "cap": "docs",
   "capability": "Find docs",
   "task": "Find API, MCP, CLI, SDK docs headless",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "developers.make.com/llms.txt (61757 B) + help.make.com/llms.txt (71755 B); .md for every page; API reference pages embed OpenAPI 3.0.0 fragments ('Web API v2 - Public'); CLI @makehq/cli 1.4.0 installed via npm; TS SDK github.com/integromat/make-typescript-sdk; skills.make.com -> github.com/integromat/make-skills",
   "quality": {
    "docs_match": "match"
   }
  },
  {
   "t": "03:52",
   "cap": "credentials",
   "capability": "Get API credentials",
   "task": "Register an OAuth client (DCR) and authorize for MCP",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "POST https://www.make.com/oauth/v2/register/mcp -> 201 client_id issued (headless DCR works); GET /oauth/v2/authorize -> 302 https://www.make.com/en/login, which is behind the Cloudflare managed challenge (403 cf-mitigated: challenge). API tokens are only created in the web UI (Profile > API access) per docs; CLI login also opens the browser API key page.",
   "notes": "no account (sign-up blocked); no device flow, no agent registration"
  },
  {
   "t": "03:52",
   "cap": "first_call",
   "capability": "First API call",
   "task": "GET /api/v2/users/me and CLI scenarios list",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "eu1 /api/v2/templates/public -> 401 {code:IM015,'User is not logged in.'}; us1 /users/me 401; make-cli: 'Error: API key is required. Use --api-key, set MAKE_API_KEY, or run \"make-cli login\".'",
   "quality": {
    "error_legibility": "clear"
   }
  },
  {
   "t": "03:52",
   "cap": "cap-01",
   "capability": "Build a scenario",
   "task": "Build a scenario on the free plan",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: sign-up and token creation sit behind Cloudflare managed challenge on www.make.com (see signup attempts); API/MCP answer 401 without credentials"
  },
  {
   "t": "03:52",
   "cap": "cap-02",
   "capability": "Activate/run a scenario",
   "task": "Activate/run a scenario on the free plan",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: sign-up and token creation sit behind Cloudflare managed challenge on www.make.com (see signup attempts); API/MCP answer 401 without credentials"
  },
  {
   "t": "03:52",
   "cap": "cap-03",
   "capability": "Connect a third-party app",
   "task": "Connect a third-party app on the free plan",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: sign-up and token creation sit behind Cloudflare managed challenge on www.make.com (see signup attempts); API/MCP answer 401 without credentials"
  },
  {
   "t": "03:52",
   "cap": "cap-04",
   "capability": "Build and run an AI Agent",
   "task": "Build and run an AI Agent on the free plan",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: sign-up and token creation sit behind Cloudflare managed challenge on www.make.com (see signup attempts); API/MCP answer 401 without credentials"
  },
  {
   "t": "03:52",
   "cap": "cap-05",
   "capability": "Expose scenarios via Make MCP Server",
   "task": "Expose scenarios via Make MCP Server on the free plan",
   "route": "mcp",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: sign-up and token creation sit behind Cloudflare managed challenge on www.make.com (see signup attempts); API/MCP answer 401 without credentials"
  },
  {
   "t": "03:52",
   "cap": "cap-06",
   "capability": "Chain scenarios",
   "task": "Chain scenarios on the free plan",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: sign-up and token creation sit behind Cloudflare managed challenge on www.make.com (see signup attempts); API/MCP answer 401 without credentials"
  },
  {
   "t": "03:52",
   "cap": "cap-07",
   "capability": "Run custom code (Code App)",
   "task": "Run custom code (Code App) on the free plan",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: sign-up and token creation sit behind Cloudflare managed challenge on www.make.com (see signup attempts); API/MCP answer 401 without credentials"
  },
  {
   "t": "03:52",
   "cap": "cap-08",
   "capability": "Build a custom app via Apps SDK",
   "task": "Build a custom app via Apps SDK on the free plan",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: sign-up and token creation sit behind Cloudflare managed challenge on www.make.com (see signup attempts); API/MCP answer 401 without credentials"
  }
 ],
 "stale": false,
 "icon": "/logos/make.png",
 "monitored": false,
 "verdict": "L1 · Needs a person describes Make today: our agent could not get in on its own. It stopped at signup, where a Cloudflare managed challenge on the registration page did not clear, even for a signed, docs-reading agent. OAuth client registration worked on its own, but the authorize step redirects to that same challenged login, and API and MCP calls both failed for want of a key. Make's docs are agent-friendly: llms.txt, markdown pages, a full REST API, CLI, SDK and hosted MCP server, all unreachable without a person completing signup first. Checkout, subscription cancellation and profile deletion all sit behind that same human login and were never reached.",
 "page": "https://agentdrives.com/tools/make?via=api"
}