{
 "slug": "tawk",
 "name": "tawk.to",
 "url": "https://tawk.to",
 "domain": "tawk.to",
 "category": "customer-support",
 "category_name": "Customer support",
 "tested_at": "2026-10-06",
 "run": "20261006T092245Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261001T225156Z",
   "date": "2026-10-01",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": null,
    "driver": null,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   }
  },
  {
   "run": "20261006T092245Z",
   "date": "2026-10-06",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "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": "part",
   "text": "Some docs agents can read: llms.txt and an MCP server",
   "have": [
    "llms_txt",
    "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": 55,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 55,
  "security": null,
  "standards": []
 },
 "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": [
   "agentdrives.com"
  ],
  "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 Turnstile",
  "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": "form"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-12"
  },
  "browser": {
   "state": "through",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "llms.txt, developer portal (JS API, webhooks, Zapier) and help center read headless; REST API reference only sent after an approved access request"
  },
  "signup": {
   "status": "human",
   "note": "Web form only; Cloudflare Turnstile 'Verify you are human' shown and submission rejected ('Human verification failed')."
  },
  "verify": {
   "status": "",
   "note": "Not reached: sign-up stopped at Turnstile",
   "reached": false
  },
  "credentials": {
   "status": "",
   "note": "Not reached; REST API keys also require a human-approved access request (rest-[redacted] form)",
   "via": "",
   "reached": false
  },
  "first_call": {
   "status": "",
   "note": "No credentials; unauthenticated POST api.tawk.to/v1/agent.me returns 401 auth_error/no_auth",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "Not reached: no account",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P1",
   "rails": [
    "credit card",
    "PayPal (dashboard checkout, per help center)"
   ],
   "rail_ids": [
    "card",
    "paypal"
   ],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "free tier",
   "note": "Core product free; add-ons bought in dashboard by card or PayPal; no 402/x402/MPP/UCP, no billing API; checkout not seen because sign-up needs a human",
   "reached": false
  },
  "cancel": {
   "status": "",
   "note": "No plan started; docs: cancel in dashboard web UI (Purchases and Invoices, reason picker)",
   "docs_grade": "",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No account created; docs: account deletion in dashboard only, no API route",
   "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
   },
   {
    "id": "paypal",
    "name": "PayPal",
    "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": false,
  "cli": false,
  "sdk": false,
  "mcp": "third-party",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": false
 },
 "surface_notes": {
  "api": "REST RPC-style at api.tawk.to/v1, HTTP Basic with API key; reference behind access request",
  "webhooks": "chat start/end, transcript, ticket create; HMAC-SHA1 X-Tawk-Signature; dashboard-managed",
  "llms_txt": "www.tawk.to/llms.txt",
  "mcp": "third-party only"
 },
 "can_do": [
  "Read tawk.to docs headless via llms.txt, the developer portal and the help center"
 ],
 "cannot_do": [
  {
   "what": "Create an account",
   "why": "Cloudflare Turnstile on the only sign-up form rejected the signed automated browser"
  },
  {
   "what": "Get REST API credentials",
   "why": "REST API access and its reference require a human-approved request form, then keys made in the dashboard"
  },
  {
   "what": "Use any product capability (chat, inbox, CRM, pipeline, KB, tickets, webhooks)",
   "why": "No account"
  },
  {
   "what": "Buy an add-on the agent way",
   "why": "Card or PayPal in the dashboard only; no billing API or machine payment rail"
  }
 ],
 "blockers": [
  "Cloudflare Turnstile on dashboard.tawk.to/signup",
  "REST API gated by a human-approved access request"
 ],
 "tips_for_owner": [
  "Let verified agents through sign-up",
  "Open the REST API reference publicly",
  "Make API keys self-serve",
  "Publish OAuth metadata for the API",
  "Serve docs as Markdown"
 ],
 "tips_for_agents": [
  "Budget for a human at sign-up (Turnstile) and for the REST API access approval.",
  "REST is RPC-style: POST https://api.tawk.to/v1/<method>, HTTP Basic with the API key as username (e.g. agent.me).",
  "Webhooks are configured in the dashboard only; verify X-Tawk-Signature (HMAC-SHA1 of the raw body)."
 ],
 "selfhost": null,
 "summary": "An agent can read tawk.to's docs (llms.txt, developer portal, help center), but the only sign-up route is a web form behind Cloudflare Turnstile. It rejected our agent's browser, so no capability could be tried. Even with an account, the REST API needs a human-approved access request, and there is no OpenAPI, no official MCP server and no machine payment rail.",
 "wall": "Cloudflare Turnstile on the sign-up form",
 "plan_scope": "",
 "robots_stop": null,
 "robots": null,
 "plain": {
  "summary": "tawk.to is a free live-chat and helpdesk tool for websites. The agent could read its public documentation on its own, but the only way to create an account is a web form protected by a human-verification check, and the agent's attempt was rejected. With no account, none of the chat, inbox, CRM, ticketing or other features could be tried.",
  "can_do": [
   "Read the product's help articles, developer guides and a short machine-readable docs file without any help."
  ],
  "cannot_do": [
   {
    "what": "Create a free account",
    "why": "A 'prove you're human' check on the sign-up page rejected the automated attempt."
   },
   {
    "what": "Get an API key",
    "why": "Even with an account, API access needs a person to request it and wait for manual approval."
   },
   {
    "what": "Use any chat, inbox, CRM, ticketing or widget feature",
    "why": "No account could be created to test any of these."
   },
   {
    "what": "Buy an add-on in an automated way",
    "why": "Add-ons are only paid for by card or PayPal through the website, not through any automated payment method."
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "Live Chat",
   "capability": "Chat live with website visitors via the chat widget",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard chat / embedded widget"
   },
   "check": "Visitor message sent through widget appears in agent dashboard conversation view",
   "source": "https://www.tawk.to/"
  },
  {
   "id": "cap-02",
   "group": "Inbox",
   "capability": "See every channel's conversations in one shared Inbox",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Inbox"
   },
   "check": "New messages from different channels all list in the Inbox view",
   "source": "https://www.tawk.to/"
  },
  {
   "id": "cap-03",
   "group": "CRM",
   "capability": "Build a contact profile automatically from a conversation",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > CRM / Contacts"
   },
   "check": "Contact record shows company, role, and chat/email history after first conversation",
   "source": "https://www.tawk.to/"
  },
  {
   "id": "cap-04",
   "group": "Pipeline",
   "capability": "Move a deal/enquiry through pipeline stages",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Pipeline"
   },
   "check": "Deal card changes column/stage and value total updates on the pipeline board",
   "source": "https://www.tawk.to/"
  },
  {
   "id": "cap-05",
   "group": "Automations",
   "capability": "Let AI Assist answer routine chats automatically",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Automations / AI Assist"
   },
   "check": "Conversation log shows an AI-generated reply resolving a chat without human agent",
   "source": "https://www.tawk.to/why-free/"
  },
  {
   "id": "cap-06",
   "group": "Knowledge Base",
   "capability": "Publish a self-serve help center article",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Knowledge Base"
   },
   "check": "Published article becomes viewable at the hosted knowledge base URL",
   "source": "https://www.tawk.to/why-free/"
  },
  {
   "id": "cap-07",
   "group": "Activities",
   "capability": "Let customers book an appointment without back-and-forth",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Activities"
   },
   "check": "Booking created by a customer appears on the Activities calendar with confirmed time",
   "source": "https://www.tawk.to/"
  },
  {
   "id": "cap-08",
   "group": "Ticketing",
   "capability": "Track a customer issue as a ticket through to resolution",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Tickets"
   },
   "check": "Ticket status moves from open to resolved and stays linked to the originating contact",
   "source": "https://www.tawk.to/why-free/"
  },
  {
   "id": "cap-09",
   "group": "Chat Widget",
   "capability": "Customize widget colors and branding to match the site",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Chat Widget settings"
   },
   "check": "Widget on the site reflects the chosen brand color after saving settings",
   "source": "https://www.tawk.to/"
  },
  {
   "id": "cap-10",
   "group": "Chat Widget",
   "capability": "Identify a logged-in visitor to the widget (login/logout)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "JS: Tawk_API.login(data, callback) / Tawk_API.logout(callback)",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Calling login with hash+userId attaches prior conversation history to that visitor session",
   "source": "https://developer.tawk.to/jsapi/"
  },
  {
   "id": "cap-11",
   "group": "Chat Widget",
   "capability": "Programmatically show, hide, start or stop the widget connection",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "JS: Tawk_API.start / Tawk_API.shutdown / autoStart option",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Calling shutdown then start disconnects then re-establishes the widget socket, visible via onStatusChange",
   "source": "https://developer.tawk.to/jsapi/"
  },
  {
   "id": "cap-12",
   "group": "Chat Widget",
   "capability": "Switch the embedded widget to a different property/widget",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "JS: Tawk_API.switchWidget(data, callback)",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "After switchWidget the visible widget renders the target propertyId/widgetId",
   "source": "https://developer.tawk.to/jsapi/"
  },
  {
   "id": "cap-13",
   "group": "Chat Widget",
   "capability": "Collect pre-chat and offline contact forms",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "JS: Tawk_API.onPrechatSubmit / onOfflineSubmit callbacks",
    "mcp": null,
    "cli": null,
    "ui": "Dashboard widget settings"
   },
   "check": "Submitting the pre-chat/offline form fires the callback with the entered name/email/message",
   "source": "https://developer.tawk.to/jsapi/"
  },
  {
   "id": "cap-14",
   "group": "Inbox",
   "capability": "Tag a conversation",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "JS: Tawk_API.onTagsUpdated callback",
    "mcp": null,
    "cli": null,
    "ui": "Dashboard chat panel"
   },
   "check": "Adding a tag in the dashboard fires onTagsUpdated and the tag persists on the chat record",
   "source": "https://developer.tawk.to/jsapi/"
  },
  {
   "id": "cap-15",
   "group": "Inbox",
   "capability": "Collect a visitor satisfaction rating at chat end",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "JS: Tawk_API.onChatSatisfaction callback",
    "mcp": null,
    "cli": null,
    "ui": "Widget end-of-chat prompt"
   },
   "check": "Visitor selecting like/dislike produces a -1/0/1 value passed to onChatSatisfaction",
   "source": "https://developer.tawk.to/jsapi/"
  },
  {
   "id": "cap-16",
   "group": "Inbox",
   "capability": "Email a transcript of the conversation to the visitor",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "JS: Tawk_API.onTranscriptRequest callback",
    "mcp": null,
    "cli": null,
    "ui": "Widget chat menu"
   },
   "check": "Visitor transcript request triggers onTranscriptRequest with their email and a transcript email is sent",
   "source": "https://developer.tawk.to/jsapi/"
  },
  {
   "id": "cap-17",
   "group": "Inbox",
   "capability": "Upload and share a file within a chat",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "JS: Tawk_API.onFileUpload callback",
    "mcp": null,
    "cli": null,
    "ui": "Widget/dashboard chat composer"
   },
   "check": "Uploading a file produces a shareable link passed to onFileUpload and visible in the chat log",
   "source": "https://developer.tawk.to/jsapi/"
  },
  {
   "id": "cap-18",
   "group": "Automations",
   "capability": "Trigger external automations on chat/ticket events via webhooks",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "Webhook POST on chat:start, chat:end, chat:transcript_created, ticket:create",
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Admin > Webhooks"
   },
   "check": "Configured endpoint receives a signed POST with matching event name when the event occurs, verifiable via X-Tawk-Signature",
   "source": "https://developer.tawk.to/webhooks/"
  },
  {
   "id": "cap-20",
   "group": "Chat Pages",
   "capability": "Turn a shareable link into a chat conversation (Chat Pages)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Chat Pages"
   },
   "check": "Opening the generated Chat Page link starts a live chat session without any website embed",
   "source": "https://www.tawk.to/why-free/"
  },
  {
   "id": "cap-21",
   "group": "Payments",
   "capability": "Take payment directly inside the chat widget",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > In-Chat Payments (alpha)"
   },
   "check": "Payment request sent in a chat results in a completed transaction record linked to that chat",
   "source": "https://www.tawk.to/why-free/"
  },
  {
   "id": "cap-22",
   "group": "Feedback",
   "capability": "Let customers vote on feature requests and view a public roadmap/changelog",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "feedback.tawk.to"
   },
   "check": "A submitted idea appears on the public board and accrues votes visible to other users",
   "source": "https://developer.tawk.to/"
  },
  {
   "id": "cap-23",
   "group": "Messaging",
   "capability": "Respond across async messaging channels (Facebook, Telegram, SMS, Google RCS) in one dashboard",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Messaging (beta)"
   },
   "check": "A message sent on a connected Facebook/Telegram/SMS channel appears in the same dashboard inbox as web chats",
   "source": "https://www.tawk.to/why-free/"
  },
  {
   "id": "cap-24",
   "group": "Phone",
   "capability": "Make voice calls and send SMS from the dashboard",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Phone (beta)"
   },
   "check": "A call placed from the dashboard Phone panel connects and logs to the contact record",
   "source": "https://www.tawk.to/why-free/"
  },
  {
   "id": "cap-25",
   "group": "Account Admin",
   "capability": "Hire a professionally trained human chat agent to answer on your behalf",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Hire Chat Agents"
   },
   "check": "Hired agent appears as an active agent seat answering chats in the dashboard, billed at $1/hr",
   "source": "https://www.tawk.to/why-free/"
  },
  {
   "id": "cap-26",
   "group": "Account Admin",
   "capability": "Hire a dedicated virtual assistant for admin/design/data-entry work",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Virtual Assistants"
   },
   "check": "Requested VA task is assigned and tracked under the Virtual Assistants section, billed from $7/hr",
   "source": "https://www.tawk.to/why-free/"
  },
  {
   "id": "cap-27",
   "group": "Account Admin",
   "capability": "Remove the \"Powered by tawk.to\" branding",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Admin > Branding"
   },
   "check": "After enabling the $29/month add-on, the widget/knowledge base no longer shows the tawk.to branding footer",
   "source": "https://www.tawk.to/why-free/"
  },
  {
   "id": "cap-28",
   "group": "Account Admin",
   "capability": "Manage multiple separate properties/widgets under one login",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard property switcher"
   },
   "check": "A single login lists and can switch between several distinct properties/customer bases",
   "source": "https://www.tawk.to/why-free/"
  },
  {
   "id": "cap-29",
   "group": "Account Admin",
   "capability": "Use native desktop/mobile apps to continue conversations across devices",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "iOS, Android, macOS, Windows apps"
   },
   "check": "A conversation opened on one device (e.g. desktop app) shows the same state when continued on another (e.g. mobile app)",
   "source": "https://www.tawk.to/"
  }
 ],
 "attempts": [
  {
   "t": "01:14",
   "cap": "discovery",
   "capability": "docs and agent discovery",
   "task": "Read llms.txt, developer portal, robots.txt",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "https://www.tawk.to/llms.txt 200 text/plain (H1 # tawk.to; mentions JavaScript API, webhooks, REST APIs). developer.tawk.to: JS API, Webhooks (HMAC-SHA1 X-Tawk-Signature), Zapier. robots.txt: User-Agent: * Allow: /; no Content-Usage/Content-signal lines; no Content-Usage header on www.tawk.to",
   "notes": "developer.tawk.to/llms.txt 404"
  },
  {
   "t": "01:15",
   "cap": "discovery",
   "capability": "REST API docs",
   "task": "Find REST API reference",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "help.tawk.to/article/rest-api: The REST API is available by request ... Once your request is approved, you will receive a username, password, and a link to the REST API documentation. Base URL https://api.tawk.to/v1/, HTTP Basic with API key as username, RPC style POST e.g. /v1/agent.me",
   "notes": "Reference itself behind a human-approved access form (www.tawk.to/rest-[redacted]/); no public OpenAPI"
  },
  {
   "t": "01:15",
   "cap": "discovery",
   "capability": "well-known probes",
   "task": "ai-catalog, agent-card, agent.json, mcp server-card, oauth-protected-resource, oauth-authorization-server, ucp, auth.md, SKILL.md on www.tawk.to",
   "route": "api",
   "documented": true,
   "result": "failed",
   "verified": true,
   "evidence": "All 404 text/html (Next.js not-found page)",
   "notes": "no agent cards, no OAuth metadata, no MCP card"
  },
  {
   "t": "01:15",
   "cap": "discovery",
   "capability": "markdown docs",
   "task": "Accept: text/markdown on help.tawk.to/article/rest-api and .md URL",
   "route": "api",
   "documented": true,
   "result": "failed",
   "verified": true,
   "evidence": "Accept text/markdown -> 200 text/html, vary: Accept-Encoding; /article/rest-api.md -> 404 text/plain",
   "notes": ""
  },
  {
   "t": "01:15",
   "cap": "discovery",
   "capability": "REST API auth probe",
   "task": "POST https://api.tawk.to/v1/agent.me without and with bad key",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "no auth: 401 application/json {\"ok\":false,\"error\":\"auth_error\",\"message\":\"no_auth\"}; bad key: 401 {\"ok\":false,\"error\":\"auth_error\",\"message\":\"invalid_auth\"}; no WWW-Authenticate, no resource_metadata",
   "notes": "not RFC 9457; no PRM",
   "quality": {
    "error_legibility": "clear"
   }
  },
  {
   "t": "01:15",
   "cap": "pay",
   "capability": "402 probes",
   "task": "unauth calls api.tawk.to and x402./mpp./agents./mcp. subdomains",
   "route": "api",
   "documented": true,
   "result": "failed",
   "verified": true,
   "evidence": "api.tawk.to returns 401 JSON, never 402; x402/mpp/agents/mcp.tawk.to do not resolve/connect (000)",
   "notes": "no machine payment rail"
  },
  {
   "t": "02:31",
   "cap": "signup",
   "capability": "sign up",
   "task": "Create free account at dashboard.tawk.to/signup (name AgentDrives Test, inbox email, generated password)",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "Form submit returned \"Human verification failed. Please try again.\" and a visible Cloudflare Turnstile \"Verify you are human\" checkbox is shown (shots/002.png). No documented headless sign-up (no API/CLI).",
   "notes": "Turnstile judges the browser; did not attempt to click/solve it. Asking a human via own-browser handoff.",
   "quality": {
    "error_legibility": "clear",
    "recoverable": "no"
   }
  },
  {
   "t": "02:40",
   "cap": "signup",
   "capability": "sign up",
   "task": "Human handoff (own browser) for Cloudflare Turnstile on sign-up",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "",
   "notes": "Cloudflare Turnstile on the sign-up form; no account could be created, so verify, credentials, the first call and the first action not reachable"
  },
  {
   "t": "03:22",
   "cap": "cap-01",
   "capability": "Chat live with website visitors via the chat widget",
   "task": "Visitor message sent through widget appears in agent dashboard conversation view",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-02",
   "capability": "See every channel's conversations in one shared Inbox",
   "task": "New messages from different channels all list in the Inbox view",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-03",
   "capability": "Build a contact profile automatically from a conversation",
   "task": "Contact record shows company, role, and chat/email history after first conversation",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-04",
   "capability": "Move a deal/enquiry through pipeline stages",
   "task": "Deal card changes column/stage and value total updates on the pipeline board",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-05",
   "capability": "Let AI Assist answer routine chats automatically",
   "task": "Conversation log shows an AI-generated reply resolving a chat without human agent",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "paid add-on per capability map; not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-06",
   "capability": "Publish a self-serve help center article",
   "task": "Published article becomes viewable at the hosted knowledge base URL",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-07",
   "capability": "Let customers book an appointment without back-and-forth",
   "task": "Booking created by a customer appears on the Activities calendar with confirmed time",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-08",
   "capability": "Track a customer issue as a ticket through to resolution",
   "task": "Ticket status moves from open to resolved and stays linked to the originating contact",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-09",
   "capability": "Customize widget colors and branding to match the site",
   "task": "Widget on the site reflects the chosen brand color after saving settings",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-10",
   "capability": "Identify a logged-in visitor to the widget (login/logout)",
   "task": "Calling login with hash+userId attaches prior conversation history to that visitor session",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "JS API needs a property/widget id from our own account; using someone else's widget is out of bounds.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-11",
   "capability": "Programmatically show, hide, start or stop the widget connection",
   "task": "Calling shutdown then start disconnects then re-establishes the widget socket, visible via onStatusChange",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "JS API needs a property/widget id from our own account; using someone else's widget is out of bounds.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-12",
   "capability": "Switch the embedded widget to a different property/widget",
   "task": "After switchWidget the visible widget renders the target propertyId/widgetId",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "JS API needs a property/widget id from our own account; using someone else's widget is out of bounds.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-13",
   "capability": "Collect pre-chat and offline contact forms",
   "task": "Submitting the pre-chat/offline form fires the callback with the entered name/email/message",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "JS API needs a property/widget id from our own account; using someone else's widget is out of bounds.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-14",
   "capability": "Tag a conversation",
   "task": "Adding a tag in the dashboard fires onTagsUpdated and the tag persists on the chat record",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "JS API needs a property/widget id from our own account; using someone else's widget is out of bounds.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-15",
   "capability": "Collect a visitor satisfaction rating at chat end",
   "task": "Visitor selecting like/dislike produces a -1/0/1 value passed to onChatSatisfaction",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "JS API needs a property/widget id from our own account; using someone else's widget is out of bounds.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-16",
   "capability": "Email a transcript of the conversation to the visitor",
   "task": "Visitor transcript request triggers onTranscriptRequest with their email and a transcript email is sent",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "JS API needs a property/widget id from our own account; using someone else's widget is out of bounds.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-17",
   "capability": "Upload and share a file within a chat",
   "task": "Uploading a file produces a shareable link passed to onFileUpload and visible in the chat log",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "JS API needs a property/widget id from our own account; using someone else's widget is out of bounds.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-18",
   "capability": "Trigger external automations on chat/ticket events via webhooks",
   "task": "Configured endpoint receives a signed POST with matching event name when the event occurs, verifiable via X-Tawk-Signature",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "JS API needs a property/widget id from our own account; using someone else's widget is out of bounds.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-20",
   "capability": "Turn a shareable link into a chat conversation (Chat Pages)",
   "task": "Opening the generated Chat Page link starts a live chat session without any website embed",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-21",
   "capability": "Take payment directly inside the chat widget",
   "task": "Payment request sent in a chat results in a completed transaction record linked to that chat",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:22",
   "cap": "cap-22",
   "capability": "Let customers vote on feature requests and view a public roadmap/changelog",
   "task": "A submitted idea appears on the public board and accrues votes visible to other users",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:23",
   "cap": "cap-23",
   "capability": "Respond across async messaging channels (Facebook, Telegram, SMS, Google RCS) in one dashboard",
   "task": "A message sent on a connected Facebook/Telegram/SMS channel appears in the same dashboard inbox as web chats",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:23",
   "cap": "cap-24",
   "capability": "Make voice calls and send SMS from the dashboard",
   "task": "A call placed from the dashboard Phone panel connects and logs to the contact record",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:23",
   "cap": "cap-25",
   "capability": "Hire a professionally trained human chat agent to answer on your behalf",
   "task": "Hired agent appears as an active agent seat answering chats in the dashboard, billed at $1/hr",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "paid add-on per capability map; not attempted beyond the sign-up wall"
  },
  {
   "t": "03:23",
   "cap": "cap-26",
   "capability": "Hire a dedicated virtual assistant for admin/design/data-entry work",
   "task": "Requested VA task is assigned and tracked under the Virtual Assistants section, billed from $7/hr",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "paid add-on per capability map; not attempted beyond the sign-up wall"
  },
  {
   "t": "03:23",
   "cap": "cap-27",
   "capability": "Remove the \"Powered by tawk.to\" branding",
   "task": "After enabling the $29/month add-on, the widget/knowledge base no longer shows the tawk.to branding footer",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "paid add-on per capability map; not attempted beyond the sign-up wall"
  },
  {
   "t": "03:23",
   "cap": "cap-28",
   "capability": "Manage multiple separate properties/widgets under one login",
   "task": "A single login lists and can switch between several distinct properties/customer bases",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:23",
   "cap": "cap-29",
   "capability": "Use native desktop/mobile apps to continue conversations across devices",
   "task": "A conversation opened on one device (e.g. desktop app) shows the same state when continued on another (e.g. mobile app)",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "REST API reference and keys also need a human-approved access request.",
   "notes": "not attempted beyond the sign-up wall"
  },
  {
   "t": "03:23",
   "cap": "pay",
   "capability": "pay step",
   "task": "Find how an agent buys a paid add-on (AI Assist, Remove Branding)",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "help.tawk.to/article/how-do-i-change-my-payment-method: 'We currently accept payments via credit card and PayPal'; purchases under Administration > Purchases and Invoices in the dashboard. No 402 on api.tawk.to (401 JSON), no x402/mpp/agents subdomains, no /.well-known/ucp, not listed on mpp.dev/api/services or the CDP x402 Bazaar (grep 'tawk' = 0 hits). No billing API documented.",
   "notes": "Core product free; checkout itself not seen (no account)."
  },
  {
   "t": "03:23",
   "cap": "cancel",
   "capability": "cancel subscription",
   "task": "Find cancel route",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "help.tawk.to/article/how-do-i-cancel-a-subscription: Dashboard > Administration > Purchases and Invoices > Cancel subscription, pick a reason, confirm. Web UI only.",
   "notes": "No plan started; no account"
  },
  {
   "t": "03:23",
   "cap": "delete",
   "capability": "delete account",
   "task": "Find account deletion route",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "help.tawk.to/article/deleting-your-account: log in, profile image > ... (dashboard). No API route documented.",
   "notes": "Nothing created, nothing to delete"
  },
  {
   "t": "03:23",
   "cap": "discovery",
   "capability": "MCP",
   "task": "Find an MCP server for tawk.to",
   "route": "none",
   "documented": true,
   "result": "failed",
   "verified": true,
   "evidence": "No tawk.to-hosted MCP endpoint or server card found (mcp.tawk.to does not connect; .well-known cards 404). tawk.to AI Assist acts as an MCP client (Administration > Integrations > MCP Server, per community/web search). Third-party servers exist (Pipedream mcp.pipedream.com/app/tawk_to, viaSocket, Truto) that wrap the REST API.",
   "notes": "Third-party servers need their own accounts plus an approved tawk.to REST API key; not probed with server/discover."
  }
 ],
 "stale": false,
 "icon": "/logos/tawk.png",
 "monitored": false,
 "verdict": "Stopped at sign-up: L1 · Needs a person. Our agent read tawk.to's docs fine: llms.txt, the developer portal and the help center. The only sign-up route is a web form, and a Cloudflare Turnstile check stopped it there with \"Human verification failed.\" No account followed. The key, the first call and real work stayed out of reach. Even a human's REST API key needs a separate approved access request first. Paying and cancelling live in the dashboard, by card or PayPal, with no billing API. Our agent never got far enough to see checkout.",
 "page": "https://agentdrives.com/tools/tawk?via=api"
}