{
 "slug": "publer",
 "name": "Publer",
 "url": "https://publer.com",
 "domain": "publer.com",
 "category": "social-media-scheduling",
 "category_name": "Social media scheduling",
 "tested_at": "2026-10-12",
 "run": "20261012T095001Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261006T032246Z",
   "date": "2026-10-06",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   }
  },
  {
   "run": "20261012T095001Z",
   "date": "2026-10-12",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 3,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "obey"
   }
  }
 ],
 "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": null,
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 90,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 90,
  "security": "private",
  "standards": [
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 1,
    "value": "3.1.1"
   }
  ]
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [],
 "surface_audit": null,
 "coverage_core": null,
 "after_wall": null,
 "coverage_source": "reported",
 "driver": {
  "version": 3,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false,
  "prompt_sha": "076cd4c65a1a",
  "kb_version": "3+overlay-1353601952",
  "identity": "e8a92f24a9a8"
 },
 "methodology": 15,
 "rules_date": "2026-10-15",
 "engine": {
  "runner": "omp",
  "model": "claude-opus-5-5",
  "driver": 3,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "obey"
 },
 "same_level_drives": 2,
 "drives": 2,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "Google reCAPTCHA v2 (invisible)",
  "visible": true,
  "type": "challenge",
  "human": "",
  "how": "Check the Web Bot Auth signature on the sign-up request and skip reCAPTCHA (or lower the score threshold) for signed agents; or offer a documented sign-up API with email verification.",
  "signed": true
 },
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "captcha"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-12"
  },
  "browser": {
   "state": "captcha",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "GitBook docs with /docs/llms.txt, .md pages, Accept: text/markdown negotiation and an ask endpoint."
  },
  "signup": {
   "status": "human",
   "note": "Web form only; invisible reCAPTCHA escalated to a picture puzzle in the browser.",
   "via": ""
  },
  "verify": {
   "status": "",
   "note": "Not reached: no account.",
   "reached": false
  },
  "credentials": {
   "status": "",
   "note": "Not reached. Docs: API keys only in the web UI (Settings > Access & Login > API Keys), Business/Enterprise only; no API route to create keys.",
   "via": "",
   "reached": false
  },
  "first_call": {
   "status": "",
   "note": "No key. Unauthenticated GET /api/v1/workspaces -> 401 JSON.",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "Not reached: no account.",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P2",
   "rails": [
    "Paddle",
    "PayPro Global"
   ],
   "rail_ids": [
    "paddle",
    "other"
   ],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "no-card trial",
   "note": "No 402 or agent rail; we paid nothing. Plans page: 7-day (Professional) and 14-day (Business) trials without a card; payments via Paddle and PayPro Global hosted checkout, not reached because of the sign-up wall.",
   "reached": false
  },
  "cancel": {
   "status": "",
   "note": "Not tested: no plan or trial was started (sign-up wall, not reached). Help: Settings > Billing > Cancel or Pause Subscription in the web app; refunds by email or chat.",
   "docs_grade": "",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No account to delete. Privacy policy: account deletion in the app, data kept 7 days; immediate deletion via support. No API route.",
   "account": false,
   "reached": false
  }
 },
 "routes": [],
 "checkout": null,
 "docs": null,
 "claims": null,
 "pay_options": {
  "checked": "2026-10-12",
  "source": "probe",
  "options": [],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": true,
   "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": false,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": false,
  "sandbox": false
 },
 "surface_notes": {
  "api": "REST v1 at app.publer.com/api/v1, Bearer-API key, Business only",
  "openapi": "3.1.1 blocks embedded per GitBook reference page; no standalone spec file found",
  "mcp": "official, API key, legacy session handshake, Business only"
 },
 "can_do": [
  "Read all API docs as markdown via llms.txt",
  "Ask the docs questions through the GitBook ask endpoint"
 ],
 "cannot_do": [
  {
   "what": "Create an account",
   "why": "reCAPTCHA picture puzzle on the only sign-up form"
  },
  {
   "what": "Use the API or MCP on a free account",
   "why": "API and MCP are Business/Enterprise only"
  },
  {
   "what": "Create an API key headless",
   "why": "Keys are created only in the web UI"
  }
 ],
 "blockers": [
  "reCAPTCHA picture puzzle on sign-up",
  "API and MCP limited to Business/Enterprise"
 ],
 "tips_for_owner": [
  "Let signed agents pass sign-up",
  "Open API and MCP to trial accounts",
  "Add API route to manage scoped keys",
  "Fix /me and Bearer examples in Overview",
  "Accept x402 or MPP for plans"
 ],
 "tips_for_agents": [
  "Read docs via https://publer.com/docs/llms.txt and .md pages",
  "Auth header is 'Authorization: Bearer-API <key>' plus Publer-Workspace-Id; user endpoint is /api/v1/users/me",
  "Post creation is async: poll /job_status/{job_id}; limit 100 requests per 2 minutes"
 ],
 "selfhost": null,
 "summary": "An agent cannot get into Publer: the only sign-up is a web form whose reCAPTCHA showed our agent's browser a picture puzzle. Even with an account, the API and official MCP server are Business/Enterprise only and keys are made in the web UI. The docs are very agent-friendly (llms.txt, markdown pages, ask endpoint).",
 "wall": "reCAPTCHA picture puzzle on sign-up",
 "plan_scope": "",
 "robots_stop": null,
 "robots": null,
 "plain": {
  "summary": "Publer helps schedule and manage social media posts across platforms. An AI agent could not even create an account: the sign-up form showed it a picture puzzle that only a person can solve. The docs themselves are easy for an agent to read, but every actual feature was out of reach.",
  "can_do": [
   "Read all the help documentation in a machine-friendly format",
   "Ask the documentation questions and get answers"
  ],
  "cannot_do": [
   {
    "what": "Create an account",
    "why": "the sign-up form showed a picture puzzle only a person can solve"
   },
   {
    "what": "Use the API or automated tools even with an account",
    "why": "those are only offered on paid Business/Enterprise plans"
   },
   {
    "what": "Get an API key without a person",
    "why": "keys can only be made by clicking through the website"
   }
  ]
 },
 "plan_gated": [
  {
   "capability": "API and MCP access (all API routes)",
   "plan": "Business",
   "evidence": "https://publer.com/docs/overview.md: 'The Publer API is available exclusively to Business and Enterprise customers.'; MCP help article: 'available on the Business and Enterprise plans'"
  }
 ],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "Scheduling",
   "capability": "Schedule a post to multiple social accounts/platforms",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /posts (Publer API)",
    "mcp": "schedule post tool",
    "cli": null,
    "ui": "Composer / Calendar"
   },
   "check": "GET the post via API or calendar shows status 'scheduled' with the chosen time and target accounts",
   "source": "https://publer.com/; https://publer.com/plans"
  },
  {
   "id": "cap-02",
   "group": "Scheduling",
   "capability": "Publish a post immediately",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /posts (publish now)",
    "mcp": "publish post tool",
    "cli": null,
    "ui": "Composer"
   },
   "check": "Post appears on the connected social account's native timeline and in Publer's post history as 'published'",
   "source": "https://publer.com/plans (no scheduled-post cap on immediate publishing)"
  },
  {
   "id": "cap-03",
   "group": "Scheduling",
   "capability": "Save a post as a draft",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /posts (draft)",
    "mcp": "list/create draft tool",
    "cli": null,
    "ui": "Composer / Drafts"
   },
   "check": "Draft is listed under Drafts and GET shows status 'draft'",
   "source": "https://publer.com/plans (\"25 saved drafts\" on Free, \"Unlimited scheduling & drafts\" on Professional)"
  },
  {
   "id": "cap-04",
   "group": "Scheduling",
   "capability": "Plan content on a drag-and-drop calendar",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": "calendar read tool",
    "cli": null,
    "ui": "Calendar view"
   },
   "check": "Dragging a scheduled post to a new date in the calendar updates its scheduled time, visible on reload",
   "source": "https://publer.com/ (\"Plan and organize content easily with a drag-and-drop calendar\")"
  },
  {
   "id": "cap-05",
   "group": "Scheduling",
   "capability": "Bulk-automate posting of many items at once",
   "weight": "core",
   "plan": "professional",
   "surfaces": {
    "api": "POST /posts (bulk)",
    "mcp": null,
    "cli": null,
    "ui": "Bulk Automation / CSV upload"
   },
   "check": "After a bulk upload, multiple posts appear queued in Drafts/Calendar with the uploaded content",
   "source": "https://publer.com/ (\"Automate posts in bulk to save time\"); https://publer.com/plans (\"Unlimited scheduling & drafts\" on Professional)"
  },
  {
   "id": "cap-06",
   "group": "Content creation",
   "capability": "Generate post captions/content with AI assistant",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": "create content tool",
    "cli": null,
    "ui": "Composer → Publer AI"
   },
   "check": "AI-generated caption text appears inserted in the composer text field",
   "source": "https://publer.com/ (\"Create engaging content in minutes\"); https://publer.com/plans (\"Unlimited AI prompts\" on Business; free trial of paid features on Free)"
  },
  {
   "id": "cap-07",
   "group": "Analytics",
   "capability": "View analytics and performance reports for posts and accounts",
   "weight": "core",
   "plan": "business",
   "surfaces": {
    "api": "GET /analytics",
    "mcp": "analytics query tool",
    "cli": null,
    "ui": "Analytics"
   },
   "check": "Analytics dashboard/API returns engagement metrics (likes, comments, reach) for a given published post or account over a date range",
   "source": "https://publer.com/plans (\"Analytics insights & reports\" on business)"
  },
  {
   "id": "cap-08",
   "group": "Account management",
   "capability": "Connect and manage social media accounts",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /accounts",
    "mcp": "list accounts tool",
    "cli": null,
    "ui": "Settings → Social Accounts"
   },
   "check": "GET /accounts (or Settings page) lists the newly connected account with correct platform and handle",
   "source": "https://publer.com/plans (\"3 social accounts\" Free tier limit; integrations pages per platform, e.g. https://publer.com/integrations/instagram)"
  },
  {
   "id": "cap-09",
   "group": "Content automation",
   "capability": "Recycle evergreen posts automatically (spintax-powered)",
   "weight": "secondary",
   "plan": "business",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Automations → Recycling"
   },
   "check": "A recycled post is re-published on its next scheduled rotation with spintax-varied wording",
   "source": "https://publer.com/plans (\"Spintax-powered post recycling\" on business)"
  },
  {
   "id": "cap-10",
   "group": "Content automation",
   "capability": "Schedule a first comment or multi-post thread",
   "weight": "secondary",
   "plan": "professional",
   "surfaces": {
    "api": "POST /posts (thread/first-comment field)",
    "mcp": null,
    "cli": null,
    "ui": "Composer → Thread/First comment"
   },
   "check": "Published post shows a first comment (or thread continuation) attached automatically",
   "source": "https://publer.com/plans (\"Schedule 1st comments & threads\" on Professional); https://publer.com/blog/schedule-threads-for-twitter-x-mastodon-bluesky/"
  },
  {
   "id": "cap-11",
   "group": "Content automation",
   "capability": "Auto-publish posts from an RSS feed",
   "weight": "secondary",
   "plan": "professional",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Automations → RSS"
   },
   "check": "New RSS feed item triggers a new scheduled/published post referencing the feed article",
   "source": "https://publer.com/plans (\"Unlimited RSS automations\" on Professional)"
  },
  {
   "id": "cap-12",
   "group": "Analytics",
   "capability": "Get best-time-to-post recommendations",
   "weight": "secondary",
   "plan": "business",
   "surfaces": {
    "api": null,
    "mcp": "best time tool",
    "cli": null,
    "ui": "Calendar → Best Time to Post"
   },
   "check": "Composer/calendar suggests specific time slots marked as optimal for the selected account",
   "source": "https://publer.com/plans (\"Best times to post\" on business); https://publer.com/ (\"Schedule at the optimal time for maximum engagement\")"
  },
  {
   "id": "cap-13",
   "group": "Analytics",
   "capability": "Analyze competitor social accounts",
   "weight": "secondary",
   "plan": "business",
   "surfaces": {
    "api": null,
    "mcp": "competitor analysis tool",
    "cli": null,
    "ui": "Analytics → Competitors"
   },
   "check": "Adding a competitor handle returns their public post metrics in the competitor analysis view",
   "source": "https://publer.com/plans (\"Competitor analysis\" on business)"
  },
  {
   "id": "cap-14",
   "group": "Content creation",
   "capability": "Get hashtag suggestions and hashtag performance analytics",
   "weight": "secondary",
   "plan": "business",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Composer → Hashtags"
   },
   "check": "Composer returns suggested hashtags for entered post text, and hashtag analytics panel shows usage/performance stats",
   "source": "https://publer.com/plans (\"Hashtag suggestions & analytics\" on business)"
  },
  {
   "id": "cap-15",
   "group": "Content creation",
   "capability": "Save and organize reusable hashtag groups",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Content Library → Hashtag Groups"
   },
   "check": "Saved hashtag group can be re-inserted into a new post's text field in one click",
   "source": "https://publer.com/blog/hashtag-groups/"
  },
  {
   "id": "cap-16",
   "group": "Content creation",
   "capability": "Save and reuse text snippets via shortcodes",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Composer → Shortcodes"
   },
   "check": "Typing a saved shortcode in the composer expands to the stored caption/CTA/link text",
   "source": "https://publer.com/blog/save-frequently-used-social-media-text/"
  },
  {
   "id": "cap-17",
   "group": "Content management",
   "capability": "Organize saved content and media into folders",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Content Library → Folders"
   },
   "check": "Items moved into a folder are listed under that folder and excluded from the root content view",
   "source": "https://publer.com/blog/how-to-manage-your-social-content-with-folders/"
  },
  {
   "id": "cap-18",
   "group": "Collaboration",
   "capability": "Collaborate with team members with approval workflows",
   "weight": "secondary",
   "plan": "professional",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings → Team / Composer → Request approval"
   },
   "check": "A post submitted for approval by a teammate shows a pending-approval status until an approver approves/rejects it",
   "source": "https://publer.com/; https://publer.com/plans (\"Additional Members\" selector with collaboration/approval workflows)"
  },
  {
   "id": "cap-19",
   "group": "Content discovery",
   "capability": "Browse trending posts and industry news to repost/draft from",
   "weight": "secondary",
   "plan": "professional",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Explore tab"
   },
   "check": "Explore tab lists current trending articles/posts, and 'use' action opens a pre-filled composer draft",
   "source": "https://publer.com/ (\"🔍 Explore the latest trends & industry news\"); https://publer.com/plans (\"Trending posts & news\" on Professional)"
  },
  {
   "id": "cap-20",
   "group": "Content management",
   "capability": "Store and manage a media library",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /media",
    "mcp": "media upload tool",
    "cli": null,
    "ui": "Content Library → Media"
   },
   "check": "Uploaded media file is listed in the media library and selectable from the composer",
   "source": "https://publer.com/plans (\"Unlimited media storage\" on Professional implies storage limit on Free)"
  },
  {
   "id": "cap-21",
   "group": "Integrations",
   "capability": "Auto-sync a link-in-bio page with published content (Linkie)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings → Integrations → Linkie"
   },
   "check": "A newly published Publer post with a link appears as a new tile on the connected Linkie bio page",
   "source": "https://publer.com/plans (\"Linkie integration\" on Free); https://publer.com/blog/automate-link-in-bio-with-publer-linkie/"
  },
  {
   "id": "cap-22",
   "group": "Account administration",
   "capability": "Create and manage multiple brand workspaces",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "GET /workspaces",
    "mcp": "list workspaces tool",
    "cli": null,
    "ui": "Workspace switcher"
   },
   "check": "GET /workspaces (or the switcher) lists the newly created workspace with its own accounts/calendar",
   "source": "https://publer.com/plans (\"1 workspace\" Free, \"Unlimited workspaces\" Professional)"
  },
  {
   "id": "cap-23",
   "group": "Account administration",
   "capability": "Add additional team member seats to a plan",
   "weight": "peripheral",
   "plan": "professional",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings → Team → Invite"
   },
   "check": "Invited member appears in the team member list with an assigned role/workspace access",
   "source": "https://publer.com/plans (\"Additional Members\" pricing control)"
  },
  {
   "id": "cap-25",
   "group": "Integrations",
   "capability": "Connect third-party integrations (Zapier, WordPress, Google Business, etc.)",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings → Integrations"
   },
   "check": "A connected integration (e.g. WordPress) appears authorized and content from it can populate a post",
   "source": "https://publer.com/integrations/wordpress; https://publer.com/blog/publer-zapier-automation-guide/"
  },
  {
   "id": "cap-26",
   "group": "Account administration",
   "capability": "Pay by bank/wire transfer and receive volume discounts (Enterprise billing)",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Billing / Sales contact"
   },
   "check": "Enterprise invoice reflects wire-transfer payment terms and negotiated volume discount",
   "source": "https://publer.com/plans (Enterprise: \"Bank/wire transfer payments\", \"Higher volume discounts\")"
  }
 ],
 "attempts": [
  {
   "cap": "discovery",
   "capability": "Docs and llms.txt",
   "task": "Find API docs and llms.txt",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "https://publer.com/docs/llms.txt 200 text/markdown (GitBook, 6975 bytes, 60 pages); every page has a .md URL (e.g. /docs/overview.md); /docs/index.md?ask= agentic Q&A endpoint answered",
   "notes": "Docs say: The Publer API is available exclusively to Business and Enterprise customers. Base URL https://app.publer.com/api/v1, auth header Authorization: Bearer-API <key>, 100 requests / 2 minutes. No OpenAPI file found (publer.com/openapi.json 404 per pay_probe).",
   "quality": {
    "docs_match": "match",
    "docs_url": "https://publer.com/docs/overview.md"
   },
   "t": "01:38"
  },
  {
   "cap": "discovery",
   "capability": "MCP server/discover",
   "task": "POST server/discover 2026-07-28 to https://mcp.publer.com/",
   "route": "mcp",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "401 application/json {\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32003,\"message\":\"Missing Publer API key. Use ?api_key=YOUR_KEY (or Authorization: Bearer YOUR_KEY)\"}}. GET / -> 405 \"Method not allowed. Initialize via POST first, then reuse Mcp-Session-Id.\" (legacy session-based server). initialize without key -> same 401.",
   "notes": "Official MCP (help article how-to-set-up-and-use-publers-mcp-server-14orlq0: available on Business and Enterprise plans, uses an API key). No PRM: mcp.publer.com/.well-known/oauth-protected-resource 404, oauth-authorization-server 404, /server-card 404. Auth is API key, not OAuth.",
   "quality": {
    "error_legibility": "clear"
   },
   "t": "01:38"
  },
  {
   "cap": "signup",
   "capability": "Sign up",
   "task": "Sign up in the browser with the agent's inbox",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "Filled email, clicked Sign up: invisible reCAPTCHA escalated to a visible image puzzle (\"Select all images with crosswalks\"), visible_challenge true, screenshot browser/shots/003.png",
   "notes": "reCAPTCHA v2 invisible -> picture puzzle for our signed agent. Not solved by us.",
   "t": "02:34"
  },
  {
   "cap": "signup",
   "capability": "Sign up",
   "task": "Hand the reCAPTCHA puzzle to a human",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "",
   "notes": "ReCAPTCHA v2 picture puzzle on the sign-up form. Social sign-up (Facebook, X, LinkedIn, Google, Apple) needs accounts we do not have.",
   "t": "04:48"
  },
  {
   "cap": "verify",
   "capability": "Verify email",
   "task": "Verify the sign-up mail",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "Not reached: sign-up stopped at the reCAPTCHA puzzle",
   "notes": "no account",
   "t": "04:49"
  },
  {
   "cap": "credentials",
   "capability": "API key",
   "task": "Create an API key",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "Not reached (no account). Docs: keys are created only in the web UI (Settings > Access & Login > API Keys) and only on Business/Enterprise: \"The Publer API is available exclusively to Business and Enterprise customers.\" (https://publer.com/docs/overview.md). No API or CLI route to create, list or revoke keys in the docs.",
   "notes": "key: create blocked; no documented headless key route. Free plan has no API at all; Business has a free 14-day trial (plans page), unknown whether the trial unlocks the API (help: API for Business customers in good standing).",
   "key": "create",
   "t": "04:49"
  },
  {
   "cap": "first_call",
   "capability": "First API call",
   "task": "GET /api/v1/workspaces",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": true,
   "evidence": "GET https://app.publer.com/api/v1/workspaces without key -> 401 application/json {\"errors\":[\"Nicht authentifiziert\"]}; /posts and /accounts -> 401 {\"errors\":[\"Not authenticated\"]}; GET /api/v1/me (as written in the Overview page) -> 404 HTML; /api/v1/users/me (API reference) -> 401",
   "notes": "Docs drift: Overview says /me, the reference says /users/me. Overview example also uses Authorization: Bearer, the reference Bearer-API. Errors are JSON {errors:[...]}, not problem+json; locale switches by IP (German text).",
   "quality": {
    "error_legibility": "clear",
    "docs_url": "https://publer.com/docs/overview.md"
   },
   "t": "04:49"
  },
  {
   "cap": "first_action",
   "capability": "First real action",
   "task": "Schedule a draft post",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "Not reached: no account, no key",
   "notes": "no account",
   "t": "04:49"
  },
  {
   "cap": "pay",
   "capability": "Pay step",
   "task": "Public payment probes: 402s, registries, checkout, trial",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "pay_probe.json: no 402 challenges, no MPP/Stripe Projects/Bazaar listing, api./x402./mpp./agents. subdomains do not resolve, /.well-known/ucp 302. pay_tx.json: refused, no 402 asking for USDC. Unauthenticated API calls answer 401, never 402. Plans page: Professional \"Start a free 7-day trial\", Business \"Start a free 14-day trial\", \"Try almost all the paid features for free without having to enter your credit card information.\" Footer: \"Payments handled securely by PayPro Global and Paddle.\" No billing API or MCP billing tool in docs.",
   "notes": "Hosted card checkout (Paddle/PayPro Global); checkout itself not reached (sign-up wall). Trials need no card.",
   "t": "04:49"
  },
  {
   "cap": "cancel",
   "capability": "Cancel plan",
   "task": "Cancel a plan",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "Not tested: no plan or trial was started. Help (how-to-pause-my-publer-subscription-1la5h9j): Settings > Billing > \"Cancel or Pause Subscription\" in the web app; refunds only by email or live chat (what-is-the-refund-policy-lflgew).",
   "notes": "web UI only per docs",
   "t": "04:49"
  },
  {
   "cap": "delete",
   "capability": "Delete account",
   "task": "Delete the account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account was created. Privacy policy: \"When you delete your account, we retain your data for 7 days to allow for recovery... If you need immediate deletion, contact the Publer support team\". No API route for account deletion in the docs.",
   "notes": "nothing to delete",
   "t": "04:49"
  }
 ],
 "stale": false,
 "icon": "/logos/publer.png",
 "monitored": false,
 "verdict": "Needs a person: a human must sign up and make the key before any API call. Our agent read the markdown docs and the llms.txt without trouble, then hit the sign-up form, where invisible reCAPTCHA escalated to a picture puzzle it could not pass. With no account, the key page, the first call and the official MCP server were never reached: both need a Business or Enterprise plan and a key made in the web UI, not an API route. Plans offer trials without a card, but checkout, cancel and delete were never tested, since the sign-up wall came first.",
 "page": "https://agentdrives.com/tools/publer?via=api"
}