{
 "$schema": "https://agentdrives.com/schemas/tool.schema.json",
 "id": "prd_01m57vgtj1jf69a774e25bv594",
 "ids": {
  "org": "org_01m57vgtj1392xd5q9ywrp3p9w",
  "surfaces": {
   "web": "srf_01m5ybgpe6w1vhm38m9764d3vk",
   "api": "srf_01m5ybgpe6s8g5dc2v20w9eegy",
   "mcp": "srf_01m5ybgpe6z2prdhazvzze89v2"
  },
  "slugs": [
   "element"
  ],
  "domain": "element.io",
  "wikidata": "Q47004029"
 },
 "slug": "element",
 "name": "Element",
 "url": "https://element.io",
 "domain": "element.io",
 "category": "team-chat",
 "category_name": "Team chat",
 "tested_at": "2026-10-27",
 "run": "20261027T075757Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261027T075757Z",
   "date": "2026-10-27",
   "level": 1,
   "engine": {
    "model": "claude-opus-5-5",
    "driver": 5,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "skip",
    "version": "2026.10.27",
    "commit": "53d130186e8432e42a7aa40b76e98d3f818ec039",
    "prompts": {
     "version": "2026.10.27",
     "commit": "4a18f5abc48d9338c8c7c67f8820899e9dec5a45"
    },
    "rules": {
     "version": "2026.10.27",
     "commit": "e48310aedf9e8567bbe57fdff36c027e5f19fed9"
    }
   },
   "stop": "signup",
   "paid": false,
   "agent_paid": null
  }
 ],
 "level": 1,
 "level_name": "Needs a person",
 "level_selfhost": 4,
 "entry": "closed",
 "door": {
  "passed": 0,
  "tries": 1,
  "self_start": false
 },
 "badges": [
  "agent-can-leave"
 ],
 "not_counted": null,
 "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": "part",
   "text": "Reaches the checkout: stopped at the $3000 a year charge",
   "value": "checkout",
   "route": "card_checkout"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Leaves on its own: nothing to cancel, deletes its account",
   "left": "deleted",
   "delete": {
    "state": "yes",
    "text": "Deletes its account",
    "why": null
   }
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Learn",
   "state": "part",
   "text": "Docs with gaps: an OpenAPI and an MCP server; no getting-started page",
   "have": [
    "openapi",
    "mcp"
   ],
   "docs": "thin"
  },
  {
   "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": "part",
   "text": "Reaches the checkout: stopped at the $3000 a year charge",
   "value": "checkout",
   "route": "card_checkout",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Leaves on its own: nothing to cancel, deletes its account",
   "left": "deleted",
   "delete": {
    "state": "yes",
    "text": "Deletes its account",
    "why": null
   },
   "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": null,
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 60,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 60,
  "security": null,
  "standards": [
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 1,
    "value": "3.1.0"
   }
  ]
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [
  {
   "capability": "Send a chat message",
   "probe": "malformed JSON body on send",
   "outcome": "400 {'errcode': 'M_NOT_JSON', 'error': 'Content not JSON.'} content-type=application/json",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create a chat room",
   "probe": "bad enum value",
   "outcome": "400 {'errcode': 'M_BAD_JSON', 'error': \"'not_a_preset' is not a valid preset\"}",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Send a chat message",
   "probe": "well-formed room id in our namespace that does not exist",
   "outcome": "403 {'errcode': 'M_FORBIDDEN', 'error': 'User @agent:localhost not in room !doesNotExist123:localhost'}",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Send a chat message",
   "probe": "repeat a create with the same transaction id",
   "outcome": "200 {'event_id': '$4_snVFmFCKCVbzxpR7TvAm--PWDQKx1QgSqlZcCnax8'} then 200 {'event_id': '$4_snVFmFCKCVbzxpR7TvAm--PWDQKx1QgSqlZcCnax8'}; messages with body \"idem\": 1",
   "grade": "clear",
   "idempotent": "yes",
   "rate_limit": null
  },
  {
   "capability": "Create a chat room",
   "probe": "repeat createRoom with the same body",
   "outcome": "200 {'room_id': '!711UQjkH_5mwRqxQKBCimDVVzCQR9ZKM2CMFV7LlO2c'} then 200 {'room_id': '!WsCsg2Cxj9pG6uLNiznwRob0z08HwLQSfBZ6W5QEEM8'}: two rooms",
   "grade": "clear",
   "idempotent": "no",
   "rate_limit": null
  },
  {
   "capability": "Send a chat message",
   "probe": "short burst: 15 GET /account/whoami, then up to 15 sends",
   "outcome": "whoami statuses {200: 15}; sends [(200, None, None), (200, None, None), (429, '2', 1866)]; 429 body {\"errcode\":\"M_LIMIT_EXCEEDED\",\"error\":\"Too Many Requests\",\"retry_after_ms\":...} with Retry-After hea",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": "clean"
  },
  {
   "capability": "Send a chat message",
   "probe": "bad credential",
   "outcome": "401 {'errcode': 'M_UNKNOWN_TOKEN', 'error': 'Invalid access token passed.', 'soft_logout': False} content-type=application/json",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create a chat room",
   "probe": "multi-step create interrupted: createRoom that also invites a user who does not exist",
   "outcome": "429 {'errcode': 'M_LIMIT_EXCEEDED', 'error': 'Too Many Requests', 'retry_after_ms': 992}; a room named \"partial\" left behind afterwards: False",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create a chat room",
   "probe": "multi-step create interrupted (retry after the 429): createRoom that also invites a user who does not exist",
   "outcome": "200 {'room_id': '!JY-_QDhXrLCdKx-PsDtHNADnS0kC0secT5X-Pwcv52U'}; a room named \"partial\" left behind afterwards: True; the room's state lists @nobody_here:localhost with membership \"invite\" although th",
   "grade": "silent",
   "idempotent": null,
   "rate_limit": null
  }
 ],
 "surface_audit": null,
 "coverage_core": null,
 "coverage_own": null,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 5,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false
 },
 "methodology": 42,
 "rules_date": "2026-10-30",
 "engine": {
  "model": "claude-opus-5-5",
  "driver": 5,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "skip",
  "version": "2026.10.27",
  "commit": "53d130186e8432e42a7aa40b76e98d3f818ec039",
  "prompts": {
   "version": "2026.10.27",
   "commit": "4a18f5abc48d9338c8c7c67f8820899e9dec5a45"
  },
  "rules": {
   "version": "2026.10.27",
   "commit": "e48310aedf9e8567bbe57fdff36c027e5f19fed9"
  }
 },
 "same_level_drives": 1,
 "drives": 1,
 "same_stop_drives": 1,
 "works_assisted": null,
 "freshness": "fresh",
 "newer_drives": null,
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "Google reCAPTCHA v2 (checkbox) on account.matrix.org",
  "visible": true,
  "type": "challenge",
  "human": null,
  "how": "In Google Cloud Fraud Defense (reCAPTCHA), lower the score your sign-up action needs or give it a challenge policy. Or offer a documented sign-up API with email verification.",
  "recognises_us": false,
  "vendor_id": "recaptcha",
  "signed": true
 },
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "captcha"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-27"
  },
  "browser": {
   "state": "captcha",
   "measured": false
  },
  "our_key": "verified",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "docs.element.io (MkDocs, 205 pages via its search index) covers the apps, EMS and ESS; for the API it sends you to the Matrix Client-Server spec (v1.19, OpenAPI 3.1.0 api.json). No llms.txt, no markdown pages."
  },
  "signup": {
   "status": "human",
   "cause": "check",
   "note": "The free app (app.element.io) creates the account on matrix.org: the form at account.matrix.org/register takes username, email and password, then shows a visible reCAPTCHA v2 checkbox (\"Please complete the CAPTCHA challenge before continuing\"). A handoff was asked. The Matrix API sign-up answers 403 \"Registration has been disabled\". An Element (EMS) account for paid hosting signed up in the browser with no CAPTCHA, but it holds no Matrix account."
  },
  "verify": {
   "status": "",
   "note": "Not reached on matrix.org. On the EMS account the verification mail came within a minute; its link page was blank, and the confirm link in its page data verified the address.",
   "reached": false
  },
  "credentials": {
   "status": "",
   "cause": "check",
   "note": "No Matrix account on the hosted product, so no access token (the docs: the token is under Settings > Help & About). The EMS account gets Matrix access only with a paid host.",
   "reached": false
  },
  "first_call": {
   "status": "",
   "after_person": true
  },
  "first_action": {
   "status": "",
   "note": "Nothing can be created without a Matrix account.",
   "reached": false
  },
  "pay": {
   "status": "",
   "after_person": true
  },
  "cancel": {
   "status": "",
   "note": "Nothing to cancel: no host was bought. Cancelling is in the web portal (customer.element.io), and deleting the account \"immediately\" cancels running hosts.",
   "docs_grade": "",
   "reached": false
  },
  "delete": {
   "status": "",
   "after_person": true
  }
 },
 "routes": [
  {
   "route": "keyless",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "partial",
   "wall": {
    "type": null,
    "owner": "product"
   },
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 0.5,
   "browser": false
  },
  {
   "route": "local",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "in",
   "wall": null,
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 5,
   "browser": false
  },
  {
   "route": "api_signup",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "refused",
   "wall": {
    "type": null,
    "owner": "product"
   },
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 0.2,
   "browser": null
  },
  {
   "route": "email_password",
   "offered": "seen",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "challenge",
    "owner": "product"
   },
   "person": "each",
   "brings": "inbox",
   "fresh": true,
   "minutes": 6,
   "browser": null
  },
  {
   "route": "email_password",
   "offered": "seen",
   "tried": true,
   "not_tried": null,
   "result": "partial",
   "wall": {
    "type": "card",
    "owner": "product"
   },
   "person": "none",
   "brings": "inbox",
   "fresh": true,
   "minutes": 12,
   "browser": true
  },
  {
   "route": "sso_github",
   "offered": "seen",
   "tried": false,
   "not_tried": "policy",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "sso_google",
   "offered": "seen",
   "tried": false,
   "not_tried": "policy",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "device_login",
   "offered": "documented",
   "tried": false,
   "not_tried": "no_kit",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "oauth_consent",
   "offered": "documented",
   "tried": false,
   "not_tried": "no_kit",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null,
   "browser": null
  }
 ],
 "checkout": {
  "reached": "card_form",
  "processor": "stripe_elements",
  "captcha": "invisible",
  "three_ds": "not_seen",
  "phone_field": "none",
  "wallets": [
   "link"
  ],
  "rail_offer": "none",
  "period": "year",
  "card_form": true,
  "price": "3000.00",
  "currency": "USD",
  "plan": "Element Business (EMS Cloud, 50 users)",
  "last_button": "Submit"
 },
 "docs": {
  "at": "2026-10-27",
  "read": 2,
  "listed": 206,
  "sampled": false,
  "overall": "thin",
  "getting_started": "missing",
  "auth": "missing",
  "errors": "missing",
  "examples": "none",
  "freshness": "fresh",
  "newest": "2026-10-23",
  "core_pages": "0 of 9",
  "capabilities": "none",
  "label": "Thin"
 },
 "claims": null,
 "pay_options": {
  "checked": "2026-10-27",
  "source": "probe",
  "options": [],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": null,
   "card_required": null,
   "free_plan": null
  },
  "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,
  "cli": false,
  "sdk": false,
  "mcp": "third-party",
  "llms_txt": false,
  "webhooks": false,
  "sandbox": false
 },
 "urls": {
  "docs": "https://docs.element.io/",
  "llms_txt": null,
  "mcp": null
 },
 "surface_notes": {
  "api": "Matrix Client-Server API v1.19, 159 operations (the spec Element's docs link to)"
 },
 "surface_sizes": [
  {
   "kind": "api",
   "listed": 160,
   "tested": 149
  },
  {
   "kind": "cli",
   "listed": 1,
   "tested": 1
  }
 ],
 "can_do": [
  "Run its own Element-backed Matrix server (Synapse image) and create users from the command line",
  "Create rooms and spaces and add rooms to a space through the API",
  "Send, edit and delete messages, react, and reply in threads through the API",
  "Cross-sign and verify its own devices through the key endpoints",
  "Set up, answer and hang up a voice or video call through the Matrix VoIP events, and send a recorded voice message",
  "Pin messages, set roles, ban members, change room settings and mute rooms through the API",
  "Export a room's history from Element Web",
  "Sign up for an Element hosting account and delete it in the browser"
 ],
 "cannot_do": [
  {
   "what": "Get a free hosted account in the Element app",
   "why": "matrix.org sign-up shows a visible reCAPTCHA and the API sign-up is disabled"
  },
  {
   "what": "Use any core feature on the hosted product",
   "why": "no Matrix account without the CAPTCHA or a paid host"
  },
  {
   "what": "Buy hosting without a person's card",
   "why": "card-only Stripe checkout, billed yearly"
  },
  {
   "what": "Place a call from Element Web without a microphone",
   "why": "Element Web refuses to start a voice or video call when no microphone is found; over the API the call is set up and answered, and media was not measured"
  }
 ],
 "blockers": [
  "Visible reCAPTCHA on the matrix.org sign-up the free app uses",
  "Hosted Element accounts need a paid host ($3000.00 a year)"
 ],
 "tips_for_agents": [
  "Self-host Synapse from ghcr.io/element-hq/synapse (run `generate`, then start it), create users with register_new_matrix_user, and drive the Matrix Client-Server API with a token from POST /_matrix/client/v3/login.",
  "Point Element Web (app.element.io) at your own homeserver with Edit > Other account provider for the UI-only features such as Export Chat.",
  "Reuse the same transaction id when retrying a send: the server returns the same event_id instead of a duplicate.",
  "On 429 M_LIMIT_EXCEEDED wait the full Retry-After (invites and room creation can ask 30 s or more).",
  "Use /_matrix/client/v1/media/download, not the deprecated /_matrix/media/v3 paths, for new uploads."
 ],
 "selfhost": {
  "install": {
   "status": "headless",
   "minutes": 3,
   "note": "Synapse from its official image ghcr.io/element-hq/synapse:latest (docs: element-hq.github.io/synapse installation, Docker README): `generate` with SYNAPSE_SERVER_NAME=localhost and SYNAPSE_REPORT_STATS=no, then run on port 8008 with the default SQLite config; the image expects a mounted /data volume, so /data was made first. Users via `register_new_matrix_user -c /data/homeserver.yaml`. ESS Community (Helm chart on Kubernetes) needs cluster privileges and was not installed."
  },
  "ladder": {
   "signup": {
    "status": "headless",
    "note": "register_new_matrix_user with the server's shared secret (CLI, documented in the Synapse Docker README)."
   },
   "verify": {
    "status": "n/a",
    "note": "No email step on a self-hosted server."
   },
   "credentials": {
    "status": "headless",
    "note": "POST /_matrix/client/v3/login (m.login.password) gives an access token; POST /logout revokes it (401 afterwards)."
   },
   "first_call": {
    "status": "headless",
    "note": "GET /_matrix/client/v3/account/whoami -> 200.",
    "route": "account"
   },
   "first_action": {
    "status": "headless",
    "note": "POST /_matrix/client/v3/createRoom -> 200; /joined_rooms lists it."
   },
   "delete": {
    "status": "headless",
    "note": "POST /account/deactivate (UIA password) -> 200; token 401 and login 403 afterwards; server stopped and removed.",
    "left": "deleted"
   },
   "pay": {
    "status": "n/a",
    "note": "Self-hosted: nothing to pay or cancel."
   },
   "cancel": {
    "status": "n/a",
    "note": "Self-hosted: nothing to pay or cancel."
   }
  },
  "coverage_core": 89,
  "coverage_source": "computed"
 },
 "edge_case": "none",
 "summary": "On the hosted product an agent stops at sign-up: Element's free app creates accounts on matrix.org, whose form shows a visible reCAPTCHA, and the Matrix sign-up API is disabled. Element's own hosting account signed up and verified in the browser by the agent, but it needs a $3000-a-year card purchase before any chat works, and the walk stopped at the card field. Self-hosted, the same software ran without a browser in minutes, and the documented Matrix API covered 7 of the 8 core tasks that don't need a paid plan; voice and video calls were set up through Matrix call events but the media never connected.",
 "wall": "reCAPTCHA on the matrix.org sign-up form",
 "plan_scope": "",
 "robots_stop": null,
 "robots": {
  "rule": "star",
  "step": null,
  "seen": "2026-10-27",
  "held": false
 },
 "terms": null,
 "terms_read": "2026-10-27",
 "email_gate": null,
 "plain": {
  "summary": "Element is a team chat app built on the open Matrix standard. An agent could not get a free hosted account because of a visible CAPTCHA, and the paid hosting costs $3000 a year by card. On a server the agent installed itself, nearly everything worked without a person.",
  "can_do": [
   "Run its own Matrix server from the official image and create users from the command line",
   "Create rooms and spaces, send, edit and delete messages, react and reply in threads through the API",
   "Verify its own devices with the cross-signing keys",
   "Sign up for an Element hosting account in the browser and delete it again"
  ],
  "cannot_do": [
   {
    "what": "Get a free hosted account in the Element app",
    "why": "The matrix.org sign-up shows a visible CAPTCHA and API sign-up is disabled."
   },
   {
    "what": "Use chat features on Element's hosting",
    "why": "No Matrix account without the CAPTCHA or a paid host."
   },
   {
    "what": "Buy hosting",
    "why": "Card-only checkout billed yearly at $3000."
   },
   {
    "what": "Run a working voice or video call",
    "why": "The call events were exchanged but the media never connected."
   }
  ]
 },
 "plan_gated": [
  {
   "capability": "Share a room with another organisation via federation",
   "plan": "EMS hosted homeserver",
   "evidence": "EMS setup step 3 \"Enable federation\" sits in the paid host flow ($3000.00 annually)"
  },
  {
   "capability": "Set up auto-moderation rules",
   "plan": "ESS Pro",
   "evidence": "docs.element.io element-server-suite-pro/configuring-components/supervision/"
  },
  {
   "capability": "Capture an official record of conversations",
   "plan": "ESS Pro",
   "evidence": "docs.element.io element-server-suite-pro/configuring-components/auditbot/"
  },
  {
   "capability": "Configure SSO",
   "plan": "EMS / ESS Pro",
   "evidence": "docs.element.io element-cloud-documentation/authentication/openid-connect/"
  },
  {
   "capability": "Connect a custom domain",
   "plan": "EMS",
   "evidence": "docs.element.io ems-server-with-custom-domain"
  },
  {
   "capability": "Read usage (monthly active users)",
   "plan": "ESS Pro",
   "evidence": "docs.element.io calculate-monthly-active-users"
  },
  {
   "capability": "Download invoices",
   "plan": "EMS subscription",
   "evidence": "customer.element.io billing shows no subscription"
  }
 ],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "capability": "Send a chat message",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "PUT /_matrix/client/v3/rooms/{roomId}/send/m.room.message/{txnId}",
    "mcp": null,
    "cli": null,
    "ui": "Room timeline composer"
   },
   "check": "GET /_matrix/client/v3/rooms/{roomId}/messages shows the new event",
   "capability_id": "cap_y0kyhz5h",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-support/quick-start-guide/the-middle-panel/",
   "result": "failed",
   "via": "api"
  },
  {
   "id": "cap-02",
   "capability": "React to a message",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "PUT /_matrix/client/v3/rooms/{roomId}/send/m.reaction/{txnId}",
    "mcp": null,
    "cli": null,
    "ui": "Hover message, smiley icon"
   },
   "check": "Room timeline shows m.reaction event annotating the message",
   "capability_id": "cap_e82b8y63",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-support/quick-start-guide/the-middle-panel/",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-03",
   "capability": "Reply in a thread",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "PUT /_matrix/client/v3/rooms/{roomId}/send/m.room.message/{txnId} with m.thread relation",
    "mcp": null,
    "cli": null,
    "ui": "Message options → Reply in thread; Thread panel"
   },
   "check": "Thread panel lists the reply under the parent event's thread",
   "capability_id": "cap_w838h61s",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-support/quick-start-guide/the-middle-panel/",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-04",
   "capability": "Start a voice or video call",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Room header call icons"
   },
   "check": "Room shows an active Element Call / Jitsi widget session",
   "capability_id": "cap_mwwffv1h",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-support/quick-start-guide/the-middle-panel/",
   "result": "failed",
   "via": "browser"
  },
  {
   "id": "cap-05",
   "capability": "Create a chat room",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /_matrix/client/v3/createRoom",
    "mcp": null,
    "cli": null,
    "ui": "Left panel → Add room"
   },
   "check": "GET /_matrix/client/v3/joined_rooms lists the new room id",
   "capability_id": "cap_f6ccszjb",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-support/matrix-rooms/getting-started-creating-a-room/",
   "result": "failed",
   "via": "api"
  },
  {
   "id": "cap-06",
   "capability": "Verify a device",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "Matrix cross-signing endpoints under /_matrix/client/v3/keys",
    "mcp": null,
    "cli": null,
    "ui": "Settings → Sessions; cross-signed device verification flow"
   },
   "check": "Device shows as verified (cross-signed) in Settings → Sessions",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://element.io/features/device-verification",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-07",
   "capability": "Group rooms into a Space",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "PUT /_matrix/client/v3/rooms/{spaceId}/state/m.space.child/{roomId}",
    "mcp": null,
    "cli": null,
    "ui": "Left panel → Spaces"
   },
   "check": "GET /_matrix/client/v1/rooms/{spaceId}/hierarchy lists the child room",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://element.io/features/spaces-enterprise-chat-rooms",
   "result": "failed",
   "via": "api"
  },
  {
   "id": "cap-08",
   "capability": "Share a room with another organisation via federation",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Room settings → Security & Privacy → Access; Server ACLs"
   },
   "check": "A user on a different homeserver appears as a joined member of the room",
   "capability_id": "cap_qc6ykche",
   "unmapped": null,
   "source": "https://element.io/features/closed-federation-and-open-federation",
   "result": "plan_gated",
   "via": null,
   "counted": false
  },
  {
   "id": "cap-09",
   "capability": "Deploy a self-hosted homeserver (Synapse)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": "github.com/element-hq/ess-helm",
    "ui": null
   },
   "check": "Homeserver's /_matrix/client/versions endpoint responds",
   "capability_id": null,
   "unmapped": "access_step",
   "source": "https://element.io/pricing",
   "result": "blocked",
   "via": "cli"
  },
  {
   "id": "cap-10",
   "capability": "Create a poll in chat",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "PUT /_matrix/client/v3/rooms/{roomId}/send/org.matrix.msc3381.poll.start/{txnId}",
    "mcp": null,
    "cli": null,
    "ui": "Composer → poll icon"
   },
   "check": "Room timeline shows the poll start event and subsequent response events",
   "capability_id": "cap_vwvft217",
   "unmapped": null,
   "source": "https://element.io/blog/element-welcomes-polls/",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-11",
   "capability": "Edit or delete a message",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "PUT /_matrix/client/v3/rooms/{roomId}/redact/{eventId}/{txnId} (delete); m.replace relation (edit)",
    "mcp": null,
    "cli": null,
    "ui": "Hover message → edit / 3-dot → remove"
   },
   "check": "Timeline shows the edited content or a 'message removed' tombstone",
   "capability_id": "cap_khr1h48m",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-support/quick-start-guide/the-middle-panel/",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-12",
   "capability": "Pin a message",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "PUT /_matrix/client/v3/rooms/{roomId}/state/m.room.pinned_events",
    "mcp": null,
    "cli": null,
    "ui": "Message options → Pin"
   },
   "check": "Room info → Pinned messages lists the event",
   "capability_id": "cap_pcpacc2v",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-support/matrix-rooms/managing-a-room-room-settings/",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-13",
   "capability": "Mark messages as read",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /_matrix/client/v3/rooms/{roomId}/receipt/m.read/{eventId}",
    "mcp": null,
    "cli": null,
    "ui": "Scrolling to bottom of room; read-receipt avatars"
   },
   "check": "Reader's avatar appears beside the message as a read receipt",
   "capability_id": "cap_yr0cw7nt",
   "unmapped": null,
   "source": "http://docs.element.io/ess-classic-lts-24.10/element-support/quick-start-guide/frequently-asked-questions/",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-14",
   "capability": "Share a file in chat",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /_matrix/media/v3/upload then m.room.message with msgtype m.file",
    "mcp": null,
    "cli": null,
    "ui": "Composer paperclip / drag-and-drop"
   },
   "check": "Timeline shows the file message with a downloadable mxc:// URL",
   "capability_id": "cap_najpx1cb",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-support/quick-start-guide/the-middle-panel/",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-15",
   "capability": "Kick, ban or time out a member",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /_matrix/client/v3/rooms/{roomId}/kick, /ban",
    "mcp": null,
    "cli": null,
    "ui": "Room settings → Roles & Permissions → Banned Users"
   },
   "check": "Member list / banned users list reflects the removal",
   "capability_id": "cap_drpwkfkg",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-support/matrix-rooms/managing-a-room-room-settings/",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-16",
   "capability": "Change a channel's settings",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "PUT /_matrix/client/v3/rooms/{roomId}/state/m.room.name (and related state events)",
    "mcp": null,
    "cli": null,
    "ui": "Room settings → General / Security & Privacy"
   },
   "check": "GET /_matrix/client/v3/rooms/{roomId}/state reflects the updated name/topic/access",
   "capability_id": "cap_86edyh37",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-support/matrix-rooms/managing-a-room-room-settings/",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-17",
   "capability": "Set a member's role or permissions",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "PUT /_matrix/client/v3/rooms/{roomId}/state/m.room.power_levels",
    "mcp": null,
    "cli": null,
    "ui": "Room settings → Roles & Permissions → Privileged Users"
   },
   "check": "m.room.power_levels state shows the updated user power level",
   "capability_id": "cap_bs3hvrpm",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-support/matrix-rooms/managing-a-room-room-settings/",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-18",
   "capability": "Set up auto-moderation rules",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Element Server Suite Pro → Supervision"
   },
   "check": "Supervision dashboard shows configured moderation policy applied to a room",
   "capability_id": "cap_9z6c18b6",
   "unmapped": null,
   "source": "https://element.io/server-suite/supervision",
   "result": "plan_gated",
   "via": null,
   "counted": false
  },
  {
   "id": "cap-19",
   "capability": "Export messages from a room",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Room settings → Export chat"
   },
   "check": "Exported file (HTML/JSON/plain text) contains the room's message history",
   "capability_id": "cap_8zwmj5wn",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-support/matrix-rooms/exporting-messages/",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-20",
   "capability": "Configure notifications",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "PUT /_matrix/client/v3/pushrules/{scope}/{kind}/{ruleId}",
    "mcp": null,
    "cli": null,
    "ui": "Settings → Notifications"
   },
   "check": "GET /_matrix/client/v3/pushrules reflects the updated rule",
   "capability_id": "cap_jmy53453",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-support/element-webdesktop-client-settings/notification-settings/",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-21",
   "capability": "Capture an official record of conversations for compliance",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Element Server Suite Pro → Auditing (AuditBot)"
   },
   "check": "Audit output log contains the room's message events",
   "capability_id": "cap_xgs80797",
   "unmapped": null,
   "source": "https://element.io/server-suite/auditing",
   "result": "plan_gated",
   "via": null,
   "counted": false
  },
  {
   "id": "cap-22",
   "capability": "Add a widget to a room (embed a third-party app)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "PUT /_matrix/client/v3/rooms/{roomId}/state/im.vector.modular.widgets/{widgetId}",
    "mcp": null,
    "cli": null,
    "ui": "Room → Add widgets (Etherpad, Grafana, Jitsi, YouTube, etc.)"
   },
   "check": "Room info → Widgets shows the added widget active in the room",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://element.io/integrations",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-23",
   "capability": "Connect a bot or bridge (GitHub, GitLab, JIRA, webhooks, IRC, Slack, WhatsApp, Telegram)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Room → Add integrations / bridge setup"
   },
   "check": "Bridged room shows messages originating from the connected third-party service",
   "capability_id": "cap_x4n6bnwy",
   "unmapped": null,
   "source": "https://element.io/integrations",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-24",
   "capability": "Record a voice message",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "PUT /_matrix/client/v3/rooms/{roomId}/send/m.room.message/{txnId} with msgtype m.audio",
    "mcp": null,
    "cli": null,
    "ui": "Composer microphone icon"
   },
   "check": "Timeline shows an audio message event playable in the room",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://docs.element.io/latest/element-support/quick-start-guide/the-middle-panel/",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-25",
   "capability": "Configure SSO / identity provider for sign-in",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Element Server Suite Pro → Identity and Access Management"
   },
   "check": "Login screen shows the configured SSO provider and completes a federated login",
   "capability_id": "cap_pz4pecfg",
   "unmapped": null,
   "source": "https://element.io/server-suite/identity-access-management",
   "result": "plan_gated",
   "via": null,
   "counted": false
  },
  {
   "id": "cap-26",
   "capability": "Change account settings (profile, appearance, preferences)",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "PUT /_matrix/client/v3/profile/{userId}/displayname",
    "mcp": null,
    "cli": null,
    "ui": "Settings → General / Appearance / Preferences"
   },
   "check": "GET /_matrix/client/v3/profile/{userId} reflects the updated display name",
   "capability_id": "cap_q235vpxt",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-support/element-webdesktop-client-settings/accessing-general-settings/",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-27",
   "capability": "View sessions and manage active logins",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "GET /_matrix/client/v3/devices; DELETE /_matrix/client/v3/devices/{deviceId}",
    "mcp": null,
    "cli": null,
    "ui": "Settings → Sessions"
   },
   "check": "GET /_matrix/client/v3/devices no longer lists the revoked session",
   "capability_id": null,
   "unmapped": "access_step",
   "source": "https://docs.element.io/latest/element-support/element-webdesktop-client-settings/sessions/",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-28",
   "capability": "Restrict access by IP address (server ACLs)",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "PUT /_matrix/client/v3/rooms/{roomId}/state/m.room.server_acl",
    "mcp": null,
    "cli": null,
    "ui": "Element Admin console"
   },
   "check": "m.room.server_acl state reflects the restricted server list",
   "capability_id": "cap_wrzp7nnm",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-server-suite-pro/configuring-components/secure-border-gateway/configuring/",
   "result": "not_tried",
   "via": null
  },
  {
   "id": "cap-29",
   "capability": "Connect a custom domain",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "EMS → EMS Server With Custom Domain"
   },
   "check": "Homeserver's well-known delegation resolves under the custom domain",
   "capability_id": "cap_dj4n5a69",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-cloud-documentation/element-matrix-services/ems-server-with-custom-domain/",
   "result": "plan_gated",
   "via": null,
   "counted": false
  },
  {
   "id": "cap-30",
   "capability": "Read the account's usage and quotas (monthly active users)",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Admin console → Calculate monthly active users"
   },
   "check": "Admin console reports an active-user count matching the Synapse admin API figure",
   "capability_id": "cap_n0zefvzh",
   "unmapped": null,
   "source": "https://docs.element.io/latest/element-server-suite-pro/administration/calculate-monthly-active-users/",
   "result": "plan_gated",
   "via": null,
   "counted": false
  },
  {
   "id": "cap-31",
   "capability": "Download the account's invoices",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Customer portal (customer.element.io)"
   },
   "check": "Customer portal invoice list shows a downloadable PDF for a billing period",
   "capability_id": "cap_39r7q610",
   "unmapped": null,
   "source": "https://customer.element.io",
   "result": "plan_gated",
   "via": "browser",
   "counted": false
  },
  {
   "id": "cap-32",
   "capability": "Deactivate or reactivate a Matrix account",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "POST /_matrix/client/v3/account/deactivate",
    "mcp": null,
    "cli": null,
    "ui": "Settings → General → Deactivate account"
   },
   "check": "GET /_matrix/client/v3/account/whoami fails authentication for the deactivated account",
   "capability_id": null,
   "unmapped": "access_step",
   "source": "https://docs.element.io/latest/element-support/matrix-account-management/deactivating-a-matrix-account/",
   "result": "not_tried",
   "via": null
  }
 ],
 "stale": false,
 "unreachable_since": null,
 "not_driven_since": null,
 "icon": "/logos/element.png",
 "agent_kinds": {
  "browser": {
   "who": "An assistant in a browser",
   "passed": [],
   "stop": "signup",
   "why": "it asks for a Google reCAPTCHA v2 check our agent doesn't solve",
   "tone": "wall",
   "text": "Signing up needs a person: it asks for a Google reCAPTCHA v2 check our agent doesn't solve."
  },
  "direct": {
   "who": "An agent talking to it directly",
   "passed": [],
   "stop": "signup",
   "why": "it asks for a Google reCAPTCHA v2 check our agent doesn't solve",
   "tone": "wall",
   "text": "Signing up needs a person: it asks for a Google reCAPTCHA v2 check our agent doesn't solve."
  }
 },
 "sdk": {
  "packages": [],
  "read_at": "2026-11-01T21:02:32Z"
 },
 "surface_reach": null,
 "connect": {
  "signup": {
   "url": "https://try.element.io/get-started",
   "state": "documented"
  },
  "docs": {
   "url": "https://docs.element.io/",
   "state": "tested"
  }
 },
 "surface_sources": {
  "docs": "https://docs.element.io/",
  "api": "https://spec.matrix.org/latest/client-server-api/",
  "cli": "https://github.com/element-hq/synapse/blob/develop/docker/README.md",
  "mcp": "https://github.com/retiform-labs/matrix-mcp-server"
 },
 "copilot_connector": null,
 "stripe_directory": null,
 "in_stripe_directory": null,
 "stripe_projects": null,
 "pay_rails": [],
 "stop_evidence": {
  "at": "signup",
  "date": "2026-10-27",
  "line": "The free app (app.element.io) creates the account on matrix.org: the form at account.matrix.org/register takes username, email and password, then shows a visible reCAPTCHA v2 checkbox (\"Please complete the CAPTCHA challenge before continuing\"). A handoff was asked."
 },
 "wall_vendor": {
  "vendor": "Google reCAPTCHA",
  "id": "recaptcha",
  "kind": "bot check",
  "at": "signup"
 },
 "mcp_sign_in": null,
 "safety_issues": 1,
 "fix_counts": {
  "small": 4,
  "medium": 1,
  "large": 2,
  "total": 7
 },
 "evidence_sha256": "26168a09642ec6b3e4367779c9b98fbb9b81e3ac34486fd973629d22ba649086",
 "first_seen": "2026-10-27",
 "license": {
  "name": "CC BY 4.0",
  "url": "https://creativecommons.org/licenses/by/4.0/"
 },
 "correction": {
  "status": "none",
  "open": 0,
  "since": null,
  "reply_by": null
 },
 "attribution": {
  "vendor": "Google reCAPTCHA v2",
  "at": "signup",
  "state": "seen",
  "stopped": true,
  "line": "Sign-up asked for a Google reCAPTCHA v2 check. Our agent doesn't solve these, so it stopped."
 },
 "confirmation": {
  "state": "awaiting",
  "drives": 1,
  "agree": 1,
  "review": null,
  "text": "1 drive, awaiting confirmation"
 },
 "stop_shot": null,
 "stop_shot_hash": null,
 "attempts_count": 209,
 "detail": {
  "public": false,
  "in": [
   "report",
   "api"
  ],
  "since": "2026-10-17"
 },
 "what_it_does": "Element is a team chat app built on the open Matrix standard.",
 "kind": "product",
 "rules_version": "rules-2026-10-30-42",
 "rules_url": "https://agentdrives.com/method/changelog#rules-2026-10-30-42",
 "category_median": null,
 "peers": {
  "DOCS-08": {
   "basis": "category",
   "n": 7,
   "below": 5,
   "above": 0
  },
  "DOCS-10": {
   "basis": "category",
   "n": 7,
   "below": 0,
   "above": 2
  },
  "DOCS-11": {
   "basis": "category",
   "n": 7,
   "below": 0,
   "above": 5
  },
  "ERR-01": {
   "basis": "category",
   "n": 5,
   "below": 0,
   "above": 0
  },
  "ERR-02": {
   "basis": "all",
   "n": 105,
   "below": 0,
   "above": 65,
   "percentile": 19
  },
  "ERR-03": {
   "basis": "all",
   "n": 104,
   "below": 81,
   "above": 0,
   "percentile": 89
  },
  "ERR-04": {
   "basis": "all",
   "n": 36,
   "below": 0,
   "above": 12,
   "percentile": 33
  },
  "ERR-07": {
   "basis": "category",
   "n": 5,
   "below": 2,
   "above": 0
  },
  "FIND-06": {
   "basis": "all",
   "n": 106,
   "below": 0,
   "above": 96,
   "percentile": 5
  },
  "IN-08": {
   "basis": "category",
   "n": 6,
   "below": 0,
   "above": 0
  },
  "IN-11": {
   "basis": "category",
   "n": 7,
   "below": 3,
   "above": 1
  },
  "IN-12": {
   "basis": "category",
   "n": 8,
   "below": 5,
   "above": 0
  },
  "LEAVE-03": {
   "basis": "category",
   "n": 7,
   "below": 0,
   "above": 4
  },
  "PROTO-02": {
   "basis": "category",
   "n": 7,
   "below": 0,
   "above": 0
  }
 },
 "probe": {
  "checked": "2026-11-01",
  "status": "ok",
  "sign_up_page": "page",
  "wall": "none",
  "llms_txt": false,
  "mcp": "none",
  "openapi": false,
  "payment_402": null,
  "payment_rails": [],
  "files": {
   "openapi": {
    "url": null,
    "found": false
   },
   "llms_txt": {
    "url": null,
    "found": false
   },
   "llms_full": {
    "url": null,
    "found": false
   }
  }
 },
 "probe_history": [
  {
   "checked": "2026-11-01",
   "status": "ok",
   "sign_up_page": "page",
   "wall": "none",
   "llms_txt": false,
   "mcp": "none",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  },
  {
   "checked": "2026-10-31",
   "status": "ok",
   "sign_up_page": "page",
   "wall": "none",
   "llms_txt": false,
   "mcp": "none",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  },
  {
   "checked": "2026-10-30",
   "status": "ok",
   "sign_up_page": "page",
   "wall": "none",
   "llms_txt": false,
   "mcp": "none",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  },
  {
   "checked": "2026-10-29",
   "status": "ok",
   "sign_up_page": "page",
   "wall": "none",
   "llms_txt": false,
   "mcp": "none",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  },
  {
   "checked": "2026-10-28",
   "status": "ok",
   "sign_up_page": "page",
   "wall": "none",
   "llms_txt": false,
   "mcp": "none",
   "openapi": false,
   "payment_402": null,
   "payment_rails": []
  }
 ],
 "surface_changes": [],
 "agent_reports": null,
 "verdict": "L1 · Needs a person: an agent gets into Element only with a person's help. Our agent stopped at sign-up. The free app creates accounts on matrix.org, whose form shows a visible Google reCAPTCHA checkbox, and the Matrix sign-up API answers 403 \"Registration has been disabled\". An Element hosting account signed up in the browser and its confirmation mail arrived, but that account holds no Matrix account. So the access token, the first call and the work were not reached. Matrix access on the hosting account comes with a paid host. Cancelling is in the customer web portal, and no host was bought.",
 "changes": {
  "source": "store",
  "drives": [
   {
    "run": "20261027T075757Z",
    "date": "2026-10-27",
    "level": 1,
    "stop": "signup",
    "entry": "closed",
    "driver": 5,
    "listed": true,
    "paid": false,
    "agent_paid": null
   }
  ],
  "events": [],
  "feed": "https://agentdrives.com/api/tools/element/changes.json"
 },
 "agreement": null,
 "method_release": "2026-Q4.27",
 "found": {
  "agent_blockers": 2,
  "surface_issues": null
 },
 "agent_surfaces": {
  "api": {
   "state": "tested",
   "reachable": true,
   "documented": 160,
   "tested": 149,
   "source": "https://spec.matrix.org/latest/client-server-api/"
  },
  "mcp": {
   "state": "documented",
   "reachable": null,
   "documented": null,
   "tested": null,
   "source": "https://github.com/retiform-labs/matrix-mcp-server"
  },
  "cli": {
   "state": "tested",
   "reachable": true,
   "documented": 1,
   "tested": 1,
   "source": "https://github.com/element-hq/synapse/blob/develop/docker/README.md"
  },
  "sdk": {
   "state": "none_found",
   "documented": null,
   "tested": null,
   "source": null
  },
  "docs": {
   "state": "tested",
   "documented": 206,
   "tested": 2,
   "source": "https://docs.element.io/"
  },
  "payment": {
   "state": "none_found",
   "documented": null,
   "tested": null,
   "source": null
  }
 },
 "issues_found": 2,
 "rank": null,
 "rank_of": 3,
 "rank_change": null,
 "rank_since": null,
 "links": {
  "category": [
   {
    "label": "Work and collaboration",
    "href": "https://agentdrives.com/categories/work"
   },
   {
    "label": "Team chat",
    "href": "https://agentdrives.com/categories/team-chat"
   }
  ],
  "tasks": [],
  "walls": [
   {
    "label": "Bot checks",
    "href": "https://agentdrives.com/access/get-in/bot-checks",
    "note": "kept our agent out"
   },
   {
    "label": "Google reCAPTCHA bot check",
    "href": "https://agentdrives.com/vendors/recaptcha",
    "note": "the check, and every product we met it at"
   },
   {
    "label": "Let signed AI agents past your bot check",
    "href": "https://agentdrives.com/guides/let-signed-agents-past-your-bot-check",
    "note": "fix guide"
   }
  ],
  "vendors": [],
  "standards": [
   {
    "label": "MCP",
    "href": "https://agentdrives.com/standards/mcp",
    "note": "tools an agent can call"
   }
  ],
  "steps": [
   {
    "label": "Find",
    "href": "https://agentdrives.com/access/find"
   },
   {
    "label": "Get in",
    "href": "https://agentdrives.com/access/get-in",
    "note": "stopped here"
   },
   {
    "label": "Use",
    "href": "https://agentdrives.com/access/use"
   },
   {
    "label": "Pay",
    "href": "https://agentdrives.com/access/pay"
   },
   {
    "label": "Leave",
    "href": "https://agentdrives.com/access/leave"
   }
  ],
  "rivals": [
   {
    "label": "Google Chat",
    "href": "https://agentdrives.com/tools/chat-google",
    "slug": "chat-google",
    "level": 1
   },
   {
    "label": "Microsoft Teams",
    "href": "https://agentdrives.com/tools/microsoft",
    "slug": "microsoft",
    "level": 1
   },
   {
    "label": "Pumble",
    "href": "https://agentdrives.com/tools/pumble",
    "slug": "pumble",
    "level": 1
   }
  ],
  "compare": [],
  "rail": [
   {
    "label": "Watch this product",
    "href": "https://agentdrives.com/watch"
   },
   {
    "label": "Get the data",
    "href": "https://agentdrives.com/data#plans"
   }
  ]
 },
 "capability_matrix": [
  {
   "id": "cap-01",
   "name": "Send a chat message",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-02",
   "name": "React to a message",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-03",
   "name": "Reply in a thread",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-04",
   "name": "Start a voice or video call",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "blocked"
   }
  },
  {
   "id": "cap-05",
   "name": "Create a chat room",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-06",
   "name": "Verify a device",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-07",
   "name": "Group rooms into a Space",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-08",
   "name": "Share a room with another organisation via federation",
   "core": true,
   "result": "plan",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-09",
   "name": "Deploy a self-hosted homeserver (Synapse)",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "blocked",
    "ui": "none"
   }
  },
  {
   "id": "cap-10",
   "name": "Create a poll in chat",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-11",
   "name": "Edit or delete a message",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-12",
   "name": "Pin a message",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-13",
   "name": "Mark messages as read",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-14",
   "name": "Share a file in chat",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-15",
   "name": "Kick, ban or time out a member",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-16",
   "name": "Change a channel's settings",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-17",
   "name": "Set a member's role or permissions",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-18",
   "name": "Set up auto-moderation rules",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-19",
   "name": "Export messages from a room",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-20",
   "name": "Configure notifications",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-21",
   "name": "Capture an official record of conversations for compliance",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-22",
   "name": "Add a widget to a room (embed a third-party app)",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-23",
   "name": "Connect a bot or bridge (GitHub, GitLab, JIRA, webhooks, IRC, Slack, WhatsApp, Telegram)",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-24",
   "name": "Record a voice message",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-25",
   "name": "Configure SSO / identity provider for sign-in",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-26",
   "name": "Change account settings (profile, appearance, preferences)",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-27",
   "name": "View sessions and manage active logins",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-28",
   "name": "Restrict access by IP address (server ACLs)",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-29",
   "name": "Connect a custom domain",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-30",
   "name": "Read the account's usage and quotas (monthly active users)",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-31",
   "name": "Download the account's invoices",
   "core": false,
   "result": "plan",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "plan"
   }
  },
  {
   "id": "cap-32",
   "name": "Deactivate or reactivate a Matrix account",
   "core": false,
   "result": "untried",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  }
 ],
 "category_place": {
  "category": "team-chat",
  "products": 9,
  "higher": 3,
  "same_level": 5,
  "as_of": "2026-10-31",
  "stop": "signup",
  "rivals_by": "stop",
  "rivals": [
   "chat-google",
   "microsoft",
   "pumble",
   "slack"
  ]
 },
 "page": "https://agentdrives.com/tools/element?via=api"
}