{
 "slug": "beehiiv",
 "name": "beehiiv",
 "url": "https://beehiiv.com",
 "domain": "beehiiv.com",
 "category": "email-marketing",
 "category_name": "Email marketing",
 "tested_at": "2026-10-06",
 "run": "20261006T060905Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261001T230217Z",
   "date": "2026-10-01",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": null,
    "driver": null,
    "signed": true,
    "inbox": null,
    "robots": "start"
   }
  },
  {
   "run": "20261006T060905Z",
   "date": "2026-10-06",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": null,
    "robots": "start"
   }
  }
 ],
 "level": 1,
 "level_name": "Needs a person",
 "level_selfhost": null,
 "entry": "closed",
 "door": {
  "passed": 0,
  "tries": 2,
  "self_start": false
 },
 "badges": [],
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "card_checkout"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Find",
   "state": "yes",
   "text": "Docs agents can read: llms.txt, an OpenAPI and an MCP server",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ]
  },
  {
   "key": "access",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "card_checkout",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account",
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "person",
   "label": "A person sets it up",
   "routes": [],
   "minutes": null,
   "core": null
  }
 ],
 "minutes": null,
 "next": {
  "to": 2,
  "text": "Next: let an agent sign up on its own"
 },
 "stop": "signup",
 "core": "0/8",
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 100,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 100,
  "security": null,
  "standards": [
   {
    "standard": "MCP client registration",
    "state": "behind",
    "behind": null,
    "value": "dcr"
   },
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 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": null,
  "robots": "start"
 },
 "same_level_drives": 2,
 "drives": 2,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "Cloudflare WAF block page",
  "visible": true,
  "type": "network",
  "human": null,
  "how": "Let signed agents (valid Web Bot Auth signature) skip the bot check on sign-up, or offer a documented sign-up API with email verification.",
  "signed": true
 },
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "edge"
  },
  "signed": {
   "state": "block",
   "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 (www + developers), .md twins as text/markdown, OpenAPI 3.1.0 (116 operations). One docs page (create-an-api-key.md) behind a PerimeterX Press & Hold 403."
  },
  "signup": {
   "status": "blocked",
   "note": "app.beehiiv.com/signup answers a Cloudflare block page (403, 'Sorry, you have been blocked') headless and in the browser."
  },
  "verify": {
   "status": "",
   "note": "No sign-up possible, so no verification mail.",
   "reached": false
  },
  "credentials": {
   "status": "",
   "note": "API keys are created only in the web app (Settings > API); product MCP OAuth (DCR) ends at app.beehiiv.com/login, which is Cloudflare-blocked; no account.",
   "via": "",
   "reached": false
  },
  "first_call": {
   "status": "",
   "note": "Unauthenticated GET /v2/publications: 401 JSON INVALID_API_KEY; no key obtainable.",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "No credential.",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P1",
   "rails": [],
   "rail_ids": [],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "free tier",
   "note": "No 402/x402/MPP/UCP/L402 anywhere; upgrades only in the web app (Settings > Billing & Plan), which an agent cannot reach; checkout not observed. Free plan needs no card (pricing_faq MCP tool).",
   "reached": false
  },
  "cancel": {
   "status": "",
   "note": "No plan started; docs: downgrade in the web app (Settings > Billing & Plan > Change > Downgrade).",
   "docs_grade": "",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No account created; docs: web only (Account security > Delete Account, type DELETE); no API route.",
   "account": false,
   "reached": false
  }
 },
 "routes": [],
 "checkout": null,
 "docs": null,
 "claims": null,
 "pay_options": {
  "checked": "2026-10-06",
  "source": "drive",
  "options": [],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": null,
   "card_required": null,
   "free_plan": true
  },
  "owner_fixes": [
   {
    "title": "Accept x402 or MPP on your API",
    "how": "Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card."
   },
   {
    "title": "List your plans on Stripe Projects",
    "how": "Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev)."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": true,
  "cli": false,
  "sdk": true,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": false
 },
 "surface_notes": {
  "api": "REST v2, 78 paths, 116 operations; Free plan 30 req/min",
  "openapi": "openapi.json is an index of 3 specs (api-reference, oauth2, webhooks)",
  "mcp": "official product MCP (OAuth, DCR) + docs MCP (1 tool) + marketing MCP (6 tools), all on the 25 Nov 2025 spec"
 },
 "can_do": [
  "Read all developer docs, the OpenAPI and llms.txt as Markdown",
  "Search the API docs through the docs MCP",
  "Get plan prices and pricing FAQ through the marketing MCP",
  "Register an OAuth client for the product MCP via DCR"
 ],
 "cannot_do": [
  {
   "what": "Create an account",
   "why": "Cloudflare blocks app.beehiiv.com/signup for our agent (headless and browser), no challenge"
  },
  {
   "what": "Get an API key or MCP token",
   "why": "Keys are made only in the web app; MCP OAuth consent needs a login on the blocked app"
  },
  {
   "what": "Write, schedule or send a post, manage subscribers, or any other core capability",
   "why": "No account or credential"
  }
 ],
 "blockers": [
  "Cloudflare block page on app.beehiiv.com/signup and /login for our signed agent"
 ],
 "tips_for_owner": [
  "Let signed agents reach sign-up and login",
  "Add a headless credential path",
  "Support MCP (the 28 Jul 2026 spec) server/discover",
  "Offer CIMD next to DCR on MCP auth",
  "Add an API route to delete accounts",
  "Unblock the API key docs page"
 ],
 "tips_for_agents": [
  "Read docs via https://developers.beehiiv.com/llms.txt and .md twins; the API spec is openapi/api-reference.json",
  "Product MCP is https://mcp.beehiiv.com/mcp (OAuth, DCR + PKCE S256); it needs a human logged in to beehiiv to consent",
  "MCP servers speak 2025-11-25: use initialize, not server/discover",
  "Free plan API rate limit is 30 requests/min"
 ],
 "selfhost": null,
 "summary": "beehiiv's docs are agent-friendly (llms.txt, Markdown twins, OpenAPI 3.1.0, docs and marketing MCPs) and it has an official OAuth MCP server. An agent cannot get in: Cloudflare hard-blocks app.beehiiv.com/signup and /login for our signed agent, headless and in a browser, and API keys can only be made in that app. No core capability could be driven.",
 "wall": "Cloudflare blocks the sign-up page",
 "plan_scope": "",
 "robots_stop": null,
 "robots": null,
 "plain": {
  "summary": "beehiiv is a newsletter platform with good self-serve docs (plain-text/Markdown pages, a full API reference) that an AI agent can read on its own. But the agent could not actually sign up or log in (the website's security system blocked it outright, with no human-style challenge to pass), so it could never get a key to create newsletters, manage subscribers, or do anything else the product is for.",
  "can_do": [
   "Read all the help pages, guides and API reference automatically",
   "Ask a built-in help-chat for API answers and pricing information",
   "Register for a developer access slot (but never use it, since login is blocked)"
  ],
  "cannot_do": [
   {
    "what": "Create an account",
    "why": "The sign-up page refuses our automated visitor outright, no challenge given"
   },
   {
    "what": "Get an API key or app token",
    "why": "Keys are only made inside the web app, which requires logging in, also blocked"
   },
   {
    "what": "Send newsletters, manage subscribers, build a site, run a podcast, sell subscriptions or anything else core",
    "why": "None of this is possible without an account or key"
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "core",
   "capability": "Write and send a newsletter post",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v2/publications/{id}/posts",
    "mcp": null,
    "cli": null,
    "ui": "Post editor / Campaigns"
   },
   "check": "GET /v2/publications/{id}/posts/{postId} shows status sent with sent_at timestamp",
   "source": "https://developers.beehiiv.com/api-reference/posts/create.md; https://www.beehiiv.com/features"
  },
  {
   "id": "cap-02",
   "group": "core",
   "capability": "Schedule a post for later send",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v2/publications/{id}/posts (schedule params)",
    "mcp": null,
    "cli": null,
    "ui": "Post editor scheduling"
   },
   "check": "GET /v2/publications/{id}/posts/{postId} shows status scheduled with scheduled_at; webhook post.scheduled fires",
   "source": "https://developers.beehiiv.com/api-reference/posts/update.md; https://developers.beehiiv.com/webhooks/post/scheduled.md"
  },
  {
   "id": "cap-03",
   "group": "core",
   "capability": "Add and manage subscribers to a newsletter",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v2/publications/{id}/subscriptions, PATCH/DELETE subscriptions/{id}",
    "mcp": "beehiiv MCP (write access, paid)",
    "cli": null,
    "ui": "Subscribers dashboard"
   },
   "check": "GET /v2/publications/{id}/subscriptions/{subId} reflects created/updated/deleted subscriber",
   "source": "https://developers.beehiiv.com/api-reference/subscriptions/create.md; https://developers.beehiiv.com/api-reference/subscriptions/delete.md"
  },
  {
   "id": "cap-04",
   "group": "core",
   "capability": "Build and publish a newsletter/landing website",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Website builder"
   },
   "check": "Published site reachable at publication's custom or beehiiv subdomain URL",
   "source": "https://www.beehiiv.com/features; https://www.beehiiv.com/pricing"
  },
  {
   "id": "cap-05",
   "group": "core",
   "capability": "Host and publish a podcast with RSS distribution",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /v2/publications/{id}/podcasts",
    "mcp": null,
    "cli": null,
    "ui": "Podcast dashboard"
   },
   "check": "GET /v2/publications/{id}/podcasts/{podcastId}/episodes/{episodeId} shows published episode; webhook podcast.episode_published fires",
   "source": "https://developers.beehiiv.com/api-reference/podcasts/list-podcasts.md; https://developers.beehiiv.com/webhooks/podcasts/episode-published.md"
  },
  {
   "id": "cap-06",
   "group": "core",
   "capability": "Sell paid subscriptions (tiers) to readers",
   "weight": "core",
   "plan": "lite",
   "surfaces": {
    "api": "POST/GET/PUT /v2/publications/{id}/tiers",
    "mcp": null,
    "cli": null,
    "ui": "Monetize > Subscriptions"
   },
   "check": "GET /v2/publications/{id}/tiers/{tierId} shows created/updated tier; webhook subscription.tier_added fires on purchase",
   "source": "https://developers.beehiiv.com/api-reference/tiers/create.md; https://www.beehiiv.com/pricing"
  },
  {
   "id": "cap-07",
   "group": "core",
   "capability": "Monetize via the beehiiv Ad Network (accept/run ad offers)",
   "weight": "core",
   "plan": "lite",
   "surfaces": {
    "api": "GET /v2/publications/{id}/ad_network/offers; POST .../create",
    "mcp": null,
    "cli": null,
    "ui": "Ad Network dashboard"
   },
   "check": "GET ad_network/offers shows offer with status accepted; ad network report summary shows payout",
   "source": "https://developers.beehiiv.com/api-reference/ad-network-offers/index.md; https://developers.beehiiv.com/api-reference/ad-network-offers/create.md"
  },
  {
   "id": "cap-08",
   "group": "core",
   "capability": "Sell digital products (one-time, subscriptions, pay-what-you-want)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Digital Products dashboard"
   },
   "check": "Published product page is purchasable; order appears in customer library",
   "source": "https://www.beehiiv.com/pricing (Digital products feature table)"
  },
  {
   "id": "cap-09",
   "group": "secondary",
   "capability": "Create and query newsletter lists (multi-newsletter targeting)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST/GET/PUT/DELETE /v2/publications/{id}/newsletter_lists",
    "mcp": null,
    "cli": null,
    "ui": "Newsletter Lists settings (Pro+)"
   },
   "check": "GET /v2/publications/{id}/newsletter_lists/{listId} reflects create/update/delete",
   "source": "https://developers.beehiiv.com/api-reference/newsletter-lists/create.md"
  },
  {
   "id": "cap-10",
   "group": "secondary",
   "capability": "Subscribe/unsubscribe/pause a reader to a specific newsletter list",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST/PUT /v2/publications/{id}/newsletter_lists/{listId}/subscriptions",
    "mcp": null,
    "cli": null,
    "ui": "Subscribers > list management"
   },
   "check": "webhook newsletter_list_subscription.subscribed/unsubscribed/paused/resumed fires and GET subscription shows new status",
   "source": "https://developers.beehiiv.com/api-reference/newsletter-list-subscriptions/create.md; https://developers.beehiiv.com/webhooks/newsletter-list-subscription/subscribed.md"
  },
  {
   "id": "cap-11",
   "group": "secondary",
   "capability": "Segment subscribers by rules and list segment members",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST/GET /v2/publications/{id}/segments; GET .../results",
    "mcp": null,
    "cli": null,
    "ui": "Segments"
   },
   "check": "GET /v2/publications/{id}/segments/{segmentId}/results lists matching subscriber IDs after recalculate",
   "source": "https://developers.beehiiv.com/api-reference/segments/create.md; https://developers.beehiiv.com/api-reference/segments/recalculate.md"
  },
  {
   "id": "cap-12",
   "group": "secondary",
   "capability": "Tag subscribers",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST/DELETE /v2/publications/{id}/subscriptions/{subId}/tags",
    "mcp": null,
    "cli": null,
    "ui": "Subscriber profile"
   },
   "check": "GET subscription shows tag added/removed in subscription_tags list",
   "source": "https://developers.beehiiv.com/api-reference/subscription-tags/create.md"
  },
  {
   "id": "cap-13",
   "group": "secondary",
   "capability": "Create custom subscriber fields and set per-subscriber values",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST/GET/PUT/DELETE /v2/publications/{id}/custom_fields",
    "mcp": null,
    "cli": null,
    "ui": "Audience > Custom Fields"
   },
   "check": "GET /v2/publications/{id}/custom_fields/{fieldId} reflects create/update/delete",
   "source": "https://developers.beehiiv.com/api-reference/custom-fields/create.md"
  },
  {
   "id": "cap-14",
   "group": "secondary",
   "capability": "Build multi-step email automations triggered by subscriber events",
   "weight": "secondary",
   "plan": "lite",
   "surfaces": {
    "api": "GET /v2/publications/{id}/automations; POST .../journeys",
    "mcp": null,
    "cli": null,
    "ui": "Automations builder"
   },
   "check": "GET /v2/publications/{id}/automations/{id}/journeys/{journeyId} shows subscriber enrolled and progressing through steps",
   "source": "https://developers.beehiiv.com/api-reference/automation-journeys/create.md; https://www.beehiiv.com/pricing"
  },
  {
   "id": "cap-15",
   "group": "secondary",
   "capability": "Run surveys and polls to readers",
   "weight": "secondary",
   "plan": "lite",
   "surfaces": {
    "api": "GET /v2/publications/{id}/polls; GET .../responses",
    "mcp": null,
    "cli": null,
    "ui": "Surveys & Polls"
   },
   "check": "GET /v2/publications/{id}/polls/{pollId}/responses shows submitted response; webhook survey.response_submitted fires",
   "source": "https://developers.beehiiv.com/api-reference/polls/index.md; https://developers.beehiiv.com/webhooks/survey/submitted.md"
  },
  {
   "id": "cap-16",
   "group": "secondary",
   "capability": "Bulk import/export subscribers via CSV-style jobs",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v2/.../subscriptions/bulk; POST newsletter_list_subscriptions imports; POST exports",
    "mcp": null,
    "cli": null,
    "ui": "Subscribers > Import/Export"
   },
   "check": "GET /v2/publications/{id}/exports/{exportId} status complete with download URL; import job status complete with subscriber counts",
   "source": "https://developers.beehiiv.com/api-reference/bulk-subscriptions/create.md; https://developers.beehiiv.com/api-reference/exports/create.md; https://developers.beehiiv.com/api-reference/newsletter-list-subscriptions/create-import.md"
  },
  {
   "id": "cap-17",
   "group": "secondary",
   "capability": "Configure outbound webhooks for platform events",
   "weight": "secondary",
   "plan": "lite",
   "surfaces": {
    "api": "POST/GET/PUT/DELETE /v2/publications/{id}/webhooks",
    "mcp": null,
    "cli": null,
    "ui": "Settings > Webhooks"
   },
   "check": "GET /v2/publications/{id}/webhooks/{webhookId} reflects created config; endpoint receives matching event payload",
   "source": "https://developers.beehiiv.com/api-reference/webhooks/create.md; https://developers.beehiiv.com/webhooks.md"
  },
  {
   "id": "cap-18",
   "group": "secondary",
   "capability": "Run A/B subject-line / content tests on a post",
   "weight": "secondary",
   "plan": "lite",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Post editor A/B testing"
   },
   "check": "Post analytics show per-variant open rates after send",
   "source": "https://www.beehiiv.com/pricing (Newsletter feature table: A/B testing)"
  },
  {
   "id": "cap-19",
   "group": "secondary",
   "capability": "View campaign, website, podcast, and subscriber analytics",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /v2/publications/{id}/posts/{postId}/aggregate_stats; GET engagements",
    "mcp": null,
    "cli": null,
    "ui": "Analytics dashboard"
   },
   "check": "GET aggregate_stats returns open/click counts matching dashboard for a sent post",
   "source": "https://developers.beehiiv.com/api-reference/posts/aggregate-stats.md; https://developers.beehiiv.com/api-reference/engagements/index.md"
  },
  {
   "id": "cap-20",
   "group": "secondary",
   "capability": "Invite readers via a referral program with reward milestones",
   "weight": "secondary",
   "plan": "lite",
   "surfaces": {
    "api": "GET /v2/publications/{id}/referral_program",
    "mcp": null,
    "cli": null,
    "ui": "Grow > Referral Program"
   },
   "check": "GET referral_program shows milestones/reward config matching UI setup",
   "source": "https://developers.beehiiv.com/api-reference/referral-program/show.md"
  },
  {
   "id": "cap-21",
   "group": "secondary",
   "capability": "Cross-promote via the beehiiv Recommendation Network",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Grow > Recommendations"
   },
   "check": "Recommended publication appears on subscribe confirmation page; recommendation referral shows in analytics",
   "source": "https://www.beehiiv.com/features; https://www.beehiiv.com/pricing"
  },
  {
   "id": "cap-22",
   "group": "secondary",
   "capability": "Grant complimentary (comp) access to paid content",
   "weight": "secondary",
   "plan": "lite",
   "surfaces": {
    "api": "GET /v2/publications/{id}/complimentary_access",
    "mcp": null,
    "cli": null,
    "ui": "Subscriber profile > grant access"
   },
   "check": "GET complimentary_access/{id} shows active grant for subscriber; subscriber's tier reflects comp access",
   "source": "https://developers.beehiiv.com/api-reference/complimentary-access/index.md"
  },
  {
   "id": "cap-23",
   "group": "secondary",
   "capability": "Manage multiple co-authors/guest authors on a publication",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /v2/publications/{id}/authors",
    "mcp": null,
    "cli": null,
    "ui": "Settings > Authors"
   },
   "check": "GET /v2/publications/{id}/authors/{authorId} lists author attributed on a post",
   "source": "https://developers.beehiiv.com/api-reference/authors/index.md"
  },
  {
   "id": "cap-24",
   "group": "secondary",
   "capability": "Create and reuse post templates",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST/GET /v2/publications/{id}/post_templates; workspace templates",
    "mcp": null,
    "cli": null,
    "ui": "Post editor > Templates"
   },
   "check": "GET post_templates/{id} shows saved template; creating new post from template pre-fills content",
   "source": "https://developers.beehiiv.com/api-reference/post-templates/create.md"
  },
  {
   "id": "cap-25",
   "group": "secondary",
   "capability": "Send a private podcast feed invite/email to a listener",
   "weight": "secondary",
   "plan": "lite",
   "surfaces": {
    "api": "POST /v2/publications/{id}/podcasts/{id}/private_feed/send_email",
    "mcp": null,
    "cli": null,
    "ui": "Podcast > Private feeds"
   },
   "check": "webhook podcast.private_feed_activated fires; recipient's private feed URL becomes active",
   "source": "https://developers.beehiiv.com/api-reference/podcasts/send-private-feed-email.md; https://developers.beehiiv.com/webhooks/podcasts/private-feed-activated.md"
  },
  {
   "id": "cap-26",
   "group": "secondary",
   "capability": "Run a members-only Community (feeds, channels, DMs, groups)",
   "weight": "secondary",
   "plan": "lite",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Community tab"
   },
   "check": "Member can post to a channel and receive a DM; visible in member directory",
   "source": "https://www.beehiiv.com/pricing (Community feature table)"
  },
  {
   "id": "cap-27",
   "group": "secondary",
   "capability": "Request GDPR/CCPA data-deletion for a subscriber",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST/GET /v2/publications/{id}/data_deletion_requests",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "GET data_deletion_requests/{id} status transitions to completed and subscriber record is purged",
   "source": "https://developers.beehiiv.com/api-reference/data-deletion/create.md"
  },
  {
   "id": "cap-28",
   "group": "secondary",
   "capability": "Query AI assistant / Agent to read or (on paid plans) write publication data",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": "beehiiv MCP (read on Free, write on Lite+)",
    "cli": null,
    "ui": "beehiiv AI / Agent"
   },
   "check": "MCP tools/list exposes read tools without auth; write-scoped tool calls succeed only with Lite+ credential",
   "source": "https://www.beehiiv.com/pricing (AI & Support table: beehiiv Agent Read/Write, MCP Access Read/Write)"
  },
  {
   "id": "cap-29",
   "group": "secondary",
   "capability": "Authenticate third-party apps via beehiiv OAuth2",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /oauth2/authorize; POST /oauth2/token; /oauth2/introspect; /oauth2/revoke",
    "mcp": null,
    "cli": null,
    "ui": "App authorization consent screen"
   },
   "check": "POST /oauth2/token returns access_token; GET /api-reference/oauth-users/identify.md with that token returns the authorizing user",
   "source": "https://developers.beehiiv.com/oauth2.md; https://developers.beehiiv.com/api-reference/oauth-users/identify.md"
  },
  {
   "id": "cap-30",
   "group": "peripheral",
   "capability": "Add teammates with role-based seats",
   "weight": "peripheral",
   "plan": "lite",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Team"
   },
   "check": "Invited teammate appears in team member list with assigned role",
   "source": "https://www.beehiiv.com/pricing (Team seats row; Security & Admin: Granular role permissions)"
  },
  {
   "id": "cap-31",
   "group": "peripheral",
   "capability": "Remove beehiiv branding from newsletter/website (white-label)",
   "weight": "peripheral",
   "plan": "pro",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Branding"
   },
   "check": "Published newsletter/website footer no longer shows 'Powered by beehiiv'",
   "source": "https://www.beehiiv.com/pricing (Remove beehiiv branding row)"
  },
  {
   "id": "cap-32",
   "group": "peripheral",
   "capability": "Attach a custom domain to newsletter/website",
   "weight": "peripheral",
   "plan": "lite",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Domains"
   },
   "check": "Custom domain resolves to the publication's site/newsletter instead of beehiiv subdomain",
   "source": "https://www.beehiiv.com/pricing (Custom domains rows); https://www.beehiiv.com/features"
  },
  {
   "id": "cap-33",
   "group": "peripheral",
   "capability": "Enable SSO/SAML for workspace login",
   "weight": "peripheral",
   "plan": "enterprise",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Security"
   },
   "check": "Login via configured IdP redirects and authenticates workspace members without a password",
   "source": "https://www.beehiiv.com/pricing (Security & Admin: SSO / SAML row)"
  },
  {
   "id": "cap-34",
   "group": "peripheral",
   "capability": "Review audit logs of workspace/account activity",
   "weight": "peripheral",
   "plan": "enterprise",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings > Audit Log"
   },
   "check": "Audit log entry appears for a tracked admin action (e.g. role change) with actor and timestamp",
   "source": "https://www.beehiiv.com/pricing (Security & Admin: Audit logs row)"
  },
  {
   "id": "cap-35",
   "group": "peripheral",
   "capability": "Look up subscriber-held publications and workspace permissions",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "GET /v2/workspaces/publications_by_subscription_email; GET /v2/workspaces/permissions",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "GET publications_by_subscription_email returns list of publications a given email is subscribed to",
   "source": "https://developers.beehiiv.com/api-reference/workspaces/publications-by-subscription-email.md; https://developers.beehiiv.com/api-reference/workspaces/permissions.md"
  }
 ],
 "attempts": [
  {
   "t": "01:38",
   "cap": "discovery",
   "capability": "docs/llms.txt",
   "task": "Fetch llms.txt on www and developers",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "https://www.beehiiv.com/llms.txt 200 text/plain; https://developers.beehiiv.com/llms.txt 200 text/plain, links OpenAPI and docs MCP",
   "notes": "robots.txt advertises llms.txt, llms-full.txt and .md twins"
  },
  {
   "t": "01:38",
   "cap": "discovery",
   "capability": "robots/aipref",
   "task": "Read robots.txt for Content-Usage / Content-signal",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "robots.txt: User-agent: * Allow: / Allow: /*.md$ Disallow: /ads-excl; no Content-Usage or Content-signal lines",
   "notes": "pricing.md response had no Content-Usage header"
  },
  {
   "t": "01:38",
   "cap": "discovery",
   "capability": "markdown",
   "task": "Fetch .md twin of a page",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "https://www.beehiiv.com/pricing.md 200 content-type text/markdown; developers getting-started.md 200 markdown",
   "notes": "developers.beehiiv.com/welcome/create-an-api-key.md answered 403 PerimeterX Press & Hold page twice (HUMAN bot defender) to our signed agent"
  },
  {
   "t": "01:39",
   "cap": "discovery",
   "capability": "openapi",
   "task": "Fetch OpenAPI",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "https://developers.beehiiv.com/openapi.json is an index of 3 specs; openapi/api-reference.json openapi 3.1.0, 78 paths, 116 operations, server https://api.beehiiv.com/v2, bearer auth; no x-payment-info / x-service-info"
  },
  {
   "t": "01:39",
   "cap": "discovery",
   "capability": "mcp",
   "task": "server/discover on docs MCP developers.beehiiv.com/_mcp/server",
   "route": "mcp",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "server/discover 2026-07-28 -> HTTP 400 jsonrpc -32000 Unsupported protocol version (supported 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05, 2024-10-07); initialize -> protocolVersion 2025-11-25, serverInfo fern-docs-mcp-server 1.0.0",
   "notes": "legacy; error code -32000 not -32022"
  },
  {
   "t": "01:39",
   "cap": "discovery",
   "capability": "mcp",
   "task": "server/discover on marketing MCP www.beehiiv.com/api/mcp",
   "route": "mcp",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "server/discover -> 400 -32000 unsupported version, same list; initialize -> 2025-11-25, serverInfo mcp-typescript server on vercel 0.1.0"
  },
  {
   "t": "01:39",
   "cap": "discovery",
   "capability": "mcp",
   "task": "server/discover on product MCP mcp.beehiiv.com/mcp",
   "route": "mcp",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "401 WWW-Authenticate: Bearer resource_metadata=https://mcp.beehiiv.com/.well-known/oauth-protected-resource/mcp; PRM 200 JSON (AS https://mcp.beehiiv.com, scopes read write); AS metadata has registration_endpoint (DCR), no client_id_metadata_document_supported, no device flow, PKCE S256",
   "notes": "auth required; DCR only"
  },
  {
   "t": "01:39",
   "cap": "discovery",
   "capability": "cards",
   "task": "AI catalog, A2A cards, UCP, auth.md, SKILL.md",
   "route": "api",
   "documented": true,
   "result": "failed",
   "verified": true,
   "evidence": "www.beehiiv.com /.well-known/ai-catalog.json, agent-card.json, agent.json, ucp -> 404 HTML; /auth.md /SKILL.md 404; api.beehiiv.com /.well-known/oauth-protected-resource 404"
  },
  {
   "t": "03:02",
   "cap": "docs",
   "capability": "docs",
   "task": "Find and read API docs headless",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "developers.beehiiv.com llms.txt, .md pages, OpenAPI 3.1.0 fetched headless",
   "notes": "one docs page (create-an-api-key.md) behind a PerimeterX 403 Press & Hold page",
   "quality": {
    "docs_match": "match"
   }
  },
  {
   "t": "03:02",
   "cap": "signup",
   "capability": "signup",
   "task": "Open the sign-up form headless",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "GET https://app.beehiiv.com/signup -> 403 server cloudflare, page Attention Required: Sorry, you have been blocked. You are unable to access beehiiv.com (Ray a46281318c96be96)",
   "quality": {
    "error_legibility": "vague",
    "recoverable": "no"
   }
  },
  {
   "t": "03:02",
   "cap": "signup",
   "capability": "signup",
   "task": "Open the sign-up form in the browser",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "app.beehiiv.com/ loads the login SPA, but clicking Create one turned the page into the same Cloudflare block (Ray a4628267ff22d10b).",
   "quality": {
    "error_legibility": "vague",
    "recoverable": "no"
   }
  },
  {
   "t": "05:08",
   "cap": "discovery",
   "capability": "marketing MCP",
   "task": "tools/list and pricing_faq on www.beehiiv.com/api/mcp",
   "route": "mcp",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "6 tools: get_pricing, compare_with, get_company_facts, get_page_markdown, list_pages, pricing_faq; pricing_faq: Free plan is free, forever, with no credit card required"
  },
  {
   "t": "05:08",
   "cap": "discovery",
   "capability": "docs MCP",
   "task": "tools/list and searchDocs on developers.beehiiv.com/_mcp/server",
   "route": "mcp",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "1 tool searchDocs; answered: API key created in UI at Settings > API (Workspace Settings); Free plan 30 requests/min; OAuth client registration via beehiiv Support",
   "notes": "refused an off-scope query about account deletion"
  },
  {
   "t": "05:08",
   "cap": "cap-28",
   "capability": "beehiiv MCP read/write",
   "task": "Connect the product MCP mcp.beehiiv.com/mcp via OAuth (DCR + PKCE)",
   "route": "mcp",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "POST https://mcp.beehiiv.com/register -> 201-style JSON client_id issued (scope read write openid email, auth none); GET /authorize -> 302 app.beehiiv.com/oauth/authorize -> 302 https://app.beehiiv.com/login, which Cloudflare blocks (403 Sorry, you have been blocked); no account exists to consent with",
   "notes": "MCP documented at beehiiv.com/support article 39255979546263: read on Free, write on paid plans",
   "quality": {
    "error_legibility": "vague",
    "recoverable": "no"
   }
  },
  {
   "t": "05:08",
   "cap": "verify",
   "capability": "verify",
   "task": "Verify email",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "no sign-up possible (Cloudflare block on app.beehiiv.com/signup), so no verification mail"
  },
  {
   "t": "05:08",
   "cap": "credentials",
   "capability": "credentials",
   "task": "Create an API key",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "docs: API keys are created in the web app under Settings > API (searchDocs answer); no API, CLI or device flow to mint one; the app login is Cloudflare-blocked and there is no account",
   "notes": "OAuth2 for third-party apps needs a client registered via beehiiv Support (docs)"
  },
  {
   "t": "05:09",
   "cap": "first_call",
   "capability": "The first call",
   "task": "First authenticated API call",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "GET https://api.beehiiv.com/v2/publications without key -> 401 application/json {status:401, errors:[{message:The api key is not valid, code:INVALID_API_KEY}]}; no key obtainable",
   "quality": {
    "error_legibility": "clear"
   }
  },
  {
   "t": "05:09",
   "cap": "cap-01",
   "capability": "core",
   "task": "Drive this capability on our own free account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "no account: app.beehiiv.com/signup and /login answer a Cloudflare block (403) to our agent, headless and in the browser; no API key or MCP token obtainable"
  },
  {
   "t": "05:09",
   "cap": "cap-02",
   "capability": "core",
   "task": "Drive this capability on our own free account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "no account: app.beehiiv.com/signup and /login answer a Cloudflare block (403) to our agent, headless and in the browser; no API key or MCP token obtainable"
  },
  {
   "t": "05:09",
   "cap": "cap-03",
   "capability": "core",
   "task": "Drive this capability on our own free account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "no account: app.beehiiv.com/signup and /login answer a Cloudflare block (403) to our agent, headless and in the browser; no API key or MCP token obtainable"
  },
  {
   "t": "05:09",
   "cap": "cap-04",
   "capability": "core",
   "task": "Drive this capability on our own free account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "no account: app.beehiiv.com/signup and /login answer a Cloudflare block (403) to our agent, headless and in the browser; no API key or MCP token obtainable"
  },
  {
   "t": "05:09",
   "cap": "cap-05",
   "capability": "core",
   "task": "Drive this capability on our own free account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "no account: app.beehiiv.com/signup and /login answer a Cloudflare block (403) to our agent, headless and in the browser; no API key or MCP token obtainable"
  },
  {
   "t": "05:09",
   "cap": "cap-06",
   "capability": "core",
   "task": "Drive this capability on our own free account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "no account: app.beehiiv.com/signup and /login answer a Cloudflare block (403) to our agent, headless and in the browser; no API key or MCP token obtainable"
  },
  {
   "t": "05:09",
   "cap": "cap-07",
   "capability": "core",
   "task": "Drive this capability on our own free account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "no account: app.beehiiv.com/signup and /login answer a Cloudflare block (403) to our agent, headless and in the browser; no API key or MCP token obtainable"
  },
  {
   "t": "05:09",
   "cap": "cap-08",
   "capability": "core",
   "task": "Drive this capability on our own free account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "no account: app.beehiiv.com/signup and /login answer a Cloudflare block (403) to our agent, headless and in the browser; no API key or MCP token obtainable"
  },
  {
   "t": "05:09",
   "cap": "pay",
   "capability": "pay",
   "task": "Probe agent payment rails",
   "route": "api",
   "documented": true,
   "result": "failed",
   "verified": true,
   "evidence": "no 402 anywhere: api.beehiiv.com/v2/... 401 INVALID_API_KEY; x402./mpp. subdomains 404 text/plain; agents.beehiiv.com 200 with PerimeterX px-captcha; /.well-known/ucp 404; no x-payment-info in OpenAPI; no x402/MPP/L402/USDC in llms.txt, pricing.md; not in mpp.dev services; x402 Bazaar only a third-party tool mentioning Beehiiv. Upgrades are in the web app (Settings > Billing & Plan, support article 13092031997847); free plan needs no card (pricing_faq)",
   "notes": "checkout not observed: needs a logged-in account"
  },
  {
   "t": "05:09",
   "cap": "cancel",
   "capability": "cancel",
   "task": "Find how to cancel/downgrade",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "no plan was started; docs: downgrade in web app Settings > Billing & Plan > Change > Downgrade (support article 13092031997847)"
  },
  {
   "t": "05:09",
   "cap": "delete",
   "capability": "delete",
   "task": "Delete account",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "no account was created; docs: web-only, profile > Account security > Delete Account, type DELETE (support article 32057514798231); no API route in OpenAPI"
  }
 ],
 "stale": false,
 "icon": "/logos/beehiiv.png",
 "monitored": false,
 "verdict": "A person has to open an account: L1 · Needs a person. Our agent stopped at signup: app.beehiiv.com answers a Cloudflare block page, \"Sorry, you have been blocked\", headless and in a browser, so no account, no verification mail and no API key. Docs are agent-friendly: llms.txt, Markdown twins, an OpenAPI spec, and an official MCP server, but every one of those depends on a key only the web app can issue. No call, no work, no plan, no cancel, no delete: all blocked behind the same closed door.",
 "page": "https://agentdrives.com/tools/beehiiv?via=api"
}