{
 "slug": "usefathom",
 "name": "Fathom Analytics",
 "url": "https://usefathom.com",
 "domain": "usefathom.com",
 "category": "web-analytics",
 "category_name": "Web analytics",
 "tested_at": "2026-10-06",
 "run": "20261006T045640Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261006T045640Z",
   "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": 1,
  "self_start": false
 },
 "badges": [],
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "no",
   "text": "Needs a card to start",
   "at": "signup",
   "how": "card"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "card_checkout"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Find",
   "state": "yes",
   "text": "Docs agents can read: llms.txt, an OpenAPI and an MCP server",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ]
  },
  {
   "key": "access",
   "label": "Access",
   "state": "no",
   "text": "Needs a card to start",
   "at": "signup",
   "how": "card",
   "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 start without a card"
 },
 "stop": "signup",
 "core": "0/9",
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 80,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 80,
  "security": null,
  "standards": [
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 1,
    "value": "3.1.0"
   }
  ]
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [],
 "surface_audit": null,
 "coverage_core": null,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 2,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": null,
  "prompt_sha": "f3d0adeeb256",
  "kb_version": "2+overlay-9e43028a2c",
  "identity": null
 },
 "methodology": 15,
 "rules_date": "2026-10-15",
 "engine": {
  "runner": "omp",
  "model": "claude-opus-5-5",
  "driver": 2,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "start"
 },
 "same_level_drives": 1,
 "drives": 1,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": null,
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "closed"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-13"
  },
  "browser": {
   "state": "unknown",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "llms.txt links a full Markdown API reference (/api/llms.txt) and an OpenAPI 3.1.0 schema (/api/openapi.json), all fetched headless."
  },
  "signup": {
   "status": "blocked",
   "note": "app.usefathom.com/register is a browser-only form that requires a credit card (Stripe card field) and a ZIP code to start the 7-day trial; there is no free plan and no sign-up API. We may not enter a card, so the form could not be submitted."
  },
  "verify": {
   "status": "",
   "note": "Not reached: sign-up could not be submitted without a card.",
   "reached": false
  },
  "credentials": {
   "status": "",
   "note": "API tokens are created only in the web app (app.usefathom.com/api, 'Create new') after login; no OAuth, device flow or agent registration.",
   "via": "",
   "reached": false
  },
  "first_call": {
   "status": "",
   "note": "Without a token the API answers 401 {\"message\":\"Unauthenticated.\"}.",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "No token, so no site could be created (POST /v1/sites).",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P1",
   "rails": [
    "Stripe card element on the sign-up form"
   ],
   "rail_ids": [
    "card"
   ],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "card trial",
   "note": "No 402 on the API (401 without token), no x402./mpp./agents. subdomains, no /.well-known/ucp, no x-payment-info in the OpenAPI, not listed in x402 Bazaar or mpp.dev. The trial and every plan start with a card on the sign-up form ('Choose a plan and add your card to start a 7-day free trial'), so a human must supply the card. API tier upgrades are self-serve in web billing settings, not by API.",
   "reached": false
  },
  "cancel": {
   "status": "",
   "note": "No plan was started. Docs (/docs/account/close): cancel via Settings > Billing > Cancel in the web UI; no billing API.",
   "docs_grade": "",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No account was created. Docs (/docs/account/close): after cancellation ends, sites and data are queued for deletion (up to 60 days); no account-delete API. DELETE /v1/sites/{id} exists for sites.",
   "account": false,
   "reached": false
  }
 },
 "routes": [],
 "checkout": null,
 "docs": null,
 "claims": null,
 "pay_options": {
  "checked": "2026-10-06",
  "source": "drive",
  "options": [
   {
    "id": "card",
    "name": "Card checkout",
    "kind": "checkout",
    "first_party": false,
    "lead": false,
    "networks": [],
    "testnet": false
   }
  ],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": null,
   "card_required": true,
   "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)."
   },
   {
    "title": "Let a trial start without a card",
    "how": "An agent can try the product before anyone hands it a card; take the card when it buys."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": true,
  "cli": false,
  "sdk": false,
  "mcp": "third-party",
  "llms_txt": true,
  "webhooks": false,
  "sandbox": false
 },
 "surface_notes": {
  "api": "REST v1, 13 paths: account, token, sites, events, milestones, aggregations, current_visitors",
  "openapi": "3.1.0 at /api/openapi.json, linked from llms.txt",
  "mcp": "third-party stdio only (mcp-fathom-analytics), not tested"
 },
 "can_do": [
  "Read the full API reference as Markdown (/api/llms.txt) and as OpenAPI 3.1.0",
  "Build a UTM-tagged campaign link with the free UTM builder (browser)",
  "View Fathom's public demo dashboard (browser)"
 ],
 "cannot_do": [
  {
   "what": "Create an account or start the trial",
   "why": "The sign-up form requires a credit card and ZIP code; no free plan"
  },
  {
   "what": "Get an API token and use the API (sites, events, milestones, reports)",
   "why": "Tokens are made in the web app after sign-up"
  },
  {
   "what": "Any of the 9 core capabilities on our own site",
   "why": "No account"
  }
 ],
 "blockers": [
  "Card-required sign-up for the 7-day trial; no free plan",
  "API tokens only creatable in the web UI"
 ],
 "tips_for_owner": [
  "Offer a no-card trial or free tier",
  "Let agents get API tokens headlessly",
  "Add an agent payment path",
  "Publish an official remote MCP server",
  "Match the 401 body to the docs"
 ],
 "tips_for_agents": [
  "Read https://usefathom.com/api/llms.txt: the whole API in one Markdown file; OpenAPI 3.1.0 at /api/openapi.json",
  "A human must sign up with a card and create a token at app.usefathom.com/api; then everything core (sites, events, milestones, aggregations) is plain REST with a Bearer token",
  "Send Accept: application/json or errors come back as HTML; each API request counts toward the monthly pageview quota; 600 req/hour and 5 concurrent on the included tier",
  "Branch on status codes: the 401 body differs from the docs ({\"message\":\"Unauthenticated.\"})"
 ],
 "selfhost": null,
 "summary": "Fathom Analytics has a clean, agent-friendly API surface (llms.txt, Markdown API reference, OpenAPI 3.1.0), but an agent cannot get in: the only way to start is a 7-day trial whose sign-up form requires a credit card and ZIP code, and API tokens are made in the web app. We could not create an account, so no core capability was driven; only the free UTM builder and the public demo dashboard worked.",
 "wall": "Credit card required to sign up",
 "plan_scope": "",
 "robots_stop": null,
 "robots": null,
 "plain": {
  "summary": "Fathom Analytics is a privacy-focused web analytics tool. An automated agent can read its full API documentation on its own, but it cannot actually sign up or use the product: the only way in is a 7-day trial that requires entering a credit card and ZIP code on a web form, and there is no free plan.",
  "can_do": [
   "Read the complete API documentation automatically",
   "Build a campaign tracking link using the free, no-signup tool",
   "Look at Fathom's own public demo dashboard"
  ],
  "cannot_do": [
   {
    "what": "Create an account or start the trial",
    "why": "The sign-up form requires a credit card, and the agent is not allowed to supply one"
   },
   {
    "what": "Get an API key or use the analytics API",
    "why": "API keys are only created inside the web dashboard after logging in"
   },
   {
    "what": "Track visits, events, or view reports on its own site",
    "why": "All of this requires an account, which could not be created"
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "Analytics tracking",
   "capability": "Add Fathom's script to a site to collect pageviews",
   "weight": "core",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Sites > Install"
   },
   "check": "Dashboard shows pageview counts increasing for the site",
   "source": "https://usefathom.com/docs/script/embed; https://usefathom.com/features"
  },
  {
   "id": "cap-02",
   "group": "Analytics tracking",
   "capability": "Create and manage a tracked site",
   "weight": "core",
   "plan": "trial",
   "surfaces": {
    "api": "POST/GET/PATCH/DELETE /sites",
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Add site"
   },
   "check": "GET /sites/{id} returns the created site with its site ID",
   "source": "https://usefathom.com/docs/start/create; https://usefathom.com/api/v1"
  },
  {
   "id": "cap-03",
   "group": "Analytics tracking",
   "capability": "View real-time single-page visitor dashboard",
   "weight": "core",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Site dashboard"
   },
   "check": "Dashboard page renders traffic, referrers, pages for the site",
   "source": "https://usefathom.com/docs/start/dashboard; https://usefathom.com/features"
  },
  {
   "id": "cap-04",
   "group": "Analytics tracking",
   "capability": "Track custom events (signups, clicks, conversions)",
   "weight": "core",
   "plan": "trial",
   "surfaces": {
    "api": "POST /events",
    "mcp": null,
    "cli": null,
    "ui": "Site > Events"
   },
   "check": "GET /events or dashboard events tab shows the recorded event count",
   "source": "https://usefathom.com/docs/events/overview"
  },
  {
   "id": "cap-05",
   "group": "Analytics tracking",
   "capability": "Track revenue value on events (ecommerce conversions)",
   "weight": "core",
   "plan": "trial",
   "surfaces": {
    "api": "POST /events (value, currency)",
    "mcp": null,
    "cli": null,
    "ui": "Site > Events"
   },
   "check": "Event report shows total revenue value with chosen currency",
   "source": "https://usefathom.com/docs/events/ecommerce-conversions"
  },
  {
   "id": "cap-06",
   "group": "Analytics tracking",
   "capability": "Track UTM campaign traffic",
   "weight": "core",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Campaigns filter"
   },
   "check": "Dashboard filtered by utm_campaign shows matching sessions",
   "source": "https://usefathom.com/docs/features/campaigns; https://usefathom.com/docs/start/utms"
  },
  {
   "id": "cap-07",
   "group": "Analytics tracking",
   "capability": "Filter dashboard data by page, country, referrer, event",
   "weight": "core",
   "plan": "trial",
   "surfaces": {
    "api": "GET /aggregations (filters)",
    "mcp": null,
    "cli": null,
    "ui": "Dashboard filter bar"
   },
   "check": "Applying a filter narrows visible rows/metrics to the selected value",
   "source": "https://usefathom.com/docs/features/filtering"
  },
  {
   "id": "cap-08",
   "group": "Analytics tracking",
   "capability": "Compare traffic between two date ranges",
   "weight": "core",
   "plan": "trial",
   "surfaces": {
    "api": "GET /aggregations (date_grouping, compare)",
    "mcp": null,
    "cli": null,
    "ui": "Dashboard date comparison"
   },
   "check": "Dashboard shows percentage delta between selected periods",
   "source": "https://usefathom.com/docs/how-tos/compare-dates"
  },
  {
   "id": "cap-09",
   "group": "Analytics tracking",
   "capability": "Pull custom aggregated reports via API",
   "weight": "core",
   "plan": "trial",
   "surfaces": {
    "api": "GET /aggregations",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "API response returns aggregated rows matching requested groupings",
   "source": "https://usefathom.com/api/v1"
  },
  {
   "id": "cap-10",
   "group": "Supporting",
   "capability": "Save a filtered view for reuse",
   "weight": "secondary",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Save view"
   },
   "check": "Saved view reappears in the views list and reapplies its filters when opened",
   "source": "https://usefathom.com/docs/features/saved-views"
  },
  {
   "id": "cap-11",
   "group": "Supporting",
   "capability": "Mark a milestone on the traffic chart",
   "weight": "secondary",
   "plan": "trial",
   "surfaces": {
    "api": "POST /milestones",
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Add milestone"
   },
   "check": "GET /milestones or chart shows the marker on the specified date",
   "source": "https://usefathom.com/docs/features/milestones; https://usefathom.com/api/v1"
  },
  {
   "id": "cap-12",
   "group": "Supporting",
   "capability": "View all sites together in one combined dashboard",
   "weight": "secondary",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "All-sites view"
   },
   "check": "All-sites page lists every site's traffic summary in one screen",
   "source": "https://usefathom.com/docs/features/all-sites"
  },
  {
   "id": "cap-13",
   "group": "Supporting",
   "capability": "Share a dashboard publicly or with a password",
   "weight": "secondary",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Site > Sharing settings"
   },
   "check": "Shared URL opens the dashboard without login (or prompts for the set password)",
   "source": "https://usefathom.com/docs/features/shared-dashboards"
  },
  {
   "id": "cap-14",
   "group": "Supporting",
   "capability": "Schedule automated email reports to recipients",
   "weight": "secondary",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Site > Email reports"
   },
   "check": "Configured recipient receives a scheduled weekly/monthly report email",
   "source": "https://usefathom.com/docs/features/email-reports"
  },
  {
   "id": "cap-15",
   "group": "Supporting",
   "capability": "Export data to CSV",
   "weight": "secondary",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Export"
   },
   "check": "Downloaded CSV file contains the rows shown in the current dashboard view",
   "source": "https://usefathom.com/docs/features/exporting"
  },
  {
   "id": "cap-16",
   "group": "Supporting",
   "capability": "Import historical Google Analytics (GA4) data",
   "weight": "secondary",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Site > GA importer"
   },
   "check": "Dashboard history extends back to the imported GA4 date range",
   "source": "https://usefathom.com/features/ga-importer"
  },
  {
   "id": "cap-17",
   "group": "Supporting",
   "capability": "Connect Google Search Console for search term data",
   "weight": "secondary",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Site > Search Console"
   },
   "check": "Dashboard shows search terms, impressions and positions after connecting",
   "source": "https://usefathom.com/docs/features/google-search-console"
  },
  {
   "id": "cap-18",
   "group": "Supporting",
   "capability": "Track 404 page hits",
   "weight": "secondary",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Events"
   },
   "check": "Event list shows a 404 event entry for the broken URL visited",
   "source": "https://usefathom.com/docs/events/404-page-tracking"
  },
  {
   "id": "cap-19",
   "group": "Supporting",
   "capability": "Track outbound/external link clicks",
   "weight": "secondary",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Events"
   },
   "check": "Event list records a click event for the external link clicked",
   "source": "https://usefathom.com/docs/events/external-clicks"
  },
  {
   "id": "cap-20",
   "group": "Supporting",
   "capability": "Track form submissions",
   "weight": "secondary",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Events"
   },
   "check": "Event list records a submission event when the form is submitted",
   "source": "https://usefathom.com/docs/events/form-submission-tracking"
  },
  {
   "id": "cap-21",
   "group": "Supporting",
   "capability": "Exclude own/internal traffic from tracking",
   "weight": "secondary",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Script firewall settings"
   },
   "check": "Visits from the excluded IP/browser no longer appear in the dashboard",
   "source": "https://usefathom.com/docs/script/exclude-visits; https://usefathom.com/docs/script/firewall"
  },
  {
   "id": "cap-22",
   "group": "Supporting",
   "capability": "Track multiple sites with one shared script/site ID",
   "weight": "secondary",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Script config"
   },
   "check": "A single embedded script reports data to more than one site ID",
   "source": "https://usefathom.com/docs/script/multiple-site-ids-one-website; https://usefathom.com/docs/features/multi"
  },
  {
   "id": "cap-23",
   "group": "Supporting",
   "capability": "Generate a UTM-tagged campaign link",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "/utm-builder"
   },
   "check": "UTM builder outputs a URL containing the entered utm_source/medium/campaign params",
   "source": "https://usefathom.com/utm-builder"
  },
  {
   "id": "cap-24",
   "group": "Supporting",
   "capability": "Generate an API token for programmatic access",
   "weight": "secondary",
   "plan": "trial",
   "surfaces": {
    "api": "POST /tokens (app.usefathom.com/api)",
    "mcp": null,
    "cli": null,
    "ui": "Account > API"
   },
   "check": "New token appears in the API settings page and authenticates a request",
   "source": "https://usefathom.com/api/v1/token; https://usefathom.com/docs/features/api"
  },
  {
   "id": "cap-25",
   "group": "Supporting",
   "capability": "Install Fathom via a CMS/framework integration (WordPress, Ghost, Webflow, Next.js, etc.)",
   "weight": "secondary",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Docs > Integrations"
   },
   "check": "Integration-installed site begins sending pageviews without manual script edits",
   "source": "https://usefathom.com/docs/integrations"
  },
  {
   "id": "cap-26",
   "group": "Peripheral",
   "capability": "Invite and manage team members on an account",
   "weight": "peripheral",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Account > Team"
   },
   "check": "Invited teammate appears in the team member list with access to shared sites",
   "source": "https://usefathom.com/docs/account/add-delete"
  },
  {
   "id": "cap-27",
   "group": "Peripheral",
   "capability": "Enable two-factor authentication on account login",
   "weight": "peripheral",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Account > Security"
   },
   "check": "Login subsequently requires a 2FA code after password",
   "source": "https://usefathom.com/docs/account/2fa"
  },
  {
   "id": "cap-28",
   "group": "Peripheral",
   "capability": "Change account password",
   "weight": "peripheral",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Account > Security"
   },
   "check": "New password successfully logs in; old password rejected",
   "source": "https://usefathom.com/docs/account/password"
  },
  {
   "id": "cap-29",
   "group": "Peripheral",
   "capability": "Redeem a discount code on a plan",
   "weight": "peripheral",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Billing"
   },
   "check": "Billing summary reflects the applied discount amount",
   "source": "https://usefathom.com/docs/account/discount-code"
  },
  {
   "id": "cap-30",
   "group": "Peripheral",
   "capability": "Upgrade or downgrade subscription plan/pageview tier",
   "weight": "peripheral",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Billing settings"
   },
   "check": "Billing page shows the newly selected plan tier and price",
   "source": "https://usefathom.com/docs/account/upgrade-downgrade; https://usefathom.com/pricing"
  },
  {
   "id": "cap-31",
   "group": "Peripheral",
   "capability": "Add extra site packs beyond plan base allowance",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Billing > Site packs"
   },
   "check": "Account's site limit increases by 50 per pack purchased",
   "source": "https://usefathom.com/pricing"
  },
  {
   "id": "cap-32",
   "group": "Peripheral",
   "capability": "Join the affiliate referral program",
   "weight": "peripheral",
   "plan": "trial",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Account > Affiliates"
   },
   "check": "Affiliate dashboard shows a unique referral link and tracked referrals",
   "source": "https://usefathom.com/docs/account/affiliates"
  }
 ],
 "attempts": [
  {
   "t": "01:21",
   "cap": "discovery",
   "capability": "Agent discovery",
   "task": "robots.txt, aipref Content-Usage",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "robots.txt 200: User-agent: * with Disallow lines only; no Content-Usage or Content-signal lines",
   "notes": ""
  },
  {
   "t": "01:21",
   "cap": "discovery",
   "capability": "Agent discovery",
   "task": "llms.txt",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "https://usefathom.com/llms.txt 200 text/plain, H1 '# Fathom Analytics', links API reference markdown /api/llms.txt and OpenAPI /api/openapi.json",
   "notes": ""
  },
  {
   "t": "01:21",
   "cap": "discovery",
   "capability": "Agent discovery",
   "task": "OpenAPI",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "https://usefathom.com/api/openapi.json 200 application/json, openapi 3.1.0, 13 paths; no x-payment-info/x-service-info",
   "notes": ""
  },
  {
   "t": "01:21",
   "cap": "discovery",
   "capability": "Agent discovery",
   "task": "Markdown docs",
   "route": "api",
   "documented": true,
   "result": "partial",
   "verified": true,
   "evidence": "GET /docs/features/api with Accept: text/markdown -> text/html (no negotiation); /docs/features/api.md 404; whole API reference available as /api/llms.txt markdown",
   "notes": ""
  },
  {
   "t": "01:21",
   "cap": "discovery",
   "capability": "Agent discovery",
   "task": "Agent/MCP/A2A cards, auth.md, PRM",
   "route": "api",
   "documented": true,
   "result": "failed",
   "verified": true,
   "evidence": "/.well-known/ai-catalog.json, /.well-known/agent-card.json, /.well-known/mcp/server-card.json, /.well-known/oauth-protected-resource (usefathom.com and api.usefathom.com), /auth.md, /SKILL.md, /.well-known/ucp all 404 HTML",
   "notes": ""
  },
  {
   "t": "01:21",
   "cap": "discovery",
   "capability": "Agent discovery",
   "task": "MCP server",
   "route": "none",
   "documented": false,
   "result": "failed",
   "verified": true,
   "evidence": "No official MCP server: llms.txt and docs mention none; web search finds only third-party stdio package mcp-fathom-analytics (github mackenly), not affiliated, read-only 5 tools. No remote endpoint to probe with server/discover.",
   "notes": ""
  },
  {
   "t": "01:21",
   "cap": "pay",
   "capability": "Pay step probes",
   "task": "402 probes and registries",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "GET api.usefathom.com/v1/sites and /v1/aggregations unauth -> 401 {\"message\":\"Unauthenticated.\"}, no WWW-Authenticate/PAYMENT-REQUIRED; x402./mpp./agents.usefathom.com do not resolve; not in x402 Bazaar (usefathom in catalog: False) nor mpp.dev services (False); pricing FAQ: 'Choose a plan and add your card to start a 7-day free trial.'",
   "notes": ""
  },
  {
   "t": "02:22",
   "cap": "docs",
   "capability": "Find docs",
   "task": "Find API docs",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "llms.txt -> /api/v1 reference, /api/llms.txt (full markdown), /api/openapi.json (3.1.0); token creation documented only in web UI at app.usefathom.com/api",
   "notes": ""
  },
  {
   "t": "02:22",
   "cap": "signup",
   "capability": "Sign up",
   "task": "Create a trial account at app.usefathom.com/register",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "Register page (SPA, no headless form or signup API) requires email, password, 'Credit card info' (Stripe card element) and 'ZIP / postal code'; submit without card -> browser validation 'Please fill out this field.' on ZIP; pricing FAQ: 'Choose a plan and add your card to start a 7-day free trial.' We may not enter a card; we also have no postal code.",
   "notes": "Card-required trial is the wall; no free plan. hCaptcha script detected on the page (invisible, never triggered since the form never submitted).",
   "quality": {
    "error_legibility": "clear",
    "recoverable": "no"
   }
  },
  {
   "t": "02:42",
   "cap": "cap-23",
   "capability": "Generate a UTM-tagged campaign link",
   "task": "Build a campaign URL for a newsletter link",
   "route": "browser",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "usefathom.com/utm-builder: filled URL https://agentdrives.com/test, source newsletter, medium email, campaign agentdrives-test; page output read back: https://agentdrives.com/test?utm_source=newsletter&utm_medium=email&utm_campaign=agentdrives-test",
   "notes": "No API; free web tool, no account needed. Static HTML had no form so a browser was needed.",
   "quality": {
    "verify_route": "yes",
    "docs_match": "match"
   }
  },
  {
   "t": "03:04",
   "cap": "cap-03",
   "capability": "View real-time single-page visitor dashboard",
   "task": "Open the public demo dashboard",
   "route": "browser",
   "documented": true,
   "result": "partial",
   "verified": true,
   "evidence": "app.usefathom.com/demo -> redirects to shared dashboard /share/deasaicp/hilarious+platypus; title '1 current visitor - Hilarious Platypus'; renders pages, referrers for Fathom's demo site",
   "notes": "Only Fathom's demo site; our own site's dashboard needs an account (card-required signup)."
  },
  {
   "t": "03:04",
   "cap": "cap-01",
   "capability": "Add Fathom's script to a site to collect pageviews",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-02",
   "capability": "Create and manage a tracked site",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (POST/GET/PATCH/DELETE /sites)"
  },
  {
   "t": "03:04",
   "cap": "cap-03",
   "capability": "View real-time single-page visitor dashboard",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-04",
   "capability": "Track custom events (signups, clicks, conversions)",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (POST /events)"
  },
  {
   "t": "03:04",
   "cap": "cap-05",
   "capability": "Track revenue value on events (ecommerce conversions)",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (POST /events (value, currency))"
  },
  {
   "t": "03:04",
   "cap": "cap-06",
   "capability": "Track UTM campaign traffic",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-07",
   "capability": "Filter dashboard data by page, country, referrer, event",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (GET /aggregations (filters))"
  },
  {
   "t": "03:04",
   "cap": "cap-08",
   "capability": "Compare traffic between two date ranges",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (GET /aggregations (date_grouping, compare))"
  },
  {
   "t": "03:04",
   "cap": "cap-09",
   "capability": "Pull custom aggregated reports via API",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (GET /aggregations)"
  },
  {
   "t": "03:04",
   "cap": "cap-10",
   "capability": "Save a filtered view for reuse",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-11",
   "capability": "Mark a milestone on the traffic chart",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (POST /milestones)"
  },
  {
   "t": "03:04",
   "cap": "cap-12",
   "capability": "View all sites together in one combined dashboard",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-13",
   "capability": "Share a dashboard publicly or with a password",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-14",
   "capability": "Schedule automated email reports to recipients",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-15",
   "capability": "Export data to CSV",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-16",
   "capability": "Import historical Google Analytics (GA4) data",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-17",
   "capability": "Connect Google Search Console for search term data",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-18",
   "capability": "Track 404 page hits",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-19",
   "capability": "Track outbound/external link clicks",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-20",
   "capability": "Track form submissions",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-21",
   "capability": "Exclude own/internal traffic from tracking",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-22",
   "capability": "Track multiple sites with one shared script/site ID",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-24",
   "capability": "Generate an API token for programmatic access",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (POST /tokens (app.usefathom.com/api))"
  },
  {
   "t": "03:04",
   "cap": "cap-25",
   "capability": "Install Fathom via a CMS/framework integration (WordPress, Ghost, Webflow, Next.js, etc.)",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-26",
   "capability": "Invite and manage team members on an account",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-27",
   "capability": "Enable two-factor authentication on account login",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-28",
   "capability": "Change account password",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-29",
   "capability": "Redeem a discount code on a plan",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-30",
   "capability": "Upgrade or downgrade subscription plan/pageview tier",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-31",
   "capability": "Add extra site packs beyond plan base allowance",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "cap-32",
   "capability": "Join the affiliate referral program",
   "task": "Attempt on own account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account: signup at app.usefathom.com/register requires a credit card and ZIP (card-required 7-day trial; no free plan). API calls need a token created in the web app (app.usefathom.com/api) after login; unauthenticated GET https://api.usefathom.com/v1/sites -> 401 {\"message\":\"Unauthenticated.\"}",
   "notes": "Documented route exists (web UI only)"
  },
  {
   "t": "03:04",
   "cap": "verify",
   "capability": "Verify email",
   "task": "Verify the sign-up email",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "Never reached: sign-up form cannot be submitted without card details",
   "notes": ""
  },
  {
   "t": "03:04",
   "cap": "credentials",
   "capability": "Get API credentials",
   "task": "Create an API token",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "Tokens are created only in the web app at app.usefathom.com/api ('Click Create new'); no account. No OAuth, device flow or auth.md.",
   "notes": ""
  },
  {
   "t": "03:04",
   "cap": "first_call",
   "capability": "First API call",
   "task": "GET /v1/account",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "GET https://api.usefathom.com/v1/sites without token -> 401 application/json {\"message\":\"Unauthenticated.\"} (docs show {\"error\":\"Unauthenticated\"}: drift in key and text)",
   "notes": "",
   "quality": {
    "error_legibility": "clear"
   }
  },
  {
   "t": "03:04",
   "cap": "first_action",
   "capability": "First real action",
   "task": "POST /v1/sites",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No token; see signup wall",
   "notes": ""
  },
  {
   "t": "03:04",
   "cap": "cancel",
   "capability": "Cancel plan",
   "task": "Cancel",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "No plan started. usefathom.com/docs/account/close: 'going to Settings, then Billing, and clicking the Cancel button in the “Subscription” section'; no billing endpoint in openapi.json (web UI only)",
   "notes": ""
  },
  {
   "t": "03:04",
   "cap": "delete",
   "capability": "Delete account",
   "task": "Delete account",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "No account created. usefathom.com/docs/account/close: after the subscription ends 'we will queue up the deletion of your sites and analytics data. This can take up to 60 days.' API has DELETE /sites/{site_id} and /sites/{site_id}/data but no account deletion endpoint",
   "notes": ""
  }
 ],
 "stale": false,
 "icon": "/logos/usefathom.png",
 "monitored": false,
 "verdict": "Needs a person to get in: L1 · Needs a person. Our agent stopped at signup: the trial form asks for a card and ZIP code before it starts, and there is no sign-up API. Our agent could not enter payment details, so the form went unsubmitted. Account creation, verification and the API token page were never reached. Docs are strong: a Markdown API reference and an OpenAPI schema are both fetched headless. Still, a person must sign up, add a card and create the token before any call works. Cancelling needs a person in web billing settings; deletion then follows on its own.",
 "page": "https://agentdrives.com/tools/usefathom?via=api"
}