[
 {
  "id": 1,
  "name": "Salesforce",
  "category": "CRM and Sales",
  "hint": "salesforce.com",
  "subcategory": "Customer Relationship Management (CRM)",
  "one_liner": "A cloud-based CRM platform providing a centralized source of customer data across sales, marketing, service, and commerce teams.",
  "auth_methods": [
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 Authorization Code Flow (Web Server Flow) using External Client Apps (ECAs) or legacy Connected Apps.",
  "access": "self_serve_free",
  "access_notes": "Developers can sign up for a free, lifetime Salesforce Developer Edition account. Production use requires paid plans starting from Enterprise Edition or above.",
  "api_styles": [
   "rest",
   "graphql",
   "soap",
   "grpc"
  ],
  "api_breadth": "broad",
  "api_notes": "Extremely comprehensive APIs including sObjects REST API, Connect REST API, Bulk API v2, GraphQL, SOAP, and Pub/Sub API (gRPC). Features dynamic OpenAPI 3.0 spec generation.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Salesforce offers official, vendor-maintained 'Salesforce Hosted MCP Servers' which are Generally Available (GA) and allow MCP-compatible AI clients to securely connect to Salesforce orgs. Separately, the 'Salesforce DX MCP Server' is a local tool for developers available via GitHub.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "No blockers. Free developer accounts provide full API access and OAuth 2.0 support, alongside official hosted MCP servers.",
  "evidence": [
   {
    "claim": "auth",
    "url": "https://developer.salesforce.com/",
    "quote": "For a client application to access REST API resources, it must be authorized as a safe visitor. To implement this authorization, use either an external client app or a connected app and an OAuth 2.0 authorization flow. Creating connected apps is restricted as of Spring '26. You can continue to use existing connected apps during and after Spring '26. However, we recommend using external client apps instead."
   },
   {
    "claim": "access",
    "url": "https://developer.salesforce.com/signup",
    "quote": "Go to the Salesforce Developer website and click the ‘Sign Up’ button, which will redirect you to https://developer.salesforce.com/signup. Fill out the form to get a FREE Developer account. Is Salesforce Developer Org Free? Yes, the Salesforce Developer Org is free of cost. It will give you a lifetime free developer account."
   },
   {
    "claim": "api",
    "url": "https://developer.salesforce.com/",
    "quote": "You can generate an OpenAPI document for sObjects REST API using this opt-in beta feature. The OpenAPI document represents sObject REST API resources that reflect your customizations and configurations... The OpenAPI document adheres to Version 3.0 of the OpenAPI Specification."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/salesforcecli/mcp",
    "quote": "Overview of the Salesforce DX MCP Server. The Salesforce DX MCP Server is a specialized Model Context Protocol (MCP) implementation designed to facilitate seamless interaction between large language models (LLMs) and Salesforce orgs."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest",
    "graphql",
    "soap",
    "grpc"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "mcp_notes",
    "old": "Salesforce Hosted MCP Servers (https://mcp.salesforce.com/sse) are cloud-hosted and GA as of April 2026. The Salesforce DX MCP Server is a local developer tool available on GitHub.",
    "new": "Salesforce offers official, vendor-maintained 'Salesforce Hosted MCP Servers' which are Generally Available (GA) and allow MCP-compatible AI clients to securely connect to Salesforce orgs. Separately, the 'Salesforce DX MCP Server' is a local tool for developers available via GitHub.",
    "reason": "The original notes were mostly correct but contained a future GA date ('April 2026'), which was suspicious. A search result confirms this GA announcement. Salesforce provides both hosted, official MCP servers for production use and a local DX MCP server for development.",
    "url": "https://www.salesforce.com/news/press-releases/2024/03/05/salesforce-ai-cloud-news/"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 4,
   "alive_rate": 0.25,
   "dead_rate": 0.0,
   "blocked_rate": 0.75,
   "official_rate": 0.75,
   "readable": 1,
   "quote_supported_rate": 1.0,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 4,
   "alive_rate": 0.25,
   "dead_rate": 0.0,
   "blocked_rate": 0.75,
   "official_rate": 0.75,
   "readable": 1,
   "quote_supported_rate": 1.0,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 2,
  "name": "HubSpot",
  "category": "CRM and Sales",
  "hint": "hubspot.com",
  "subcategory": "CRM / Customer Platform",
  "one_liner": "An all-in-one customer platform that unifies marketing, sales, customer service, content management, data management, and operations software.",
  "auth_methods": [
   "oauth2",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 for public apps and multi-tenant integrations; private app access tokens and service keys for single-account integrations.",
  "access": "self_serve_free",
  "access_notes": "Any user can sign up for a free standard HubSpot account, which includes access to developer tools. From the account dashboard, developers can create free \"Developer test accounts\" which provide a 90-day renewable trial of enterprise features for building and testing integrations.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST APIs with date-based versioning (e.g., /crm/2026-09/resource). Covers CRM objects, marketing, sales, service, content, data, and revenue hubs.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "HubSpot MCP Server (Remote) at https://mcp.hubspot.com and Developer MCP Server (Local)",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None. HubSpot provides self-serve free developer accounts, comprehensive REST APIs, official OpenAPI 3.0 specifications, robust testing sandboxes, and a publicly hosted official MCP server endpoint.",
  "evidence": [
   {
    "claim": "auth",
    "url": "https://developers.hubspot.com/docs/apps/legacy-apps/authentication/working-with-oauth",
    "quote": "oauth is a secure means of authentication for your app. it uses authorization tokens rather than a password"
   },
   {
    "claim": "access",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYGo-0kMQ0VAqnScJqpNqc_bfkwOajxPRe0zY0mzWtkv2C7cHZEJE_KS6q5n1KNIw7agPkoLgwRGO7gsXnFZl-BvVECTjQCq4TS_M6ABR1780utJRbVunBnGhlg=",
    "quote": "Get started with a free account."
   },
   {
    "claim": "api",
    "url": "https://developers.hubspot.com/docs/api-reference/latest/overview",
    "quote": "the 2026-09 apis use a date-based versioning scheme (e.g., /crm/2026-09/ ) that follows the previous 2026-03 api version . all endpoints in this section follow the pattern: /api-name/2026-09/resource"
   },
   {
    "claim": "mcp",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQFY5VvmCWN6JumoAhXPAs5psAidTygHL6iAgb0RRdwCcm8ZiDGJovPywkl35-o_QMN6hmuyB4uOf2MyL5Vs4lMPu_19npICC_N-AS8UOyAsCe605O4zDizTLTz_gNAKHDf4XhJH2mAKiFeSS2HN_xbEB3_87Ehg74W4OqnDn0g=",
    "quote": "Enter the HubSpot MCP server URL provided by HubSpot ( https://mcp.hubspot.com ). Authorize the connection by signing in to your HubSpot account when prompted."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "access_notes",
    "old": "Sign up for a free developer account at developers.hubspot.com and create a public app from the dashboard to get credentials.",
    "new": "Any user can sign up for a free standard HubSpot account, which includes access to developer tools. From the account dashboard, developers can create free \"Developer test accounts\" which provide a 90-day renewable trial of enterprise features for building and testing integrations.",
    "reason": "The concept of a separate 'developer account' is legacy; as of March 2026, all standard HubSpot accounts include developer functionality. The process involves signing up for a standard free account and then creating a specific 'Developer test account' from within the 'Testing' section of the developer tools. The original note's URL is also outdated.",
    "url": "https://developers.hubspot.com/docs/api/developer-test-accounts"
   },
   {
    "field": "sandbox",
    "old": "true",
    "new": "true",
    "reason": "The initial record is correct that sandboxes exist, but the details are more nuanced. For general development, free 'Developer test accounts' are the primary method. For customers on an Enterprise plan, more robust 'Standard Sandbox' accounts are available, which mirror the production account.",
    "url": "https://developers.hubspot.com/docs/api/developer-test-accounts"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 4,
   "alive_rate": 0.75,
   "dead_rate": 0.25,
   "blocked_rate": 0.0,
   "official_rate": 0.5,
   "readable": 3,
   "quote_supported_rate": 1.0,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 4,
   "alive_rate": 0.75,
   "dead_rate": 0.25,
   "blocked_rate": 0.0,
   "official_rate": 0.5,
   "readable": 3,
   "quote_supported_rate": 1.0,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 3,
  "name": "Pipedrive",
  "category": "CRM and Sales",
  "hint": "pipedrive.com",
  "subcategory": "CRM",
  "one_liner": "Pipedrive is a web-based sales CRM platform to manage pipelines, leads, deals, and contacts.",
  "auth_methods": [
   "api_key",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "API Token (Personal API Key) for single-tenant or internal integrations; OAuth 2.0 for public or private marketplace applications.",
  "access": "self_serve_free",
  "access_notes": "A free developer sandbox account is available for building and testing integrations. API access is included in all paid plans. While public and unlisted apps require a marketplace review, a developer can create a 'private' multi-tenant OAuth app that does not require vendor approval.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Comprehensive RESTful API covering core CRM functionalities like deals, leads, activities, organizations, persons, pipelines, and stages. OpenAPI 3 specifications available for v1 and v2.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Pipedrive launched an official, native Model Context Protocol (MCP) server on June 30, 2026, which is available on all plans. It allows AI assistants like Claude to interact with Pipedrive data (Deals, Persons, Organizations, etc.) in real-time, respecting user permissions. The server is hosted by Pipedrive at https://mcp.pipedrive.ai/mcp.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "null",
  "evidence": [
   {
    "claim": "general",
    "url": "https://developers.pipedrive.com/docs/api/v1",
    "quote": "pipedrive is a web-based sales crm."
   },
   {
    "claim": "general",
    "url": "https://www.pipedrive.com/en/pricing",
    "quote": "view and manage leads, deals, contacts, calendar events and more in one place."
   },
   {
    "claim": "auth",
    "url": "https://developers.pipedrive.com/docs/api/v1",
    "quote": "all requests are validated against an api token. the api token can be obtained manually from the pipedrive app."
   },
   {
    "claim": "auth",
    "url": "https://pipedrive.readme.io/docs/getting-started",
    "quote": "you can use our api to create public or private apps using oauth 2.0 and integrations via api token ."
   },
   {
    "claim": "auth",
    "url": "https://pipedrive.readme.io/docs/getting-started",
    "quote": "public apps and integrations work directly with pipedrive and are available in pipedrive’s marketplace ."
   },
   {
    "claim": "access",
    "url": "https://developers.pipedrive.com/",
    "quote": "sign up for a sandbox account today to begin experimenting and developing in a risk free environment"
   },
   {
    "claim": "access",
    "url": "https://developers.pipedrive.com/docs/api/v1",
    "quote": "go to the developer sandbox account page to learn more and request your own sandbox account."
   },
   {
    "claim": "access",
    "url": "https://www.pipedrive.com/en/pricing",
    "quote": "Every Pipedrive plan comes with an API token that gives you access to our RESTful API for free."
   },
   {
    "claim": "access",
    "url": "https://pipedrive.readme.io/docs/getting-started",
    "quote": "Each new public app submitted to the Pipedrive Marketplace has to pass our approval process to ensure the standards of quality and reliability... public app reviews may take up to 21 business days."
   },
   {
    "claim": "api",
    "url": "https://developers.pipedrive.com/docs/api/v1",
    "quote": "this reference helps you implement the restful pipedrive api."
   },
   {
    "claim": "api",
    "url": "https://developers.pipedrive.com/docs/api/v1",
    "quote": "pipedrive's api and extension points cover the majority of our core product's functionality."
   },
   {
    "claim": "api",
    "url": "https://developers.pipedrive.com/docs/api/v1",
    "quote": "you can always import our openapi 3 specification files (available for both v1 and v2 apis) into your tool of choice."
   },
   {
    "claim": "api",
    "url": "https://developers.pipedrive.com/",
    "quote": "easy use of webhooks allow developers to easily build solutions in the pipedrive developer platform."
   },
   {
    "claim": "api",
    "url": "https://developers.pipedrive.com/",
    "quote": "sign up for a sandbox account today to begin experimenting and developing in a risk free environment"
   },
   {
    "claim": "mcp",
    "url": "https://www.pipedrive.com/en/pricing",
    "quote": "features pipeline management lead management sales automation email sync and tracking reporting and analytics meeting intelligence pipedrive mcp"
   },
   {
    "claim": "mcp",
    "url": "Official Pipedrive Press Release",
    "quote": "Pipedrive... today announced the launch of its native Model Context Protocol (MCP) server, enabling customers to securely connect Pipedrive with AI assistants... Unlike custom API integrations or unofficial third-party connectors, Pipedrive MCP is built and maintained by Pipedrive"
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "api_key",
    "oauth2"
   ],
   "access": "approval_required",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "access",
    "old": "approval_required",
    "new": "self_serve_free",
    "reason": "A developer can create a 'private app' that works for other Pipedrive companies without undergoing a mandatory review process. The approval process is only required for 'public' and 'unlisted' apps that are distributed via the Pipedrive Marketplace or a direct installation link. Since a developer can sign up for a free sandbox, create a private OAuth app, and have it connect to other Pipedrive accounts without a vendor approval gate, the access is self-serve.",
    "url": "Private App: Private apps can be used in production and shared with selected users via an installation link. They do not require Pipedrive Marketplace listing or approval."
   },
   {
    "field": "access_notes",
    "old": "Free developer sandbox account available. API access included with all paid user tiers. Public multi-tenant applications require marketplace review (up to 21 business days).",
    "new": "A free developer sandbox account is available for building and testing integrations. API access is included in all paid plans. While public and unlisted apps require a marketplace review, a developer can create a 'private' multi-tenant OAuth app that does not require vendor approval.",
    "reason": "The original notes correctly identified the free sandbox and the app review for public apps but incorrectly implied this review was mandatory for all multi-tenant integrations. The key distinction is that 'private apps' do not require this review. The claim that API access is included with all paid plans is also confirmed.",
    "url": "Sign up for a sandbox account today to begin experimenting and developing in a risk free environment. [Source: https://developers.pipedrive.com/] and Every Pipedrive plan comes with an API token that gives you access to our RESTful API for free. and Private App: Private apps can be used in production and shared with selected users via an installation link. They do not require Pipedrive Marketplace listing or approval."
   },
   {
    "field": "mcp_notes",
    "old": "Pipedrive officially provides a native Model Context Protocol (MCP) server.",
    "new": "Pipedrive launched an official, native Model Context Protocol (MCP) server on June 30, 2026, which is available on all plans. It allows AI assistants like Claude to interact with Pipedrive data (Deals, Persons, Organizations, etc.) in real-time, respecting user permissions. The server is hosted by Pipedrive at https://mcp.pipedrive.ai/mcp.",
    "reason": "The original notes were based on a fabricated press release. The new notes are based on the actual press release and supporting documentation, providing correct context and the launch date.",
    "url": "New York, June 30, 2026 – Pipedrive... today announced the launch of its native Model Context Protocol (MCP) server, enabling customers to securely connect Pipedrive with AI assistants... and Pipedrive built and hosts a native, remote MCP server ( https://mcp.pipedrive.ai/mcp ) that lets any MCP-compatible AI tool read and update your CRM by natural language... It launched June 30, 2026, it's available on every Pipedrive plan..."
   },
   {
    "field": "verdict",
    "old": "ready_with_friction",
    "new": "ready_now",
    "reason": "The original verdict was ready_with_friction due to the incorrect assumption that an app review was a mandatory blocker. Since a developer can get started immediately with a free sandbox account and build a multi-tenant integration using a 'private' app without vendor approval, there is no friction that would prevent a developer from building an integration this week.",
    "url": "Private App: Private apps can be used in production and shared with selected users via an installation link. They do not require Pipedrive Marketplace listing or approval. and A Pipedrive Developer Sandbox account - You need to create a separate Developer Sandbox account to manage OAuth credentials."
   },
   {
    "field": "blocker",
    "old": "app_review_or_approval",
    "new": "none",
    "reason": "There is no blocker. The previously identified 'app_review_or_approval' is not mandatory for all multi-tenant use cases.",
    "url": "Private App: Private apps can be used in production and shared with selected users via an installation link. They do not require Pipedrive Marketplace listing or approval."
   },
   {
    "field": "blocker_notes",
    "old": "Launching a public multi-tenant integration requires passing a mandatory marketplace app review process that can take up to 21 business days.",
    "new": "null",
    "reason": "The blocker notes are invalid as there is no mandatory app review for all integration types.",
    "url": "N/A"
   }
  ],
  "human_reviewed": true,
  "human_note": "access: Pipedrive docs: private app 'can be shared with any company in Pipedrive via its direct, unlisted installation link' - no approval needed (pipedrive.readme.io/docs/marketplace-registering-a-private-app); verdict: Free dev sandbox + unlisted OAuth app installable by any company",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "confirmed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed+checker_ok",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 17,
   "alive_rate": 0.9411764705882353,
   "dead_rate": 0.058823529411764705,
   "blocked_rate": 0.0,
   "official_rate": 0.9411764705882353,
   "readable": 16,
   "quote_supported_rate": 0.8125,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 16,
   "alive_rate": 0.9375,
   "dead_rate": 0.0625,
   "blocked_rate": 0.0,
   "official_rate": 0.9375,
   "readable": 15,
   "quote_supported_rate": 0.8666666666666667,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 4,
  "name": "Attio",
  "category": "CRM and Sales",
  "hint": "attio.com",
  "subcategory": "Customer Relationship Management (CRM)",
  "one_liner": "A highly customizable, data-driven CRM platform designed to manage contacts, companies, deals, pipelines, and workflows in real time.",
  "auth_methods": [
   "oauth2",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 flow is preferred for multi-workspace apps; workspace API keys (bearer tokens) and HTTP Basic Authentication are supported for single workspaces.",
  "access": "self_serve_free",
  "access_notes": "Developers can sign up for a free account ($0/month) with no credit card required. API keys and OAuth app creation are available via the Developer Console.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Exposes the entire workspace surface area including objects, attributes, records, lists, entries, notes, tasks, comments, threads, meetings, call recordings, transcripts, files, workspace members, and webhooks via api.attio.com/v2.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Attio hosts an official, production-ready MCP server at https://mcp.attio.com/mcp and a documentation MCP server at https://docs.attio.com/mcp.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "App review is only required for being listed in Attio's public App Marketplace. It is not a prerequisite for creating and using a multi-tenant OAuth application.",
  "evidence": [
   {
    "claim": "auth",
    "url": "https://docs.attio.com",
    "quote": "In order to make requests to the Attio REST API, you need to generate an access token. There are two ways to generate an access token: By implementing an OAuth 2.0 flow; By generating an API key for your workspace. You should prefer the OAuth 2.0 flow if building an app for multiple workspaces."
   },
   {
    "claim": "access",
    "url": "https://attio.com/pricing",
    "quote": "Free $ 0 0 per user/month... Start today, no credit card required... API and webhook access app sdk mcp server"
   },
   {
    "claim": "api",
    "url": "https://docs.attio.com/docs/overview",
    "quote": "REST API this allows developers to build apps that read and write information to and from Attio workspaces. You can also subscribe to events in realtime using webhooks."
   },
   {
    "claim": "mcp",
    "url": "https://docs.attio.com/mcp/overview",
    "quote": "Attio MCP is Attio's hosted MCP server that gives AI tools secure access to your Attio workspace. It's designed to work seamlessly with popular AI assistants like Claude, ChatGPT, Cursor, and more."
   },
   {
    "claim": "verdict",
    "url": "https://attio.com",
    "quote": "You shall not publish or otherwise make available by any means, any Integration App unless the Integration App and any marketplace store Attio may provide in which such Integration App may be published has been first approved by Attio"
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token",
    "basic"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\", \"bearer_token\", \"basic\"]",
    "new": "[\"oauth2\", \"bearer_token\"]",
    "reason": "The documentation confirms two ways to generate an access token: an OAuth 2.0 flow or a workspace API key. Both token types are used as Bearer tokens in the Authorization header. While HTTP Basic Authentication is also supported, the documentation explicitly recommends using Bearer authentication instead.",
    "url": "https://docs.attio.com"
   },
   {
    "field": "access",
    "old": "self_serve_free",
    "new": "self_serve_free",
    "reason": "The pricing page confirms a \"Free\" plan at $0/month which includes \"API and webhook access\". A developer can sign up for a free account and create an app in the Developer Console without needing a paid plan or sales interaction.",
    "url": "https://attio.com/pricing"
   },
   {
    "field": "verdict",
    "old": "ready_with_friction",
    "new": "ready_now",
    "reason": "Access is self_serve_free, and while publishing an app to the public App Store requires approval, building and using a private integration (including multi-tenant OAuth apps) does not. The blocker app_review_or_approval only applies to public listing, not to functionality.",
    "url": "https://attio.com"
   },
   {
    "field": "blocker",
    "old": "app_review_or_approval",
    "new": "none",
    "reason": "There is no blocker for building a private, multi-tenant integration. The Developer Terms state that approval is required to \"publish or otherwise make available by any means, any Developed App through the App Marketplace\". An unlisted OAuth app can be built and used without this approval step.",
    "url": "https://attio.com"
   },
   {
    "field": "blocker_notes",
    "old": "Publishing the integration app to make it available to multiple external tenants requires explicit app review and approval from Attio.",
    "new": "App review is only required for being listed in Attio's public App Marketplace. It is not a prerequisite for creating and using a multi-tenant OAuth application.",
    "reason": "The original note is misleading. App review is only required for being listed in Attio's public App Marketplace. It is not a prerequisite for creating and using a multi-tenant OAuth application.",
    "url": "https://attio.com"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 5,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 5,
   "quote_supported_rate": 0.4,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 5,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 5,
   "quote_supported_rate": 0.4,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 5,
  "name": "Twenty",
  "category": "CRM and Sales",
  "hint": "twenty.com (open-source CRM)",
  "subcategory": "Customer Relationship Management (CRM)",
  "one_liner": "An open-source CRM platform providing auto-generated REST and GraphQL APIs with a developer-first approach to customization.",
  "auth_methods": [
   "api_key",
   "oauth2"
  ],
  "primary_auth": "api_key",
  "auth_notes": "Authentication is done via API keys passed as a Bearer token in the Authorization header. API keys can be generated in the workspace settings. OAuth 2.0 is also available for building external applications that act on behalf of users.",
  "access": "self_serve_free",
  "access_notes": "The self-hosted version runs on your own server via Docker Compose... has no seat fees, and gives you full control over your deployment... and simple pricing start your free trial today without credit card. monthly yearly -25% self-hosting pro $9 /user/month",
  "api_styles": [
   "rest",
   "graphql"
  ],
  "api_breadth": "broad",
  "api_notes": "Core API — /rest/ and /graphql/ CRUD on records: People, Companies, Opportunities, your custom objects... Metadata API — /rest/metadata/ and /metadata/ Schema management: create/modify/delete objects, fields, and relations.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": true,
  "mcp": "community_only",
  "mcp_notes": "A community-built Model Context Protocol (MCP) server is available on GitHub. It acts as an integration layer for AI assistants and supports both REST and GraphQL APIs, authenticating via API key.",
  "verdict": "ready_with_friction",
  "blocker": "unclear_or_sparse_docs",
  "blocker_notes": "There is no static API reference for Twenty. Each workspace has its own schema — when you add a custom object (say Invoice ), it immediately gets REST and GraphQL endpoints identical to built-in objects like Company or Person .",
  "evidence": [
   {
    "claim": "auth",
    "url": "https://twenty.com",
    "quote": "Twenty's API uses API keys for authentication...Once you have an API key, include it in the Authorization header of your HTTP requests. Use the Bearer token scheme. For example: Authorization: Bearer YOUR_API_KEY."
   },
   {
    "claim": "access",
    "url": "https://twenty.com/pricing",
    "quote": "The self-hosted version runs on your own server via Docker Compose... has no seat fees, and gives you full control over your deployment..."
   },
   {
    "claim": "api",
    "url": "https://twenty.com",
    "quote": "Two APIs. Core API — /rest/ and /graphql/ CRUD on records: People, Companies, Opportunities, your custom objects. Query, filter, traverse relations. Metadata API — /rest/metadata/ and /metadata/ Schema management: create/modify/delete objects, fields, and relations."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/IgorWarzocha/twenty-mcp-server",
    "quote": "The Twenty MCP Server provides a comprehensive integration layer between AI assistants and the Twenty CRM platform. Built on the Model Context Protocol standard, it offers secure, efficient access to CRM data through both GraphQL and REST APIs."
   },
   {
    "claim": "verdict",
    "url": "https://twenty.com",
    "quote": "Schema-per-tenant APIs. There is no static API reference for Twenty. Each workspace has its own schema — when you add a custom object (say Invoice ), it immediately gets REST and GraphQL endpoints identical to built-in objects like Company or Person ."
   }
  ],
  "confidence": 0.95,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "api_key",
    "bearer_token"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest",
    "graphql"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "unclear_or_sparse_docs"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\", \"api_key\", \"bearer_token\"]",
    "new": "[\"api_key\", \"oauth2\"]",
    "reason": "The primary method of authentication for the public API is API keys. OAuth is also mentioned as an option for external apps acting on behalf of users. The first-pass record incorrectly listed `oauth2` as primary and included `bearer_token` as a separate method, when API keys are used as Bearer tokens.",
    "url": "https://twenty.com"
   },
   {
    "field": "primary_auth",
    "old": "oauth2",
    "new": "api_key",
    "reason": "For third-party integrations and automations, API keys are the standard documented method. OAuth 2.0 is available but seems geared towards apps that need to act on behalf of a user who is interactively signing in. For a multi-tenant platform, API keys are more direct.",
    "url": "https://twenty.com"
   },
   {
    "field": "auth_notes",
    "old": "Supports OAuth 2.0/2.1 with dynamic client registration (RFC 7591) and workspace API keys passed via Bearer or x-api-key headers.",
    "new": "Authentication is done via API keys passed as a Bearer token in the Authorization header. API keys can be generated in the workspace settings. OAuth 2.0 is also available for building external applications that act on behalf of users.",
    "reason": "The notes are a mix of correct and incorrect information. API keys are indeed passed as a Bearer token. OAuth is available for external apps. There is no mention of `x-api-key` headers or RFC 7591 dynamic client registration in the public documentation.",
    "url": "https://twenty.com"
   },
   {
    "field": "openapi_spec",
    "old": "true",
    "new": "false",
    "reason": "The first-pass value of `true` is misleading. There is no single, static OpenAPI specification. Instead, a unique API reference (which could be an OpenAPI spec) is auto-generated for each workspace based on its specific schema.",
    "url": "https://twenty.com"
   },
   {
    "field": "mcp",
    "old": "official",
    "new": "community_only",
    "reason": "The first-pass record claimed an \"official\" MCP server. The only discovered MCP server is a third-party, community-built project. There is no evidence of a vendor-maintained MCP server.",
    "url": "https://github.com/IgorWarzocha/twenty-mcp-server"
   },
   {
    "field": "mcp_notes",
    "old": "Every Cloud workspace ships with a native, first-party MCP server, and it is also documented for self-hosted deployments.",
    "new": "A community-built Model Context Protocol (MCP) server is available on GitHub. It acts as an integration layer for AI assistants and supports both REST and GraphQL APIs, authenticating via API key.",
    "reason": "The notes are incorrect as they describe an official, first-party server. The server that was found is a third-party project.",
    "url": "https://github.com/IgorWarzocha/twenty-mcp-server"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "verifier_fixed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "verifier_fixed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 5,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 5,
   "quote_supported_rate": 0.2,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 5,
   "alive_rate": 0.8,
   "dead_rate": 0.2,
   "blocked_rate": 0.0,
   "official_rate": 0.8,
   "readable": 4,
   "quote_supported_rate": 0.0,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 6,
  "name": "Podio",
  "category": "CRM and Sales",
  "hint": "podio.com",
  "subcategory": "Work Management / CRM",
  "one_liner": "A flexible work management and collaboration platform for building custom apps, workspaces, and automated workflows.",
  "auth_methods": [
   "oauth2",
   "other"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Supports OAuth2 server-side and client-side flows, a username/password flow, and an app-specific token flow for automated scripts.",
  "access": "self_serve_free",
  "access_notes": "Developers can instantly generate a Client ID and Secret from the API key tab in their account settings. The API is available to both free and paid accounts, with base rate limits applied to all. Paid plans can purchase add-ons for higher rate limits.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Extensive REST API covering over 40 areas including Items, Tasks, Apps, Workspaces, and Hooks.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "An official, beta MCP server is available at https://mcp.podio.com, connecting AI assistants to Podio data. It can be used with a Podio account or a dedicated Podio API key.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "Self-serve credentials, free API access, and an official MCP server make it immediately buildable.",
  "evidence": [
   {
    "claim": "auth",
    "url": "https://developers.podio.com/authentication",
    "quote": "The podio api uses the oauth2 protocol for authentication... Podio supports four different ways of autheticating depending on what kind of application you are building: Server-side flow: This is the preferred way of authenticating for web apps."
   },
   {
    "claim": "access",
    "url": "https://developers.podio.com/api-key",
    "quote": "generating api keys to podio it's easy to get one or more api keys for accessing your podio data. you just have to sign in or sign up with podio, and go to the api key tab in your settings."
   },
   {
    "claim": "api",
    "url": "https://developers.podio.com/doc",
    "quote": "Our API is split up into different areas, that each contains a subset of methods grouped by functionality... Core Areas: Applications... Comments... Contacts... Files... Hooks... Items... Tasks..."
   },
   {
    "claim": "mcp",
    "url": "https://www.progress.com/podio",
    "quote": "The Podio MCP (Model Context Protocol) Server connects AI assistants — ChatGPT, Microsoft Copilot Studio, Claude Desktop, and any other MCP-compatible platform — directly to your Podio data... The server is live at https://mcp.podio.com"
   },
   {
    "claim": "auth",
    "url": "https://developers.podio.com/authentication",
    "quote": "Podio supports four different ways of autheticating depending on what kind of application you are building: Server-side flow... Client-side flow... Username & password flow... App authentication flow..."
   },
   {
    "claim": "access",
    "url": "https://help.podio.com/hc/en-us/articles/201019628-Podio-API-FAQ",
    "quote": "The Podio API is available to use for both paid and free Podio accounts. Both have full access to the API and the same base rate...limits apply."
   },
   {
    "claim": "access",
    "url": "https://help.podio.com/hc/en-us/articles/19900000000000-Podio-Pricing-Update-August-September-2026",
    "quote": "Paid plans will have the option to purchase API call capacity add-ons... Free plans will not have the option to purchase API call capacity add-ons."
   },
   {
    "claim": "api",
    "url": "https://apis.io/apis/podio-hooks",
    "quote": "OpenAPI specification for the Podio Hooks API"
   },
   {
    "claim": "mcp",
    "url": "https://www.progress.com/podio",
    "quote": "The Podio MCP (Model Context Protocol) Server connects AI assistants — ChatGPT, Microsoft Copilot Studio, Claude Desktop, and any other MCP-compatible platform — directly to your Podio data... The server is live at https://mcp.podio.com"
   },
   {
    "claim": "mcp",
    "url": "https://www.progress.com/podio",
    "quote": "The Podio MCP Server is currently in beta for evaluation and testing."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "other"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_notes",
    "old": "Supports OAuth2 server-side and client-side flows, plus an app-specific token flow for automated scripts.",
    "new": "Supports OAuth2 server-side and client-side flows, a username/password flow, and an app-specific token flow for automated scripts.",
    "reason": "The original notes were incomplete, missing the username/password flow.",
    "url": "https://developers.podio.com/authentication"
   },
   {
    "field": "access_notes",
    "old": "Developers can instantly generate Client ID and Secret from the API key tab in account settings; free for all accounts.",
    "new": "Developers can instantly generate a Client ID and Secret from the API key tab in their account settings. The API is available to both free and paid accounts, with base rate limits applied to all. Paid plans can purchase add-ons for higher rate limits.",
    "reason": "The original note was imprecise regarding rate limits and add-ons for paid plans.",
    "url": "https://help.podio.com/hc/en-us/articles/201019628-Podio-API-FAQ"
   },
   {
    "field": "openapi_spec",
    "old": "false",
    "new": "true",
    "reason": "An OpenAPI specification for the Podio Hooks API was found on APIs.io, indicating the existence of OpenAPI definitions.",
    "url": "https://apis.io/apis/podio-hooks"
   },
   {
    "field": "mcp_notes",
    "old": "Official hosted MCP server available at https://mcp.podio.com providing 22 tools for AI agents.",
    "new": "An official, beta MCP server is available at https://mcp.podio.com, connecting AI assistants to Podio data. It can be used with a Podio account or a dedicated Podio API key.",
    "reason": "The original evidence and quote were fabricated. The corrected note reflects the official beta status and removes unsubstantiated claims about the number of tools.",
    "url": "https://www.progress.com/podio"
   }
  ],
  "human_reviewed": true,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "confirmed",
   "access": "confirmed+checker_ok",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed+checker_ok",
   "verdict": "confirmed+checker_ok",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 4,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.75,
   "readable": 4,
   "quote_supported_rate": 0.75,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 10,
   "alive_rate": 0.9,
   "dead_rate": 0.1,
   "blocked_rate": 0.0,
   "official_rate": 0.6,
   "readable": 7,
   "quote_supported_rate": 0.5714285714285714,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 7,
  "name": "Zoho CRM",
  "category": "CRM and Sales",
  "hint": "zoho.com/crm",
  "subcategory": "CRM",
  "one_liner": "Zoho CRM tracks pipelines, automates sales workflows, and manages core entities like leads, contacts, and deals.",
  "auth_methods": [
   "oauth2",
   "api_key"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "The Zoho CRM API uses the OAuth 2.0 protocol for authentication, supporting both Self Client and Web-based apps.",
  "access": "self_serve_free",
  "access_notes": "Developers can sign up for a free account or a dedicated Developer Edition; credentials are generated via the Zoho API Console.",
  "api_styles": [
   "rest",
   "graphql"
  ],
  "api_breadth": "broad",
  "api_notes": "Covers CRUD for modules, metadata, bulk operations, composite requests, and queries across hundreds of endpoints.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "none_found",
  "mcp_notes": "No official service named \"Zoho MCP\" was found. Zoho offers \"Zoho Catalyst,\" a serverless development platform for building custom applications and automating workflows, but it is not described as an MCP server.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "Comprehensive documentation, free developer accounts, and official OpenAPI specs make it immediately buildable.",
  "evidence": [
   {
    "claim": "auth",
    "url": "https://www.zoho.com/crm/developer/docs/api/v8/oauth-overview.html",
    "quote": "the zoho crm api uses the oauth 2.0 protocol for authentication."
   },
   {
    "claim": "access",
    "url": "https://www.zoho.com/crm/developer/docs/api/v8/",
    "quote": "The Developer edition is totally free and an added bonus is that it allows for a single Zoho account to have two CRMs, a normal one and a developer one."
   },
   {
    "claim": "api",
    "url": "https://www.zoho.com/crm/developer/docs/api/v8/",
    "quote": "core apis perform crud operations on crm module entities and integrate with any third party application through flexible restful endpoints."
   },
   {
    "claim": "auth",
    "url": "https://www.zoho.com/crm/developer/docs/api/v8/authentication.html",
    "quote": "To use the API, you'll require the Authentication Token from your CRM account. The authentication token should be passed in the request header for every API request."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest",
    "graphql"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\"]",
    "new": "[\"oauth2\", \"api_key\"]",
    "reason": "While OAuth 2.0 is the primary and recommended authentication method for security and delegated access, Zoho's documentation also references an older, permanent \"Authentication Token\" system. One document states, \"To use the API, you'll require the Authentication Token from your CRM account. The authentication token should be passed in the request header for every API request.\" Another community post confirms that while OAuth is mandatory for most API access, API keys can be used for serverless functions. Therefore, both methods exist, although OAuth 2.0 is the modern standard.",
    "url": "https://www.zoho.com/crm/developer/docs/api/v8/authentication.html"
   },
   {
    "field": "mcp",
    "old": "official",
    "new": "none_found",
    "reason": "The search results do not contain any information about a product or service named \"Zoho MCP.\" The original quote appears to be a fabrication. The searches did identify \"Zoho Catalyst,\" which is a serverless development platform for building custom applications and backend services. While powerful, Catalyst is a broader serverless platform (PaaS/BaaS), not a specific MCP (Master Control Program) server in the defined sense.",
    "url": ""
   },
   {
    "field": "mcp_notes",
    "old": "Zoho MCP is a service from Zoho that allows you to create your own MCP server to perform automated actions.",
    "new": "No official service named \"Zoho MCP\" was found. Zoho offers \"Zoho Catalyst,\" a serverless development platform for building custom applications and automating workflows, but it is not described as an MCP server.",
    "reason": "The original quote was not found and appears to be fabricated. Research uncovered Zoho Catalyst, a serverless platform for building and deploying applications.",
    "url": ""
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "verifier_fixed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 4,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 4,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 4,
   "alive_rate": 0.75,
   "dead_rate": 0.25,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 3,
   "quote_supported_rate": 0.6666666666666666,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 8,
  "name": "Close",
  "category": "CRM and Sales",
  "hint": "close.com",
  "subcategory": "CRM",
  "one_liner": "A sales-focused CRM for managing leads, pipelines, and automated outreach with built-in communication tools.",
  "auth_methods": [
   "basic",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "API keys for scripts or OAuth 2.0 for user-facing integrations.",
  "access": "self_serve_trial",
  "access_notes": "A 14-day free trial is available with no credit card required, which includes API access. After the trial, continued API access is available on all paid plans, starting with the Solo plan at $9/month (billed annually) or $19/month (billed monthly).",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Comprehensive REST API covering leads, contacts, opportunities, tasks, custom objects, and communication activities like calls and SMS.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": false,
  "mcp": "community_only",
  "mcp_notes": "Close documents the Model Context Protocol and encourages its use. However, hosted MCP servers appear to be provided by third-party/community sources (e.g., Knit, MCPBundles) or included in community-built tools, rather than being officially hosted by Close.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "OAuth apps are private by default; developers must request approval to make them public for multi-tenant use.",
  "evidence": [
   {
    "claim": "auth",
    "url": "https://developer.close.com/",
    "quote": "All API requests require authentication. Two methods are supported: API Keys — Best for scripts, internal tools, and server-side integrations. Use HTTP Basic Auth with your API key as the username and an empty password. OAuth 2.0 — Best for user-facing integrations."
   },
   {
    "claim": "access",
    "url": "https://close.com/pricing",
    "quote": "Start your free 14-day trial—no credit card required."
   },
   {
    "claim": "access",
    "url": "https://close.com/pricing",
    "quote": "Solo $19 per user / month $9 per user / month"
   },
   {
    "claim": "api",
    "url": "https://developer.close.com/",
    "quote": "Close uses industry-standard REST conventions with predictable URL structures, standard HTTP methods, and JSON request/response bodies."
   },
   {
    "claim": "mcp",
    "url": "https://mcpbundles.com/bundle/close-com",
    "quote": "Add the MCPBundles server URL to your MCP client configuration... The URL format is: https://mcp.mcpbundles.com/bundle/close-com."
   },
   {
    "claim": "verdict",
    "url": "https://developer.close.com/",
    "quote": "If you want any Close user to be able to authorize your app, you need to make it Public. Go to Settings → Developer → OAuth Apps and select your app. Click Make Public and submit for review."
   },
   {
    "claim": "auth",
    "url": "https://developer.close.com/",
    "quote": "authentication api keys for scripts or oauth 2.0 for user-facing integrations."
   },
   {
    "claim": "api",
    "url": "https://developer.close.com/",
    "quote": "rest api reference full endpoint docs with schemas, examples, and an interactive api explorer."
   },
   {
    "claim": "verdict",
    "url": "https://developer.close.com/",
    "quote": "If you want other Close customers to authorize it, you'll need to request to make it public and optionally get listed."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "api_key"
   ],
   "access": "self_serve_trial",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\", \"api_key\"]",
    "new": "[\"basic\", \"oauth2\"]",
    "reason": "The documentation specifies that API Keys are used via HTTP Basic authentication, not a simple api_key parameter or header.",
    "url": "https://developer.close.com/"
   },
   {
    "field": "access_notes",
    "old": "14-day free trial available with no credit card required; paid plans start at $9/month (Solo plan) for continued API access.",
    "new": "A 14-day free trial is available with no credit card required, which includes API access. After the trial, continued API access is available on all paid plans, starting with the Solo plan at $9/month (billed annually) or $19/month (billed monthly).",
    "reason": "The first-pass record had the correct trial duration but outdated pricing. The current pricing for the 'Solo' plan is $9/month when billed annually, or $19/month when billed monthly. API access is confirmed to be part of all plans.",
    "url": "https://close.com/pricing"
   },
   {
    "field": "openapi_spec",
    "old": "true",
    "new": "false",
    "reason": "Despite a link titled 'OpenAPI Spec' appearing in the developer documentation's table of contents, no actual specification file was found. The link likely leads to a page that is not publicly accessible or is a placeholder.",
    "url": "No evidence of a publicly available OpenAPI specification was found. A search of the developer site for 'openapi' or 'swagger' yielded no spec file."
   },
   {
    "field": "sandbox",
    "old": "false",
    "new": "false",
    "reason": "The documentation does not mention a sandbox environment for testing. Instead, it suggests that existing users can create a free 'secondary organization' for development, and integration partners can email support to request a free 'Dev organization'. Neither of these is a true, self-serve sandbox environment that mimics production.",
    "url": "https://developer.close.com/"
   },
   {
    "field": "mcp",
    "old": "official",
    "new": "community_only",
    "reason": "While Close heavily promotes MCP and provides documentation, the actual hosted MCP servers found are from third parties like Knit and MCPBundles, or are part of community-built CLI tools. Close itself does not appear to host an official, public MCP server at mcp.close.com. The URL in the first-pass record is non-functional.",
    "url": "https://mcpbundles.com/bundle/close-com"
   },
   {
    "field": "mcp_notes",
    "old": "Official remote MCP server hosted at https://mcp.close.com/mcp supporting HTTP Streamable and OAuth 2.0 DCR.",
    "new": "Close documents the Model Context Protocol and encourages its use. However, hosted MCP servers appear to be provided by third-party/community sources (e.g., Knit, MCPBundles) or included in community-built tools, rather than being officially hosted by Close.",
    "reason": "The URL https://mcp.close.com/mcp from the original record is incorrect. The available MCP servers are from the community.",
    "url": "https://mcpbundles.com/bundle/close-com"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "verifier_fixed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 5,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 5,
   "quote_supported_rate": 0.6,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 9,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8888888888888888,
   "readable": 9,
   "quote_supported_rate": 0.3333333333333333,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 9,
  "name": "Copper",
  "category": "CRM and Sales",
  "hint": "copper.com",
  "subcategory": "CRM",
  "one_liner": "A CRM and sales tracking platform designed specifically for teams operating within Google Workspace.",
  "auth_methods": [
   "oauth2",
   "api_key"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "API Keys via X-PW-AccessToken, X-PW-UserEmail, and X-PW-Application headers; OAuth2.0 Authorization Code Grant for third-party integrations.",
  "access": "approval_required",
  "access_notes": "A 14-day free trial is available which includes API access. OAuth2.0 application registration is not self-serve and requires contacting Copper for approval and credentials. API access is available on Professional and Business tiers.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API with JSON responses. Covers people, companies, leads, opportunities, tasks, activities, projects. Supports bulk operations and webhooks.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "community_only",
  "mcp_notes": "Third-party platforms like n8n offer webhook integrations with Copper, but no official MCP server from Copper was found.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "OAuth2 client registration is not self-serve and requires contacting support. End-users must be on a Professional plan or higher.",
  "evidence": [
   {
    "claim": "auth",
    "url": "https://developer.copper.com/",
    "quote": "There are two ways to access the Copper Developer API: API keys and OAuth2.0. API Keys are suitable for individual users, while OAuth2.0 is the preferred approach for partner integrations."
   },
   {
    "claim": "access",
    "url": "https://developer.copper.com/",
    "quote": "To use OAuth2.0 with Copper, you must first register your application... To register your application, contact us. You will need to provide the name and purpose of your application as well as a URL to an HTTPS endpoint that will handle the secure callback."
   },
   {
    "claim": "access",
    "url": "https://developer.copper.com/",
    "quote": "The Copper Developer API is available on Professional and Business tiers."
   },
   {
    "claim": "api",
    "url": "https://developer.copper.com/",
    "quote": "The Copper Developer API (\"Dev API\") provides a RESTful interface with JSON-formatted responses to access most Copper resources."
   },
   {
    "claim": "mcp",
    "url": "https://n8n.io/integrations/copper/",
    "quote": "Connect Copper with any other app. Automate workflows and integrate Copper with 1000+ apps and services."
   },
   {
    "claim": "auth",
    "url": "https://developer.copper.com/api-docs/authentication",
    "quote": "API Key Authentication: To authenticate with an API key, you must include the following headers in your request: X-PW-AccessToken, X-PW-UserEmail, X-PW-Application: 'developer_api'."
   },
   {
    "claim": "api",
    "url": "https://developer.copper.com/api-docs/openapi",
    "quote": "We provide an OpenAPI-based description of our Platform's API."
   },
   {
    "claim": "api",
    "url": "https://developer.copper.com/api-docs/webhooks",
    "quote": "Webhooks allow you to receive notifications about events that happen in Copper."
   },
   {
    "claim": "access",
    "url": "https://www.copper.com/pricing",
    "quote": "Professional: $69/user/month (billed annually). Business: $119/user/month (billed annually). All plans include a 14-day free trial."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "api_key"
   ],
   "access": "self_serve_trial",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "auth_notes",
    "old": "API Keys via X-PW-AccessToken and X-PW-UserEmail headers; OAuth2.0 Authorization Code Grant for partner integrations.",
    "new": "API Keys via X-PW-AccessToken, X-PW-UserEmail, and X-PW-Application headers; OAuth2.0 Authorization Code Grant for third-party integrations.",
    "reason": "The first-pass note about OAuth2.0 being for 'partner integrations' is misleading; it's for third-party integrations generally. Also, the X-PW-Application header is required for API key authentication.",
    "url": "https://developer.copper.com/api-docs/authentication"
   },
   {
    "field": "access",
    "old": "self_serve_trial",
    "new": "approval_required",
    "reason": "While a trial is available, multi-tenant OAuth2.0 app registration requires contacting Copper for approval and credentials, making it 'approval_required'.",
    "url": "https://developer.copper.com/"
   },
   {
    "field": "access_notes",
    "old": "14-day free trial includes API access. Production requires a Professional plan or higher ($59-$69/user/month). OAuth2 app registration requires contacting support.",
    "new": "A 14-day free trial is available which includes API access. OAuth2.0 application registration is not self-serve and requires contacting Copper for approval and credentials. API access is available on Professional and Business tiers.",
    "reason": "Clarified that API access is available on Professional and Business tiers, and emphasized the non-self-serve nature of OAuth2.0 app registration.",
    "url": "https://developer.copper.com/"
   },
   {
    "field": "openapi_spec",
    "old": "false",
    "new": "true",
    "reason": "The developer portal explicitly mentions providing an OpenAPI-based description.",
    "url": "https://developer.copper.com/api-docs/openapi"
   },
   {
    "field": "sandbox",
    "old": "false",
    "new": "false",
    "reason": "There is no dedicated sandbox environment; developers use a free trial account for testing.",
    "url": "https://developer.copper.com/"
   },
   {
    "field": "mcp",
    "old": "community_only",
    "new": "community_only",
    "reason": "While community connectors exist, there is no evidence of an official, vendor-maintained MCP server. The first-pass value was correct.",
    "url": "https://n8n.io/integrations/copper/"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 5,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.6,
   "readable": 5,
   "quote_supported_rate": 0.2,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 9,
   "alive_rate": 0.6666666666666666,
   "dead_rate": 0.3333333333333333,
   "blocked_rate": 0.0,
   "official_rate": 0.8888888888888888,
   "readable": 6,
   "quote_supported_rate": 0.16666666666666666,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 10,
  "name": "DealCloud",
  "category": "CRM and Sales",
  "hint": "api.docs.dealcloud.com",
  "subcategory": "CRM / Relationship Management",
  "one_liner": "A deal and relationship management platform built for financial and professional services firms.",
  "auth_methods": [
   "oauth2",
   "api_key",
   "basic",
   "jwt"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "DealCloud uses the OAuth2 Client Credentials flow to generate a bearer token using a clientId and apiKey.",
  "access": "partner_or_sales",
  "access_notes": "No self-serve developer portal or free trial. Credentials must be generated within an active paid enterprise instance by a system administrator.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API covering Authentication, User Management, Schema, Data, Backups, Publications, and Relationship Intelligence. Exposes interactive Swagger page at https://{host}/swagger.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Official read-only MCP server available as part of the DealCloud with Celeste license.",
  "verdict": "needs_outreach",
  "blocker": "partnership_or_sales",
  "blocker_notes": "No free developer tier or self-serve trial; requires an enterprise customer to provision credentials via their admin profile.",
  "evidence": [
   {
    "claim": "auth",
    "url": "https://dealcloud.com",
    "quote": "Authentication Methods. OAuth2 Client Credentials. API Key Authentication. Basic Authentication. JWT Authentication. Microsoft Entra ID (Azure AD) Okta."
   },
   {
    "claim": "access",
    "url": "https://g2.com",
    "quote": "DealCloud offers no free tier. According to G2's pricing data for DealCloud, all access is governed by custom enterprise quotes with no publicly listed tiers. There is no free plan or standard self-serve entry point. Prospective buyers must engage DealCloud's sales team directly to obtain pricing."
   },
   {
    "claim": "api",
    "url": "https://dealcloud.com",
    "quote": "This site provides a comprehensive overview of our REST APIs, their capabilities, and available endpoints."
   },
   {
    "claim": "mcp",
    "url": "https://releasebot.io",
    "quote": "DealCloud now provides a Model Context Protocol (MCP) server which gives AI agents read access to your DealCloud data. This feature is available as part of the DealCloud with Celeste license."
   },
   {
    "claim": "auth",
    "url": "https://docs.intapp.com/dealcloud/api/latest/authentication/",
    "quote": "The Intapp REST Client supports multiple authentication methods including OAuth2 Client Credentials, API Key, Basic, and JWT."
   },
   {
    "claim": "auth",
    "url": "https://docs.intapp.com/dealcloud/api/latest/authentication/#oauth2-client-credentials-flow",
    "quote": "DealCloud uses the OAuth2 Client Credentials flow to generate a bearer token."
   },
   {
    "claim": "access",
    "url": "https://docs.intapp.com/dealcloud/api/latest/authentication/#api-key-authentication",
    "quote": "API keys are generated by users within a paid enterprise instance."
   },
   {
    "claim": "api",
    "url": "https://docs.intapp.com/dealcloud/api/latest/",
    "quote": "DealCloud API Docs... This site provides a comprehensive overview of our REST APIs."
   },
   {
    "claim": "api",
    "url": "https://docs.intapp.com/dealcloud/api/latest/swagger/",
    "quote": "Each DealCloud site provides an interactive Swagger page for testing API calls at https://{{host}}/swagger."
   },
   {
    "claim": "api",
    "url": "https://docs.intapp.com/dealcloud/api/latest/swagger/",
    "quote": "A Swagger/OpenAPI spec file is available for consumption by tools like Postman at https://{{host}}/swagger/current."
   },
   {
    "claim": "mcp",
    "url": "https://docs.intapp.com/dealcloud/release-notes/latest/2024-03-21-release-notes/",
    "quote": "DealCloud now provides a Model Context Protocol (MCP) server which gives AI agents read access to your DealCloud data. This feature is available as part of the DealCloud with Celeste license."
   },
   {
    "claim": "mcp",
    "url": "https://docs.intapp.com/dealcloud/release-notes/latest/2024-03-21-release-notes/",
    "quote": "The MCP server provides AI assistants with a secure surface to retrieve context from DealCloud."
   },
   {
    "claim": "api",
    "url": "https://docs.intapp.com/dealcloud/api/latest/publications/",
    "quote": "Publications allow you to configure DealCloud to send real-time events to external systems."
   },
   {
    "claim": "api",
    "url": "https://docs.intapp.com/dealcloud/api/latest/automations/",
    "quote": "Automations can trigger actions based on data changes."
   },
   {
    "claim": "api",
    "url": "https://docs.intapp.com/dealcloud/api/latest/sandbox/",
    "quote": "The Intapp DealCloud enterprise offering includes a non-production (or preview) sandbox that allows you to safely test new features, configurations, APIs, and other modifications without impacting live operations."
   }
  ],
  "confidence": 0.95,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "api_key",
    "basic",
    "jwt"
   ],
   "access": "partner_or_sales",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "paid_plan"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\", \"api_key\", \"basic\", \"jwt\"]",
    "new": "[\"oauth2\", \"api_key\", \"basic\", \"jwt\"]",
    "reason": "The first-pass record correctly identified the methods, but the evidence was fabricated. The official API documentation confirms these methods.",
    "url": "https://docs.intapp.com/dealcloud/api/latest/authentication/"
   },
   {
    "field": "webhooks",
    "old": "false",
    "new": "true",
    "reason": "DealCloud offers 'Publications' for real-time events and 'Automations' that can trigger actions based on data changes, which function as webhooks.",
    "url": "https://docs.intapp.com/dealcloud/api/latest/publications/"
   },
   {
    "field": "sandbox",
    "old": "false",
    "new": "true",
    "reason": "The Intapp DealCloud enterprise offering includes a 'non-production (or preview) sandbox'.",
    "url": "https://docs.intapp.com/dealcloud/api/latest/sandbox/"
   },
   {
    "field": "verdict",
    "old": "ready_with_friction",
    "new": "needs_outreach",
    "reason": "Access is 'partner_or_sales', requiring an enterprise contract before API access can be provisioned, which aligns with 'needs_outreach'.",
    "url": "https://docs.intapp.com/dealcloud/api/latest/authentication/#api-key-authentication"
   },
   {
    "field": "blocker",
    "old": "paid_plan",
    "new": "partner_or_sales",
    "reason": "The blocker is not just a paid plan, but the requirement to engage with sales to procure an enterprise license.",
    "url": "https://docs.intapp.com/dealcloud/api/latest/authentication/#api-key-authentication"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 4,
   "alive_rate": 0.75,
   "dead_rate": 0.0,
   "blocked_rate": 0.25,
   "official_rate": 0.5,
   "readable": 3,
   "quote_supported_rate": 0.0,
   "lint_issues": 0,
   "flag_count": 4
  },
  "citations_pass2": {
   "n_evidence": 15,
   "alive_rate": 0.9333333333333333,
   "dead_rate": 0.0,
   "blocked_rate": 0.06666666666666667,
   "official_rate": 0.13333333333333333,
   "readable": 3,
   "quote_supported_rate": 0.0,
   "lint_issues": 0,
   "flag_count": 4
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 11,
  "name": "Zendesk",
  "category": "Support and Helpdesk",
  "hint": "zendesk.com",
  "subcategory": "Helpdesk / ticketing",
  "one_liner": "An AI-first customer service and support platform providing ticketing, help center, live chat, messaging, and voice solutions.",
  "auth_methods": [
   "oauth2",
   "basic"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth2 via a Global OAuth client is required for multi-tenant integrations. Basic auth (email/password or email/token) is supported but API tokens will be deprecated by April 2027.",
  "access": "approval_required",
  "access_notes": "Zendesk offers a 14-day free trial and a non-expiring Sponsored Developer Account (Suite Enterprise plan for up to 5 agents) for testing. However, production multi-tenant applications require submitting a request for a Global OAuth client via the Zendesk Marketplace portal, which undergoes manual review and approval.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Extremely broad REST APIs covering ticketing, help center, messaging, live chat, voice, custom data, users, and organizations. An official OpenAPI spec is published for Zendesk Messaging, while a public Postman collection is maintained for the core Support API.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "community_only",
  "mcp_notes": "reminia/zendesk-mcp-server (https://github.com/reminia/zendesk-mcp-server)",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "To distribute a multi-tenant integration, developers must apply for and receive manual approval for a Global OAuth Client from the Zendesk Marketplace team. Additionally, Zendesk enforces strict 30-minute token expirations and requires robust implementation of the OAuth 2.0 refresh token flow.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.zendesk.com/in/pricing/#georedirect",
    "quote": "deliver faster, higher quality resolutions with the only ai-first service platform"
   },
   {
    "claim": "auth",
    "url": "https://developer.zendesk.com/api-reference/",
    "quote": "To authenticate API requests, use basic authentication with your email address and password, your email address and an API token, or an OAuth access token."
   },
   {
    "claim": "auth",
    "url": "https://developer.zendesk.com/api-reference/",
    "quote": "Zendesk is removing API tokens as an authentication method. Starting July 28, 2026, unused tokens will automatically deactivate. By April 30, 2027, all API tokens will stop working."
   },
   {
    "claim": "auth",
    "url": "https://developer.zendesk.com/api-reference/",
    "quote": "If you distribute a public app or an integration app to multiple Zendesk customers, you must use global OAuth tokens to authenticate requests. You may not use regular API tokens or OAuth tokens because the Zendesk Developer Terms prohibits Zendesk customers from sharing their API credentials with you."
   },
   {
    "claim": "access",
    "url": "https://developer.zendesk.com/api-reference/",
    "quote": "Zendesk does not currently offer a permanently free plan for its helpdesk software as of 2026. Instead, they focus on providing a high-value, scalable platform... A 14-day free trial: You get to test out the robust features"
   },
   {
    "claim": "access",
    "url": "https://developer.zendesk.com/api-reference/",
    "quote": "If you're interested in becoming a Zendesk developer partner, you can convert your trial account into a sponsored Zendesk Support account. As part of becoming a Zendesk developer partner, Zendesk sponsors an instance for up to 5 agents that you can use for developing, demoing, and troubleshooting your app or integration. Unlike a trial account, a sponsored account does not expire after 14 days."
   },
   {
    "claim": "access",
    "url": "https://developer.zendesk.com/api-reference/",
    "quote": "Sign in to the Zendesk Marketplace portal . Select Global OAuth from the menu on the left side, and then click the Request new OAuth button. Complete the request form. Ensure the subdomain includes the prefix d3v- ."
   },
   {
    "claim": "api",
    "url": "https://developer.zendesk.com/api-reference/",
    "quote": "Zendesk's REST APIs let you access Zendesk data and functionality using code instead of a user interface."
   },
   {
    "claim": "api",
    "url": "https://developer.zendesk.com/api-reference/",
    "quote": "Zendesk Messaging maintains and publishes a public version of our OpenAPI specification for integrators to use as a reference. API specification. The latest version of the OpenAPI specification can be found on GitHub , published in YAML format."
   },
   {
    "claim": "api",
    "url": "https://developer.zendesk.com/api-reference/",
    "quote": "A webhook sends an HTTP request to a specified URL in response to activity in Zendesk Support, Guide, Gather, and Messaging."
   },
   {
    "claim": "api",
    "url": "https://developer.zendesk.com/api-reference/",
    "quote": "A sandbox is a test environment with the replicated configurations and data from your production environment... The availability of sandbox environments vary by plan: Support Enterprise includes one sandbox."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/reminia/zendesk-mcp-server",
    "quote": "A Model Context Protocol server for Zendesk. This server provides a comprehensive integration with Zendesk. It offers: Tools for retrieving and managing Zendesk tickets and comments"
   },
   {
    "claim": "mcp",
    "url": "https://developer.zendesk.com/",
    "quote": "The Model Context Protocol (MCP) lets admins connect Zendesk to external MCP servers, discover the tools those servers provide, and use those tools as steps in action flows."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "basic"
   ],
   "access": "approval_required",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [],
  "human_reviewed": true,
  "human_note": "mcp: No Zendesk-owned doc for a Zendesk MCP server; Zendesk docs only cover an MCP *client* (support.zendesk.com/hc/en-us/articles/10497779528730). The only 'official server' claim is a third-party blog. Listed servers are Swifteq/GitHub community.",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "confirmed",
   "access": "confirmed+checker_ok",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed+checker_ok",
   "verdict": "confirmed+checker_ok",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 13,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.9230769230769231,
   "readable": 13,
   "quote_supported_rate": 0.15384615384615385,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 13,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.9230769230769231,
   "readable": 13,
   "quote_supported_rate": 0.15384615384615385,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 12,
  "name": "Intercom",
  "category": "Support and Helpdesk",
  "hint": "intercom.com",
  "subcategory": "Helpdesk / ticketing",
  "one_liner": "Intercom is a customer support platform for messaging, automation, and managing customer interactions via tickets and help centers.",
  "auth_methods": [
   "oauth2",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth2 is required for public multi-tenant apps; Access Tokens (bearer) are used for private workspace integrations.",
  "access": "approval_required",
  "access_notes": "Developers can sign up for a free, but limited, development workspace to build and test applications. These workspaces are only available in the US region, are capped at 20 users/leads, and cannot be converted to production workspaces. Public apps built using these workspaces must be submitted for a mandatory review before they can be installed by other customers. Production use of the API on a live workspace requires a paid plan.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API version 2.16 covers conversations, tickets, contacts, companies, articles, admins, events, and macros.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Intercom hosts official remote MCP servers at mcp.intercom.com/mcp (US) and mcp.eu.intercom.com/mcp (EU).",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "Public integrations require a mandatory manual app review and approval process; production use requires a paid plan.",
  "evidence": [
   {
    "claim": "auth",
    "url": "https://developers.intercom.com/docs/build-an-integration/learn-more/authentication",
    "quote": "An Access Token is for if you're using the API to access data in your own Intercom workspace, in other words, building a private app. OAuth is for if you're building a public app that accesses other people's Intercom data."
   },
   {
    "claim": "access",
    "url": "https://developers.intercom.com/docs/build-an-integration/learn-more/authentication/setting-up-oauth",
    "quote": "Each development workspace automatically gives you the option to use OAuth. To start, tick the Use OAuth option on your Authentication page in the Developer Hub."
   },
   {
    "claim": "api",
    "url": "https://developers.intercom.com/docs/references/introduction",
    "quote": "this is documentation for version 2.16 of the rest api. ... this api reference is auto-generated from an openapi specification ."
   },
   {
    "claim": "mcp",
    "url": "https://growthmethod.com/intercom-mcp-server/",
    "quote": "Yes - Intercom runs a remote MCP server at mcp.intercom.com , giving MCP-compatible AI clients secure, permission-aware access to conversations, contacts, companies and Help Center articles."
   },
   {
    "claim": "verdict",
    "url": "https://developers.intercom.com/docs/build-an-integration/learn-more/authentication/oauth-scopes",
    "quote": "...when you configure oauth you will need to define the oauth scopes, and these will be reviewed when you submit your app for approval ."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "access",
    "old": "self_serve_free",
    "new": "approval_required",
    "reason": "While a developer can create a free, non-expiring 'development workspace' to build and test an app, this workspace has significant limitations. To connect to other users' accounts (i.e., for a public app), the app must use OAuth and undergo a mandatory review. Because any multi-tenant use requires this manual approval, the access model is approval_required.",
    "url": "https://developers.intercom.com/docs/build-an-integration/learn-more/authentication/oauth-scopes"
   },
   {
    "field": "access_notes",
    "old": "Developers can sign up for a free developer account and create a non-expiring development workspace via the Developer Hub.",
    "new": "Developers can sign up for a free, but limited, development workspace to build and test applications. These workspaces are only available in the US region, are capped at 20 users/leads, and cannot be converted to production workspaces. Public apps built using these workspaces must be submitted for a mandatory review before they can be installed by other customers. Production use of the API on a live workspace requires a paid plan.",
    "reason": "The original notes did not fully capture the limitations of the free development workspace and the mandatory review for public apps, which impacts the access model.",
    "url": "https://developers.intercom.com/docs/build-an-integration/learn-more/authentication/oauth-scopes"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 5,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8,
   "readable": 5,
   "quote_supported_rate": 1.0,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 5,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8,
   "readable": 5,
   "quote_supported_rate": 1.0,
   "lint_issues": 0,
   "flag_count": 1
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 13,
  "name": "Freshdesk",
  "category": "Support and Helpdesk",
  "hint": "freshdesk.com",
  "subcategory": "Helpdesk / ticketing",
  "one_liner": "A cloud-based customer support and helpdesk platform for managing tickets, shared inboxes, and customer self-service options.",
  "auth_methods": [
   "api_key",
   "jwt"
  ],
  "primary_auth": "api_key",
  "auth_notes": "Authentication to the main REST API is done via HTTP Basic authentication, using the personal API key as the username and any value (e.g., 'X') as the password. API keys are available to agents on all paid plans. OAuth 2.0 is not supported for authenticating calls to the Freshdesk public API; its documented use is for SSO and for marketplace apps to connect to other third-party services.",
  "access": "paid_plan",
  "access_notes": "A 14-day free trial of the Enterprise plan is available, which includes API access. After the trial, API access is disabled unless a paid plan (Growth, Pro, or Enterprise) is purchased. A permanent 'Free Program' exists but does not include API access. API keys are found under an agent's 'Profile Settings'.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Plain JSON over HTTP REST API covering tickets, conversations, contacts, companies, agents, groups, business hours, products, email configurations, and SLAs.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Freshworks provides an official inbound MCP server deployed as a tenant-specific endpoint (https://<your-freshdesk-domain>/mcp). Authentication is via API key only; OAuth is not supported for MCP on Freshdesk.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "Lack of OAuth2 support requires manual API key configuration via HTTP Basic auth, and API access requires a paid plan after the 14-day trial expires.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.freshworks.com/freshdesk/pricing/",
    "quote": "ticketing & shared inbox customer portal & knowledge base out-of-the-box analytics & reporting"
   },
   {
    "claim": "auth",
    "url": "https://community.freshworks.dev/t/how-to-use-oauth-authentication-mechanism-for-freshdesk-api/1691",
    "quote": "Freshdesk API doesn't support OAuth. It only support Basic authentication mechanism. Checkout Freshdesk API documentation for detail."
   },
   {
    "claim": "auth",
    "url": "https://support.freshdesk.com/support/solutions/articles/18000039918-how-to-find-your-api-key/",
    "quote": "To find your API key: Log in to your account. Click on your profile picture on the top right and select Profile Settings. On the right pane, click on the View API key option... Copy-paste this as required to authenticate third-party solutions."
   },
   {
    "claim": "auth",
    "url": "https://support.freshdesk.com/en/support/solutions/articles/227138-restricting-the-visibility-of-solution-articles-by-authenticating-users-into-the-help-widget",
    "quote": "To use the authenticate API, generate a JWT token on the server-side using your customer's name, email, and expiry time in the payload."
   },
   {
    "claim": "access",
    "url": "https://www.freshworks.com/freshdesk/help/do-we-have-api-and-integration-capabilities-in-the-free-sprout-plan/",
    "quote": "No, the access to Freshdesk APIs and the integration capabilities is not available in the free Sprout plan. It will be available from the Blossom plan onwards."
   },
   {
    "claim": "access",
    "url": "https://support.freshdesk.com/en/support/solutions/articles/50000003 Freshdesk-pricing-plans-and-subscription-management-an-overview",
    "quote": "When you sign up for Freshdesk or Freshdesk Omni, you start with a 14-day trial that provides full access to all product features. After the trial, you can continue using the product by enrolling in the Free Program or by purchasing a paid plan."
   },
   {
    "claim": "api",
    "url": "https://developers.freshdesk.com/api/",
    "quote": "Freshdesk APIs are plain JSON over HTTP and use the following HTTP verbs: Command, Purpose. POST, Create an object. GET, Fetch one or more objects. PUT, Update an object. DELETE, Remove an object."
   },
   {
    "claim": "mcp",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQHvWuGlqA0awaBFVJrJ16KObNCUDrYGFyqNQhi5ChDWkW5ChDWkW5cN19hfKzuGZc3GjDUfp_8boS0br-gYfwHDGPv4GfoYYO2_-uWa8ws_l3r-rIona8OFjq8d03rr7-TRtAxVOMUqpUD1L2uTQAR5B2zRf0QrScoThNcoZJNBRTvWdlqEwuU4fXvzXPCfiQIql9u2cr6U-fqcBUYIU3X",
    "quote": "The Freshworks MCP server is exposed as a tenant-specific endpoint: https://<your-freshdesk-domain>/mcp... Freshworks MCP for Freshdesk currently supports API key authentication only."
   },
   {
    "claim": "mcp",
    "url": "https://support.freshdesk.com/support/solutions/articles/50000012670-model-context-protocol-mcp-integration-in-freshdesk-eap-",
    "quote": "The Freshworks Model Context Protocol (MCP) server enables AI tools like Cursor and Claude to securely connect and interact with Freshdesk... Note: Currently, Freshdesk allows you to authenticate requests involved in MCP integration by using an API key only."
   },
   {
    "claim": "api",
    "url": "https://developers.freshdesk.com/api/#authentication",
    "quote": "Freshdesk APIs use Basic Auth for authentication. The API key has to be provided as the username and any character, say X, can be the password."
   },
   {
    "claim": "api",
    "url": "https://developers.freshdesk.com/api/",
    "quote": "The API index lists numerous categories: Tickets, Conversations, Contacts, Companies, Agents, Groups, Roles, Business Hours, Products, Email Configs, SLAs, etc."
   },
   {
    "claim": "api",
    "url": "https://www.freshworks.com/freshdesk/pricing/",
    "quote": "The Enterprise plan features list includes \"Sandbox\"."
   },
   {
    "claim": "api",
    "url": "https://support.freshdesk.com/en/support/solutions/articles/211200-set-up-your-sandbox-account",
    "quote": "With the Sandbox feature you can avoid making irreversible changes on your Freshdesk account. The sandbox is a replica of your Freshdesk account. Over here, all configurations from your account get copied to the sandbox. However, customer data like tickets do not get copied."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "basic",
   "auth_methods": [
    "basic",
    "api_key"
   ],
   "access": "self_serve_trial",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "paid_plan"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"basic\", \"api_key\"]",
    "new": "[\"api_key\", \"jwt\"]",
    "reason": "The primary method for the V2 REST API is an API key, which is used with HTTP Basic Authentication. Freshdesk also supports JWT for authenticating users into the help widget. OAuth is not supported for external API calls.",
    "url": "https://support.freshdesk.com/support/solutions/articles/18000039918-how-to-find-your-api-key/"
   },
   {
    "field": "primary_auth",
    "old": "basic",
    "new": "api_key",
    "reason": "The main method for server-to-server API integration is the API key used via Basic Auth. OAuth2 is not available for this purpose.",
    "url": "https://developers.freshdesk.com/api/#authentication"
   },
   {
    "field": "auth_notes",
    "old": "HTTP Basic authentication using the per-customer API key as the username and a dummy character like X as the password. OAuth2 is not supported for the public API.",
    "new": "Authentication to the main REST API is done via HTTP Basic authentication, using the personal API key as the username and any value (e.g., 'X') as the password. API keys are available to agents on all paid plans. OAuth 2.0 is not supported for authenticating calls to the Freshdesk public API; its documented use is for SSO and for marketplace apps to connect to other third-party services.",
    "reason": "Updated to reflect that API access is tied to paid plans and to clarify the use cases for OAuth.",
    "url": "https://community.freshworks.dev/t/how-to-use-oauth-authentication-mechanism-for-freshdesk-api/1691"
   },
   {
    "field": "access",
    "old": "self_serve_trial",
    "new": "paid_plan",
    "reason": "API access is not available in the free plan. To retain API access after the 14-day trial, a developer must subscribe to a paid plan.",
    "url": "https://www.freshworks.com/freshdesk/help/do-we-have-api-and-integration-capabilities-in-the-free-sprout-plan/"
   },
   {
    "field": "access_notes",
    "old": "Developers can sign up for a 14-day free trial to get credentials. API keys are found under Profile Settings. After the trial, a paid plan (Growth, Pro, or Enterprise) is required.",
    "new": "A 14-day free trial of the Enterprise plan is available, which includes API access. After the trial, API access is disabled unless a paid plan (Growth, Pro, or Enterprise) is purchased. A permanent 'Free Program' exists but does not include API access. API keys are found under an agent's 'Profile Settings'.",
    "reason": "Clarified that the free tier explicitly excludes API access, making a paid plan a hard requirement for persistent integration.",
    "url": "https://www.freshworks.com/freshdesk/help/do-we-have-api-and-integration-capabilities-in-the-free-sprout-plan/"
   },
   {
    "field": "sandbox",
    "old": "false",
    "new": "true",
    "reason": "A Sandbox feature exists and is available on the Enterprise plan (and thus during the 14-day free trial).",
    "url": "https://www.freshworks.com/freshdesk/pricing/"
   },
   {
    "field": "mcp_notes",
    "old": "Freshworks provides an official inbound MCP server deployed as a tenant-specific endpoint (https://<your-freshdesk-domain>/mcp).",
    "new": "Freshworks provides an official inbound MCP server deployed as a tenant-specific endpoint (https://<your-freshdesk-domain>/mcp). Authentication is via API key only; OAuth is not supported for MCP on Freshdesk.",
    "reason": "Added clarification on authentication method for MCP.",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQHvWuGlqA0awaBFVJrJ16KObNCUDrYGFyqNQhi5ChDWkW5cN19hfKzuGZc3GjDUfp_8boS0br-gYfwHDGPv4GfoYYO2_-uWa8ws_l3r-rIona8OFjq8d03rr7-TRtAxVOMUqpUD1L2uTQAR5B2zRf0QrScoThNcoZJNBRTvWdlqEwuU4fXvzXPCfiQIql9u2cr6U-fqcBUYIU3X"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "verifier_fixed",
   "auth_methods": "verifier_fixed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 5,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.6,
   "readable": 4,
   "quote_supported_rate": 0.75,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 13,
   "alive_rate": 0.5384615384615384,
   "dead_rate": 0.46153846153846156,
   "blocked_rate": 0.0,
   "official_rate": 0.6153846153846154,
   "readable": 6,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 14,
  "name": "Front",
  "category": "Support and Helpdesk",
  "hint": "front.com",
  "subcategory": "Helpdesk / ticketing",
  "one_liner": "An all-in-one customer communication and support platform featuring email management, shared inboxes, and an AI platform.",
  "auth_methods": [
   "oauth2",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Front supports the OAuth 2.0 Authorization Code grant type with PKCE. API tokens (a form of Bearer token) are available for private or server-to-server use.",
  "access": "paid_plan",
  "access_notes": "A free developer account is available for anyone to sign up and provides a sandbox environment with API access for building and testing, limited to 3 teammates. However, to use the API in a live production environment, a paid plan is necessary.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Core API covers accounts, custom fields, analytics, channels, drafts, messages, comments, attachments, rules, tags, teammates, and inboxes.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Front hosts an official MCP server at mcp.frontapp.com/mcp using an OAuth-authenticated endpoint.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "While Front provides a free developer sandbox and standard authentication methods, using the API in a production environment requires a paid subscription, which is a point of friction.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://front.com/pricing",
    "quote": "...customer service all-in-one support platform email management collaborative shared inboxes client communication personalized service at scale ai platform..."
   },
   {
    "claim": "api",
    "url": "https://dev.frontapp.com/reference/introduction",
    "quote": "...here is front's core api, a backend api that gives comprehensive control over all entities in front from contacts to comments."
   },
   {
    "claim": "auth",
    "url": "https://dev.frontapp.com/reference/introduction",
    "quote": "The Core API uses Bearer tokens to authenticate its user... There are two ways to get a Bearer token — through API tokens in your settings or through an OAuth implementation."
   },
   {
    "claim": "auth",
    "url": "https://dev.frontapp.com/docs/authentication",
    "quote": "We require that public integrations use OAuth unless there is a reason they cannot. OAuth integrations are part of our application framework and can be easily installed by customers using the Front App Store..."
   },
   {
    "claim": "auth",
    "url": "https://dev.frontapp.com/docs/oauth",
    "quote": "Front's OAuth implementation only supports the authorization code grant type..."
   },
   {
    "claim": "access",
    "url": "https://dev.frontapp.com/docs/partnering-with-front",
    "quote": "If you don't already have an account, you'll want to sign up for a free development account... a developer account is recommended if you don't want to test on production data or if you are not already a paying customer."
   },
   {
    "claim": "access",
    "url": "https://dev.frontapp.com/docs/partnering-with-front",
    "quote": "You can create a developer account by signing up here. You'll get access to a free developer environment that will provide everything you need to begin building with our APIs. Developer accounts are limited to 3 teammates..."
   },
   {
    "claim": "access",
    "url": "https://dev.frontapp.com/docs/partnering-with-front",
    "quote": "This page is focused on publishing apps on our App Store. If you're just looking to build an integration for your own team but don't want to publish the integration publicly, check out our APIs overview."
   },
   {
    "claim": "api",
    "url": "https://dev.frontapp.com/reference/introduction",
    "quote": "The API is designed to communicate with your server using JSON. All responses coming from the API will send data in a valid JSON object."
   },
   {
    "claim": "api",
    "url": "https://dev.frontapp.com/docs/partnering-with-front",
    "quote": "You can view the Core API spec file on GitHub."
   },
   {
    "claim": "api",
    "url": "https://dev.frontapp.com/docs/partnering-with-front",
    "quote": "This repo provides Front Platform API schemas for public consumption. The API schemas conform to the OpenAPI specification."
   },
   {
    "claim": "api",
    "url": "https://dev.frontapp.com/docs/partnering-with-front",
    "quote": "Front offers two methods for configuring webhooks: By adding a webhook feature to an app (application webhooks) By setting up a webhook through rules (rule webhooks)"
   },
   {
    "claim": "api",
    "url": "https://dev.frontapp.com/docs/partnering-with-front",
    "quote": "The developer account will provide you with an environment that does not include production data so it will be safer to test in."
   },
   {
    "claim": "mcp",
    "url": "https://dev.frontapp.com/docs/mcp-server",
    "quote": "Front's MCP server ( mcp.frontapp.com/mcp ) lets AI agents act on Front conversation data using a single OAuth-authenticated endpoint. Agents authenticate as a specific Front user, with permissions matching that user's role (user-scoped authorization)."
   },
   {
    "claim": "mcp",
    "url": "https://dev.frontapp.com/docs/mcp-server",
    "quote": "Open beta. This feature is in open beta. Everyone has access, but bug fixes, improvements, and other details are still being worked on."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "api_key",
    "bearer_token"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\", \"api_key\", \"bearer_token\"]",
    "new": "[\"oauth2\", \"bearer_token\"]",
    "reason": "The documentation clarifies that the API uses Bearer Tokens for authentication, which can be obtained via OAuth 2.0 or static API tokens. Therefore, `api_key` and `bearer_token` are not distinct methods; `api_key` is a type of `bearer_token`.",
    "url": "https://dev.frontapp.com/reference/introduction"
   },
   {
    "field": "auth_notes",
    "old": "OAuth 2.0 Authorization Code grant type with PKCE for public apps; API tokens/Bearer tokens for private use.",
    "new": "Front supports the OAuth 2.0 Authorization Code grant type with PKCE. API tokens (a form of Bearer token) are available for private or server-to-server use.",
    "reason": "The original notes were mostly correct but missed a key detail. Front supports the OAuth 2.0 Authorization Code grant type, and a community forum post from a Front developer confirms it also supports PKCE. API tokens (a form of Bearer token) are available for private or server-to-server use.",
    "url": "https://dev.frontapp.com/docs/oauth"
   },
   {
    "field": "access",
    "old": "self_serve_free",
    "new": "paid_plan",
    "reason": "While Front provides a free, self-serve developer account that acts as a sandbox, API access in a production environment requires a paid plan. The free developer account is for building and testing, not for running a live integration for free.",
    "url": "https://dev.frontapp.com/docs/partnering-with-front"
   },
   {
    "field": "access_notes",
    "old": "Developers can sign up for a free development account on Front's developer portal, which provides a sandbox environment limited to 3 teammates.",
    "new": "A free developer account is available for anyone to sign up and provides a sandbox environment with API access for building and testing, limited to 3 teammates. However, to use the API in a live production environment, a paid plan is necessary.",
    "reason": "The original notes were based on fabricated quotes. A free developer account is available for anyone to sign up and provides a sandbox environment with API access for building and testing. This account is limited to 3 teammates. However, to use the API in a live production environment, a paid plan is necessary. App review is only required for listing in the official marketplace, not for creating a private integration for your own team or for another customer.",
    "url": "https://dev.frontapp.com/docs/partnering-with-front"
   },
   {
    "field": "verdict",
    "old": "ready_now",
    "new": "ready_with_friction",
    "reason": "Because API access for a production use case requires a paid plan, this introduces a hurdle.",
    "url": "https://dev.frontapp.com/docs/partnering-with-front"
   },
   {
    "field": "blocker",
    "old": "none",
    "new": "paid_plan",
    "reason": "The blocker is not `none`. The need for a paid plan is the primary blocker.",
    "url": "https://dev.frontapp.com/docs/partnering-with-front"
   },
   {
    "field": "blocker_notes",
    "old": "Front provides a free self-serve developer sandbox, standard OAuth 2.0, an official OpenAPI spec, and an official MCP server.",
    "new": "While Front provides a free developer sandbox and standard authentication methods, using the API in a production environment requires a paid subscription, which is a point of friction.",
    "reason": "The original notes were inaccurate. While Front provides a free developer sandbox and standard authentication methods, using the API in a production environment requires a paid subscription, which is a point of friction.",
    "url": "https://dev.frontapp.com/docs/partnering-with-front"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 13,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 13,
   "quote_supported_rate": 0.6923076923076923,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 15,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 15,
   "quote_supported_rate": 0.6,
   "lint_issues": 0,
   "flag_count": 1
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 15,
  "name": "Pylon",
  "category": "Support and Helpdesk",
  "hint": "usepylon.com",
  "subcategory": "Helpdesk / ticketing",
  "one_liner": "An AI-native B2B customer support platform that unifies conversations across Slack, Teams, email, and other channels into one inbox.",
  "auth_methods": [
   "bearer_token",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Pylon has two distinct auth models. The REST API uses organization-wide static Bearer tokens generated by an admin from the dashboard. The official MCP server, however, uses a per-user OAuth 2.0 flow (via AuthKit) for third-party AI tools to connect on behalf of a user.",
  "access": "paid_plan",
  "access_notes": "API access is gated behind the paid Professional plan, which costs approximately $89/seat/month (billed annually) or $118/seat/month (billed monthly), with a 3-seat minimum. There is no free tier with API access. Some sources mention a 14-day free trial, but it's unclear if it includes API access. The main website CTA is 'book a demo,' suggesting a sales-assisted process even for standard plans.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Covers accounts, activities, attachments, contacts, custom fields, issues, knowledge base, messages, surveys, tags, tasks, and users via GitBook interactive reference.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Pylon hosts an official managed MCP server at https://mcp.usepylon.com. It uses OAuth 2.0 (via AuthKit) for per-user authentication and allows AI tools to read and update data like issues, accounts, and contacts.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "Requires a manual per-customer admin setup with organization-wide Bearer tokens for the REST API, and testing requires a paid Professional plan with no free sandbox.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.usepylon.com/schedule-demo",
    "quote": "...the agentic support platform ai & agents assist agent background agent slack agent support agent skills platform analytics & reporting account intelligence knowledge base workforce management surveys (nps & csat) ticketing channel & integrations slack microsoft teams discord telegram whatsapp phone & sms chat widget email"
   },
   {
    "claim": "auth",
    "url": "https://docs.usepylon.com/pylon-docs/developer/api/authentication",
    "quote": "The pylon api uses bearer authentication. This means you’ll need to pass your api token in the header of your request: copy authorization: bearer <token> generate an api token in the pylon dashboard ."
   },
   {
    "claim": "auth",
    "url": "https://docs.usepylon.com/pylon-docs/developer/mcp",
    "quote": "Auth: OAuth 2.0 (AuthKit). AI tools authenticate with your Pylon account via OAuth"
   },
   {
    "claim": "access",
    "url": "https://docs.usepylon.com/pylon-docs/developer/api/api-reference",
    "quote": "Pylon API access requires an Admin to generate an API token from a Pylon workspace; there is no self-serve developer sandbox."
   },
   {
    "claim": "mcp",
    "url": "https://docs.usepylon.com/pylon-docs/developer/mcp",
    "quote": "The Pylon MCP Server exposes Pylon data to AI tools that support the Model Context Protocol... Server URL: https://mcp.usepylon.com. Auth: OAuth 2.0 (AuthKit)."
   }
  ],
  "confidence": 0.95,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "bearer_token",
   "auth_methods": [
    "bearer_token"
   ],
   "access": "partner_or_sales",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "paid_plan"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"bearer_token\"]",
    "new": "[\"bearer_token\", \"oauth2\"]",
    "reason": "The first-pass record missed that Pylon offers two distinct authentication paths for two different surfaces. The REST API uses Bearer Tokens, but the official Pylon MCP Server uses OAuth 2.0.",
    "url": "https://docs.usepylon.com/pylon-docs/developer/mcp"
   },
   {
    "field": "primary_auth",
    "old": "bearer_token",
    "new": "oauth2",
    "reason": "According to the strict definition, primary_auth should be what a multi-tenant integration platform would use, preferring OAuth 2.0 if available. Pylon offers a public OAuth 2.0 flow specifically for its MCP server, which provides per-user identity and is the modern, preferred method for third-party tools.",
    "url": "https://docs.usepylon.com/pylon-docs/developer/mcp"
   },
   {
    "field": "auth_notes",
    "old": "The public REST API uses static Bearer tokens generated from the admin dashboard; no public OAuth 2.0 flow is available.",
    "new": "Pylon has two distinct auth models. The REST API uses organization-wide static Bearer tokens generated by an admin from the dashboard. The official MCP server, however, uses a per-user OAuth 2.0 flow (via AuthKit) for third-party AI tools to connect on behalf of a user.",
    "reason": "The original note was incomplete and misleading. It correctly identified the Bearer Token for the REST API but incorrectly stated that no public OAuth 2.0 flow is available. The official documentation clearly describes a public OAuth 2.0 flow for the MCP server.",
    "url": "https://docs.usepylon.com/pylon-docs/developer/mcp"
   },
   {
    "field": "access",
    "old": "partner_or_sales",
    "new": "paid_plan",
    "reason": "The first-pass record incorrectly listed partner_or_sales. While the website pushes users to 'book a demo,' multiple third-party reviews and pricing pages show that API access is a feature of a specific, publicly priced plan (Professional) that a user can purchase, albeit with a seat minimum. It does not require a partnership or an enterprise-only sales contract.",
    "url": "https://www.g2.com/products/pylon/pricing"
   },
   {
    "field": "access_notes",
    "old": "Requires booking a demo or contacting sales to get an account. API access is gated behind the paid Professional plan ($89/seat/month with a 3-seat minimum).",
    "new": "API access is gated behind the paid Professional plan, which costs approximately $89/seat/month (billed annually) or $118/seat/month (billed monthly), with a 3-seat minimum. There is no free tier with API access. Some sources mention a 14-day free trial, but it's unclear if it includes API access. The main website CTA is 'book a demo,' suggesting a sales-assisted process even for standard plans.",
    "reason": "The original note had the correct pricing but the wrong access classification. The pricing information ($89/seat/month, 3-seat minimum) is confirmed by multiple recent third-party sources. The note about requiring a demo is also accurate context. The original evidence URL was fabricated; the correct information comes from third-party pricing breakdowns.",
    "url": "https://www.g2.com/products/pylon/pricing"
   },
   {
    "field": "mcp_notes",
    "old": "Official managed MCP server at https://mcp.usepylon.com using OAuth 2.0 (AuthKit).",
    "new": "Pylon hosts an official managed MCP server at https://mcp.usepylon.com. It uses OAuth 2.0 (via AuthKit) for per-user authentication and allows AI tools to read and update data like issues, accounts, and contacts.",
    "reason": "The original note was based on a fabricated quote but happened to be correct. The official documentation confirms the server URL and the use of OAuth 2.0.",
    "url": "https://docs.usepylon.com/pylon-docs/developer/mcp"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "verifier_fixed",
   "auth_methods": "verifier_fixed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 4,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 4,
   "quote_supported_rate": 0.5,
   "lint_issues": 1,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 5,
   "alive_rate": 0.6,
   "dead_rate": 0.4,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 3,
   "quote_supported_rate": 0.6666666666666666,
   "lint_issues": 1,
   "flag_count": 4
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 16,
  "name": "LiveAgent",
  "category": "Support and Helpdesk",
  "hint": "liveagent.com",
  "subcategory": "Helpdesk / ticketing",
  "one_liner": "An all-in-one customer support and helpdesk platform unifying email ticketing, live chat, voice call center, and social media.",
  "auth_methods": [
   "api_key",
   "bearer_token"
  ],
  "primary_auth": "api_key",
  "auth_notes": "API v3 uses an apikey header, while API v1 uses an apikey query parameter. There is no public OAuth2 application registration for multi-tenant integrations.",
  "access": "self_serve_trial",
  "access_notes": "Anyone can sign up for a 30-day free trial without a credit card to get API credentials. After expiration, a paid plan starting at $15/agent/month is required.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Broad coverage across core helpdesk objects including agents, tickets, conversations, companies, departments, and knowledge base articles via API v1 and v3.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "LiveAgent features a built-in native MCP server that supports authentication via profile-generated bearer tokens.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "Requires a paid plan after the 30-day free trial expires, and lacks a public OAuth2 framework for multi-tenant apps, requiring manual per-customer API key configuration.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://support.liveagent.com/741982-API-key",
    "quote": "liveagent is an integrated customer support software , ticketing system , live chat , social helpdesk and voice helpdesk ."
   },
   {
    "claim": "auth",
    "url": "https://support.liveagent.com/741982-API-key",
    "quote": "api v3 use your api key has to be set in header of your requests: curl --location --request get 'https://your.ladesk.com/api/v3/tickets' \\ --header 'apikey: 0865evv883j6auflvlt7zrwgqn32qo74'"
   },
   {
    "claim": "auth",
    "url": "https://support.liveagent.com/840770-Complete-API-reference",
    "quote": "curl_setopt ( $ch , curlopt_url , \"http :// example . com / api / agents /[ agentidentifier ]? &apikey = value\" ) ;"
   },
   {
    "claim": "access",
    "url": "https://support.liveagent.com/567924-Documentation?r=1",
    "quote": "consider registering a new free trial account for testing purposes, before using api with your live account."
   },
   {
    "claim": "access",
    "url": "https://www.liveagent.com/",
    "quote": "LiveAgent comes with a 30‑day free trial that requires no credit card, letting you test all features before committing to a paid plan. How much does LiveAgent cost? LiveAgent pricing starts at $15 per agent/month (billed annually)"
   },
   {
    "claim": "access",
    "url": "https://support.liveagent.com/741982-API-key",
    "quote": "while logged in as an admin navigate to configuration> system> api which loads the api v3 section where you find existing api keys or add a new one."
   },
   {
    "claim": "api",
    "url": "https://support.liveagent.com/741982-API-key",
    "quote": "home > technical support > liveagent api > rest api > api key"
   },
   {
    "claim": "api",
    "url": "https://support.liveagent.com/567924-Documentation?r=1",
    "quote": "choose the object (agents, tickets, .) & method (get, post, delete)"
   },
   {
    "claim": "api",
    "url": "https://support.liveagent.com/567924-Documentation?r=1",
    "quote": "swagger api descriptor"
   },
   {
    "claim": "api",
    "url": "https://www.liveagent.com/",
    "quote": "In LiveAgent, you can create a webhook to receive notifications on your channel by either building a custom integration using the API or by setting up an automation rule with the \"HTTP request\" action."
   },
   {
    "claim": "mcp",
    "url": "https://support.liveagent.com/647358-MCP-Integration-for-Agents",
    "quote": "liveagent exposes a built-in mcp server (model context protocol) that lets you connect external ai tools — such as claude desktop, cursor, claude.ai, flowhunt , or any other mcp-compatible client — directly to your liveagent account."
   },
   {
    "claim": "mcp",
    "url": "https://support.liveagent.com/647358-MCP-Integration-for-Agents",
    "quote": "There are two ways to authenticate your MCP client: - Bearer token — generate an MCP access token in your profile"
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "api_key"
   ],
   "access": "self_serve_trial",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "paid_plan"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"api_key\"]",
    "new": "[\"api_key\", \"bearer_token\"]",
    "reason": "The MCP server integration uses a bearer_token in addition to the api_key for the REST API.",
    "url": "https://support.liveagent.com/647358-MCP-Integration-for-Agents"
   },
   {
    "field": "mcp_notes",
    "old": "LiveAgent features a built-in native MCP server that supports profile-generated bearer tokens or an OAuth 2.1 authorization flow. Documentation at https://support.liveagent.com/647358-MCP-Integration-for-Agents",
    "new": "LiveAgent features a built-in native MCP server that supports authentication via profile-generated bearer tokens.",
    "reason": "The claim about OAuth 2.1 authorization flow was not found on the cited page and appears to be a fabrication. Only bearer tokens are confirmed for MCP authentication.",
    "url": "https://support.liveagent.com/647358-MCP-Integration-for-Agents"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 13,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 13,
   "quote_supported_rate": 0.46153846153846156,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 12,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 12,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 1
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 17,
  "name": "Plain",
  "category": "Support and Helpdesk",
  "hint": "plain.com",
  "subcategory": "Helpdesk / ticketing",
  "one_liner": "API-first customer support platform for B2B SaaS, unifying channels into a single queue.",
  "auth_methods": [
   "api_key",
   "oauth2"
  ],
  "primary_auth": "api_key",
  "auth_notes": "The core GraphQL API uses fine-grained API keys belonging to 'Machine Users', passed as a bearer token in the Authorization header. [53] An official, separate MCP (Model Context Protocol) server for AI agent integration uses OAuth 2.0 with PKCE. [58]",
  "access": "self_serve_trial",
  "access_notes": "Developers can sign up for a 7-day free trial without a credit card and get API credentials immediately. [42, 47] After the trial, a paid plan is required for API access as there is no permanent free tier. [41]",
  "api_styles": [
   "graphql"
  ],
  "api_breadth": "broad",
  "api_notes": "Plain provides a GraphQL API with full API-UI parity; the company states its own app is built on the same public API. [52] It covers the entire data model, including threads, customers, and the help center. The endpoint is https://core-api.uk.plain.com/graphql/v1. [52]",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Plain publishes and hosts an official remote MCP server for AI agent integration. [48] It uses OAuth 2.0 for authentication, allowing agents to connect on behalf of a user. [58]",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "The primary friction is the business model: API access requires a paid plan after a 7-day trial expires. Additionally, the core GraphQL API does not offer a standard multi-tenant OAuth 2.0 flow, requiring each integration to be configured with a manually generated API key.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.plain.com/docs/what-is-plain",
    "quote": "Plain is a support platform for B2B teams, built API-first so you can change how it works rather than work around it. Customer conversations arrive from email, Slack, Microsoft Teams, chat, Discord, or your own product, and become threads in a single queue that your team and your AI agents both work from."
   },
   {
    "claim": "general",
    "url": "https://www.plain.com/blog/api-first-infrastructure-wins-in-an-agent-driven-world",
    "quote": "Plain is the API-first customer infrastructure platform for B2B SaaS. It was built from the ground up with the API as the primary interface — the same GraphQL API that Plain uses internally is the one customers build on."
   },
   {
    "claim": "auth",
    "url": "https://www.plain.com/docs/graphql/authentication",
    "quote": "Create a machine user and an API key, and scope it with fine-grained permissions."
   },
   {
    "claim": "auth",
    "url": "https://www.plain.com/docs/graphql/authentication",
    "quote": "Now that you have an API key, pass it on any API call as a header: Authorization: Bearer plainApiKey_xxx"
   },
   {
    "claim": "auth",
    "url": "https://pypi.org/project/plain.oauthserver/",
    "quote": "The driving use case is an end-user-facing MCP server: a customer adds your app as a custom connector in Claude, signs in, and the connector acts on their behalf. That flow needs OAuth — there is no bearer-token-paste path in the connector UI."
   },
   {
    "claim": "access",
    "url": "https://www.plain.com/pricing",
    "quote": "7 day free trial · no credit card required"
   },
   {
    "claim": "access",
    "url": "https://www.plain.com/pricing",
    "quote": "Foundation get support right from day one $35 /month 1 seat"
   },
   {
    "claim": "api",
    "url": "https://www.plain.com/docs/graphql/introduction",
    "quote": "Plain itself is built on this same GraphQL API. This means that there are no limitations in what can be done via the API vs the UI."
   },
   {
    "claim": "api",
    "url": "https://www.plain.com/docs/graphql/introduction",
    "quote": "API URL: https://core-api.uk.plain.com/graphql/v1"
   },
   {
    "claim": "api",
    "url": "https://www.plain.com/docs/webhooks/introduction",
    "quote": "Webhooks allow you to get notified about events happening in your Plain workspace."
   },
   {
    "claim": "mcp",
    "url": "https://www.plain.com/blog/why-api-first-infrastructure-wins-in-an-agent-driven-world",
    "quote": "Native MCP server — 30+ tools make Plain addressable directly by Claude, Cursor, ChatGPT, and any MCP-compatible AI assistant."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "api_key",
    "oauth2"
   ],
   "access": "self_serve_trial",
   "api_styles": [
    "graphql"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "blocker",
    "old": "app_review_or_approval",
    "new": "paid_plan",
    "reason": "The original blocker was incorrect; there is no app review or approval process. The primary blocker is the requirement of a paid plan after the free trial expires.",
    "url": "https://www.plain.com/pricing"
   }
  ],
  "human_reviewed": true,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "confirmed",
   "access": "confirmed+checker_ok",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed+checker_ok",
   "verdict": "confirmed+checker_ok",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 16,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.9375,
   "readable": 16,
   "quote_supported_rate": 0.375,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 11,
   "alive_rate": 0.6363636363636364,
   "dead_rate": 0.36363636363636365,
   "blocked_rate": 0.0,
   "official_rate": 0.9090909090909091,
   "readable": 7,
   "quote_supported_rate": 0.8571428571428571,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 18,
  "name": "Help Scout",
  "category": "Support and Helpdesk",
  "hint": "helpscout.com",
  "subcategory": "Helpdesk / ticketing",
  "one_liner": "Help Scout is a customer support and shared inbox platform for email-first support teams.",
  "auth_methods": [
   "oauth2",
   "basic"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Mailbox API v2 uses OAuth 2.0 (Authorization Code for user-scoped, Client Credentials for server-to-server). Docs API v1 uses static API keys via HTTP Basic Authentication (key in username field).",
  "access": "paid_plan",
  "access_notes": "API access is included on Standard, Plus, and Pro paid plans. A 15-day free trial provides full feature access, including API. Free plan excludes API access. Mailbox API credentials (App ID, App Secret) are obtained by creating an app under 'My Apps'. Docs API keys are generated in user profile security settings.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Help Scout has two distinct APIs: Mailbox API v2 (conversations, customers, mailboxes, tags, workflows, threads, attachments, webhooks) and Docs API v1 (articles, categories, collections, sites).",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Help Scout hosts an official remote MCP server at https://mcp.helpscout.net/mcp, which supports OAuth authentication and dynamic client registration.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "API access requires a paid plan (Standard tier or higher) after a 15-day free trial. Additionally, API access is fragmented, with the Mailbox API using OAuth 2.0 and the Docs API using HTTP Basic Auth with a static API key, requiring management of two separate authentication flows.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.gorgias.com/blog/helpscout-pricing",
    "quote": "Help Scout is a shared inbox platform built for email-first support teams. It uses a Gmail-like interface instead of numbered tickets, built around three core components: Inbox for shared email. Docs for knowledge base, and. Beacon for an embeddable help widget."
   },
   {
    "claim": "auth",
    "url": "https://developer.helpscout.com/mailbox-api/",
    "quote": "This is an https-only api, with oauth 2 authentication and cors support running at: https://api.helpscout.net/v2"
   },
   {
    "claim": "auth",
    "url": "https://www.clonepartner.com/blog/helpscout-vs-podium",
    "quote": "Mailbox API v2 — Conversations, customers, mailboxes, tags, workflows, threads, attachments. OAuth 2.0 (client credentials for server-to-server; authorization code for user-scoped)."
   },
   {
    "claim": "auth",
    "url": "https://developer.helpscout.com/docs-api/#!/authentication",
    "quote": "Authentication is based on api keys. ... The api key is passed via http basic authentication and goes in the username field. A dummy password, such as x, goes in the password field."
   },
   {
    "claim": "access",
    "url": "https://helpscout.com/docs/mcp-connector",
    "quote": "Your Help Scout account must have API access, which is included on the Standard, Plus, and Pro plans."
   },
   {
    "claim": "access",
    "url": "https://www.tidio.com/blog/helpscout-pricing/",
    "quote": "It's also important to note that Help Scout offers a 15-day free trial with access to all features, allowing teams to evaluate the platform before committing."
   },
   {
    "claim": "access",
    "url": "https://github.com/drewburchfield/help-scout-mcp-server",
    "quote": "Go to Help Scout > My Apps > Create Private App. Copy your App ID and App Secret."
   },
   {
    "claim": "access",
    "url": "https://developer.helpscout.com/docs-api/#!/authentication",
    "quote": "To generate, view, or regenerate the api key, click your avatar in the top right of your account, then click your profile . next, click security and access in the menu on the left. your api key is listed under the docs api section."
   },
   {
    "claim": "api",
    "url": "https://developer.helpscout.com/mailbox-api/",
    "quote": "conversations attachments delete attachment download attachment file get attachment data upload attachment custom fields update custom fields snooze delete snooze update snooze tags update tags threads schedule delete thread schedule publish thread schedule update thread schedule create chat thread create c ... er list system users tags get tag by id list tags teams list team members list teams update team members users conversation reassignment get conversation reassignment configuration update conversation reassignment configuration status get user status list users statuses set user status create user delete user get resource owner get user list users webhooks create webhook delete webhook get webhook list webhooks update webhook workflows list workflows run manual workflows update workflow status"
   },
   {
    "claim": "api",
    "url": "https://developer.helpscout.com/",
    "quote": "webhooks - get notified about activity in help scout"
   },
   {
    "claim": "api",
    "url": "https://www.intercom.com/blog/helpscout-vs-intercom",
    "quote": "Help Scout offers testing only through its live environment, with no sandbox or simulation capability."
   },
   {
    "claim": "mcp",
    "url": "https://helpscout.com/docs/mcp-connector",
    "quote": "Set the remote MCP server URL to https://mcp.helpscout.net/mcp ."
   },
   {
    "claim": "mcp",
    "url": "https://usecarly.com/chatgpt-helpscout-integration/",
    "quote": "Help Scout runs its own official MCP server, which you add to ChatGPT as a custom connector rather than a one-click app. It answers at https://mcp.helpscout.net/mcp and authenticates over OAuth"
   },
   {
    "claim": "verdict",
    "url": "https://helpscout.com/docs/mcp-connector",
    "quote": "Your Help Scout account must have API access, which is included on the Standard, Plus, and Pro plans."
   },
   {
    "claim": "verdict",
    "url": "https://developer.helpscout.com/mailbox-api/",
    "quote": "This is an https-only api, with oauth 2 authentication and cors support running at: https://api.helpscout.net/v2"
   },
   {
    "claim": "verdict",
    "url": "https://developer.helpscout.com/docs-api/#!/authentication",
    "quote": "Authentication is based on api keys. ... The api key is passed via http basic authentication and goes in the username field. A dummy password, such as x, goes in the password field."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "basic"
   ],
   "access": "self_serve_trial",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "paid_plan"
  },
  "verifier_changes": [
   {
    "field": "access",
    "old": "self_serve_trial",
    "new": "paid_plan",
    "reason": "While a 15-day free trial is available, API access is explicitly listed as a feature of the paid 'Standard,' 'Plus,' and 'Pro' plans. The free plan does not include API access. Therefore, persistent API access requires a paid subscription.",
    "url": "https://helpscout.com/docs/mcp-connector"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 16,
   "alive_rate": 0.5,
   "dead_rate": 0.5,
   "blocked_rate": 0.0,
   "official_rate": 0.625,
   "readable": 8,
   "quote_supported_rate": 1.0,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 16,
   "alive_rate": 0.5,
   "dead_rate": 0.5,
   "blocked_rate": 0.0,
   "official_rate": 0.625,
   "readable": 8,
   "quote_supported_rate": 1.0,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 19,
  "name": "Gorgias",
  "category": "Support and Helpdesk",
  "hint": "gorgias.com",
  "subcategory": "Helpdesk / ticketing",
  "one_liner": "An e-commerce customer support and helpdesk platform that unifies customer conversations into a single centralized inbox.",
  "auth_methods": [
   "basic",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth2 is required for all public apps; HTTP Basic Auth (username:api_key) is used for private apps.",
  "access": "self_serve_trial",
  "access_notes": "Gorgias offers a 7-day free trial where developers can self-serve API keys for private app development. To build a public, multi-tenant app, developers must create a trial account, register on the developer portal, create a draft app, and then email the partnerships team to convert the trial into a non-expiring sandbox account. Final submission and review are required to be listed in the app store.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "The REST API covers accounts, settings, customers, tickets, messages, and custom fields across approximately 108 endpoints.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "community_only",
  "mcp_notes": "Community MCP server available at https://github.com/mattcoatsworth/Gorgias-MCP-Server",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "Obtaining a sandbox account requires manual approval via a draft app submission, and deploying a multi-tenant integration requires a formal public app review process.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.gorgias.com/pricing",
    "quote": "one inbox for every customer conversation"
   },
   {
    "claim": "api",
    "url": "https://developers.gorgias.com/reference/introduction",
    "quote": "The gorgias api is structured with rest in mind. our api has predictable resource-oriented urls, accepts json-encoded request bodies, returns json-encoded responses, and uses standard http response codes, authentication, and verbs."
   },
   {
    "claim": "auth",
    "url": "https://developers.gorgias.com/docs/access-tokens-api-keys",
    "quote": "please remember that the api key authentication method can be used only for private apps ."
   },
   {
    "claim": "auth",
    "url": "https://developers.gorgias.com/docs/oauth2-bearer-token",
    "quote": "please remember that oauth2 is required for all public apps to be approved."
   },
   {
    "claim": "access",
    "url": "https://www.gorgias.com/pricing",
    "quote": "7-day free trial"
   },
   {
    "claim": "access",
    "url": "https://developers.gorgias.com/docs/access-tokens-api-keys",
    "quote": "1. register on developer portal & get gorgias sandbox account 2. create a draft app submission form 3. set up oauth2 4. build and test your app 5. submit app for review"
   },
   {
    "claim": "mcp",
    "url": "https://github.com/mattcoatsworth/Gorgias-MCP-Server",
    "quote": "An MCP server for interacting with the Gorgias helpdesk API. This server provides tools and resources for managing tickets, customers, and other Gorgias functionality."
   },
   {
    "claim": "api",
    "url": "https://developers.gorgias.com/reference/introduction",
    "quote": "for ai agents: visit https://developers.gorgias.com/llms.txt for an index of all pages formatted in markdown and endpoints in openapi."
   },
   {
    "claim": "api",
    "url": "https://developers.gorgias.com/docs/http-integrations",
    "quote": "HTTP Integrations allow you to send an HTTP request to a specified URL when a trigger fires."
   },
   {
    "claim": "access",
    "url": "https://developers.gorgias.com/docs/access-tokens-api-keys",
    "quote": "Get Gorgias Sandbox to test your app: create a trial account and reach out to techpartners@gorgias.com to convert it into a Sandbox account."
   }
  ],
  "confidence": 0.95,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "basic",
    "oauth2"
   ],
   "access": "approval_required",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "access",
    "old": "approval_required",
    "new": "self_serve_trial",
    "reason": "Initial API credentials for a private app can be obtained on a self-serve trial.",
    "url": "https://www.gorgias.com/pricing"
   },
   {
    "field": "access_notes",
    "old": "Developers must register on the developer portal, create a trial account, and submit a draft app form to request a sandbox environment.",
    "new": "Gorgias offers a 7-day free trial where developers can self-serve API keys for private app development. To build a public, multi-tenant app, developers must create a trial account, register on the developer portal, create a draft app, and then email the partnerships team to convert the trial into a non-expiring sandbox account. Final submission and review are required to be listed in the app store.",
    "reason": "The original notes conflated the process for private and public apps. Self-serve API access is available instantly via a free trial for private apps. The multi-step approval process is for developers intending to build and list a public application.",
    "url": "https://www.gorgias.com/pricing"
   },
   {
    "field": "blocker",
    "old": "app_review_or_approval",
    "new": "trial_expiry",
    "reason": "The primary blocker for a developer starting today is not an immediate approval gate, but the 7-day time limit on the free trial. While app approval is a later step for public apps, the most immediate friction is the trial's expiration, which forces a developer to either purchase a plan or seek a sandbox conversion.",
    "url": "https://www.gorgias.com/pricing"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 6,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8333333333333334,
   "readable": 6,
   "quote_supported_rate": 0.8333333333333334,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 10,
   "alive_rate": 0.9,
   "dead_rate": 0.1,
   "blocked_rate": 0.0,
   "official_rate": 0.9,
   "readable": 9,
   "quote_supported_rate": 0.6666666666666666,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 20,
  "name": "Gladly",
  "category": "Support and Helpdesk",
  "hint": "gladly.com",
  "subcategory": "Helpdesk / customer service",
  "one_liner": "Consolidates customer interactions across channels into a single lifelong customer profile and continuous conversation timeline.",
  "auth_methods": [
   "basic",
   "api_key"
  ],
  "primary_auth": "basic",
  "auth_notes": "Gladly API uses token-based Basic Authentication where the username is the agent's login email address and the password is a generated API token.",
  "access": "self_serve_free",
  "access_notes": "A free plan is available via the Shopify App Store that includes 100 AI interactions and 1 team member seat. The main enterprise platform does not offer a public free trial and requires contacting sales for a demo and custom quote. Once an account is active, an administrator must grant a user the 'API User' permission to generate API tokens.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API accessed via the organization's custom domain. It covers over 65 distinct actions across agents, answers, conversations, customers, inboxes, tasks, teams, and topics.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "community_only",
  "mcp_notes": "Gladly does not publish an official MCP server, but third-party integration platforms like StackOne and Truto provide community/vendor-hosted MCP servers.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "A self-serve path is available through the Gladly app on the Shopify App Store, which offers a free plan to get started.",
  "evidence": [
   {
    "claim": "auth",
    "url": "https://developer.gladly.com/rest/#section/Authentication",
    "quote": "Gladly API uses token-based Basic Authentication. API tokens are associated with designated Gladly users. To create and use an API token, your user must have the API User permission... user name, password. agent email, API token. The credentials must be passed via an Authorization HTTP header."
   },
   {
    "claim": "access",
    "url": "https://apps.shopify.com/gladly",
    "quote": "Free. 100 AI interactions to test out. AI agent for chat & email... 1 team member seat."
   },
   {
    "claim": "api",
    "url": "https://developer.gladly.com/rest/",
    "quote": "Clients can access the REST API via HTTPS at your organization's Gladly domain (e.g. https://{organization}.gladly.com ). Resources follow REST semantics and utilize industry-standard HTTP verbs, response codes, and authentication schemes."
   },
   {
    "claim": "mcp",
    "url": "https://www.stackone.com/connectors/gladly/",
    "quote": "Connect your AI agent to 65 Gladly actions via MCP, A2A, or SDK... Gladly MCP Server."
   },
   {
    "claim": "auth",
    "url": "https://developer.gladly.com/docs/lookup-api",
    "quote": "exchanges JSON requests and responses authenticated and signed with secure keys."
   },
   {
    "claim": "access",
    "url": "https://developer.gladly.com/rest/#section/Authentication",
    "quote": "To allow a user to create API tokens and access the API: Log in to your Gladly instance... You'll see a permission called API User. Select it... Hit Save to give access."
   },
   {
    "claim": "api",
    "url": "https://developer.gladly.com/rest/",
    "quote": "Download OpenAPI Specification: download"
   },
   {
    "claim": "api",
    "url": "https://developer.gladly.com/rest/#tag/Webhooks",
    "quote": "List webhooks in Gladly... Create a new webhook... Update webhook... Delete a webhook..."
   },
   {
    "claim": "api",
    "url": "https://developer.gladly.com/docs/sandbox-environment",
    "quote": "We'll enable the Gladly API in a separate sandbox environment, so you can experiment freely without impacting your production environment... Your sandbox environment is accessible at https://{organization}.gladly.qa"
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "basic",
   "auth_methods": [
    "basic"
   ],
   "access": "partner_or_sales",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "needs_outreach",
   "blocker": "partnership_or_sales"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"basic\"]",
    "new": "[\"basic\", \"api_key\"]",
    "reason": "The Lookup API uses secure keys, and webhooks can use header-based token authentication, indicating more than just 'basic' auth methods are present in the ecosystem.",
    "url": "https://developer.gladly.com/docs/lookup-api"
   },
   {
    "field": "access",
    "old": "partner_or_sales",
    "new": "self_serve_free",
    "reason": "Gladly offers a free plan via the Shopify App Store, providing a self-serve path to access.",
    "url": "https://apps.shopify.com/gladly"
   },
   {
    "field": "access_notes",
    "old": "Gladly does not offer a free tier or public trial. Access requires engaging with sales, signing an annual contract, or joining their partner program. Once an account is active, an administrator must grant the 'API User' permission to generate tokens.",
    "new": "A free plan is available via the Shopify App Store that includes 100 AI interactions and 1 team member seat. The main enterprise platform does not offer a public free trial and requires contacting sales for a demo and custom quote. Once an account is active, an administrator must grant a user the 'API User' permission to generate API tokens.",
    "reason": "The original notes were incorrect as a self-serve free plan is available via the Shopify App Store.",
    "url": "https://apps.shopify.com/gladly"
   },
   {
    "field": "verdict",
    "old": "needs_outreach",
    "new": "ready_now",
    "reason": "The existence of a self-serve free plan on Shopify means a developer can get credentials without outreach.",
    "url": "https://apps.shopify.com/gladly"
   },
   {
    "field": "blocker",
    "old": "partnership_or_sales",
    "new": "none",
    "reason": "The self-serve free plan on Shopify removes the partnership/sales blocker.",
    "url": "https://apps.shopify.com/gladly"
   },
   {
    "field": "blocker_notes",
    "old": "There is no self-serve path for developers to obtain credentials or test accounts independently; access requires contacting sales or joining the partner program.",
    "new": "A self-serve path is available through the Gladly app on the Shopify App Store, which offers a free plan to get started.",
    "reason": "The original notes were incorrect as a self-serve path exists via the Shopify app.",
    "url": "https://apps.shopify.com/gladly"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 4,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.5,
   "readable": 4,
   "quote_supported_rate": 1.0,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 9,
   "alive_rate": 0.7777777777777778,
   "dead_rate": 0.2222222222222222,
   "blocked_rate": 0.0,
   "official_rate": 0.7777777777777778,
   "readable": 7,
   "quote_supported_rate": 0.7142857142857143,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 21,
  "name": "Slack",
  "category": "Communications and Messaging",
  "hint": "slack.com",
  "subcategory": "Team Collaboration",
  "one_liner": "Slack is a cloud-based team communication and collaboration platform.",
  "auth_methods": [
   "oauth2",
   "bearer_token",
   "other"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 for app installation and token exchange; OpenID Connect for user authentication; Bearer Tokens (xoxb- for bot, xoxp- for user) for API requests.",
  "access": "self_serve_trial",
  "access_notes": "The free plan is limited to 10 integrations, making it unsuitable for extensive API development. A developer sandbox can be provisioned, but it requires membership in the Slack Developer Program and a valid payment method on file, even if the sandbox itself has no direct cost. Org Admins may also need to approve sandbox creation requests. While credentials for an internal app are generated instantly, distributing an app to other workspaces (publicly or not) requires implementing the OAuth 2.0 flow. Listing an app in the official Slack Marketplace requires a lengthy manual review process.",
  "api_styles": [
   "cli_or_library"
  ],
  "api_breadth": "broad",
  "api_notes": "RPC-style Web API with hundreds of methods. The Events API provides event subscriptions. The API covers a wide range of functionalities including messaging, channels, files, canvases, lists, and administration.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Slack provides an official Model Context Protocol (MCP) server, which acts as a unified layer for AI agents to securely access Slack data and perform actions. It is not a \"plugin\" in the traditional sense but a documented part of the Slack platform for AI integration. The GitHub URL in the original record is incorrect and likely refers to a non-existent or private repository.",
  "verdict": "ready_with_friction",
  "blocker": "no_public_api",
  "blocker_notes": "The platform no longer provides an official OpenAPI specification, which is a major friction point for development. Accessing a full-featured development environment (Sandbox) requires providing a payment method. The free tier is too limited for serious API development.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://slack.com/intl/en-in/pricing",
    "quote": "channels chat and work together slack connect work with external partners meetings & video video chat with your team canvas create, edit and share docs lists manage projects in slack"
   },
   {
    "claim": "auth",
    "url": "https://docs.slack.dev/reference/methods/oauth.v2.access/",
    "quote": "Exchanges a temporary OAuth verifier code for an access token."
   },
   {
    "claim": "auth",
    "url": "https://docs.slack.dev/authentication/sign-in-with-slack/",
    "quote": "{\"keys\":[{\"e\":\"aqab\",\"n\":\"zqqzxfb677bpmkw0idkc5wkvlyqk04pwmswyjdkqmuuuu_pmzdsvxbfhu7tczinohduvvgdqjqnklpezjxnazy0dddhvjks0ji8fkxifv1kny3dkpqmmhgawnftuisxgb5clypomotaem59ghpyjk9jhbwohs14nyeyzv9nvy0ekjauyydstz589aiku5la-cepg93jnqlw8a82kftlrj1iijo2isybganr0yzr-d3b_5evp7ivu7ph2v5jceuheilsrzizp3puyvfrph659deh-uasdfoyjbicimg9itnk5_45sb_xcd_un6h5i7tgoafajn4oi4aagd3elni_k1q\",\"kty\":\"rsa\",\"kid\":\"mb2mayksn555isd0ebdhkx6nkyai9xlq8rvceb_noyy\",\"alg\":\"rs256\"}]}"
   },
   {
    "claim": "auth",
    "url": "https://hexdocs.pm/slack_open_api/0.0.3/SlackOpenApi.html",
    "quote": "export SLACK_BOT_TOKEN=\"xoxb-your-bot-token-here\""
   },
   {
    "claim": "access",
    "url": "https://docs.slack.dev/quickstart/",
    "quote": "if you don't have a slack workspace already, we recommend also setting up a developer sandbox ."
   },
   {
    "claim": "access",
    "url": "https://zenzap.co/blog/slack-pricing-guide",
    "quote": "Free Plan: $0 ... Small teams testing Slack"
   },
   {
    "claim": "access",
    "url": "https://docs.slack.dev/apps/marketplace/review-guide",
    "quote": "The review itself consists of the Slack Marketplace Team checking your app against our guidelines."
   },
   {
    "claim": "api",
    "url": "https://github.com/slackapi/slack-api-specs",
    "quote": "covers user and bot user token usage of public Web API methods"
   },
   {
    "claim": "api",
    "url": "https://docs.slack.dev/reference/",
    "quote": "slack apps can utilize a wide range of apis and platform features to accomplish their tasks. within this section contains a collection of reference guides for those features"
   },
   {
    "claim": "api",
    "url": "https://github.com/slackapi/slack-api-specs",
    "quote": "OpenAPI 2.0 spec - covers user and bot user token usage of public Web API methods"
   },
   {
    "claim": "api",
    "url": "https://docs.slack.dev/reference/",
    "quote": "browse our ensemble of events to enlighten and elucidate the comings and goings in your slack workspace."
   },
   {
    "claim": "api",
    "url": "https://docs.slack.dev/quickstart/",
    "quote": "if you don't have a slack workspace already, we recommend also setting up a developer sandbox ."
   },
   {
    "claim": "mcp",
    "url": "https://docs.slack.dev/quickstart/",
    "quote": "try using the slack mcp plugin to aid in agent-assisted development."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/slackapi/slack-mcp-plugin",
    "quote": "The Slack MCP and Skills Plugin for AI tools bundles together a set of skills that help you develop on the Slack platform with the Slack MCP Server."
   },
   {
    "claim": "verdict",
    "url": "https://docs.slack.dev/quickstart/",
    "quote": "if you don't have a slack workspace already, we recommend also setting up a developer sandbox ."
   },
   {
    "claim": "access",
    "url": "https://slack.com/pricing",
    "quote": "Free Plan: ... 10 app integrations"
   },
   {
    "claim": "access",
    "url": "https://docs.slack.dev/quickstart/developer-sandbox",
    "quote": "in order to provision a sandbox, you must either be on a paid plan already, or you must provide a valid payment method for the account."
   },
   {
    "claim": "access",
    "url": "https://docs.slack.dev/apps/marketplace/review-guide",
    "quote": "Currently, the preliminary part of the review takes up to 10 business days to receive feedback, while the functional review takes up to 10 weeks for new submissions"
   },
   {
    "claim": "api",
    "url": "https://api.slack.com/web",
    "quote": "The Web API is a collection of HTTP RPC-style methods, all with URLs in the form https://slack.com/api/METHOD_FAMILY.method. While it's not a REST API, those familiar with REST should be at home with its foundations in HTTP."
   },
   {
    "claim": "api",
    "url": "https://www.postman.com/slack/workspace/slack-api/overview",
    "quote": "The Slack API platform is extensive, with hundreds of methods covering administration, messaging, files, user management, and more. The community-generated OpenAPI spec identifies over 270 endpoints."
   },
   {
    "claim": "api",
    "url": "https://www.apimatic.io/blog/slack-api-terminated-openapi-spec/",
    "quote": "In 2024, Slack officially 'terminated' their public OpenAPI specification."
   },
   {
    "claim": "api",
    "url": "https://api.slack.com/messaging/webhooks",
    "quote": "Incoming Webhooks are a simple way to post messages from apps into Slack."
   },
   {
    "claim": "mcp",
    "url": "https://api.slack.com/automation/mcp",
    "quote": "With the Slack MCP server, your integrated apps can search channels, send messages, and perform other Slack actions through MCP clients."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token",
    "other"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "access",
    "old": "self_serve_free",
    "new": "self_serve_trial",
    "reason": "While a free plan exists, it is heavily restricted for API use, limiting developers to 10 app integrations. The primary path for serious development is the \"Developer Sandbox,\" which is an Enterprise Grid environment. To provision a sandbox, a developer must be part of the Slack Developer Program and either be on a paid plan already or provide a valid payment method. This introduces friction beyond a simple, no-strings-attached free tier.",
    "url": "https://slack.com/pricing"
   },
   {
    "field": "access_notes",
    "old": "Any developer can sign up for a free Slack account or request a dedicated developer sandbox at no cost. Credentials (Client ID and Client Secret) are obtained instantly by creating an app via the Slack App Management dashboard. Public app listing requires manual review.",
    "new": "The free plan is limited to 10 integrations, making it unsuitable for extensive API development. A developer sandbox can be provisioned, but it requires membership in the Slack Developer Program and a valid payment method on file, even if the sandbox itself has no direct cost. Org Admins may also need to approve sandbox creation requests. While credentials for an internal app are generated instantly, distributing an app to other workspaces (publicly or not) requires implementing the OAuth 2.0 flow. Listing an app in the official Slack Marketplace requires a lengthy manual review process.",
    "reason": "The original notes are factually incorrect regarding self-serve access and the OpenAPI specification.",
    "url": "https://slack.com/pricing"
   },
   {
    "field": "api_styles",
    "old": "[\"rest\"]",
    "new": "[\"cli_or_library\"]",
    "reason": "Slack's own documentation explicitly states its Web API is not REST. It is an RPC-style API over HTTP.",
    "url": "https://api.slack.com/web"
   },
   {
    "field": "api_notes",
    "old": "REST-like Web API with hundreds of endpoints across methods, events, and scopes, including messaging, channels, files, canvases, lists, and administration.",
    "new": "RPC-style Web API with hundreds of methods. The Events API provides event subscriptions. The API covers a wide range of functionalities including messaging, channels, files, canvases, lists, and administration.",
    "reason": "The API is RPC-style, not REST-like. The breadth of features mentioned is correct and supported by documentation on the Web API, Events API, and MCP server capabilities.",
    "url": "https://api.slack.com/web"
   },
   {
    "field": "openapi_spec",
    "old": "true",
    "new": "false",
    "reason": "Slack archived its official OpenAPI specification repository on March 27, 2024, and it is now read-only. A third-party blog confirms this, stating, \"In 2024, Slack officially 'terminated' their public OpenAPI specification.\"",
    "url": "https://www.apimatic.io/blog/slack-api-terminated-openapi-spec/"
   },
   {
    "field": "mcp_notes",
    "old": "Official Slack MCP server/plugin for connecting AI coding agents and tools to a Slack workspace. URL: https://github.com/slackapi/slack-mcp-plugin",
    "new": "Slack provides an official Model Context Protocol (MCP) server, which acts as a unified layer for AI agents to securely access Slack data and perform actions. It is not a \"plugin\" in the traditional sense but a documented part of the Slack platform for AI integration. The GitHub URL in the original record is incorrect and likely refers to a non-existent or private repository.",
    "reason": "The initial record's GitHub URL was incorrect; the MCP is a documented feature, not a standalone plugin repository.",
    "url": "https://api.slack.com/automation/mcp"
   },
   {
    "field": "verdict",
    "old": "ready_now",
    "new": "ready_with_friction",
    "reason": "The combination of a limited free tier (10 app integrations), the requirement of a payment method for a proper developer sandbox, and the lack of an official OpenAPI specification introduces significant friction. While a developer can get started, it is not a completely self-serve, no-strings-attached process as `ready_now` implies.",
    "url": "https://slack.com/pricing"
   },
   {
    "field": "blocker",
    "old": "none",
    "new": "no_public_api",
    "reason": "The most significant blocker is the lack of an official, vendor-maintained OpenAPI specification since March 2024. This forces developers to rely on community-maintained, reverse-engineered specs, which adds risk and complexity.",
    "url": "https://www.apimatic.io/blog/slack-api-terminated-openapi-spec/"
   },
   {
    "field": "blocker_notes",
    "old": "None. The platform provides completely self-serve free credentials, comprehensive documentation, official OpenAPI specifications, and an official MCP server, making it fully ready for immediate toolkit deployment.",
    "new": "The platform no longer provides an official OpenAPI specification, which is a major friction point for development. Accessing a full-featured development environment (Sandbox) requires providing a payment method. The free tier is too limited for serious API development.",
    "reason": "The original notes are factually incorrect regarding self-serve access and the OpenAPI specification.",
    "url": "https://www.apimatic.io/blog/slack-api-terminated-openapi-spec/"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "verifier_fixed",
   "api_styles": "verifier_fixed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 15,
   "alive_rate": 0.9333333333333333,
   "dead_rate": 0.06666666666666667,
   "blocked_rate": 0.0,
   "official_rate": 0.6666666666666666,
   "readable": 14,
   "quote_supported_rate": 0.7857142857142857,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 23,
   "alive_rate": 0.9130434782608695,
   "dead_rate": 0.08695652173913043,
   "blocked_rate": 0.0,
   "official_rate": 0.6956521739130435,
   "readable": 20,
   "quote_supported_rate": 0.6,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 22,
  "name": "Twilio",
  "category": "Communications and Messaging",
  "hint": "twilio.com",
  "subcategory": "Cloud Communications",
  "one_liner": "Twilio provides APIs for integrating SMS, WhatsApp, voice calls, email, and verification into software applications.",
  "auth_methods": [
   "basic",
   "api_key",
   "oauth2"
  ],
  "primary_auth": "basic",
  "auth_notes": "Twilio offers Twilio Connect, an OAuth 2.0-based solution specifically for multi-tenant applications. This allows a third-party application to securely access a customer's Twilio account data and perform actions on their behalf, with billing handled directly by Twilio. While standard account-level OAuth apps are single-tenant, Twilio Connect is the designated multi-tenant approach. Another method for multi-tenancy involves programmatically creating subaccounts for each tenant under a main account.",
  "access": "self_serve_trial",
  "access_notes": "Developers can sign up for a free trial without a credit card. The trial expires after 30 days, requiring an upgrade to a usage-based paid plan.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Extremely broad REST API covering messaging, voice, video, conversations, flex, serverless, and identity. Officially open-sourced OpenAPI spec available.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "The `twilio/ai` GitHub repository contains tools and skills for AI agents but is not an MCP server. No official MCP server was found.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "Trial expires after 30 days requiring a paid plan. Multi-tenant integration requires implementing the Twilio Connect OAuth 2.0 flow.",
  "evidence": [
   {
    "claim": "auth",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQHZ-FIDzpqbHt5_Glt7zHFVGQUC07yTMOS4dLYk-y0CBCXSZqBaqLXUX4cv9QeL3kXQZZNf7UTdFMdSTtCkp4LYnNUQSUkRnrH__K0se_4r-jlosbBwCsL6PVITJtLkV_09gjbv2MY",
    "quote": "View your Account SID and Auth Token for API authentication."
   },
   {
    "claim": "access",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQFj-dc4XCjgh85SH4jeeymicTfh-sS4c-K22dEhWsKAiTa_pk8uVrfqqcqoCjs9MVK6zmOdVAYGgogWOHcdO5QRvdhpMhCB65rrf-s04gU6VSVoKRmLfypJpuM7GIJWqhbdOR8=",
    "quote": "Trial accounts expire after 30 days. Upgrade your account before your trial expires to keep building."
   },
   {
    "claim": "api",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQG95a8ElCUGoKPShUbR5l52Svn1z9XYAFSRmu2VIUBx8WPgGmsZYXn_UD6LUm_QZwjOlzHKiVJWAEleIP19BSM7xHxqoh6QuWvhN6EFD_EAd5ERUyRJKOExHbg",
    "quote": "securely authenticate Twilio REST API requests, and best practices for accessing Twilio."
   },
   {
    "claim": "mcp",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQF95TCg2NVwRt-YBIDhY6wwX0Had6rjKZtNvGWqpiNEV33JsYSvQlqCqvl1G7nEUX5TEMrjnRpSRL4zhJrW6XXdiNugCxnqVygoIiDTZycFBhqn-mCDRw==",
    "quote": "Official Twilio Skills and MCP for AI coding agents. Works across Claude Code, Cursor, Codex, and any tool supporting the Agent Skills standard."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "basic",
   "auth_methods": [
    "basic",
    "api_key",
    "oauth2"
   ],
   "access": "self_serve_trial",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "paid_plan"
  },
  "verifier_changes": [
   {
    "field": "primary_auth",
    "old": "basic",
    "new": "oauth2",
    "reason": "Twilio offers Twilio Connect, an OAuth-based flow designed for multi-tenant applications, making OAuth 2.0 the correct primary authentication method for a multi-tenant integration platform.",
    "url": "https://www.twilio.com/docs/usage/account-security/twilio-connect"
   },
   {
    "field": "auth_notes",
    "old": "OAuth 2.0 apps are strictly single-tenant. Multi-tenant platforms must collect individual Account SID and Auth Token or API Keys via HTTP Basic.",
    "new": "Twilio offers Twilio Connect, an OAuth 2.0-based solution specifically for multi-tenant applications. This allows a third-party application to securely access a customer's Twilio account data and perform actions on their behalf, with billing handled directly by Twilio. While standard account-level OAuth apps are single-tenant, Twilio Connect is the designated multi-tenant approach. Another method for multi-tenancy involves programmatically creating subaccounts for each tenant under a main account.",
    "reason": "The original note incorrectly stated that Twilio's OAuth 2.0 is strictly single-tenant for multi-tenant platforms. Twilio Connect is specifically designed for multi-tenant OAuth.",
    "url": "https://www.twilio.com/docs/usage/account-security/twilio-connect"
   },
   {
    "field": "mcp",
    "old": "official",
    "new": "none_found",
    "reason": "The cited GitHub repository `twilio/ai` does not contain or represent an MCP server as defined. No evidence of an official, vendor-hosted MCP server was found.",
    "url": "https://github.com/twilio/ai"
   },
   {
    "field": "mcp_notes",
    "old": "Official Twilio Skills and MCP for AI coding agents available on GitHub.",
    "new": "The `twilio/ai` GitHub repository contains tools and skills for AI agents but is not an MCP server. No official MCP server was found.",
    "reason": "The original note incorrectly identified the `twilio/ai` repository as an MCP server.",
    "url": "https://github.com/twilio/ai"
   },
   {
    "field": "blocker_notes",
    "old": "Trial expires after 30 days requiring a paid plan, and multi-tenant integration requires collecting individual customer credentials due to single-tenant OAuth limitations.",
    "new": "Trial expires after 30 days requiring a paid plan. Multi-tenant integration requires implementing the Twilio Connect OAuth 2.0 flow.",
    "reason": "The original note incorrectly stated that multi-tenant integration requires collecting individual customer credentials due to single-tenant OAuth limitations. Twilio Connect is the proper multi-tenant OAuth solution.",
    "url": "https://www.twilio.com/docs/usage/account-security/twilio-connect"
   }
  ],
  "human_reviewed": true,
  "human_note": "primary_auth: twilio.com/docs/usage/requests-to-twilio: 'Use your API key as the username and your API key secret as the password'. Twilio Connect OAuth is legacy/niche.; mcp: twilio.com/docs/ai/mcp: 'The Twilio Model Context Protocol (MCP) server gives AI coding agents direct, structured access to Twilio's full API'",
  "provenance": {
   "primary_auth": "checker_fixed",
   "auth_methods": "confirmed",
   "access": "confirmed+checker_ok",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "checker_fixed",
   "verdict": "confirmed+checker_ok",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 4,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.0,
   "readable": 4,
   "quote_supported_rate": 0.75,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 4,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.0,
   "readable": 4,
   "quote_supported_rate": 0.75,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 23,
  "name": "Zoho Cliq",
  "category": "Communications and Messaging",
  "hint": "zoho.com/cliq",
  "subcategory": "Team Communication",
  "one_liner": "Zoho Cliq is a team communication and collaboration platform with real-time messaging, calls, and developer tools.",
  "auth_methods": [
   "oauth2",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 for applications (server-based, client-based, etc.) and Webhook Tokens for individual user authentication of incoming webhooks.",
  "access": "self_serve_free",
  "access_notes": "Free tier includes API support and developer platform features. Developers can sign up for a free account and instantly generate OAuth 2.0 client_id and client_secret via the Zoho API Console.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Comprehensive REST API covering user/organization management, communication (chats, messages, channels), meetings, events, and developer platform components (bots, databases, widgets).",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Zoho provides an official, hosted MCP server at mcp.zoho.com, allowing AI agents to connect to Cliq data.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None. Fully self-serve, free API access, standard OAuth 2.0, complete OpenAPI spec, and official hosted MCP server.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.zoho.com/cliq/pricing.html",
    "quote": "Zoho Cliq is a team communication software that organizes conversations, workflows, and meetings in one place."
   },
   {
    "claim": "auth",
    "url": "https://www.zoho.com/cliq/help/restapi/v2/registerclient/",
    "quote": "Zoho Cliq API uses the OAuth 2.0 protocol for authentication. OAuth 2.0 is an industry-standard protocol specification that enables third-party applications (also known as clients) to gain delegated access to protected resources in Zoho Cliq via an API."
   },
   {
    "claim": "auth",
    "url": "https://www.zoho.com/cliq/help/restapi/v2/registerclient/",
    "quote": "Webhook Tokens are unique authentication keys designed for individual users on the Cliq platform. These tokens serve the purpose of authenticating incoming webhook calls from various sources."
   },
   {
    "claim": "access",
    "url": "https://www.zoho.com/cliq/help/restapi/v2/registerclient/",
    "quote": "Upon successful registration of your application, you will receive a client id and client secret. These credentials are used to obtain an access token, which is required to make api calls to zoho cliq. follow the steps below to register your application: go to the zoho api console , then click get started."
   },
   {
    "claim": "access",
    "url": "https://www.zoho.com/cliq/pricing.html",
    "quote": "Free plan includes: ... Api Support; ... Bots; ... Functions; ... Schedulers; ... Slash Commands;"
   },
   {
    "claim": "api",
    "url": "https://www.zoho.com/cliq/help/restapi/v2/registerclient/",
    "quote": "Zoho Cliq's REST API is built on RESTful architecture principles, enabling seamless communication between your applications and the Zoho Cliq platform."
   },
   {
    "claim": "api",
    "url": "https://www.zoho.com/cliq/help/restapi/v2/registerclient/",
    "quote": "All of Cliq's APIs are documented in the OpenAPI specification, which can be downloaded as a YAML file below: Download Complete OAS for Zoho Cliq APIs."
   },
   {
    "claim": "api",
    "url": "https://www.zoho.com/cliq/help/restapi/v2/registerclient/",
    "quote": "Channel Outgoing Webhooks (deprecated) NOTE: Outgoing Webhooks for channels have been deprecated. We recommend using the Bot Participation Handler for the same functionality."
   },
   {
    "claim": "api",
    "url": "https://www.zoho.com/cliq/help/restapi/v2/registerclient/",
    "quote": "A sandbox extension is just a production replica of your extension. The extensions created and listed under the My Extensions sections are the sandbox versions. This allows you to test the extension for issues before proceeding to publish in the marketplace."
   },
   {
    "claim": "mcp",
    "url": "https://www.zoho.com/cliq/help/platform/zoho-cliq-mcp.html",
    "quote": "The zoho cliq mcp server brings your chats into the world of ai using the model context protocol (mcp). this open protocol defines how ai agents can connect to real-world tools and data sources in a structured, predictable way. ... Any ai model or agent can use our official mcp server to access your cliq data"
   },
   {
    "claim": "mcp",
    "url": "https://www.zoho.com/cliq/help/platform/configure-zoho-cliq-mcp.html",
    "quote": "Navigate to the Zoho MCP console. (mcp.zoho.com) ... A unique and secure URL will be generated by the Zoho MCP service each time you create a Zoho MCP server. This MCP URL will serve as the endpoint invoked when a prompt is executed from your MCP Client."
   },
   {
    "claim": "verdict",
    "url": "https://www.zoho.com/cliq/help/restapi/v2/registerclient/",
    "quote": "Upon successful registration of your application, you will receive a client id and client secret. These credentials are used to obtain an access token, which is required to make api calls to zoho cliq. follow the steps below to register your application: go to the zoho api console , then click get started."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\", \"bearer_token\"]",
    "new": "[\"oauth2\", \"webhook_token\"]",
    "reason": "The documentation explicitly mentions 'Webhook Tokens' for authenticating incoming webhook calls, not a generic 'bearer_token'.",
    "url": "https://www.zoho.com/cliq/help/restapi/v2/registerclient/"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 12,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 12,
   "quote_supported_rate": 0.3333333333333333,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 12,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 12,
   "quote_supported_rate": 0.3333333333333333,
   "lint_issues": 0,
   "flag_count": 1
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 24,
  "name": "Lark (Larksuite)",
  "category": "Communications and Messaging",
  "hint": "open.larksuite.com",
  "subcategory": "Collaboration / Productivity Suite",
  "one_liner": "Lark is an all-in-one collaboration and productivity suite integrating messaging, video, storage, and project management.",
  "auth_methods": [
   "oauth2",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Multi-tenant integrations would use OAuth 2.0 to obtain a user_access_token to act on behalf of a user.",
  "access": "approval_required",
  "access_notes": "Developers can sign up for free to create 'Custom Apps'. For multi-tenant 'Store Apps' in the Lark App Directory, ISV (Independent Software Vendor) qualification and a formal review process by the Lark Open Platform team are required.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Lark provides a broad range of server-side REST APIs covering Messenger, Calendar, Docs, Bitable (Base), Tasks, Contacts, and Wiki.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Official MCP server: https://github.com/larksuite/lark-openapi-mcp",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "While development can start immediately with 'Custom Apps', a multi-tenant integration requires ISV qualification and a formal App Store review process for distribution to other Lark customers.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.larksuite.com/en_us/plans",
    "quote": "Lark presents itself as an all-in-one collaboration platform that will streamline communication, boost productivity, and bring together a number of workplace tools into a single solution."
   },
   {
    "claim": "auth",
    "url": "https://open.larksuite.com/document/server-docs/authentication-management/access-token/obtain-access-tokens",
    "quote": "User access token: Represents the identity of a user... suitable for scenarios where the app needs to act on behalf of a user."
   },
   {
    "claim": "access",
    "url": "https://open.larksuite.com/document/ukTMukTMukTM/uMTNz4yM1MjLzUzM",
    "quote": "We do not currently charge for use of our APIs; however, we reserve the right to do so in the future."
   },
   {
    "claim": "access",
    "url": "https://www.chanty.com/blog/lark-pricing/",
    "quote": "Starter users get 10,000 API calls per month... Core features including Authentication and Authorization... are free to use, regardless of your Lark plan."
   },
   {
    "claim": "api",
    "url": "https://open.larksuite.com/document/server-docs/api-access-management/api-list",
    "quote": "Lark provides a wealth of server-side APIs... based on the HTTP protocol."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/larksuite/lark-openapi-mcp",
    "quote": "This is the Feishu/Lark official OpenAPI MCP (Model Context Protocol) tool designed to help users quickly connect to the Feishu/Lark platform."
   },
   {
    "claim": "verdict",
    "url": "https://open.larksuite.com/document/home/introduction-to-scope-and-authorization/overview",
    "quote": "Only users with ISV qualifications can create store apps... The permissions will take effect only after the app review is approved."
   },
   {
    "claim": "auth",
    "url": "https://open.larksuite.com/document/server-docs/authentication-management/access-token/obtain-access-tokens",
    "quote": "The documentation specifies three main token types: app_access_token, tenant_access_token, and user_access_token. These tokens are passed as Bearer tokens in the Authorization header."
   },
   {
    "claim": "api",
    "url": "https://open.larksuite.com/document/faq/dev-faq/general-questions/what-is-the-difference-between-lark-openapi-and-lark-open-platform",
    "quote": "Lark OpenAPI relies on RESTful APIs to provide services."
   },
   {
    "claim": "api",
    "url": "https://open.larksuite.com/document/server-docs/event-subscription-guide/event-subscription-overview",
    "quote": "You can build your own server to receive event subscription notifications from the Lark Open Platform via the Webhook mode."
   },
   {
    "claim": "api",
    "url": "https://open.larksuite.com/document/server-docs/test-company-and-user-guide",
    "quote": "To meet the frequent configuration changes in the development and testing stages, the Lark Open Platform provides the Test Companies and Users feature. This feature allows applications to be divided into formal versions and test versions."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2"
   ],
   "access": "approval_required",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\"]",
    "new": "[\"oauth2\",\"bearer_token\"]",
    "reason": "The documentation specifies three main token types: app_access_token, tenant_access_token, and user_access_token. These tokens are passed as Bearer tokens in the Authorization header. Therefore, bearer_token should be listed alongside oauth2.",
    "url": "https://open.larksuite.com/document/server-docs/authentication-management/access-token/obtain-access-tokens"
   },
   {
    "field": "openapi_spec",
    "old": "true",
    "new": "false",
    "reason": "While Lark provides extensive API documentation and even an 'API Explorer' for debugging, there is no evidence of a publicly available, downloadable OpenAPI (formerly Swagger) specification file. Searches for 'OpenAPI specification' or 'Swagger' on the developer portal yield no such file.",
    "url": "https://open.larksuite.com/document/faq/dev-faq/general-questions/what-is-the-difference-between-lark-openapi-and-lark-open-platform"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 7,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.7142857142857143,
   "readable": 2,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 11,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8181818181818182,
   "readable": 2,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 25,
  "name": "Pumble",
  "category": "Communications and Messaging",
  "hint": "pumble.com",
  "subcategory": "Team Chat",
  "one_liner": "Pumble is a Slack-style team chat app for business communication and collaboration.",
  "auth_methods": [
   "api_key",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "API Key Addon uses a custom header 'ApiKey'. OAuth2 is for Pumble Apps/Add-ons, generating access tokens for users and bots.",
  "access": "self_serve_free",
  "access_notes": "Pumble offers a free tier for workspaces. A CAKE.com developer account is free to create. Public marketplace listings require a review (up to two weeks).",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Broad coverage including messaging, channels, users, file operations, search, and scheduling. The API-key addon is a plain REST API.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "community_only",
  "mcp_notes": "Pumble promotes the concept of using an MCP server and documents how to connect to one, but the available servers are either limited first-party examples or more powerful third-party/community-built implementations. There is no evidence Pumble hosts or officially supports a full-featured, managed MCP server.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "The claim of 'immediate private deployment' is unsubstantiated. All add-ons created through the developer portal are subject to a review process of up to two weeks before they can be published.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://work-management.org",
    "quote": "Pumble is a business communication platform developed by CAKE.com. It helps teams organize conversations through channels, direct messages, threads, file sharing, calls, and meetings. At its core, Pumble is a Slack-style team chat app."
   },
   {
    "claim": "auth",
    "url": "https://github.com/infralayers/pumble-mcp",
    "quote": "Auth: header ApiKey: <your-api-key> on every request (OpenAPI securitySchemes.ApiKeyAuth , in: header , name: ApiKey )."
   },
   {
    "claim": "auth",
    "url": "https://github.io/pumble-sdk",
    "quote": "When your app is installed in a workspace the bot user will be created and your app will receive an authorization code that, when used, will generate access tokens for both the user who installed your app and the bot."
   },
   {
    "claim": "auth",
    "url": "https://lobehub.com",
    "quote": "pumble-mcp exposes the entire platform — 33 tools across messaging, files, channels, users, search, scheduling, and real-time events — using OAuth2 and the full Pumble SDK"
   },
   {
    "claim": "access",
    "url": "https://pumble.com/pricing",
    "quote": "Unlimited users • Unlimited chat history • Free forever."
   },
   {
    "claim": "access",
    "url": "https://dev-docs.marketplace.cake.com/pumble/build/developer-account.html",
    "quote": "Before publishing your first Pumble add-on, you need a CAKE.com developer account. Here's how to create one: Go to the CAKE.com developer page; Click Sign up and enter your email address;"
   },
   {
    "claim": "access",
    "url": "https://dev-docs.marketplace.cake.com/pumble/build/developer-account.html",
    "quote": "Once completed, submit for review. The review process typically takes up to two weeks."
   },
   {
    "claim": "api",
    "url": "https://github.com/infralayers/pumble-mcp",
    "quote": "The API-key addon is a plain REST API and doesn't need that machinery."
   },
   {
    "claim": "api",
    "url": "https://lobehub.com",
    "quote": "pumble-mcp exposes the entire platform — 33 tools across messaging, files, channels, users, search, scheduling, and real-time events — using OAuth2 and the full Pumble SDK"
   },
   {
    "claim": "api",
    "url": "https://pumble-api-keys.addons.marketplace.cake.com/api-docs/",
    "quote": "Confirmed live interactive documentation page."
   },
   {
    "claim": "api",
    "url": "https://github.io/pumble-sdk",
    "quote": "Pumble will notify your app on every event and trigger on the installed workspaces through the public HTTP endpoints defined in the manifest. So you will need to have a running HTTP server to be able to receive events and triggers from Pumble. It is possible to have Pumble communicate with your app via websockets, by setting socketMode to true in your manifest.json ."
   },
   {
    "claim": "api",
    "url": "https://dev-docs.marketplace.cake.com/pumble/build/developer-account.html",
    "quote": "A developer account will allow us to publish, manage and monetize our add-ons as well as provide us with a testing environment and workspace where the add-on can be installed and tested during development."
   },
   {
    "claim": "mcp",
    "url": "https://pumble.com/learn/pumble/connecting-pumble-with-ai-agents-mcp/",
    "quote": "pairing your team communication app with ai opens up new avenues for collaboration, which is exactly what the pumble mcp server delivers. pumble’s mcp server is ideal for sales, engineering, and marketing teams looking to automate routine, time-consuming tasks."
   },
   {
    "claim": "mcp",
    "url": "https://lobehub.com",
    "quote": "pumble-mcp exposes the entire platform — 33 tools across messaging, files, channels, users, search, scheduling, and real-time events — using OAuth2 and the full Pumble SDK"
   },
   {
    "claim": "verdict",
    "url": "https://dev-docs.marketplace.cake.com/pumble/build/developer-account.html",
    "quote": "Once completed, submit for review. The review process typically takes up to two weeks."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "api_key",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "access_notes",
    "old": "Pumble offers a free tier for workspaces. A CAKE.com developer account is free to create. Public marketplace listings require a review (up to two weeks), but private add-ons can be published immediately without review.",
    "new": "Pumble offers a free tier for workspaces. A CAKE.com developer account is free to create. Public marketplace listings require a review (up to two weeks).",
    "reason": "The initial notes were mostly correct but missed a key detail. The documentation states that all add-ons submitted to the developer dashboard go through a review process. There is no mention of a separate, immediate process for private add-ons.",
    "url": "https://dev-docs.marketplace.cake.com/pumble/build/developer-account.html"
   },
   {
    "field": "sandbox",
    "old": "true",
    "new": "false",
    "reason": "There is no dedicated, isolated sandbox environment mentioned. Developers test by creating a standard Pumble workspace and installing their development-stage add-ons into it.",
    "url": "https://dev-docs.marketplace.cake.com/pumble/build/developer-account.html"
   },
   {
    "field": "mcp",
    "old": "official",
    "new": "community_only",
    "reason": "Pumble writes blog posts promoting the use of an MCP server and even provides instructions on how to connect to one, which they call the 'Pumble MCP server'. However, a more detailed community source clarifies that the existing Pumble MCP server is a limited, API-key-based implementation, and that a more full-featured, OAuth2-based server (pumble-mcp) is a separate, community-built project. Pumble's own documentation for connecting to an MCP server requires creating an app and using its credentials, suggesting it's a self-hosted or third-party tool, not a managed service provided by Pumble. Other providers like Zapier and Pipedream also offer their own Pumble MCP servers.",
    "url": "https://lobehub.com"
   },
   {
    "field": "mcp_notes",
    "old": "Pumble officially publishes and supports an MCP server for connecting AI agents to its team chat.",
    "new": "Pumble promotes the concept of using an MCP server and documents how to connect to one, but the available servers are either limited first-party examples or more powerful third-party/community-built implementations. There is no evidence Pumble hosts or officially supports a full-featured, managed MCP server.",
    "reason": "While Pumble has an article titled 'Connect AI Agents to Team Chat via the Pumble MCP Server,' it describes a concept and a connection method rather than a Pumble-hosted product. A community project on LobeHub explicitly states its goal is to improve upon the 'existing Pumble MCP server' which it describes as limited to ~8 endpoints with API-key auth. This indicates the 'official' presence is more of a reference implementation or a basic addon, while robust solutions are community-driven.",
    "url": "https://lobehub.com"
   },
   {
    "field": "verdict",
    "old": "ready_now",
    "new": "ready_with_friction",
    "reason": "The key friction point is the mandatory review process for publishing an add-on, which 'typically takes up to two weeks.' While API keys can be used without this process, they are for a limited set of actions and are tied to a single user within a workspace, making them unsuitable for building a scalable, multi-tenant integration. Building a proper OAuth2-based app, which is necessary for a platform, is subject to this review delay.",
    "url": "https://dev-docs.marketplace.cake.com/pumble/build/developer-account.html"
   },
   {
    "field": "blocker",
    "old": "none",
    "new": "app_review_or_approval",
    "reason": "To create a public, installable application using the more powerful OAuth2 flow, a developer must submit it for review, a process that can take up to two weeks. This is a friction point that delays immediate production readiness.",
    "url": "https://dev-docs.marketplace.cake.com/pumble/build/developer-account.html"
   },
   {
    "field": "blocker_notes",
    "old": "None. Fully self-serve free developer accounts, testing environment, comprehensive REST APIs, official SDK, and immediate private deployment capabilities are available.",
    "new": "The claim of 'immediate private deployment' is unsubstantiated. All add-ons created through the developer portal are subject to a review process of up to two weeks before they can be published.",
    "reason": "The official developer documentation outlines a single path for publishing an add-on: 'Once completed, submit for review. The review process typically takes up to two weeks.' There is no documented exception for private add-ons.",
    "url": "https://dev-docs.marketplace.cake.com/pumble/build/developer-account.html"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "verifier_fixed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 15,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.2,
   "readable": 9,
   "quote_supported_rate": 0.1111111111111111,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 15,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.2,
   "readable": 10,
   "quote_supported_rate": 0.1,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 26,
  "name": "Discord",
  "category": "Communications and Messaging",
  "hint": "discord.com",
  "subcategory": "Communication / Chat",
  "one_liner": "Discord is a voice, video, and text communication service with a developer platform for bots and integrations.",
  "auth_methods": [
   "oauth2",
   "bearer_token",
   "basic"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth2 (Authorization Code Grant) for multi-tenant user authentication; Bot Tokens (Bearer tokens) for centralized bots.",
  "access": "self_serve_free",
  "access_notes": "Developers can instantly create an application via the Discord Developer Portal to get Client ID, Client Secret, and generate a Bot Token. No cost for API access.",
  "api_styles": [
   "rest",
   "websocket"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API for standard actions, WebSocket Gateway for real-time events. Comprehensive endpoints for channels, messages, guilds, roles, users, webhooks, invites, emojis, and moderation.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "community_only",
  "mcp_notes": "Multiple community-built MCP servers exist on GitHub that wrap the Discord API to expose tools to LLMs.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "Apps require review for continued access to Privileged Intents (e.g., Message Content, Guild Members, Guild Presences) once they reach 10,000 users. The previous 100-server threshold for bot verification has been replaced by this user-based count.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://docs.discord.com/developers/intro",
    "quote": "build bots and integrations on discord, or connect your game with rich presence, voice chat, and more."
   },
   {
    "claim": "auth",
    "url": "https://docs.discord.com/developers/topics/oauth2",
    "quote": "within discord, there are multiple types of oauth2 authentication. we support the authorization code grant, the implicit grant, client credentials, and some modified special-for-discord flows for bots and webhooks."
   },
   {
    "claim": "access",
    "url": "https://docs.discord.com/developers/topics/oauth2",
    "quote": "the first step in implementing oauth2 is registering a developer application and retrieving your client id and client secret."
   },
   {
    "claim": "access",
    "url": "https://docs.discord.com/developers/quick-start/getting-started",
    "quote": "on the bot page under token, click –reset token– to generate a new bot token."
   },
   {
    "claim": "access",
    "url": "https://freeapihub.com/api/discord",
    "quote": "Creating an application and calling the API carries no charge. There is no billing tier, no per-request price and no paid plan for higher limits — the ceilings above are the ceilings."
   },
   {
    "claim": "verdict",
    "url": "https://doublecounter.gg",
    "quote": "Discord requires every bot in more than 100 servers to pass its verification process."
   },
   {
    "claim": "verdict",
    "url": "https://docs.discord.com/developers",
    "quote": "If your app has fewer than 10,000 users, you may access Privileged Intents by enabling them in the Developer Portal. However, once your app reaches 10,000 users, your app requires review for continued access."
   },
   {
    "claim": "api",
    "url": "https://docs.discord.com/developers/reference",
    "quote": "the discord api is a rest api that allows you to interact with discord data from your own applications."
   },
   {
    "claim": "api",
    "url": "https://github.com/discord/discord-api-spec",
    "quote": "This repository contains the public preview of the OpenAPI 3.1 specification for Discord's API. Currently, the spec is only available for the most recent Discord API version (v10)."
   },
   {
    "claim": "api",
    "url": "https://freeapihub.com/api/discord",
    "quote": "Interactions can also be delivered over plain HTTPS webhooks if you would rather not hold a socket open."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/SaseQ/discord-mcp",
    "quote": "A Model Context Protocol (MCP) server for the Discord API using (JDA), designed to integrate Discord bots with MCP-compatible applications such as Claude, ChatGPT etc."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest",
    "websocket"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\", \"bearer_token\"]",
    "new": "[\"oauth2\", \"bearer_token\", \"basic\"]",
    "reason": "The first-pass record missed HTTP Basic Authentication, which is used for OAuth2 token endpoints.",
    "url": "https://discord.com/developers/docs/topics/oauth2"
   },
   {
    "field": "sandbox",
    "old": "false",
    "new": "false",
    "reason": "Discord does not offer a traditional, fully isolated sandbox environment for testing bots. The common practice is to create a private test server. For 'Activities' (embedded apps), there is a sandboxed environment, but for general bot development, it's not a full sandbox.",
    "url": "https://discord.com/developers/docs/activities/overview"
   },
   {
    "field": "blocker_notes",
    "old": "Bots added to more than 100 servers require formal bot verification. Apps reaching 10,000 users require review for continued access to Privileged Intents (e.g., MESSAGE_CONTENT).",
    "new": "Apps require review for continued access to Privileged Intents (e.g., Message Content, Guild Members, Guild Presences) once they reach 10,000 users. The previous 100-server threshold for bot verification has been replaced by this user-based count.",
    "reason": "The first-pass record contained outdated information regarding bot verification thresholds. The current policy focuses on user count for privileged intent access review.",
    "url": "https://discord.com/developers/docs/topics/gateway#privileged-intents"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 11,
   "alive_rate": 0.8181818181818182,
   "dead_rate": 0.18181818181818182,
   "blocked_rate": 0.0,
   "official_rate": 0.5454545454545454,
   "readable": 9,
   "quote_supported_rate": 0.7777777777777778,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 11,
   "alive_rate": 0.8181818181818182,
   "dead_rate": 0.18181818181818182,
   "blocked_rate": 0.0,
   "official_rate": 0.5454545454545454,
   "readable": 9,
   "quote_supported_rate": 0.7777777777777778,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 27,
  "name": "Telegram",
  "category": "Communications and Messaging",
  "hint": "core.telegram.org",
  "subcategory": "Messaging",
  "one_liner": "Telegram is a cloud-based instant messaging platform with robust APIs for bots and custom clients.",
  "auth_methods": [
   "bearer_token",
   "oauth2",
   "other"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Bot API Token (bearer_token) for bots; MTProto API uses api_id/api_hash with user authorization (phone number + OTP, QR codes, passkeys); Log in with Telegram uses OpenID Connect.",
  "access": "self_serve_free",
  "access_notes": "Developers can obtain a Bot Token instantly via @BotFather or register an application on my.telegram.org for MTProto api_id/api_hash. Both are free and require no formal approval.",
  "api_styles": [
   "rest",
   "cli_or_library"
  ],
  "api_breadth": "broad",
  "api_notes": "The Bot API is HTTP-based (REST-like), while the core Telegram API uses the custom MTProto protocol. It covers messaging, media sharing, polls, stickers, group/channel management, and reactions.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": false,
  "mcp": "community_only",
  "mcp_notes": "Multiple community-built open-source MCP servers exist, such as 'telegram-mcp' (https://github.com/chigwell/telegram-mcp), that expose Telegram capabilities via MTProto or the Bot API.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "none",
  "evidence": [
   {
    "claim": "general",
    "url": "https://core.telegram.org/api/obtaining_api_id",
    "quote": "telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed."
   },
   {
    "claim": "general",
    "url": "https://core.telegram.org/api",
    "quote": "The bot api allows you to easily create programs that use telegram messages for an interface. the telegram api and tdlib allow you to build your own customized telegram clients."
   },
   {
    "claim": "auth",
    "url": "https://core.telegram.org/bots/api",
    "quote": "each bot is given a unique authentication token when it is created . the token looks something like 123456:abc-def1234ghikl-zyx57w2v1u123ew11"
   },
   {
    "claim": "auth",
    "url": "https://core.telegram.org/api/obtaining_api_id",
    "quote": "you will get basic addresses as well as the api_id and api_hash parameters required for user authorization."
   },
   {
    "claim": "auth",
    "url": "https://core.telegram.org/api/auth",
    "quote": "The following alternative login flows are also available to users: QR code-based login flow » . Passkey login flow » ."
   },
   {
    "claim": "auth",
    "url": "https://core.telegram.org/bots/telegram-login",
    "quote": "alternatively, telegram supports the standard openid connect protocol. this allows you to integrate telegram authentication into your application using any oidc-compatible library or authentication platform"
   },
   {
    "claim": "access",
    "url": "https://core.telegram.org/bots/telegram-login",
    "quote": "set up a bot to represent your application. register your allowed urls via @botfather and obtain your client id and secret."
   },
   {
    "claim": "access",
    "url": "https://core.telegram.org/api/obtaining_api_id",
    "quote": "log in to your telegram core: https://my.telegram.org . go to \"api development tools\" and fill out the form."
   },
   {
    "claim": "access",
    "url": "https://core.telegram.org/api",
    "quote": "you are welcome to use both apis free of charge."
   },
   {
    "claim": "api",
    "url": "https://core.telegram.org/bots/api",
    "quote": "the bot api is an http-based interface created for developers keen on building bots for telegram."
   },
   {
    "claim": "api",
    "url": "https://core.telegram.org/mtproto/description",
    "quote": "The protocol is designed for access to a server API from applications running on mobile devices."
   },
   {
    "claim": "api",
    "url": "https://core.telegram.org/bots/api",
    "quote": "added the ability to see certain messages sent by other bots in groups. polls added the classes inputmediasticker , inputmedialocation , and inputmediavenue ."
   },
   {
    "claim": "api",
    "url": "https://core.telegram.org/bots/api",
    "quote": "if you're using webhooks , you can perform a request to the bot api while sending an answer to the webhook."
   },
   {
    "claim": "api",
    "url": "https://core.telegram.org/mtproto/description",
    "quote": "TDLib (Telegram Database Library) is a cross-platform, fully functional Telegram client. We designed it to help third-party developers create their own custom apps using the Telegram platform."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/chigwell/telegram-mcp",
    "quote": "telegram-mcp ... Description: Full-featured Telegram MCP server that exposes nearly the entire Telegram/Telethon API as MCP tools for Claude, Augment Code or any MCP-compatible client."
   },
   {
    "claim": "verdict",
    "url": "https://core.telegram.org/api",
    "quote": "you are welcome to use both apis free of charge."
   },
   {
    "claim": "general",
    "url": "https://core.telegram.org/api",
    "quote": "The Telegram Bot API is free, has no signup beyond a chat with BotFather, and gives you a messaging front-end in minutes."
   },
   {
    "claim": "api",
    "url": "https://core.telegram.org/bots/api",
    "quote": "Setting a webhook means you supplying Telegram with a location in the form of a URL, on which your bot listens for updates."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "bearer_token",
   "auth_methods": [
    "bearer_token",
    "other"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest",
    "websocket",
    "cli_or_library"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"bearer_token\", \"other\"]",
    "new": "[\"bearer_token\", \"oauth2\", \"other\"]",
    "reason": "The initial record missed 'oauth2'. Telegram supports three distinct public authentication methods: Bot API (bearer_token), MTProto API (other), and Log in with Telegram (OpenID Connect, which is oauth2).",
    "url": "https://core.telegram.org/bots/telegram-login"
   },
   {
    "field": "primary_auth",
    "old": "bearer_token",
    "new": "oauth2",
    "reason": "For a multi-tenant integration platform, 'Log in with Telegram' using OpenID Connect (oauth2) is the most appropriate and scalable method, allowing users to grant permissions securely.",
    "url": "https://core.telegram.org/bots/telegram-login"
   },
   {
    "field": "api_styles",
    "old": "[\"rest\", \"websocket\", \"cli_or_library\"]",
    "new": "[\"rest\", \"cli_or_library\"]",
    "reason": "The Bot API is REST-like. The core MTProto API is a custom RPC protocol, typically accessed via a library (cli_or_library), not fundamentally a WebSocket API style, even if WebSockets can be a transport layer.",
    "url": "https://core.telegram.org/mtproto/description"
   },
   {
    "field": "sandbox",
    "old": "true",
    "new": "false",
    "reason": "Telegram does not provide a dedicated sandbox environment for testing API calls that mimics production without affecting real data. Test accounts are for client configuration, not a general sandbox.",
    "url": "https://core.telegram.org/api/auth"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "verifier_fixed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "verifier_fixed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 19,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8421052631578947,
   "readable": 19,
   "quote_supported_rate": 0.7894736842105263,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 18,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.9444444444444444,
   "readable": 18,
   "quote_supported_rate": 0.6666666666666666,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 28,
  "name": "WhatsApp Business",
  "category": "Communications and Messaging",
  "hint": "developers.facebook.com/docs/whatsapp",
  "subcategory": "Messaging",
  "one_liner": "The WhatsApp Business Platform (Cloud API) allows businesses to communicate with customers at scale using the WhatsApp network.",
  "auth_methods": [
   "bearer_token",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Direct API requests use a Bearer token; a temporary token is provided for testing, while permanent tokens must be generated for a 'System User' for production use. For multi-tenant platforms, the 'Embedded Signup' flow provides a standard OAuth 2.0 interface for clients to authorize the platform to manage their WhatsApp assets.",
  "access": "approval_required",
  "access_notes": "A developer can immediately start building in a free sandbox with a test phone number and temporary access token. Production use with a business's own phone number requires completing Meta Business Verification, an approval process that involves submitting legal business documents and can take from minutes up to several days.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Comprehensive RESTful API covering messaging (template and free-form), message template management, media uploads, phone number registration, webhooks for real-time notifications, and business profile updates.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Meta provides an official 'WhatsApp Business Tools MCP server' that allows AI agents and IDE assistants to manage WhatsApp Business assets. It authenticates using OAuth with a Meta developer account. Community-built MCP servers also exist.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "While a full-featured sandbox is available for immediate development, using the API in a production capacity requires the business to undergo Meta Business Verification, which is an approval process that gates full access.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://developers.facebook.com/docs/whatsapp/cloud-api/get-started",
    "quote": "This guide helps developers quickly get started with the WhatsApp Cloud API. It covers the basic setup steps, including registering as a developer, creating a Meta app, sending your first message, and setting up a test webhook endpoint."
   },
   {
    "claim": "auth",
    "url": "https://developers.facebook.com/docs/whatsapp/cloud-api/get-started",
    "quote": "For any request to the API, you must set the Authorization header to Bearer <YOUR ACCESS TOKEN>."
   },
   {
    "claim": "auth",
    "url": "https://developers.facebook.com/docs/whatsapp/embedded-signup",
    "quote": "Embedded Signup is an authentication and authorization interface that is compatible with desktop and mobile. Your business customers use it to generate the assets you need to onboard them to the WhatsApp Business Platform."
   },
   {
    "claim": "access",
    "url": "https://wati.io/help-center/meta-business-verification-a-step-by-step-guide/",
    "quote": "Meta Business Verification helps confirm that your business is legitimate and authorized to use certain Meta business features...Verification may take anywhere from 10 minutes to 14 working days."
   },
   {
    "claim": "api",
    "url": "https://github.com/facebook/openapi",
    "quote": "This repository contains OpenAPI specifications for Meta APIs. It's intended to formally describe a product area's complete specification and is designed to be used to generate SDKs by Meta and others who wish to monitor and integrate Meta APIs into other tools."
   },
   {
    "claim": "mcp",
    "url": "https://developers.facebook.com/docs/whatsapp/mcp/mcp-for-whatsapp",
    "quote": "For developers building on the WhatsApp Business Platform (Cloud API) — the WhatsApp Business Tools MCP server lets your AI agent and IDE assistant manage and debug your WhatsApp Business integration from one place."
   },
   {
    "claim": "verdict",
    "url": "https://developers.facebook.com/docs/whatsapp/cloud-api/get-started",
    "quote": "After creating your app with the WhatsApp use case you are redirected to the Customize use case > Connect on WhatsApp > Quickstart page in the dashboard."
   }
  ],
  "confidence": 5.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "bearer_token",
    "oauth2"
   ],
   "access": "approval_required",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "access",
    "old": "approval_required",
    "new": "approval_required",
    "reason": "The checker initially marked this as WRONG and suggested 'ready_with_friction', but the definition of 'approval_required' (account is free, but vendor must approve before credentials work on other customers' accounts) aligns perfectly with the need for Meta Business Verification for production use. The first-pass value was correct.",
    "url": "https://wati.io/help-center/meta-business-verification-a-step-by-step-guide/"
   },
   {
    "field": "mcp_notes",
    "old": "Meta hosts an official remote MCP server at https://mcp.facebook.com/whatsapp_business_tools.",
    "new": "Meta provides an official 'WhatsApp Business Tools MCP server' that allows AI agents and IDE assistants to manage WhatsApp Business assets. It authenticates using OAuth with a Meta developer account. Community-built MCP servers also exist.",
    "reason": "The URL provided in the first pass was incorrect, and the notes needed to be updated to reflect the purpose and authentication method of the official MCP server, as well as mention community options.",
    "url": "https://developers.facebook.com/docs/whatsapp/mcp/mcp-for-whatsapp"
   },
   {
    "field": "verdict",
    "old": "ready_now",
    "new": "ready_with_friction",
    "reason": "The 'ready_now' verdict was inconsistent with the 'approval_required' access model. Because Meta Business Verification is required for production use, there is a clear friction point that prevents immediate, fully self-serve deployment.",
    "url": "https://wati.io/help-center/meta-business-verification-a-step-by-step-guide/"
   },
   {
    "field": "blocker",
    "old": "none",
    "new": "app_review_or_approval",
    "reason": "The original blocker 'none' was incorrect given the requirement for Meta Business Verification for production use. The correct blocker is 'app_review_or_approval' as this is an approval process.",
    "url": "https://wati.io/help-center/meta-business-verification-a-step-by-step-guide/"
   },
   {
    "field": "blocker_notes",
    "old": "None. The platform provides a free sandbox and a well-documented REST API. For multi-tenant use, the 'Embedded Signup' flow is the standard, though it requires the platform to be a verified Meta Business.",
    "new": "While a full-featured sandbox is available for immediate development, using the API in a production capacity requires the business to undergo Meta Business Verification, which is an approval process that gates full access.",
    "reason": "The original notes were contradictory with the 'approval_required' access. The corrected notes clarify that while a sandbox is instantly available, production access is gated by Meta Business Verification, which is a required approval step.",
    "url": "https://wati.io/help-center/meta-business-verification-a-step-by-step-guide/"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 6,
   "alive_rate": 0.16666666666666666,
   "dead_rate": 0.8333333333333334,
   "blocked_rate": 0.0,
   "official_rate": 0.8333333333333334,
   "readable": 1,
   "quote_supported_rate": 1.0,
   "lint_issues": 1,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 7,
   "alive_rate": 0.14285714285714285,
   "dead_rate": 0.8571428571428571,
   "blocked_rate": 0.0,
   "official_rate": 0.7142857142857143,
   "readable": 1,
   "quote_supported_rate": 1.0,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 29,
  "name": "Aircall",
  "category": "Communications and Messaging",
  "hint": "aircall.io",
  "subcategory": "Cloud Phone System",
  "one_liner": "Aircall is an AI-powered cloud phone system and customer communication platform for sales and support teams.",
  "auth_methods": [
   "api_key",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth2 for public apps and multi-tenant integrations; Basic Auth (api_id/api_token) for internal tools or private integrations.",
  "access": "partner_or_sales",
  "access_notes": "Obtaining OAuth credentials for a public, multi-tenant app to be listed on the marketplace requires applying to the Technology Partner Program. However, any Aircall admin on a paid plan can self-serve generate API keys for private integrations without needing partnership approval. The 7-day free trial provides access to both Essentials and Professional plan features, but with significant limitations.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Comprehensive REST API covering users, teams, calls, numbers, contacts, tags, messages, dialer campaigns, conversation intelligence, and AI voice agents.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "community_only",
  "mcp_notes": "Aircall acts as an MCP client/host for its native AI Virtual Agents. Multiple third-party community MCP servers exist that wrap the Aircall API for external LLMs (e.g., by Allo, Cassia Research, Zapier, viaSocket, Pipedream).",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "The main blocker is that API access requires a paid plan, with a minimum of 3 licenses for standard plans. For developers wishing to build a public, multi-tenant app, applying and being approved for the Technology Partner Program is an additional hurdle to obtain OAuth credentials.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://aircall.io/pricing/",
    "quote": "Aircall is the customer communications platform where both AI and your team work together... Essentials includes ai voice agents business phone system and customer conversations in one workspace, synced to your crm."
   },
   {
    "claim": "general",
    "url": "https://developer.aircall.io/docs/overview",
    "quote": "Aircall is an AI-powered customer communications platform trusted by 23,000+ companies, unifying calls, SMS, and messaging with 250+ native CRM and helpdesk integrations."
   },
   {
    "claim": "auth",
    "url": "https://developer.aircall.io/docs/oauth",
    "quote": "With Aircall Public API, Authentication can be done through OAuth or Basic Auth. If you want to build an App for companies using Aircall - this is mainly the case for Technology Partners - please use the OAuth flow. It is a requirement to be listed on the Aircall App Marketplace."
   },
   {
    "claim": "auth",
    "url": "https://developer.aircall.io/docs/oauth",
    "quote": "OAuth is required for public apps. It provides a secure, scalable authentication method and ensures your app is easy to install for any Aircall user."
   },
   {
    "claim": "access",
    "url": "https://developer.aircall.io/docs/oauth",
    "quote": "Before starting building the OAuth flow for your app, you will need to get OAuth client_id and client_secret from Aircall. Click the start building button on top of the page and fill in the form. We will get back to you shortly."
   },
   {
    "claim": "access",
    "url": "https://aircall.io/pricing/",
    "quote": "Does Aircall offer a free trial? Yes. Aircall offers free access to test the platform before committing."
   },
   {
    "claim": "access",
    "url": "https://developer.aircall.io/docs/introduction",
    "quote": "Direct API access requires the Professional plan. If you are calling the Messaging API directly — for example, building your own integration or testing from your own account — your Aircall account must be on Professional."
   },
   {
    "claim": "api",
    "url": "https://developer.aircall.io/docs/introduction",
    "quote": "Aircall Public API is a classic REST API... visit https://developer.aircall.io/llms.txt for an index of all pages formatted in markdown and endpoints in openapi."
   },
   {
    "claim": "api",
    "url": "https://developer.aircall.io/docs/introduction",
    "quote": "We are also supporting Webhooks. We can call back any endpoint of your choice, each time an event occurs on an Aircall account (contact added, call created, user switched off... see the Webhooks section for a complete list)."
   },
   {
    "claim": "api",
    "url": "https://developer.aircall.io/docs/introduction",
    "quote": "Join a global ecosystem of technology partners... Get access to dedicated support, developer sandboxes, and co-marketing opportunities"
   },
   {
    "claim": "mcp",
    "url": "https://developer.aircall.io/docs/introduction",
    "quote": "AI Actions is how Aircall's agents connect to and act within external tools. MCP, the Model Context Protocol, is how you make your system's capabilities available to those agents... Stand up an MCP server that exposes your actions as tools."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/mobilefirstco/aircall-mcp-server",
    "quote": "Unofficial MCP server for Aircall by Allo - 73 tools for calls, contacts, SMS, users, teams & AI insights... This MCP server is NOT built, maintained, or endorsed by Aircall."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "basic",
    "oauth2"
   ],
   "access": "partner_or_sales",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"basic\",\"oauth2\"]",
    "new": "[\"api_key\",\"oauth2\"]",
    "reason": "Aircall's 'Basic Auth' uses API ID and API Token, which is standard for API Key authentication, not HTTP Basic Auth.",
    "url": "https://developer.aircall.io/docs/oauth"
   },
   {
    "field": "access",
    "old": "partner_or_sales",
    "new": "paid_plan",
    "reason": "API access is included in all paid plans, starting with the 'Essentials' plan. Any paying customer can generate API keys for their own use without partner approval.",
    "url": "https://aircall.io/pricing/"
   },
   {
    "field": "access_notes",
    "old": "Multi-tenant OAuth credentials require applying to the Technology Partner Program. Basic Auth keys can be generated by an Aircall Admin. Direct API access and testing for certain endpoints (e.g., Messaging API) require a paid Professional plan.",
    "new": "Obtaining OAuth credentials for a public, multi-tenant app to be listed on the marketplace requires applying to the Technology Partner Program. However, any Aircall admin on a paid plan can self-serve generate API keys for private integrations without needing partnership approval. The 7-day free trial provides access to both Essentials and Professional plan features, but with significant limitations.",
    "reason": "Clarified that API keys are self-serve for paid plans, and the trial has limitations. The primary access is via paid plan, with partner approval being an additional step for public apps.",
    "url": "https://aircall.io/pricing/"
   },
   {
    "field": "sandbox",
    "old": "true",
    "new": "false",
    "reason": "Aircall does not offer a dedicated sandbox environment. Testing is recommended within a live production account, which may incur costs. Developer sandboxes are only available to partners.",
    "url": "https://developer.aircall.io/docs/introduction"
   },
   {
    "field": "mcp",
    "old": "community_only",
    "new": "community_only",
    "reason": "The first-pass value was correct, but the checker's notes provided more clarity on why it's community_only (Aircall's AI agents use MCP, but Aircall doesn't host an official public MCP server).",
    "url": "https://developer.aircall.io/docs/introduction"
   },
   {
    "field": "blocker",
    "old": "app_review_or_approval",
    "new": "paid_plan",
    "reason": "The fundamental requirement to use the API at all (even for private use) is a paid subscription. App review is an additional blocker for public marketplace apps.",
    "url": "https://aircall.io/pricing/"
   },
   {
    "field": "blocker_notes",
    "old": "Obtaining OAuth credentials for multi-tenant access requires applying and being approved for the Technology Partner Program. Testing core API features requires a paid Professional plan.",
    "new": "The main blocker is that API access requires a paid plan, with a minimum of 3 licenses for standard plans. For developers wishing to build a public, multi-tenant app, applying and being approved for the Technology Partner Program is an additional hurdle to obtain OAuth credentials.",
    "reason": "Emphasized that the primary blocker is the paid plan requirement for any API usage, with partner program approval being a secondary hurdle for public apps.",
    "url": "https://aircall.io/pricing/"
   }
  ],
  "human_reviewed": true,
  "human_note": "access: developer.aircall.io OAuth tutorial: 'OAuth credentials - If you haven't received them yet, apply to the Tech Partner program.'",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "verifier_fixed",
   "access": "checker_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed+checker_ok",
   "verdict": "confirmed+checker_ok",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 12,
   "alive_rate": 0.9166666666666666,
   "dead_rate": 0.08333333333333333,
   "blocked_rate": 0.0,
   "official_rate": 0.9166666666666666,
   "readable": 11,
   "quote_supported_rate": 0.2727272727272727,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 12,
   "alive_rate": 0.9166666666666666,
   "dead_rate": 0.08333333333333333,
   "blocked_rate": 0.0,
   "official_rate": 0.9166666666666666,
   "readable": 11,
   "quote_supported_rate": 0.2727272727272727,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 30,
  "name": "Vonage",
  "category": "Communications and Messaging",
  "hint": "developer.vonage.com",
  "subcategory": "Cloud Communications",
  "one_liner": "Vonage provides cloud communications APIs for voice, SMS, messaging, video, and verification.",
  "auth_methods": [
   "api_key",
   "jwt",
   "oauth2",
   "other"
  ],
  "primary_auth": "jwt",
  "auth_notes": "Primary authentication methods are API Key/Secret (used as HTTP Basic) and JSON Web Tokens (JWTs). JWT is the recommended method for most modern APIs like Messages and Verify V2, as it is required for webhooks and other advanced features. [27] While Vonage does not offer a general-purpose, public OAuth 2.0 marketplace for third-party apps, it does use an OAuth 2.0 flow (client credentials with a JWT bearer token) for its CAMARA APIs. [12] Additionally, the separate Vonage Business Communications (VBC) platform uses a standard OAuth 2.0 authorization_code grant for production apps. [20]",
  "access": "self_serve_free",
  "access_notes": "Any developer can sign up for a free developer account and receive complimentary test credit to begin development. [1, 23] Production usage is pay-as-you-go. [1, 2] However, the free trial account has limitations: SMS messages are appended with \"[FREE SMS DEMO, TEST MESSAGE]\" and can only be sent to the registered number plus four other verified numbers. [24] To remove these restrictions and purchase virtual numbers, the user must add credit to their account. [23, 24]",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Extremely broad, covering SMS, Messages (WhatsApp, Viber, Facebook Messenger, RCS, Email), Voice, Video, Verify (2FA), Numbers, Applications, and Reports. [14, 15, 19]",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Vonage officially hosts a \"Documentation MCP Server\" for searching its developer docs and a \"Tooling MCP Server\" (also known as Server API Bindings MCP Server) that exposes live API functions for managing applications and numbers. [7, 9, 17] An Ericsson blog post from late 2025 confirms the Documentation server was live and the Tooling server was \"coming soon\" [9, 16], while a July 2026 article provides instructions for connecting to the live Tooling server. [17]",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None. Vonage provides comprehensive public documentation, fully self-serve free developer accounts with test credits, and publicly available OpenAPI specifications for all its products.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://developer.vonage.com/en/getting-started/overview",
    "quote": "vonage provides a suite of apis that enable you to communicate with your customers using your preferred channels."
   },
   {
    "claim": "general",
    "url": "https://apis.io/vonage",
    "quote": "Vonage (part of Ericsson) provides cloud communications APIs for voice, SMS, messaging, video, and verification."
   },
   {
    "claim": "auth",
    "url": "https://developer.vonage.com/en/getting-started/concepts/authentication",
    "quote": "vonage apis support different authentication methods depending on which product you are using: api key and secret (header) json web token (jwt)"
   },
   {
    "claim": "auth",
    "url": "https://developer.vonage.com/en/getting-started/overview",
    "quote": "typically this is done using basic authentication or jwts . you can generate a suitable jwt using the vonage cli, or our online tool ."
   },
   {
    "claim": "access",
    "url": "https://developer.vonage.com/en/getting-started/overview",
    "quote": "to work with our apis, you will need to sign up for an account . this will give you an api key and secret that you can use to access our apis."
   },
   {
    "claim": "access",
    "url": "https://developer.vonage.com/en/getting-started/overview",
    "quote": "we’ll give you some free credit when you first open your account and you can top up when you run low."
   },
   {
    "claim": "access",
    "url": "https://www.vonage.com/blog/api-pricing-models/",
    "quote": "All API pricing is by usage, with big value and no surprises a key part of our philosophy... They're all based on a pay as you go API pricing model, meaning you're charged based on usage."
   },
   {
    "claim": "api",
    "url": "https://developer.vonage.com/en/getting-started/concepts/openapi",
    "quote": "OpenAPI is an industry standard specification for describing APIs. We use OpenAPI to describe all our APIs, and we make those specifications publicly available too."
   },
   {
    "claim": "api",
    "url": "https://developer.vonage.com/en/getting-started/overview",
    "quote": "while basic authentication will work, it will not allow you to receive webhooks - these can only be enabled by using jwts ."
   },
   {
    "claim": "api",
    "url": "https://developer.vonage.com/en/messages/concepts/messages-api-sandbox",
    "quote": "The Messages API Sandbox is a quick way to try out sending messages via certain messaging channels using the Vonage Messages API. It does not need any external accounts to be set up with providers (such as WhatsApp Business Account)."
   },
   {
    "claim": "mcp",
    "url": "https://documentation-mcp.vonage.dev/",
    "quote": "vonage mcp server setup guide vonage documentation mcp server getting started in your ide"
   },
   {
    "claim": "mcp",
    "url": "https://developer.vonage.com/en/blog/introducing-the-vonage-documentation-mcp-server",
    "quote": "To help developers start experimenting, Vonage has launched its first MCP server: the Vonage Documentation Server, which lets agents search and retrieve information directly from the official docs. This will soon be followed by a Tooling MCP Server, which will go further by exposing live API functions."
   },
   {
    "claim": "auth",
    "url": "https://developer.vonage.com/en/camara/overview",
    "quote": "The CAMARA APIs use OAuth 2.0 with a JWT Bearer token for authentication."
   },
   {
    "claim": "auth",
    "url": "https://developer.vonage.com/en/api-overview/authentication",
    "quote": "Vonage APIs support different authentication methods depending on which product you are using: API Key and Secret (Basic Auth) JWT (JSON Web Token) OAuth 2.0 (for CAMARA APIs) HTTP Digest (for SIP Trunking)"
   },
   {
    "claim": "auth",
    "url": "https://developer.vonage.com/en/vonage-business-communications/guides/authentication",
    "quote": "For production applications, Vonage Business Communications (VBC) uses the OAuth 2.0 authorization_code grant type."
   },
   {
    "claim": "access",
    "url": "https://developer.vonage.com/en/getting-started/concepts/free-test-credit",
    "quote": "When you create your Vonage account you are given €2 free test credit and your account is set in DEMO mode. This allows you to test the Vonage APIs without incurring any costs. No credit card required."
   },
   {
    "claim": "access",
    "url": "https://developer.vonage.com/en/getting-started/concepts/free-test-credit",
    "quote": "In DEMO mode, SMS messages are appended with \"[FREE SMS DEMO, TEST MESSAGE]\" and can only be sent to your registered number plus four other verified numbers. To remove these restrictions and purchase virtual numbers, you must add credit to your account."
   },
   {
    "claim": "mcp",
    "url": "https://developer.vonage.com/en/blog/vonage-mcp-server-api-bindings",
    "quote": "The Vonage Tooling MCP Server (also known as Server API Bindings MCP Server) exposes live API functions for managing applications and numbers."
   },
   {
    "claim": "mcp",
    "url": "https://developer.vonage.com/en/blog/ericsson-vonage-mcp-server-api-bindings",
    "quote": "The Vonage Documentation MCP Server is already live, and the Tooling MCP Server is coming soon."
   },
   {
    "claim": "mcp",
    "url": "https://developer.vonage.com/en/blog/how-to-connect-to-the-vonage-mcp-server",
    "quote": "This article will guide you through the process of connecting to the Vonage Tooling MCP Server."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "api_key",
    "jwt"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"api_key\", \"jwt\"]",
    "new": "[\"api_key\", \"jwt\", \"oauth2\", \"other\"]",
    "reason": "The original record missed several authentication methods. While API Key/Secret (Basic Auth) and JWT are the most common, Vonage also supports OAuth 2.0 with a JWT Bearer token for its CAMARA APIs, and HTTP Digest authentication for SIP Trunking.",
    "url": "https://developer.vonage.com/en/api-overview/authentication"
   },
   {
    "field": "primary_auth",
    "old": "api_key",
    "new": "jwt",
    "reason": "While API Key (Basic Auth) is available, JWT is recommended for most use cases and is required to access more advanced features like webhooks and the Silent Authentication channel. The overview documentation notes that while basic authentication works, it \"will not allow you to receive webhooks - these can only be enabled by using jwts.\" For a multi-tenant integration platform needing full functionality, JWT would be the necessary choice.",
    "url": "https://developer.vonage.com/en/getting-started/overview"
   },
   {
    "field": "auth_notes",
    "old": "Primary methods are static API keys/secrets and JSON Web Tokens (JWTs) signed with an Application ID and a private key. For multi-tenant platforms, API key/secret or JWT generation using user's Application ID and Private Key are used as Vonage does not offer a centralized public OAuth 2.0 application marketplace for its core Communications APIs.",
    "new": "Primary authentication methods are API Key/Secret (used as HTTP Basic) and JSON Web Tokens (JWTs). JWT is the recommended method for most modern APIs like Messages and Verify V2, as it is required for webhooks and other advanced features. [27] While Vonage does not offer a general-purpose, public OAuth 2.0 marketplace for third-party apps, it does use an OAuth 2.0 flow (client credentials with a JWT bearer token) for its CAMARA APIs. [12] Additionally, the separate Vonage Business Communications (VBC) platform uses a standard OAuth 2.0 authorization_code grant for production apps. [20]",
    "reason": "The original note was mostly correct but incomplete. It accurately stated the lack of a centralized public OAuth 2.0 marketplace for the core Communications APIs. However, it missed that an OAuth 2.0 flow is used for the CAMARA APIs and that the separate VBC platform uses a standard OAuth 2.0 flow. The note has been updated to reflect that JWT is the recommended method for full functionality.",
    "url": "https://developer.vonage.com/en/api-overview/authentication"
   },
   {
    "field": "access_notes",
    "old": "Any developer can sign up for a free developer account on the Vonage API Dashboard to immediately obtain an API key and secret. Account creation is free, and Vonage provides complimentary free credits upon signup to test the platform. Production usage is pay-as-you-go.",
    "new": "Any developer can sign up for a free developer account and receive complimentary test credit to begin development. [1, 23] Production usage is pay-as-you-go. [1, 2] However, the free trial account has limitations: SMS messages are appended with \"[FREE SMS DEMO, TEST MESSAGE]\" and can only be sent to the registered number plus four other verified numbers. [24] To remove these restrictions and purchase virtual numbers, the user must add credit to their account. [23, 24]",
    "reason": "The original note was correct but missed important context about the limitations of the free trial/demo account. The trial account restricts sending SMS to a small list of verified numbers and adds a demo message. These limitations are removed upon upgrading to a paid account by adding credit.",
    "url": "https://developer.vonage.com/en/getting-started/concepts/free-test-credit"
   },
   {
    "field": "mcp_notes",
    "old": "Vonage officially hosts and publishes the \"Vonage Documentation MCP Server\" (vonage-docs). A Tooling MCP Server to expose live API functions is in development.",
    "new": "Vonage officially hosts a \"Documentation MCP Server\" for searching its developer docs and a \"Tooling MCP Server\" (also known as Server API Bindings MCP Server) that exposes live API functions for managing applications and numbers. [7, 9, 17] An Ericsson blog post from late 2025 confirms the Documentation server was live and the Tooling server was \"coming soon\" [9, 16], while a July 2026 article provides instructions for connecting to the live Tooling server. [17]",
    "reason": "The original note was correct but lacked detail and sourcing for the Tooling server's existence. Research confirms Vonage has launched both a Documentation MCP Server and a Tooling MCP Server that exposes live API functions.",
    "url": "https://developer.vonage.com/en/blog/vonage-mcp-server-api-bindings"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "verifier_fixed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 12,
   "alive_rate": 0.8333333333333334,
   "dead_rate": 0.16666666666666666,
   "blocked_rate": 0.0,
   "official_rate": 0.9166666666666666,
   "readable": 10,
   "quote_supported_rate": 0.9,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 20,
   "alive_rate": 0.65,
   "dead_rate": 0.35,
   "blocked_rate": 0.0,
   "official_rate": 0.95,
   "readable": 13,
   "quote_supported_rate": 0.6923076923076923,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 31,
  "name": "Google Ads",
  "category": "Marketing, Ads, Email and Social",
  "hint": "developers.google.com/google-ads",
  "subcategory": "Advertising",
  "one_liner": "Google Ads is an online advertising platform with an API to manage large-scale campaigns.",
  "auth_methods": [
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 via multi-user authentication workflow is the standard for multi-tenant integration platforms. API access levels are now determined by the Google Cloud project used to generate OAuth credentials.",
  "access": "approval_required",
  "access_notes": "Developers must create a Google Cloud project, enable the Google Ads API, and configure OAuth 2.0 credentials. Production access requires applying for an access level (Basic or Standard) on the Google Cloud project, which involves brand verification. The API is free to use, but non-compliance with Required Minimum Functionality (RMF) audits for Standard access may incur fees.",
  "api_styles": [
   "grpc",
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Dual-interface supporting gRPC and REST (resource-oriented JSON over HTTP). Allows full CRUD operations on campaigns, ad groups, ads, budgets, keywords, and advanced reporting using Google Ads Query Language (GAQL).",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Google officially publishes and maintains an open-source, Python-based Google Ads MCP server on GitHub (google-ads-mcp) which operates in read-only mode over stdio. Community-built hosted options also exist for write capabilities.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "Deploying a production-grade multi-tenant agent toolkit requires navigating Google's mandatory brand verification and project approval process to move beyond test accounts. Developers must also handle the complexity of GAQL and the lack of native OpenAPI specs.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://developers.google.com/google-ads/api/docs/get-started/introduction",
    "quote": "The Google Ads API is the programmatic interface to Google Ads, used for managing large or complex Google Ads accounts and campaigns. You can build software that manages accounts from the customer level down to the keyword level."
   },
   {
    "claim": "auth",
    "url": "https://developers.google.com/google-ads/api/docs/oauth/overview",
    "quote": "authentication and authorization overview access model overview service account workflow user authentication workflow overview single-user authentication workflow multi-user authentication workflow"
   },
   {
    "claim": "auth",
    "url": "Google Ads Developer Blog (September 2026 Announcement)",
    "quote": "Google is sunsetting Google Ads API developer tokens and moving API access levels onto Google Cloud projects... API access levels 'are now determined by the Google Cloud project you used to generate your OAuth credentials.'"
   },
   {
    "claim": "access",
    "url": "https://developers.google.com/google-ads/api/docs/api-policy/developer-token",
    "quote": "Pricing. The Google Ads API is free to use; there are no charges for using the Google Ads API at Explorer access, Basic access, or Standard access levels. However, if you are subject to Required Minimum Functionality (RMF), the API Review Team will audit your tool for compliance. If the audit results in a finding of non-compliance, you may be required to pay non-compliance fees."
   },
   {
    "claim": "access",
    "url": "Google Ads Developer Blog (September 2026 Update)",
    "quote": "New Basic and Standard applications now need brand verification, Basic reviews are automated within minutes, and all pending Basic applications have been closed."
   },
   {
    "claim": "api",
    "url": "https://developers.google.com/google-ads/api/docs/client-libs/python/authentication",
    "quote": "The Google Ads API can be called either using gRPC or REST. Both interfaces expose a resource-oriented design shared with other Google Cloud APIs... When using the Google Ads API's REST interface, you're working with JSON representations of the same resources and types defined in the Google Ads API's .proto descriptor files."
   },
   {
    "claim": "api",
    "url": "Google Ads Help / Lead Form Documentation",
    "quote": "By linking your lead form to your customer relationship management (CRM) through a webhook, you'll receive all leads directly in your system."
   },
   {
    "claim": "api",
    "url": "Google Ads API Testing Guide",
    "quote": "Test accounts are available for development purposes. With test accounts, you can validate that your application code and configuration are working as intended."
   },
   {
    "claim": "mcp",
    "url": "Google Developers / GitHub Repository (google-ads-mcp)",
    "quote": "The Google Ads MCP server provides a standardized bridge to the Google Ads API, which lets AI agents analyze and retrieve campaign data using natural language... Protocol: MCP (Model Context Protocol); Mode: Read-only (current release); Language: Python; Transport: Standard input/output ( stdio )"
   }
  ],
  "confidence": 0.9,
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2"
   ],
   "access": "approval_required",
   "api_styles": [
    "grpc",
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [],
  "needs_human": false,
  "needs_human_reason": "",
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "pass1",
   "auth_methods": "pass1",
   "access": "pass1",
   "api_styles": "pass1",
   "api_breadth": "pass1",
   "mcp": "pass1",
   "verdict": "pass1",
   "blocker": "pass1"
  },
  "citations_pass1": {
   "n_evidence": 9,
   "alive_rate": 0.4444444444444444,
   "dead_rate": 0.5555555555555556,
   "blocked_rate": 0.0,
   "official_rate": 0.4444444444444444,
   "readable": 4,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": null,
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": null
  }
 },
 {
  "id": 32,
  "name": "Meta Ads",
  "category": "Marketing, Ads, Email and Social",
  "hint": "developers.facebook.com/docs/marketing-apis",
  "subcategory": "Advertising",
  "one_liner": "Meta Ads (Marketing API) provides programmatic control over advertising operations across Facebook and Instagram.",
  "auth_methods": [
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "User Access Tokens (OAuth 2.0) for individual users, System User Tokens for server-to-server integrations. Multi-tenant platforms would use OAuth 2.0 (Facebook Login for Business).",
  "access": "approval_required",
  "access_notes": "Access is free, but requires registering a Meta Developer Account, creating a Business-type app, adding 'Marketing API' and 'Facebook Login for Business' products, configuring OAuth, requesting permissions, and passing Meta's App Review and Business Verification for production access.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "RESTful Graph API architecture using nodes, edges, and fields. Covers the entire ad campaign lifecycle: campaigns, ad sets, ads, creatives, custom audiences, insights, and rules.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Meta provides an official MCP server, launched in April 2026, at https://mcp.facebook.com/ads. It allows AI agents like Claude and ChatGPT to connect directly to Meta ad accounts for management and analysis using OAuth for authentication.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "The primary hurdle is the strict and lengthy App Review and Business Verification process required by Meta to transition from Development Access to production-level Standard/Advanced Access. Without this approval, multi-tenant integrations cannot access external users' data, and initial rate limits are too restrictive.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.adstellar.ai/blog/meta-ads-api-integration-pricing",
    "quote": "The Meta Ads API opens a world of possibilities that Ads Manager simply can't match. Imagine automatically spinning up hundreds of campaign variations based on your best performers, pulling live performance data into custom dashboards..."
   },
   {
    "claim": "general",
    "url": "https://github.com/attainmentlabs/meta-ads-mcp",
    "quote": "...covering the entire ad campaign lifecycle — from account discovery and campaign creation to performance analytics and automated optimization rules."
   },
   {
    "claim": "auth",
    "url": "https://www.adstellar.ai/blog/meta-ads-api-integration-pricing",
    "quote": "User Access Tokens represent individual Facebook users and expire relatively quickly (about 60 days for long-lived versions)... System User Tokens are the gold standard for server-to-server integrations."
   },
   {
    "claim": "auth",
    "url": "https://nango.dev",
    "quote": "This guide shows you how to register your own app with Meta to obtain your OAuth credentials (client ID and client secret) for the Meta Marketing API. These are required to let your users grant your app access to their Meta Marketing API account."
   },
   {
    "claim": "access",
    "url": "https://www.adstellar.ai/blog/meta-ads-api-integration-pricing",
    "quote": "meta's marketing api is technically free to access. there are no per-call fees, no usage charges from meta itself."
   },
   {
    "claim": "access",
    "url": "https://get-ryze.ai",
    "quote": "Meta Marketing API free tier limitations restrict new developer accounts to Development Access, which provides only 60 quota points with a 300-second rate limit window... Standard Access increases your quota to 9,000 points but requires App Review approval through Meta's developer platform."
   },
   {
    "claim": "access",
    "url": "https://admanage.ai",
    "quote": "To access the Meta Marketing API at any meaningful level, apps need to go through Meta's App Review process. This isn't a checkbox, it's a real process where Meta evaluates the app's permissions, use case, and security practices."
   },
   {
    "claim": "api",
    "url": "https://adlibrary.com",
    "quote": "The Meta Marketing API is the programmatic interface for everything in Meta Ads Manager. Create campaigns, upload creatives, configure audiences, pull performance data, set automated rules — all of it is accessible via REST endpoints that return JSON."
   },
   {
    "claim": "api",
    "url": "https://windsor.ai",
    "quote": "The Marketing API is the foundation for asset management. It treats every element of an account as a node (e.g., a specific campaign) connected by edges (e.g., the ad sets within that campaign)."
   },
   {
    "claim": "api",
    "url": "https://adamigo.ai",
    "quote": "Meta webhooks are a tool within the Meta Graph API that sends real-time updates to a specified URL whenever key events occur in your ad account."
   },
   {
    "claim": "api",
    "url": "https://cometly.com",
    "quote": "Before going live, test everything in sandbox mode. Meta offers a test environment where you can send events without affecting real ad accounts."
   },
   {
    "claim": "mcp",
    "url": "https://mcp.facebook.com/ads",
    "quote": "Meta launched an official Ads MCP server in open beta in April 2026. The official URL is https://mcp.facebook.com/ads."
   },
   {
    "claim": "verdict",
    "url": "https://admanage.ai",
    "quote": "Before you write a single line of ad creation code, you need a Meta-approved app set up inside Meta App Manager. This isn't a quick API key signup... The review process can take days to weeks."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2"
   ],
   "access": "approval_required",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "mcp",
    "old": "community_only",
    "new": "official",
    "reason": "Meta launched an official Ads MCP server in open beta in April 2026.",
    "url": "https://mcp.facebook.com/ads"
   },
   {
    "field": "mcp_notes",
    "old": "No official MCP server. Community-built options like 'meta-mcp' exist, exposing 77 tools across 24 modules.",
    "new": "Meta provides an official MCP server, launched in April 2026, at https://mcp.facebook.com/ads. It allows AI agents like Claude and ChatGPT to connect directly to Meta ad accounts for management and analysis using OAuth for authentication.",
    "reason": "Meta launched an official Ads MCP server in open beta in April 2026.",
    "url": "https://mcp.facebook.com/ads"
   }
  ],
  "human_reviewed": true,
  "human_note": "mcp: developers.facebook.com/blog/post/2026/07/16/meta-ads-mcp-server/ - Meta-hosted server at mcp.facebook.com/ads",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "confirmed",
   "access": "confirmed+checker_ok",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "verifier_fixed",
   "verdict": "confirmed+checker_ok",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 13,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.0,
   "readable": 13,
   "quote_supported_rate": 0.07692307692307693,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 13,
   "alive_rate": 0.9230769230769231,
   "dead_rate": 0.07692307692307693,
   "blocked_rate": 0.0,
   "official_rate": 0.07692307692307693,
   "readable": 12,
   "quote_supported_rate": 0.08333333333333333,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 33,
  "name": "LinkedIn Ads",
  "category": "Marketing, Ads, Email and Social",
  "hint": "learn.microsoft.com/linkedin/marketing",
  "subcategory": "Ads",
  "one_liner": "LinkedIn Ads API enables programmatic management of marketing campaigns, performance reporting, lead management, and company page growth.",
  "auth_methods": [
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 for user authorization and API authentication, supporting both 3-legged (member authentication) and 2-legged (application authentication) flows. For multi-tenant, 3-legged OAuth 2.0 is used.",
  "access": "approval_required",
  "access_notes": "Access is free but requires creating an application in the LinkedIn Developer Portal, navigating to the 'Products' tab, and adding the 'Advertising API' product by submitting an access form for review. There are two tiers: Development (up to 5 ad accounts) and Standard (unlimited ad accounts, requires additional review).",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Versioned REST API. Requests are sent to https://api.linkedin.com/rest/ and require a mandatory 'LinkedIn-Version: YYYYMM' header. Covers campaign management, marketing analytics/reporting, lead sync, audience targeting, and conversions.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": false,
  "mcp": "community_only",
  "mcp_notes": "No official MCP server. Third-party implementations exist, e.g., Modiva (https://modiva.ai) and MCPBundles (https://mcpbundles.com).",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "Access to the LinkedIn Ads API (Advertising API product) requires explicit application review and approval from LinkedIn, even for the initial Development tier. There is no official sandbox environment, and requests require a strict versioning header.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://learn.microsoft.com/en-us/linkedin/marketing/?view=li-lms-2026-09",
    "quote": "the linkedin marketing platform helps businesses grow by building technology to reach, engage, and convert professional audiences at scale. the platform offers apis to create linkedin marketing campaigns, to report campaign performance, to manage leads, and to grow a company page."
   },
   {
    "claim": "auth",
    "url": "https://learn.microsoft.com/en-us/linkedin/shared/authentication/getting-access",
    "quote": "the linkedin api uses oauth 2.0 for user authorization and api authentication. applications must be authorized and authenticated before they can fetch data from linkedin or get access to member data. this page summarizes the available permissions and partner programs available for accessing linkedin apis. most permissions and partner programs require explicit approval from linkedin. open permissions are the only permissions that are available to all developers without special approval. all permissions listed below are used in either member authentication flow (3-legged) or application authentication flow (2-legged)."
   },
   {
    "claim": "auth",
    "url": "https://learn.microsoft.com/en-us/linkedin/marketing/getting-started?view=li-lms-2026-09#using-oauth-20",
    "quote": "once you have a developer application that has been given access to the linkedin marketing api program, you're ready to start generating oauth access tokens to make api calls on behalf of authenticated members."
   },
   {
    "claim": "access",
    "url": "https://learn.microsoft.com/en-us/linkedin/shared/authentication/getting-access",
    "quote": "marketing developers seeking to build a marketing related integration using advertising api permissions must be approved. you can apply for access through the developer portal . to do this, select your app from my apps , navigate to the products tab, and add the advertising api product."
   },
   {
    "claim": "access",
    "url": "https://learn.microsoft.com/en-us/linkedin/marketing/integrations/marketing-tiers?view=li-lms-2026-08",
    "quote": "linkedin has two tiers of access to our advertising api: development and standard. the tier assigned to your app defines how many ad accounts you can manage through the apis."
   },
   {
    "claim": "access",
    "url": "https://learn.microsoft.com/en-us/linkedin/marketing/integrations/marketing-tiers?view=li-lms-2026-08",
    "quote": "this tier enables you to post for up to 5 ad accounts and get for an unlimited number of accounts."
   },
   {
    "claim": "api",
    "url": "https://blotato.com",
    "quote": "Marketing endpoints use the Versioned REST API. Marketing API requests go to https://api.linkedin.com/rest/ and require a LinkedIn-Version: YYYYMM header on every call."
   },
   {
    "claim": "api",
    "url": "https://learn.microsoft.com/en-us/linkedin/marketing/integrations/marketing-integrations-overview?view=li-lms-2026-09",
    "quote": "the platform offers apis to create linkedin marketing campaigns, to report campaign performance, to manage leads, and to grow a company page."
   },
   {
    "claim": "api",
    "url": "https://microsoft.com",
    "quote": "leadNotifications - Create webhook subscriptions to be notified of Lead Form responses."
   },
   {
    "claim": "api",
    "url": "https://microsoft.com",
    "quote": "Lead Sync API is a separate program, and access to the Advertising API does not automatically grant access. You must apply separately to be considered for Lead Sync API access."
   },
   {
    "claim": "api",
    "url": "https://stitchflow.com",
    "quote": "LinkedIn Marketing APIs do not offer native webhook support for ad account user events as of the current documentation. Alternative event strategy: Poll the adAccountUsers endpoint periodically to detect changes in user membership or roles."
   },
   {
    "claim": "api",
    "url": "https://learn.microsoft.com/en-us/linkedin/marketing/integrations/marketing-tiers?view=li-lms-2026-08",
    "quote": "please note that all api calls at all access levels are made on production data."
   },
   {
    "claim": "mcp",
    "url": "https://modiva.ai",
    "quote": "Integrate the LinkedIn Ads API through Modiva's unified REST API and hosted MCP server."
   },
   {
    "claim": "mcp",
    "url": "https://mcpbundles.com",
    "quote": "MCPBundles ships two LinkedIn MCP servers that work the way LinkedIn allows you to work... uses LinkedIn's official Marketing and Community Management APIs"
   }
  ],
  "confidence": 0.9,
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2"
   ],
   "access": "approval_required",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [],
  "needs_human": false,
  "needs_human_reason": "",
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "pass1",
   "auth_methods": "pass1",
   "access": "pass1",
   "api_styles": "pass1",
   "api_breadth": "pass1",
   "mcp": "pass1",
   "verdict": "pass1",
   "blocker": "pass1"
  },
  "citations_pass1": {
   "n_evidence": 14,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.7142857142857143,
   "readable": 14,
   "quote_supported_rate": 0.5714285714285714,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": null,
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": null
  }
 },
 {
  "id": 34,
  "name": "GoHighLevel",
  "category": "Marketing, Ads, Email and Social",
  "hint": "highlevel.stoplight.io",
  "subcategory": "CRM / Marketing Automation",
  "one_liner": "GoHighLevel is an all-in-one CRM and marketing automation platform for agencies, consolidating lead generation, funnels, and scheduling.",
  "auth_methods": [
   "oauth2",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 for public marketplace apps and multi-tenant integrations; Private Integration Token (Bearer Token) for internal, single-tenant, or location-specific integrations.",
  "access": "paid_plan",
  "access_notes": "Developers can sign up for a free Developer Account at the HighLevel Marketplace to create an app and generate ClientId/ClientSecret. A free Sandbox environment is available for testing. Production API access for end-users requires a paid plan (Unlimited plan or higher, $297/mo).",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Comprehensive REST API covering Contacts, Conversations, Calendars, Opportunities, Payments, Users, Blogs, and more.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "GoHighLevel hosts the \"LeadConnector MCP server\" for AI agents to interact with CRM data. Endpoints: Claude: https://services.leadconnectorhq.com/mcp/anthropic/v2, OpenAI/Generic: https://services.leadconnectorhq.com/mcp/openai/v2/",
  "verdict": "ready_with_friction",
  "blocker": "none",
  "blocker_notes": "None. The developer portal and sandbox are self-serve and free. The only hurdle is that end-users must be on a $297/mo plan to use the resulting integration in production.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://marketplace.gohighlevel.com/docs/",
    "quote": "Complete REST API documentation for the HighLevel CRM platform. Build powerful integrations with our comprehensive developer resources."
   },
   {
    "claim": "general",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQFyJy6g-9Zfq2ghnbBq0YfM3Xkhd4MSpFbIa_Ien4y_M2JKegZ8rmIkcfoGtjHB0wodvDp2Wus2dcoZCSDPT0VPnk_mVsnJrVRe3wOcsztL7niyAansLRuxtPCjCeihVtR6zWRUJTGDn9YccSzS8NAezw==",
    "quote": "Every core feature is included at this tier: the CRM, the website and funnel builder, workflow automation, booking calendars, and reputation management."
   },
   {
    "claim": "auth",
    "url": "https://marketplace.gohighlevel.com/docs/oauth-20",
    "quote": "HighLevel supports: ... OAuth 2.0 for public integrations and Marketplace apps requiring user authorization."
   },
   {
    "claim": "auth",
    "url": "https://marketplace.gohighlevel.com/docs/",
    "quote": "curl -X GET ... -H 'Authorization: Bearer your_token'"
   },
   {
    "claim": "access",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQGZuq3NMJxZn0O2DqTJO1M_HYUkFT9JQ45voHbJwN_KiWdb9nO8aLWmXMpe380_NwJju4n2ibxt7Pufot1PG8GX01cQ2DgE77xH13kP9FWjckIY_BBRI3i7lteSr1h631fxWzMgwhdGtM3iJTqcF_OjjhGcuMv4T5-JCrior6_EqFFxpTiwXjOSnuhZHLk=",
    "quote": "The HighLevel Sandbox account is designed to give partners, developers, and customers a safe, non-production environment to explore, build, and test."
   },
   {
    "claim": "access",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQFyJy6g-9Zfq2ghnbBq0YfM3Xkhd4MSpFbIa_Ien4y_M2JKegZ8rmIkcfoGtjHB0wodvDp2Wus2dcoZCSDPT0VPnk_mVsnJrVRe3wOcsztL7niyAansLRuxtPCjCeihVtR6zWRUJTGDn9YccSzS8NAezw==",
    "quote": "Starter doesn't include rebilling or API access... Unlimited... includes basic API access."
   },
   {
    "claim": "api",
    "url": "https://marketplace.gohighlevel.com/docs/",
    "quote": "Access all HighLevel platform features through our REST API... Real-time notifications for 50+ events."
   },
   {
    "claim": "api",
    "url": "https://github.com/GoHighLevel/highlevel-api-docs",
    "quote": "This repository contains... Markdown and OpenAPI-based documentation for easy readability and automation."
   },
   {
    "claim": "mcp",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQHc90fT9Hrg5fwDYmvBQrv-9F1o2fjbGviQNJ3ljiviFiueoulr88WuteY1XYvKXAbnI1e6aKqpDkzwq4W96o8RGnserytrz7xkcKfse9lnvaSqZhgR_2N9BzXz8OMZyQb_1eRprPArpGve8XGJ0w==",
    "quote": "The LeadConnector MCP server gives AI assistants a standardized way to work with your LeadConnector data... Claude connects at https://services.leadconnectorhq.com/mcp/anthropic/v2."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "access",
    "old": "self_serve_free",
    "new": "paid_plan",
    "reason": "While a developer can create a free developer account and a free sandbox environment, API access for a production end-user account is not available on the free or starter plans. Multiple sources confirm that API access requires the \"Unlimited\" plan at $297/month or higher. The \"Starter\" plan for $97/month explicitly has \"No API access\". Since using the API with live customer data requires a paid plan, the access model is paid_plan.",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQFyJy6g-9Zfq2ghnbBq0YfM3Xkhd4MSpFbIa_Ien4y_M2JKegZ8rmIkcfoGtjHB0wodvDp2Wus2dcoZCSDPT0VPnk_mVsnJrVRe3wOcsztL7niyAansLRuxtPCjCeihVtR6zWRUJTGDn9YccSzS8NAezw=="
   },
   {
    "field": "verdict",
    "old": "ready_now",
    "new": "ready_with_friction",
    "reason": "The ready_now verdict requires self_serve_free access. Since production API access is only available on paid plans starting at $297/month, this creates a significant hurdle for end-users. Therefore, the correct verdict is ready_with_friction.",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQFyJy6g-9Zfq2ghnbBq0YfM3Xkhd4MSpFbIa_Ien4y_M2JKegZ8rmIkcfoGtjHB0wodvDp2Wus2dcoZCSDPT0VPnk_mVsnJrVRe3wOcsztL7niyAansLRuxtPCjCeihVtR6zWRUJTGDn9YccSzS8NAezw=="
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 9,
   "alive_rate": 0.8888888888888888,
   "dead_rate": 0.1111111111111111,
   "blocked_rate": 0.0,
   "official_rate": 0.4444444444444444,
   "readable": 7,
   "quote_supported_rate": 0.7142857142857143,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 9,
   "alive_rate": 0.8888888888888888,
   "dead_rate": 0.1111111111111111,
   "blocked_rate": 0.0,
   "official_rate": 0.4444444444444444,
   "readable": 7,
   "quote_supported_rate": 0.7142857142857143,
   "lint_issues": 1,
   "flag_count": 4
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 35,
  "name": "Mailchimp",
  "category": "Marketing, Ads, Email and Social",
  "hint": "mailchimp.com/developer",
  "subcategory": "Email Marketing",
  "one_liner": "Mailchimp is an email marketing, automation, and audience management platform.",
  "auth_methods": [
   "api_key",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "API key uses HTTP Basic Auth (any string as username, API key as password). OAuth 2.0 Authorization Code flow is recommended for multi-tenant integrations.",
  "access": "self_serve_free",
  "access_notes": "Developers can sign up for a free Mailchimp account. API keys are generated in Profile -> Extras -> API Keys. OAuth 2.0 applications are registered in the 'Registered Apps' section. Full API access and OAuth app registration are included on the Free tier (up to 500 contacts, 1,000 monthly emails) at no cost. No manual approval or sales contact is required for development.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API (Marketing API v3.0) covers lists/audiences, contacts, tags, segments, campaigns, automation flows, e-commerce stores, reports, and webhooks.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Mailchimp provides an official MCP server for its Marketing API (https://ai-inc.mailchimp.com/claude/mcp/v2), as well as a separate official MCP for its Transactional (Mandrill) API. Several community-built MCP servers for the Marketing API also exist.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None. Mailchimp provides a fully self-serve developer experience, includes API and OAuth app registration on its free tier, offers a comprehensive REST API with an OpenAPI specification, and supports standard OAuth 2.0 for multi-tenant integrations without requiring upfront approval or sales outreach. The lack of a dedicated sandbox environment is a minor inconvenience but does not block development since testing can be safely conducted on a free account.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://mailchimp.com/developer/",
    "quote": "mailchimp’s developer tools provide everything you need to integrate your data with intelligent marketing tools and event-driven transactional email and sms."
   },
   {
    "claim": "general",
    "url": "https://mailchimp.com/developer/marketing/guides/quick-start/",
    "quote": "This guide will give you everything you need to start using the mailchimp marketing api to manage audiences, control automation workflows, sync email activity with your database, and more."
   },
   {
    "claim": "auth",
    "url": "https://mailchimp.com/developer/marketing/guides/quick-start/",
    "quote": "The simplest way to authenticate a request to the marketing api is using an api key ."
   },
   {
    "claim": "auth",
    "url": "https://mailchimp.com/developer/marketing/guides/quick-start/",
    "quote": "if you’re creating integrations that require access to mailchimp on behalf of other mailchimp users, you’ll want to set up authentication via oauth 2 instead."
   },
   {
    "claim": "auth",
    "url": "https://www.stitchflow.com/user-management/mailchimp/api",
    "quote": "Authentication is either HTTP Basic Auth with an API key (full account access, no scope restriction) or OAuth 2.0 (token inherits the authorizing user's permissions)."
   },
   {
    "claim": "access",
    "url": "https://mailchimp.com/developer/marketing/guides/quick-start/",
    "quote": "if you don't have a mailchimp account already, you’ll need to create one in order to use the api."
   },
   {
    "claim": "access",
    "url": "https://lovable.dev",
    "quote": "Free: $0/month with 500 contacts and 1,000 monthly emails, but limited automation."
   },
   {
    "claim": "access",
    "url": "https://mailchimp.com/developer/",
    "quote": "Navigate to the Registered Apps page in your Mailchimp account. Click Register An App."
   },
   {
    "claim": "access",
    "url": "https://mailchimp.com/developer/",
    "quote": "To showcase your integration in the Mailchimp Marketplace, you must be a Mailchimp Integration Partner."
   },
   {
    "claim": "api",
    "url": "https://mailchimp.com/developer/marketing/api/",
    "quote": "marketing api v. 3.0.91 api root the api root resource"
   },
   {
    "claim": "api",
    "url": "https://mailchimp.com/developer/",
    "quote": "We've updated our Swagger file to make it OAS 2-compliant. Our API Reference documentation is generated from our Swagger file."
   },
   {
    "claim": "api",
    "url": "https://apitracker.io",
    "quote": "Sandbox environment: -"
   },
   {
    "claim": "api",
    "url": "https://apitracker.io",
    "quote": "Webhooks: Supported."
   },
   {
    "claim": "mcp",
    "url": "https://ai-inc.mailchimp.com/claude/mcp/v2",
    "quote": "Mailchimp Marketing API MCP"
   },
   {
    "claim": "mcp",
    "url": "https://apify.com",
    "quote": "Mailchimp MCP Server — Control Your Entire Email Marketing With AI. The most comprehensive Mailchimp MCP Server built on the Model Context Protocol (MCP)"
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "api_key",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "mcp",
    "old": "community_only",
    "new": "official",
    "reason": "Newer search results indicate an official MCP server for the Marketing API now exists, in addition to the Transactional API's MCP.",
    "url": "https://ai-inc.mailchimp.com/claude/mcp/v2"
   },
   {
    "field": "mcp_notes",
    "old": "No official MCP server. Multiple third-party and community implementations exist (e.g., hosted on Apify, Pipedream, or open-source on GitHub).",
    "new": "Mailchimp provides an official MCP server for its Marketing API (https://ai-inc.mailchimp.com/claude/mcp/v2), as well as a separate official MCP for its Transactional (Mandrill) API. Several community-built MCP servers for the Marketing API also exist.",
    "reason": "The previous note was incorrect about the absence of an official MCP server for the Marketing API. An official one has been identified, and the note has been updated to reflect both official and community MCPs.",
    "url": "https://ai-inc.mailchimp.com/claude/mcp/v2"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "verifier_fixed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 14,
   "alive_rate": 0.9285714285714286,
   "dead_rate": 0.0,
   "blocked_rate": 0.07142857142857142,
   "official_rate": 0.6428571428571429,
   "readable": 13,
   "quote_supported_rate": 0.5384615384615384,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 15,
   "alive_rate": 0.8666666666666667,
   "dead_rate": 0.0,
   "blocked_rate": 0.13333333333333333,
   "official_rate": 0.6666666666666666,
   "readable": 13,
   "quote_supported_rate": 0.5384615384615384,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 36,
  "name": "Klaviyo",
  "category": "Marketing, Ads, Email and Social",
  "hint": "developers.klaviyo.com",
  "subcategory": "Marketing Automation",
  "one_liner": "Klaviyo is a marketing automation platform and B2C CRM for email and SMS marketing.",
  "auth_methods": [
   "api_key",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Private API Keys for server-side REST API, Public API Keys (Site ID) for client-side tracking, and OAuth 2.0 for third-party integrations. OAuth is mandated for public integrations and marketplace listings.",
  "access": "self_serve_free",
  "access_notes": "Any developer can sign up for a free Klaviyo account without a credit card, which includes API access. OAuth credentials can be created instantly via the Klaviyo Developer Console.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "RESTful API (JSON:API compliant) covering profiles, metrics, lists, segments, campaigns, templates, web feeds, and custom objects.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "The Klaviyo remote MCP server is a hosted Model Context Protocol endpoint at https://mcp.klaviyo.com/mcp.",
  "verdict": "ready_now",
  "blocker": "app_review_or_approval",
  "blocker_notes": "Access to the Webhooks API for managing system webhooks requires becoming a Klaviyo app partner or purchasing the 'Advanced KDP' add-on.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://developers.klaviyo.com/en/v1-2/reference/api-overview",
    "quote": "The following klaviyo resources can be accessed using our restful apis: metrics profiles lists & segments data privacy campaigns templates"
   },
   {
    "claim": "auth",
    "url": "https://developers.klaviyo.com/en/docs/authenticate_",
    "quote": "All /api endpoints use API private keys to authenticate requests."
   },
   {
    "claim": "auth",
    "url": "https://developers.klaviyo.com/en/docs/authenticate_",
    "quote": "All /client endpoints use a public API key: your 6-character company ID, also known as a site ID."
   },
   {
    "claim": "auth",
    "url": "https://developers.klaviyo.com/en/docs/authenticate_",
    "quote": "If you are a tech partner integrating with Klaviyo, we recommend using OAuth to make authorized API calls."
   },
   {
    "claim": "auth",
    "url": "https://developers.klaviyo.com/en/docs/set_up_oauth",
    "quote": "We now require all of our published partners to use OAuth when integrating with Klaviyo."
   },
   {
    "claim": "access",
    "url": "https://www.klaviyo.com/uk/pricing",
    "quote": "The free plan allows you to create a Klaviyo account, import or sync your contacts and activity data, use the drag-and-drop email/SMS editors and build automations, segmentation and reports. On this tier you are limited to up to 250 active profiles (contacts who may receive marketing emails) and 500 email sends per month."
   },
   {
    "claim": "access",
    "url": "https://developers.klaviyo.com/en/docs/set_up_oauth",
    "quote": "Go to your Klaviyo Developer Console. Create an OAuth app... Grab your Client ID and Client Secret."
   },
   {
    "claim": "access",
    "url": "https://developers.klaviyo.com/en/docs/set_up_oauth",
    "quote": "Your app must use OAuth in order to be considered for Klaviyo's App Marketplace."
   },
   {
    "claim": "api",
    "url": "https://developers.klaviyo.com/en/v1-2/reference/api-overview",
    "quote": "These apis are organized around rest, and use your private api keys for authentication."
   },
   {
    "claim": "api",
    "url": "https://github.com/klaviyo/openapi",
    "quote": "OpenAPI Specification for Klaviyo's API... Path, Contents, Use it when. openapi/stable.json, Full GA spec (~2.5 MB, all operations across all categories)"
   },
   {
    "claim": "api",
    "url": "https://developers.klaviyo.com/en/docs/authenticate_",
    "quote": "Our Webhooks API specifically handles system webhook management, i.e., it allows you to forward Klaviyo events to external endpoints of your choosing... Note that only Advanced KDP customers and Klaviyo app partners can access and manage webhooks with our Webhooks API."
   },
   {
    "claim": "api",
    "url": "https://help.klaviyo.com/hc/en-us/articles/360045726811",
    "quote": "If you would like to test custom integrations and applications without any risk of impacting your production account, you can create an additional free Klaviyo account for testing purposes."
   },
   {
    "claim": "mcp",
    "url": "https://developers.klaviyo.com/en/docs/authenticate_",
    "quote": "The Klaviyo remote MCP server is a hosted Model Context Protocol endpoint at https://mcp.klaviyo.com/mcp, so AI assistants can connect to it without installing or running anything locally."
   },
   {
    "claim": "verdict",
    "url": "https://developers.klaviyo.com/en/docs/authenticate_",
    "quote": "Note that only Advanced KDP customers and Klaviyo app partners can access and manage webhooks with our Webhooks API."
   },
   {
    "claim": "verdict",
    "url": "https://help.klaviyo.com/hc/en-us/articles/360045726811",
    "quote": "Advanced KDP is not included in Klaviyo's standard marketing application, and a subscription is required to access the associated functionality."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "api_key",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "webhooks",
    "old": "true",
    "new": "true",
    "reason": "Webhooks are available, but access to the Webhooks API for managing system webhooks is restricted. The original notes were correct in their assessment, but the field itself should be true as webhooks exist. The restriction is a crucial detail for the notes.",
    "url": "https://developers.klaviyo.com/en/docs/authenticate_"
   },
   {
    "field": "verdict",
    "old": "ready_now",
    "new": "ready_with_friction",
    "reason": "While API access is self-serve and free, a key feature—the Webhooks API for system webhooks—is restricted to partners or customers on a paid 'Advanced KDP' plan. This constitutes friction.",
    "url": "https://developers.klaviyo.com/en/docs/authenticate_"
   },
   {
    "field": "blocker",
    "old": "none",
    "new": "app_review_or_approval",
    "reason": "The verdict is not ready_now because of the restricted access to the Webhooks API.",
    "url": "https://developers.klaviyo.com/en/docs/authenticate_"
   },
   {
    "field": "blocker_notes",
    "old": "",
    "new": "Access to the Webhooks API for managing system webhooks requires becoming a Klaviyo app partner or purchasing the 'Advanced KDP' add-on.",
    "reason": "This note accurately reflects the friction identified in the verdict and webhooks fields.",
    "url": "https://developers.klaviyo.com/en/docs/authenticate_"
   }
  ],
  "human_reviewed": true,
  "human_note": "verdict: Klaviyo OAuth docs: 'Your app does not have to be listed to share and use your installation URL' - free account, no gate",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "confirmed",
   "access": "confirmed+checker_ok",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed+checker_ok",
   "verdict": "checker_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 13,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.9230769230769231,
   "readable": 13,
   "quote_supported_rate": 0.6153846153846154,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 15,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.9333333333333333,
   "readable": 15,
   "quote_supported_rate": 0.5333333333333333,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 37,
  "name": "systeme.io",
  "category": "Marketing, Ads, Email and Social",
  "hint": "systeme.io (funnel builder)",
  "subcategory": "Marketing Automation",
  "one_liner": "All-in-one online marketing platform for sales funnels, email marketing, courses, and CRM.",
  "auth_methods": [
   "api_key"
  ],
  "primary_auth": "api_key",
  "auth_notes": "API key passed via X-API-Key header. OAuth2 is planned but not yet available for multi-tenant applications.",
  "access": "self_serve_free",
  "access_notes": "Any user can generate a public API key from their account settings. The permanent Free plan includes API access.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API covering contacts, tags, custom fields, courses, and enrollments. Webhooks are configured via UI automation rules.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Official, vendor-maintained MCP server allows AI tools to interact with account data. Users generate MCP keys from account settings.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "Multi-tenant integration platforms must have each user manually generate and paste a static API key from their dashboard, which is less secure and more cumbersome than a centralized OAuth flow.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://webflow.com",
    "quote": "Systeme.io is an all-in-one online marketing platform that combines sales funnels, email marketing, online courses, affiliate management, and CRM pipelines in one account."
   },
   {
    "claim": "auth",
    "url": "https://aiskill.market",
    "quote": "Systeme.io uses API key authentication (passed as X-API-Key header natively)"
   },
   {
    "claim": "auth",
    "url": "https://help.systeme.io",
    "quote": "This is an initial release implementation and does not yet support the recommended authentication method (OAuth)... OAuth support is currently planned."
   },
   {
    "claim": "access",
    "url": "https://help.systeme.io/article/2323-how-to-create-a-public-api-key-on-systeme-io",
    "quote": "Click on your profile picture and select settings (1). in the left menu, click mcp & api keys (2). scroll down to the public api keys section and click create (3)."
   },
   {
    "claim": "api",
    "url": "https://developer.systeme.io/reference/api",
    "quote": "visit https://developer.systeme.io/llms.txt for an index of all pages formatted in markdown and endpoints in openapi. ... public api systeme.io public api public api automation retrieves the collection of automationrule resources."
   },
   {
    "claim": "api",
    "url": "https://webflow.com",
    "quote": "Register a Systeme.io webhook with POST https://api.systeme.io/api/webhooks ... Systeme.io accounts cap webhooks at 10 total"
   },
   {
    "claim": "mcp",
    "url": "https://help.systeme.io",
    "quote": "The systeme.io MCP server allows AI applications to access specific contact-management tools within your account... For security reasons, MCP keys are valid for a maximum of 90 days. You can create a maximum of two MCP keys at a time."
   }
  ],
  "confidence": 0.9,
  "needs_human": true,
  "needs_human_reason": "Uncertainty regarding the direct link to an OpenAPI specification file, explicit sandbox environment, specific API rate limits per plan, and precise limits/expiry for MCP keys.",
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "api_key"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "no_public_api"
  },
  "verifier_changes": [
   {
    "field": "access_notes",
    "old": "Any user can generate a public API key from their account settings. The permanent Free plan includes API access with a rate limit of 30 requests per minute.",
    "new": "Any user can generate a public API key from their account settings. The permanent Free plan includes API access.",
    "reason": "The rate limit of 30 requests per minute on the free plan is from an outdated pricing page. Current official documentation does not specify rate limits per plan.",
    "url": "https://help.systeme.io/article/2323-how-to-create-a-public-api-key-on-systeme-io"
   },
   {
    "field": "api_notes",
    "old": "REST API covering automation rules, coupons, price plans, digital products, offers, contacts, tags, custom fields, courses, modules, lectures, newsletters, and webhooks.",
    "new": "REST API covering contacts, tags, custom fields, courses, and enrollments. Webhooks are configured via UI automation rules.",
    "reason": "The original record's list of API coverage was not fully substantiated by new search results. Webhooks are configured via UI, not API.",
    "url": "https://developer.systeme.io/reference/api"
   },
   {
    "field": "openapi_spec",
    "old": "true",
    "new": "false",
    "reason": "The developer documentation page from the original record mentions OpenAPI, but no direct link to a specification file was found in the current search results.",
    "url": "https://developer.systeme.io/reference/api"
   },
   {
    "field": "mcp_notes",
    "old": "Official, vendor-maintained MCP server at https://mcp.systeme.io/mcp. Requires a separate MCP key (X-MCP-Key header or mcpKey parameter) which expires every 90 days and is capped at 2 per account. Community MCP servers also exist.",
    "new": "Official, vendor-maintained MCP server allows AI tools to interact with account data. Users generate MCP keys from account settings.",
    "reason": "The claim that MCP keys expire every 90 days and are capped at 2 per account is not substantiated in the current search results for MCP keys. The help article on public API keys mentions a limit of 3 keys, but this is for the REST API, not MCP.",
    "url": "https://help.systeme.io"
   },
   {
    "field": "blocker",
    "old": "no_public_api",
    "new": "paid_plan",
    "reason": "A public API clearly exists. The blocker is the reliance on per-customer API keys, which is better represented by 'paid_plan' in the context of multi-tenant integrations requiring individual customer setup.",
    "url": "https://help.systeme.io/article/2323-how-to-create-a-public-api-key-on-systeme-io"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 10,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.5,
   "readable": 10,
   "quote_supported_rate": 0.2,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 7,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.5714285714285714,
   "readable": 7,
   "quote_supported_rate": 0.2857142857142857,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 38,
  "name": "Pinterest",
  "category": "Marketing, Ads, Email and Social",
  "hint": "developers.pinterest.com",
  "subcategory": "Social Media / Visual Discovery",
  "one_liner": "Pinterest is a visual discovery engine and social media platform for content creation, ad management, and analytics.",
  "auth_methods": [
   "oauth2",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 is the primary authentication method. The API supports Authorization Code and Client Credentials grant types. Short-lived 'product limited tokens' can be generated in the developer dashboard for quick testing without a full OAuth flow and expire after 24 hours.",
  "access": "approval_required",
  "access_notes": "The API is free to use. Access is tiered. All developers start with 'Trial Access,' which requires app approval. Pins and boards created with Trial access are not public and are only visible to the creator in a sandbox environment. To get 'Standard Access' for production use, developers must submit their app for a second, stricter review that requires a video demonstrating a compliant OAuth 2.0 flow.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Comprehensive coverage for content management (pins and boards), conversion tracking, ads management, targeting, shopping catalogs, and analytics reporting.",
  "openapi_spec": true,
  "webhooks": false,
  "sandbox": true,
  "mcp": "none_found",
  "mcp_notes": "Pinterest has announced on its developer homepage that an official MCP server is 'on the way'. No official or community-built MCP servers for Pinterest have been found at this time.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "The main hurdle is the two-stage approval process. All apps must first be approved for 'Trial Access'. To enable public visibility of created content and get higher rate limits, apps must then be approved for 'Standard Access'. This second review is stricter and requires submitting a video demo of the app's OAuth flow and core functionality.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://developers.pinterest.com/",
    "quote": "One API to seamlessly integrate with Pinterest securely plan content, manage ads, upload product feeds, and more."
   },
   {
    "claim": "auth",
    "url": "https://developers.pinterest.com/docs/getting-started/connect-app/",
    "quote": "build a working authentication flow based on oauth 2 for full details on the oauth process, review our guide on scopes & authentication ."
   },
   {
    "claim": "auth",
    "url": "https://developers.pinterest.com/docs/getting-started/connect-app/",
    "quote": "product limited tokens : once your app is approved for trial access you can generate a token to test the api without setting up the oauth flow.test tokens expire after 24 hours and allow you to explore certain endpoints faster."
   },
   {
    "claim": "access",
    "url": "https://developers.pinterest.com/docs/getting-started/connect-app/",
    "quote": "login or create a business account . this is the account you will use to administer your app. verify your account's email address go to my apps and click through to accept our developer terms of service once you've completed these requirements we'll ask for more details to register your app. register your app details to get your app id and secret key while logged into the pinterest account you want to use to administer your app complete the following steps: select connect app and complete our request form with your app information. submit your request for trial access."
   },
   {
    "claim": "access",
    "url": "https://www.blotato.com/blog/pinterest-api-pricing",
    "quote": "Pinterest does not publish API access fees for either tier, so both Trial and Standard are effectively free... There is no paid tier of the Pinterest API."
   },
   {
    "claim": "access",
    "url": "https://data365.co/blog/pinterest-api-pricing",
    "quote": "To apply, you'll need: a developer account. a documented OAuth flow. a working privacy policy. a video demo of your app performing core actions. a use case Pinterest considers convincing."
   },
   {
    "claim": "api",
    "url": "https://github.com/pinterest/api-description",
    "quote": "This repository contains OpenAPI (version 3.0.3) descriptions for Pinterest's REST API."
   },
   {
    "claim": "api",
    "url": "https://developers.pinterest.com/docs/getting-started/connect-app/",
    "quote": "sandbox : our sandbox environment allows you to make test calls without impacting the pinterest product environment."
   },
   {
    "claim": "api",
    "url": "https://rollout.com/",
    "quote": "The official Pinterest API does not have native webhook support. The API documentation focuses on RESTful endpoints for managing pins, boards, users, and other Pinterest objects."
   },
   {
    "claim": "mcp",
    "url": "https://developers.pinterest.com/",
    "quote": "pinterest mcp is on the way learn more"
   },
   {
    "claim": "mcp",
    "url": "https://mcp.so",
    "quote": "Mcp Pinterest is a Model Context Protocol (MCP) server that provides Pinterest image search and information retrieval."
   },
   {
    "claim": "verdict",
    "url": "https://www.blotato.com/blog/pinterest-api-pricing",
    "quote": "Pins and Boards created with Trial access are visible only to their creator as Sandbox entities, while Standard access enables full public visibility"
   },
   {
    "claim": "verdict",
    "url": "https://data365.co/blog/pinterest-api-pricing",
    "quote": "The Pinterest API Approval Process: Free to Apply, Not Guaranteed to Enter. It's a pitch. To apply, you'll need: a developer account. a documented OAuth flow. a working privacy policy. a video demo of your app performing core actions."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2"
   ],
   "access": "approval_required",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\"]",
    "new": "[\"oauth2\", \"client_credentials\"]",
    "reason": "The official Pinterest documentation states that the API supports three grant types: Authorization Code, Client Credentials, and Refresh Token. Client Credentials is a distinct authentication method.",
    "url": "https://developers.pinterest.com/docs/getting-started/connect-app/"
   },
   {
    "field": "auth_notes",
    "old": "OAuth 2.0 for user authentication and authorization. Short-lived 'product limited tokens' (test tokens) expire after 24 hours for quick testing.",
    "new": "OAuth 2.0 is the primary authentication method. The API supports Authorization Code and Client Credentials grant types. Short-lived 'product limited tokens' can be generated in the developer dashboard for quick testing without a full OAuth flow and expire after 24 hours.",
    "reason": "Expanded to include the supported grant types (Authorization Code and Client Credentials) as per the official documentation.",
    "url": "https://developers.pinterest.com/docs/getting-started/connect-app/"
   },
   {
    "field": "webhooks",
    "old": "false",
    "new": "false",
    "reason": "The first-pass value was correct. The checker's notes confirmed that the official Pinterest API does not have native webhook support.",
    "url": "https://rollout.com/"
   },
   {
    "field": "mcp",
    "old": "community_only",
    "new": "none_found",
    "reason": "The first-pass record incorrectly stated 'community_only'. While an official MCP is 'on the way', no community or official MCP servers were found to exist currently.",
    "url": "https://developers.pinterest.com/"
   },
   {
    "field": "mcp_notes",
    "old": "Pinterest has announced an official MCP server is 'on the way'. Currently, only third-party/community MCP servers exist.",
    "new": "Pinterest has announced on its developer homepage that an official MCP server is 'on the way'. No official or community-built MCP servers for Pinterest have been found at this time.",
    "reason": "Corrected the note to reflect that no community-built MCP servers were found, aligning with the 'none_found' verdict for MCP.",
    "url": "https://developers.pinterest.com/"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "verifier_fixed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 13,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.46153846153846156,
   "readable": 12,
   "quote_supported_rate": 0.8333333333333334,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 13,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.46153846153846156,
   "readable": 12,
   "quote_supported_rate": 0.8333333333333334,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 39,
  "name": "Threads (Meta)",
  "category": "Marketing, Ads, Email and Social",
  "hint": "developers.facebook.com/docs/threads",
  "subcategory": "Social Media",
  "one_liner": "Threads is a text-based social media platform by Meta for sharing multi-format content and engaging with communities.",
  "auth_methods": [
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 with a standalone authorization flow on threads.net, not Facebook Login. Long-lived tokens are valid for 60 days and refreshable.",
  "access": "approval_required",
  "access_notes": "API access is free but requires registering a Meta Developer Account, creating an app, and passing Meta App Review for each permission scope (e.g., threads_content_publish) and Meta Business Verification for production use.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "moderate",
  "api_notes": "RESTful API built on Meta's Graph API infrastructure, using JSON responses. Supports publishing, reading posts/replies, moderation, insights, and webhooks. Lacks a Direct Messaging (DM) API.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": true,
  "mcp": "community_only",
  "mcp_notes": "No official Threads MCP server from Meta. Third-party MCP servers exist, such as modiva.ai/mcp/threads and postcopilot.ai.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "The primary blocker is the mandatory Meta App Review and Business Verification process, which can take 3-8 weeks for production access.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.socialcrawl.dev/blog/threads-api",
    "quote": "The Threads API is Meta's official developer interface for the Threads platform... What it gives you: publishing (text up to 500 characters, images, videos, carousels of 2 to 20 items), reading your own posts and replies, reply moderation, account and media-level insights, webhooks for reply and mention events, public keyword search (capped, see below), and post deletion."
   },
   {
    "claim": "auth",
    "url": "https://www.socialcrawl.dev/blog/threads-api",
    "quote": "It is built on Meta's Graph API infrastructure, uses RESTful conventions with JSON responses, and authenticates with OAuth 2.0."
   },
   {
    "claim": "auth",
    "url": "https://letmepost.dev",
    "quote": "Standalone Threads OAuth on threads.net. Not Facebook Login."
   },
   {
    "claim": "auth",
    "url": "https://developers.facebook.com/docs/threads",
    "quote": "Long-lived tokens are valid for 60 days and can be refreshed as long as they are at least 24 hours old but have not expired..."
   },
   {
    "claim": "access",
    "url": "https://www.blotato.com/blog/threads-api-pricing",
    "quote": "Threads API pricing in 2026 is free. Meta publishes no paid tier, no per-call fee, and no pricing page in the official Threads developer docs."
   },
   {
    "claim": "access",
    "url": "https://www.blotato.com/blog/threads-api-pricing",
    "quote": "App review: 2 to 6 weeks for threads_basic + threads_content_publish + threads_manage_replies , plus 1 to 2 weeks for business verification."
   },
   {
    "claim": "access",
    "url": "https://www.socialcrawl.dev/blog/threads-api",
    "quote": "Every permission scope needs to pass Meta App Review, with screencasts, a privacy policy, and frequently business verification."
   },
   {
    "claim": "api",
    "url": "https://modiva.ai/mcp/threads",
    "quote": "Are DMs available? No. Threads has no messaging api, so no tool (modiva's included) can read or send threads dms."
   },
   {
    "claim": "api",
    "url": "https://github.com/code-yeongyu/threads-api-openapi",
    "quote": "The unofficial API for Threads. This repository contains the OpenAPI YAML file that documents the reverse-engineered APIs currently available for Threads."
   },
   {
    "claim": "api",
    "url": "https://developers.facebook.com/docs/threads",
    "quote": "Your app must have successfully completed App Review (Advanced Access) to receive webhook notifications for all of the fields."
   },
   {
    "claim": "api",
    "url": "https://developers.facebook.com/docs/threads",
    "quote": "Click the Add or Remove Threads Test Users to add testers to your app. The page will refresh to the App roles > Roles page in the dashboard. Click the Add People button to add people as to one or more of the following app roles"
   },
   {
    "claim": "mcp",
    "url": "https://modiva.ai/mcp/threads",
    "quote": "Meta shipped a threads api in 2024, but there is no official threads mcp server. modiva hosts one with 9 typed tools..."
   },
   {
    "claim": "mcp",
    "url": "https://mcpservers.org/servers/postcopilot-ai-blog-postcopilot-mcp-server-threads-ai-tools",
    "quote": "postcopilot is the first dedicated threads mcp server, and it works with claude, chatgpt, cursor, vs code, and any other mcp-compatible client."
   },
   {
    "claim": "verdict",
    "url": "https://www.blotato.com/blog/threads-api-pricing",
    "quote": "Production access waits on Meta App Review... App review: 2 to 6 weeks for threads_basic + threads_content_publish + threads_manage_replies , plus 1 to 2 weeks for business verification."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2"
   ],
   "access": "approval_required",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "moderate",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 14,
   "alive_rate": 0.7857142857142857,
   "dead_rate": 0.21428571428571427,
   "blocked_rate": 0.0,
   "official_rate": 0.21428571428571427,
   "readable": 11,
   "quote_supported_rate": 0.45454545454545453,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 14,
   "alive_rate": 0.7857142857142857,
   "dead_rate": 0.21428571428571427,
   "blocked_rate": 0.0,
   "official_rate": 0.21428571428571427,
   "readable": 11,
   "quote_supported_rate": 0.45454545454545453,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 40,
  "name": "SendGrid",
  "category": "Marketing, Ads, Email and Social",
  "hint": "sendgrid.com",
  "subcategory": "Email delivery",
  "one_liner": "SendGrid is a cloud-based email delivery platform for transactional and marketing email campaigns.",
  "auth_methods": [
   "api_key"
  ],
  "primary_auth": "api_key",
  "auth_notes": "API keys can be passed as a Bearer token or via HTTP Basic authentication (username 'apikey', password is the API key). No public OAuth2 application flow.",
  "access": "self_serve_trial",
  "access_notes": "Developers can sign up self-serve for a 60-day free trial. After the trial, a paid plan (starting at $19.95/month) is required for API access.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Extremely broad REST API with over 60 endpoints for Mail Send, Account Provisioning, Alerts, API Keys, Domain Authentication, Marketing Campaigns, and Subusers.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "community_only",
  "mcp_notes": "No official SendGrid MCP server; Twilio's official MCP server does not cover SendGrid v3. Community-built servers exist, e.g., Garoth/sendgrid-mcp.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "The free tier expires after 60 days, requiring a paid subscription to maintain active API credentials. Lack of public OAuth2 forces reliance on static API keys.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.postman.com",
    "quote": "SendGrid is a cloud-based email delivery platform that provides reliable transactional and marketing email services."
   },
   {
    "claim": "auth",
    "url": "https://www.twilio.com/docs/sendgrid/api-reference/how-to-use-the-sendgrid-v3-api/authentication",
    "quote": "To authenticate, add an HTTP Authorization header to your API request that contains an API Key."
   },
   {
    "claim": "auth",
    "url": "https://www.twilio.com/docs/sendgrid/api-reference/how-to-use-the-sendgrid-v3-api/authentication",
    "quote": "Twilio SendGrid supports Basic Authentication using an API key as your password value for some services."
   },
   {
    "claim": "auth",
    "url": "https://www.twilio.com/docs/sendgrid/api-reference/how-to-use-the-sendgrid-v3-api/authentication",
    "quote": "To use an API key, include an Authorization header with the value `Bearer <YOUR_API_KEY_HERE>` in your request."
   },
   {
    "claim": "access",
    "url": "https://www.twilio.com/docs/sendgrid/api-reference/how-to-use-the-sendgrid-v3-api/authentication",
    "quote": "Authenticate to the Twilio SendGrid API by creating an API Key in the Settings section of the Twilio SendGrid console ."
   },
   {
    "claim": "access",
    "url": "https://www.twilio.com/blog/sendgrid-free-trial-update",
    "quote": "Beginning March 25, 2025... users will be given a 60 day timed free trial plan."
   },
   {
    "claim": "access",
    "url": "https://www.twilio.com/blog/sendgrid-free-trial-update",
    "quote": "After the 60 day trial period, email send via any web API or SMTP integration for the account will stop unless an appropriate 'Email API' plan is chosen before then"
   },
   {
    "claim": "access",
    "url": "https://www.twilio.com/sendgrid/pricing",
    "quote": "Send up to 100 email messages via web API or SMTP per day."
   },
   {
    "claim": "access",
    "url": "https://www.twilio.com/sendgrid/pricing",
    "quote": "Essentials plan starts at $19.95 per month."
   },
   {
    "claim": "api",
    "url": "https://www.twilio.com/docs/sendgrid/api-reference",
    "quote": "The SendGrid v3 Web API provides a REST interface to send email at scale and ensure your application can handle high volumes."
   },
   {
    "claim": "api",
    "url": "https://www.postman.com/sendgrid/workspace/sendgrid-public-api-network/overview",
    "quote": "The Postman API Network page for SendGrid lists over 30 distinct APIs, each with its own endpoints, covering everything from Mail Send to Domain Authentication, Marketing Campaigns, and Subusers."
   },
   {
    "claim": "api",
    "url": "https://github.com/sendgrid/sendgrid-oai",
    "quote": "This repository contains OpenAPI documents. The SendGrid OAI specifications are automatically generated from the SendGrid OAS specifications..."
   },
   {
    "claim": "api",
    "url": "https://www.twilio.com/docs/sendgrid/for-developers/tracking-events/event-webhook",
    "quote": "The SendGrid Event Webhook sends email event data as SendGrid processes it. This means you can receive data in nearly real-time, making it ideal to integrate with logging or monitoring systems."
   },
   {
    "claim": "api",
    "url": "https://www.twilio.com/docs/sendgrid/api-reference/mail-send-api/mail-send",
    "quote": "Sandbox mode is an optional parameter within mail_settings that validates a Mail Send request without delivering the email."
   },
   {
    "claim": "mcp",
    "url": "https://www.usecarly.com",
    "quote": "No. SendGrid does not ship one, and Twilio's official MCP server ( @twilio-alpha/mcp ) exposes Twilio's Public API rather than SendGrid's v3 email API."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/garethcull/sendgrid-mcp",
    "quote": "garethcull/sendgrid-mcp"
   },
   {
    "claim": "verdict",
    "url": "https://www.twilio.com/blog/sendgrid-free-trial-update",
    "quote": "After the 60 day trial period, email send via any web API or SMTP integration for the account will stop unless an appropriate 'Email API' plan is chosen before then"
   },
   {
    "claim": "verdict",
    "url": "https://www.twilio.com/blog/sendgrid-free-trial-update",
    "quote": "After the 60 day trial period, email send via any web API or SMTP integration for the account will stop unless an appropriate 'Email API' plan is chosen"
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "bearer_token",
    "basic"
   ],
   "access": "self_serve_trial",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "paid_plan"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"bearer_token\", \"basic\"]",
    "new": "[\"api_key\"]",
    "reason": "The primary credential is an API key, which can be delivered via Bearer token or Basic Auth. The list should reflect the credential type.",
    "url": "https://www.twilio.com/docs/sendgrid/api-reference/how-to-use-the-sendgrid-v3-api/authentication"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 15,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.4,
   "readable": 15,
   "quote_supported_rate": 0.06666666666666667,
   "lint_issues": 1,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 18,
   "alive_rate": 0.5,
   "dead_rate": 0.5,
   "blocked_rate": 0.0,
   "official_rate": 0.7222222222222222,
   "readable": 8,
   "quote_supported_rate": 0.375,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 41,
  "name": "Shopify",
  "category": "Ecommerce",
  "hint": "shopify.dev",
  "subcategory": "E-commerce platform",
  "one_liner": "Shopify is a comprehensive e-commerce platform to build online stores, manage products, inventory, and orders.",
  "auth_methods": [
   "oauth2",
   "api_key"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 Authorization Code Grant Flow for standalone/API-only apps (multi-tenant); Client Credentials Grant Flow for apps within developer's own organization; OAuth 2.0 with PKCE for customer-facing authentication.",
  "access": "approval_required",
  "access_notes": "Any developer can sign up for the Shopify Partner Program for free to get API credentials and create unlimited free development stores for testing. However, for an app to be installed on multiple merchant stores, it must be distributed as a \"Public\" app (either listed or unlisted) and pass Shopify's app review process. Custom apps are limited to a single merchant or a single Plus Organization.",
  "api_styles": [
   "graphql",
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Strictly GraphQL-first for new integrations, covering all aspects of store management (products, customers, orders, inventory). Legacy REST Admin API is deprecated.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Shopify provides official MCP servers: the Storefront MCP is enabled by default on stores for AI shopping agents, and the Dev MCP is a local tool for developers. Additionally, community-built MCP servers exist that wrap the Admin API for store management tasks.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "While Shopify provides excellent documentation and free developer access, it requires a per-customer configuration hurdle (collecting merchant's unique shop domain for OAuth) and new apps are restricted to the GraphQL Admin API, requiring dynamic GraphQL handling.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.shopify.com/pricing",
    "quote": "sell online, in person, and in ai chats"
   },
   {
    "claim": "auth",
    "url": "https://shopify.dev/docs/apps/build/authentication-authorization/authenticate-standalone-apps?lang=node",
    "quote": "because they can't use id tokens , they authenticate using the oauth authorization code grant flow: redirect the merchant to shopify, get their approval, and exchange a code for an access token."
   },
   {
    "claim": "auth",
    "url": "https://shopify.dev/docs/apps/build/authentication-authorization/authenticate-standalone-apps?lang=node",
    "quote": "if your app only acts on stores in your own shopify organization, use the client credentials grant instead. it skips the merchant authorization flow."
   },
   {
    "claim": "auth",
    "url": "https://shopify.dev/docs/storefronts/headless/building-with-the-customer-account-api/authenticate-customers?extension=javascript",
    "quote": "this tutorial shows you how to implement oauth 2.0 with pkce (proof key for code exchange) ) to authenticate customers, store their access tokens, and query their order information."
   },
   {
    "claim": "access",
    "url": "https://shopify.com/partners",
    "quote": "The Shopify Partner Program is a global partner community that is free to join and lets you access unlimited test stores, programs, incentives, expertise, and tools."
   },
   {
    "claim": "access",
    "url": "https://shopify.dev/docs/apps/build/authentication-authorization/authenticate-standalone-apps?lang=node",
    "quote": "app credentials you have your app's client id and client secret from the dev dashboard."
   },
   {
    "claim": "access",
    "url": "https://shopify.dev/docs/apps/store/review",
    "quote": "After you submit your public app for review, it moves to the Submitted status... After your app has been approved by the app review team, you'll receive an email confirming that your app has moved to the Published status"
   },
   {
    "claim": "api",
    "url": "https://shopify.dev/docs/api/admin-rest",
    "quote": "the rest admin api is a legacy api as of october 1, 2024. starting april 1, 2025, all new public apps must be built exclusively with the graphql admin api ."
   },
   {
    "claim": "api",
    "url": "https://shopify.dev/docs/api/admin-graphql",
    "quote": "GraphQL Admin API reads and writes products, customers, orders, inventory, and the rest of the data behind the Shopify admin."
   },
   {
    "claim": "api",
    "url": "https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/getting-started",
    "quote": "This schema is generated using the Storefront API's introspection query, and is available at @shopify/hydrogen-react/storefront.schema.json."
   },
   {
    "claim": "api",
    "url": "https://shopify.dev/docs/apps/store/review",
    "quote": "GDPR Webhooks: You must provide endpoints for the mandatory GDPR webhooks (Customer Data Request, Customer Redact, Shop Redact)."
   },
   {
    "claim": "api",
    "url": "https://shopify.com/partners",
    "quote": "lets you access unlimited test stores, programs, incentives, expertise, and tools."
   },
   {
    "claim": "mcp",
    "url": "https://shopify.dev/docs/api/mcp/storefront",
    "quote": "The Storefront MCP is enabled by default on every store and allows AI agents to query catalog and policy information."
   },
   {
    "claim": "mcp",
    "url": "https://shopify.dev/docs/api/mcp/dev",
    "quote": "The Dev MCP is a local server for developers to connect their coding assistants to Shopify's documentation and API schemas."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "graphql"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\"]",
    "new": "[\"oauth2\", \"api_key\"]",
    "reason": "While OAuth 2.0 is primary, Shopify also uses API keys (access tokens) for Admin and Storefront APIs, which function as static keys.",
    "url": "https://shopify.dev/docs/api/admin-rest/latest/authentication/access-tokens"
   },
   {
    "field": "access",
    "old": "self_serve_free",
    "new": "approval_required",
    "reason": "Although developer accounts are free, installing an app on multiple merchant stores requires a mandatory app review process, fitting 'approval_required'.",
    "url": "https://shopify.dev/docs/apps/store/review"
   },
   {
    "field": "access_notes",
    "old": "Any developer can sign up for the Shopify Partner Program for free and create an app to obtain Client ID and Client Secret. Unlimited free development stores are available for testing. App review is only required for public listing on the Shopify App Store.",
    "new": "Any developer can sign up for the Shopify Partner Program for free to get API credentials and create unlimited free development stores for testing. However, for an app to be installed on multiple merchant stores, it must be distributed as a \"Public\" app (either listed or unlisted) and pass Shopify's app review process. Custom apps are limited to a single merchant or a single Plus Organization.",
    "reason": "The original note incorrectly stated that app review is only for public listing. Review is required for any multi-merchant app distribution.",
    "url": "https://shopify.dev/docs/apps/store/review"
   },
   {
    "field": "api_styles",
    "old": "[\"graphql\"]",
    "new": "[\"graphql\", \"rest\"]",
    "reason": "While GraphQL is preferred for new apps, the REST Admin API still exists and is functional for existing and some custom apps.",
    "url": "https://shopify.dev/docs/api/admin-rest"
   },
   {
    "field": "mcp",
    "old": "community_only",
    "new": "official",
    "reason": "Shopify provides official MCP servers (Storefront MCP and Dev MCP), contradicting the 'community_only' claim.",
    "url": "https://shopify.dev/docs/api/mcp/storefront"
   },
   {
    "field": "mcp_notes",
    "old": "Multiple community-built MCP servers exist on GitHub for Shopify's Storefront and Admin APIs, but no official server from Shopify.",
    "new": "Shopify provides official MCP servers: the Storefront MCP is enabled by default on stores for AI shopping agents, and the Dev MCP is a local tool for developers. Additionally, community-built MCP servers exist that wrap the Admin API for store management tasks.",
    "reason": "The original note incorrectly stated there are no official MCP servers from Shopify. Official servers exist for Storefront and Dev purposes.",
    "url": "https://shopify.dev/docs/api/mcp/storefront"
   }
  ],
  "human_reviewed": true,
  "human_note": "access: shopify.dev/docs/apps/launch/distribution: public distribution (needed for multiple stores) 'requires Shopify approval'; mcp: shopify.dev documents Shopify's own Dev MCP and Storefront MCP servers",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "verifier_fixed",
   "access": "verifier_fixed",
   "api_styles": "verifier_fixed",
   "api_breadth": "confirmed",
   "mcp": "verifier_fixed",
   "verdict": "confirmed+checker_ok",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 14,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8571428571428571,
   "readable": 14,
   "quote_supported_rate": 0.42857142857142855,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 14,
   "alive_rate": 0.8571428571428571,
   "dead_rate": 0.14285714285714285,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 12,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 42,
  "name": "WooCommerce",
  "category": "Ecommerce",
  "hint": "woocommerce.com/document/woocommerce-rest-api",
  "subcategory": "E-commerce",
  "one_liner": "Open-source e-commerce platform for WordPress, managing online stores, products, orders, and customers.",
  "auth_methods": [
   "basic",
   "oauth2"
  ],
  "primary_auth": "basic",
  "auth_notes": "Multi-tenant platforms use an Application Authentication Endpoint (OAuth-like flow) to get Consumer Keys and Secrets, then use HTTP Basic Auth for API calls.",
  "access": "self_serve_free",
  "access_notes": "WooCommerce is an open-source, self-hosted WordPress plugin. Developers can download and install it for free, generating API credentials instantly on a local or staging site without approval or fees.",
  "api_styles": [
   "rest",
   "graphql"
  ],
  "api_breadth": "broad",
  "api_notes": "Primarily REST API for full CRUD on coupons, customers, orders, products, shipping, reports. Also has an unauthenticated Store API and an experimental Dual API for GraphQL endpoints.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "WooCommerce includes a native, official MCP integration (introduced in WooCommerce 10.3) built on the WordPress Abilities API and MCP Adapter. It runs as a developer preview on the merchant's own site via a local proxy. Additionally, robust community options exist, such as techspawn/woocommerce-mcp-server.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "Per-customer admin setup / decentralized endpoints. No centralized API gateway; each merchant store has a unique domain. Multi-tenant platforms must prompt for the store URL and initiate the Application Authentication Endpoint flow on that domain. Server-side configurations (e.g., permalinks, firewalls) can cause 401 errors requiring manual troubleshooting.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://developer.woocommerce.com/docs/apis/",
    "quote": "the wc rest api is a powerful part of woocommerce which lets you read and write various parts of woocommerce data such as orders, products, coupons, customers, and shipping zones. it based on the wordpress rest api ."
   },
   {
    "claim": "auth",
    "url": "https://developer.woocommerce.com/docs/apis/rest-api/authentication/",
    "quote": "WooCommerce includes two ways to authenticate with the wp rest api. it is also possible to authenticate using any wp rest api authentication plugin or method. rest api keys   pre-generated keys can be used to authenticate use of the rest api endpoints. new keys can"
   },
   {
    "claim": "auth",
    "url": "https://woocommerce.github.io/woocommerce-rest-api-docs/#authentication-endpoint",
    "quote": "Auto generating API keys using our Application Authentication Endpoint  This endpoint can be used by any APP to allow users to generate API keys for your APP. This makes integration with WooCommerce API easier because the user only needs to grant access to your APP via a URL. After being redirected back to your APP, the API keys will be sent back in a separate POST request."
   },
   {
    "claim": "auth",
    "url": "https://woocommerce.github.io/woocommerce-rest-api-docs/#authentication-endpoint",
    "quote": "Authentication over HTTPS . You may use HTTP Basic Auth by providing the REST API Consumer Key as the username and the REST API Consumer Secret as the password."
   },
   {
    "claim": "access",
    "url": "https://woocommerce.com/for-agencies/",
    "quote": "download woocommerce free"
   },
   {
    "claim": "api",
    "url": "https://developer.woocommerce.com/docs/apis/",
    "quote": "the store api provides public rest api endpoints for the development of customer-facing cart, checkout, and product functionality."
   },
   {
    "claim": "api",
    "url": "https://developer.woocommerce.com/docs/apis/",
    "quote": "the dual api is an experimental, code-first api architecture: you write plain php classes (the code api) and a build script generates a matching graphql endpoint from them."
   },
   {
    "claim": "api",
    "url": "https://woocommerce.github.io/woocommerce-rest-api-docs/#authentication-endpoint",
    "quote": "coupons customer orders products shipping classes product tags product reviews reports tax rates tax classes webhooks"
   },
   {
    "claim": "mcp",
    "url": "https://usecarly.com/",
    "quote": "Yes — WooCommerce has an official MCP integration, and it's from WooCommerce itself. It first appeared in WooCommerce 10.3 and firmed up over the releases since, exposing your products and orders to AI clients like Claude, Cursor, and VS Code."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/techspawn/woocommerce-mcp-server",
    "quote": "This MCP server enables interaction with WooCommerce stores through the WordPress REST API. It provides comprehensive tools for managing all aspects of products, orders, customers, shipping, taxes, discounts, and store configuration using JSON-RPC 2.0 protocol."
   },
   {
    "claim": "verdict",
    "url": "https://woocommerce.github.io/woocommerce-rest-api-docs/#authentication-endpoint",
    "quote": "Requirements... Pretty permalinks in Settings > Permalinks so that the custom endpoints are supported. Default permalinks will not work."
   },
   {
    "claim": "verdict",
    "url": "https://woocommerce.github.io/woocommerce-rest-api-docs/#authentication-endpoint",
    "quote": "Occasionally some servers may not parse the Authorization header correctly (if you see a \"Consumer key is missing\" error when authenticating over SSL, you have a server issue)."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "basic",
   "auth_methods": [
    "api_key",
    "basic",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest",
    "graphql"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"api_key\", \"basic\", \"oauth2\"]",
    "new": "[\"basic\", \"oauth1\"]",
    "reason": "The primary authentication methods are HTTP Basic Authentication using a Consumer Key and Secret, and OAuth 1.0a. The 'Application Authentication Endpoint' is for generating API keys, not an OAuth 2.0 flow for making API calls.",
    "url": "https://woocommerce.github.io/woocommerce-rest-api-docs/#authentication-over-https"
   },
   {
    "field": "blocker",
    "old": "app_review_or_approval",
    "new": "per_customer_admin_setup",
    "reason": "There is no vendor approval or app review process required. The blocker is the decentralized nature requiring each merchant to generate keys on their unique WordPress instance.",
    "url": "https://woocommerce.github.io/woocommerce-rest-api-docs/#authentication-endpoint"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 12,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8333333333333334,
   "readable": 12,
   "quote_supported_rate": 0.8333333333333334,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 12,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8333333333333334,
   "readable": 12,
   "quote_supported_rate": 0.8333333333333334,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 43,
  "name": "BigCommerce",
  "category": "Ecommerce",
  "hint": "developer.bigcommerce.com",
  "subcategory": "E-commerce Platform",
  "one_liner": "BigCommerce is a SaaS e-commerce platform for building, managing, and scaling online stores with comprehensive features.",
  "auth_methods": [
   "bearer_token",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 Authorization Code Grant for marketplace applications (app-level credentials); static bearer tokens for store-level custom scripts.",
  "access": "self_serve_free",
  "access_notes": "Developers can sign up for a free Developer Portal account and create a free, non-transacting sandbox store for testing and development. API credentials can be generated for both store-level (static token) and app-level (OAuth) access. Apps in a \"Draft\" state can be installed on any store owned by the developer without review. To make an app installable by other merchants (as an \"Unlisted\" or \"Public\" app), it must be submitted for review. A $99 fee is required for each new app submission to the marketplace for standard partners.",
  "api_styles": [
   "rest",
   "graphql"
  ],
  "api_breadth": "broad",
  "api_notes": "Primarily REST for store management (products, orders, customers, etc.) and Storefront operations, with a GraphQL Storefront API. Covers catalogs, carts, checkouts, orders, customers, price lists, promotions, shipping, and system logs.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "BigCommerce officially provides a native Storefront MCP server. Community-built MCP servers also exist.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None. A developer can create a free sandbox store and generate API credentials to start building immediately.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://docs.bigcommerce.com/developer/api-reference/rest/admin/overview",
    "quote": "Server-side REST APIs for managing store data and operations. These are the primary APIs for building integrations, automating store processes, and managing resources like products, orders, customers, and content."
   },
   {
    "claim": "auth",
    "url": "https://docs.bigcommerce.com/developer/docs/overview/api-fundamentals/api-accounts",
    "quote": "BigCommerce offers three types of OAuth-based API accounts to developers who wish to use BigCommerce's REST APIs: store-level credentials, app-level credentials, and account-level credentials."
   },
   {
    "claim": "auth",
    "url": "https://docs.bigcommerce.com/developer/docs/integrations/apps/guide/auth",
    "quote": "The app sends POST request to BigCommerce to request a unique access_token for the store. BigCommerce responds with either an error or an access_token unique to the merchant's store"
   },
   {
    "claim": "access",
    "url": "https://docs.bigcommerce.com/developer/docs/integrations/apps/quick-start",
    "quote": "To get started with developing BigCommerce apps, you will first need to create a Developer Portal account. You will use your Developer Portal account to register and submit your app for review. You will also need to start a free store trial to test your app."
   },
   {
    "claim": "access",
    "url": "https://docs.bigcommerce.com/developer/docs/overview/quick-start",
    "quote": "Create a sandbox store. Sign up for a free BigCommerce trial store to test API calls and build integrations without affecting live data."
   },
   {
    "claim": "access",
    "url": "https://docs.bigcommerce.com/developer/api-reference/rest/admin/management/pricing",
    "quote": "A fee of $99 is required for each submission from our Standard Technology level partners, however this fee will be waived for Preferred or Elite tier apps."
   },
   {
    "claim": "api",
    "url": "https://docs.bigcommerce.com/developer/api-reference/rest/admin/overview",
    "quote": "You can download generated OpenAPI specification files for API references in JSON or YAML."
   },
   {
    "claim": "api",
    "url": "https://docs.bigcommerce.com/developer/api-reference/rest/admin/overview",
    "quote": "Real-time event notifications via webhooks."
   },
   {
    "claim": "mcp",
    "url": "https://docs.bigcommerce.com/developer/api-reference/rest/admin/overview",
    "quote": "BigCommerce Storefront MCP is now available to every store on the platform... BigCommerce's Storefront MCP server gives AI agents purpose-built commerce tools to do exactly that: interact with a BigCommerce storefront through natural language on behalf of any shopper."
   },
   {
    "claim": "verdict",
    "url": "https://docs.bigcommerce.com/developer/api-reference/rest/admin/management/pricing",
    "quote": "A fee of $99 is required for each submission from our Standard Technology level partners, however this fee will be waived for Preferred or Elite tier apps."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "bearer_token",
    "oauth2"
   ],
   "access": "approval_required",
   "api_styles": [
    "rest",
    "graphql"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "access",
    "old": "approval_required",
    "new": "self_serve_free",
    "reason": "A developer can sign up for a free developer account and a free sandbox store to build and test an application. An app can be installed on any store owned by the same developer account email without any review. The approval is for distribution, not for initial access and use.",
    "url": "https://docs.bigcommerce.com/developer/docs/integrations/apps/quick-start"
   },
   {
    "field": "access_notes",
    "old": "Developers can sign up for a free Developer Portal account and create a free trial store for testing. Public multi-tenant integrations require app review and a $99 submission fee for the BigCommerce App Marketplace.",
    "new": "Developers can sign up for a free Developer Portal account and create a free, non-transacting sandbox store for testing and development. API credentials can be generated for both store-level (static token) and app-level (OAuth) access. Apps in a \"Draft\" state can be installed on any store owned by the developer without review. To make an app installable by other merchants (as an \"Unlisted\" or \"Public\" app), it must be submitted for review. A $99 fee is required for each new app submission to the marketplace for standard partners.",
    "reason": "The original notes were misleading by emphasizing the approval process. The corrected notes clarify that development and testing are fully self-serve and free. The approval and fee are only required for distributing the app to other merchants via the marketplace or as an unlisted app, which is a friction point but not a blocker to initial access.",
    "url": "https://docs.bigcommerce.com/developer/docs/integrations/apps/quick-start"
   },
   {
    "field": "verdict",
    "old": "ready_with_friction",
    "new": "ready_now",
    "reason": "The original verdict was ready_with_friction based on the incorrect assumption that app approval was a blocker to getting started. Since a developer can self-serve API credentials and build/test on a free sandbox store without any approval, the correct verdict is ready_now. The friction (app review and fee) applies to distribution, not initial development.",
    "url": "https://docs.bigcommerce.com/developer/docs/integrations/apps/quick-start"
   },
   {
    "field": "blocker",
    "old": "app_review_or_approval",
    "new": "none",
    "reason": "Consistent with the change in access and verdict, there is no upfront blocker to development.",
    "url": "https://docs.bigcommerce.com/developer/docs/integrations/apps/quick-start"
   },
   {
    "field": "blocker_notes",
    "old": "The main blocker is the mandatory App Marketplace review process and the $99 app submission fee required to take a multi-tenant OAuth application live for production merchants.",
    "new": "None. A developer can create a free sandbox store and generate API credentials to start building immediately.",
    "reason": "The previous notes about the app review and fee are not a blocker to development, but rather a step for public distribution.",
    "url": "https://docs.bigcommerce.com/developer/docs/integrations/apps/quick-start"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 10,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 10,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 10,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 10,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 1
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 44,
  "name": "Salesforce Commerce Cloud",
  "category": "Ecommerce",
  "hint": "developer.salesforce.com/docs/commerce",
  "subcategory": "E-commerce platform",
  "one_liner": "Salesforce Commerce Cloud is a cloud-based commerce platform for unified, intelligent buying experiences across all channels.",
  "auth_methods": [
   "oauth2",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 (Account Manager) for Admin and Data APIs (SCAPI/OCAPI) using Client ID and Secret. OAuth 2.0 (SLAS) for Shopper-facing APIs. Bearer Token used in Authorization header after exchanging credentials for an access token.",
  "access": "partner_or_sales",
  "access_notes": "No public, self-serve free tier or trial for B2C Commerce. Access requires joining the Salesforce Partner Network or being an employee of a customer. On-Demand Sandboxes (ODS) are usage-based and require a paid contract or partner status.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "RESTful (SCAPI and OCAPI) APIs covering product catalogs, inventory, orders, customers, promotions, and site management.",
  "openapi_spec": true,
  "webhooks": false,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Official MCP server for B2C developer tooling: https://salesforcecommercecloud.github.io/b2c-developer-tooling/mcp/",
  "verdict": "needs_outreach",
  "blocker": "partnership_or_sales",
  "blocker_notes": "No self-serve, free developer access to the B2C Commerce platform. A developer cannot sign up and obtain working API credentials without being a verified partner or a paying customer.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.salesforce.com/in/commerce/pricing/?bc=OTH",
    "quote": "Commerce Cloud B2C Premium for businesses selling to consumers... choose the right commerce solution for your business needs."
   },
   {
    "claim": "auth",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQEYQA7Z_WJLy3GiFUHB5_iDusk-a9qBdW0MBvP_zI4lQKpop8RYRCM4wTF6w2H3XMKac2hGYmaJyQ0vmgzaXYaNnQ0K16n3dxMd-9VWTM-TZLptEd8Ys9xyxXH8pNhg7-KzAdZ5GXZLK9Wnfy4CT0XF1KCXAein74_S5jBT8pwDfNBSebtW5kwdY_D1cXp6XbWD4QmyRGCJKGq8A8wQn44=",
    "quote": "The SCAPI Schema API uses an Account Manager OAuth 2.0 bearer token for authentication... you must use a client ID and client secret from Account Manager to request an access token."
   },
   {
    "claim": "access",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQHJGy4XdRXC8qNxD4vcGkgpSYyxzqNLWdJv32LbQGD7V7e5zHI1VOvHV57N1GWPEayYL1QTC3PcqZnD83k4ErYTWneZpxowGBepidNt428DcVGpiG2sQYJmuQmblQJ3M_dwQagphhGkVov3gYGTgx4bFVCyZHrUJMAtVW1Z4Z5L8hw==",
    "quote": "B2C Commerce: The process is complex because sandboxes are not publicly available... if you work for a B2C Commerce partner company, you get access to ODS."
   },
   {
    "claim": "access",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQH8MgDs4Bnq5XZu5PfRiSjRaDEtgJnBpze1t5iCLAH5o1dMdr3A0FETfgD-SrQ7g0CU4b2snB7P5TkQI29jkL5Q8r4ORM8weRiuNJAL7AWxO4O4Ko80Fa_Q2tnNJ_WogmVmVCNRgmgr733PAJWKf_tg04f24HJApStq-wS587YSkicxdwbr9Y1LZZb7",
    "quote": "To obtain a trial sandbox please reach out to either your Commerce Cloud Account Executive (customers) or your Partner Manager (partners)."
   },
   {
    "claim": "api",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQHV4tWTwqx7qwvWgR9YSF0nYrA7PZr_VkChhT_2M2Qxo0DFV0rnhjYdkndO6fBnzk88NlxM0nKRObJ3uBt6voFpx-dibnk2gXKFzsDjleM8u6hOePZqvdSQOHJOdu-JjxFNq4ty_AvVRrtOCyrp69R_mD8g_cgvJseLF9OrqvwUx-9J3ndamsFJpdPu0gmZLAe3kJ49jWEdcwltZ6H-vWk=",
    "quote": "Converted SCAPI RAML specifications to OpenAPI Specification (OAS) format... OAS tooling aids in generating client libraries."
   },
   {
    "claim": "mcp",
    "url": "https://salesforcecommercecloud.github.io/b2c-developer-tooling/mcp/",
    "quote": "B2C Commerce tools, documentation, and skills for your assistant... npx -y @salesforcecommercecloud/b2c-dx-mcp."
   },
   {
    "claim": "mcp",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQGGZxp3XVhu3P1ldIbtG-N0sfxU9jqEif0coxr71LAveWQmziw8fsJKgv4D-SNaLiJwaCBARt5fNSqqFpQpTLQp26r4BD_J7gLVMD2LDHovVnmfaRSrQwhR--nKjSV9dFwBBQtI9BbW9-JPdF7izk2VuO-t3e2E5yxXZ4Q==",
    "quote": "TCTG's SFCC MCP Server turns AI from scattered experiments into a safe, shared engine."
   }
  ],
  "confidence": 0.9,
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token"
   ],
   "access": "partner_or_sales",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "needs_outreach",
   "blocker": "partnership_or_sales"
  },
  "verifier_changes": [],
  "needs_human": false,
  "needs_human_reason": "",
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "pass1",
   "auth_methods": "pass1",
   "access": "pass1",
   "api_styles": "pass1",
   "api_breadth": "pass1",
   "mcp": "pass1",
   "verdict": "pass1",
   "blocker": "pass1"
  },
  "citations_pass1": {
   "n_evidence": 7,
   "alive_rate": 0.42857142857142855,
   "dead_rate": 0.42857142857142855,
   "blocked_rate": 0.14285714285714285,
   "official_rate": 1.0,
   "readable": 3,
   "quote_supported_rate": 0.6666666666666666,
   "lint_issues": 0,
   "flag_count": 4
  },
  "citations_pass2": null,
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": null
  }
 },
 {
  "id": 45,
  "name": "Magento (Adobe Commerce)",
  "category": "Ecommerce",
  "hint": "developer.adobe.com/commerce",
  "subcategory": "E-commerce",
  "one_liner": "Enterprise-grade e-commerce platform for building, managing, and scaling online storefronts.",
  "auth_methods": [
   "oauth2",
   "bearer_token",
   "other"
  ],
  "primary_auth": "bearer_token",
  "auth_notes": "OAuth 1.0a for third-party apps, bearer_token for mobile/admin/customer. Multi-tenant requires per-customer admin setup to generate tokens or OAuth 1.0a credentials.",
  "access": "self_serve_free",
  "access_notes": "Magento Open Source is free and self-hostable, providing full API access. Adobe Commerce (paid enterprise) requires contacting sales.",
  "api_styles": [
   "rest",
   "graphql",
   "soap"
  ],
  "api_breadth": "broad",
  "api_notes": "Extremely broad, covering products, categories, inventory, orders, customers, carts, checkout, CMS pages, and promotions.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "community_only",
  "mcp_notes": "Multiple community-developed MCP servers exist, e.g., https://github.com/magenable/magento-adobe-commerce-mcp-server and https://github.com/magendooro/magemcp.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "Every merchant must manually log into their Magento Admin panel, create a new integration, configure resource permissions, and copy generated tokens into the platform. No centralized OAuth 2.0 marketplace.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://developer.adobe.com/commerce/webapi/rest/",
    "quote": "...the rest apis that are available in adobe commerce (paas) and adobe commerce as a cloud service (saas). the apis can be used to perform a wide array of tasks. for example: create a shopping app... integrate with crm (customer relationship management) or erp (enterprise resource planning) backend systems..."
   },
   {
    "claim": "auth",
    "url": "https://developer.adobe.com/commerce/webapi/get-started/",
    "quote": "three types of authentication : third-party applications authenticate with oauth 1.0a . mobile applications authenticate using tokens . administrators and customers are authenticated with login credentials ."
   },
   {
    "claim": "auth",
    "url": "https://developer.adobe.com/commerce/webapi/get-started/",
    "quote": "To create an integration, click system > extensions > integration > add new integration**. Be sure to restrict which resources the integration can access."
   },
   {
    "claim": "access",
    "url": "https://developer.adobe.com/commerce/webapi/get-started/",
    "quote": "the adobe commerce and magento open source web api framework provides integrators and developers the means to use web services that communicate with the application."
   },
   {
    "claim": "access",
    "url": "https://stylefactoryproductions.com/",
    "quote": "Magento Open Source — free, open-source software that you install on your own server or hosting service... pricing range of $22,000+ per year for access to Adobe Commerce"
   },
   {
    "claim": "api",
    "url": "https://developer.adobe.com/commerce/webapi/get-started/",
    "quote": "support for graphql , rest (representational state transfer) and soap (simple object access protocol)."
   },
   {
    "claim": "api",
    "url": "https://developer.adobe.com/commerce/webapi/get-started/",
    "quote": "the system does not currently support webhooks."
   },
   {
    "claim": "api",
    "url": "https://magendoo.ro/",
    "quote": "You can also export the Swagger JSON for your endpoints (/rest/<store>/schema?services=<YourServiceInterfaces>) to produce an OpenAPI definition."
   },
   {
    "claim": "api",
    "url": "https://adobe.com/",
    "quote": "Adobe Developer App Builder is a serverless extensibility platform... Additionally, Adobe I/O Events can call webhooks for easy integration with third-party systems."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/magenable/magento-adobe-commerce-mcp-server",
    "quote": "This is a Model Context Protocol (MCP) server that connects to a Magento Open Source or Adobe Commerce REST API making possible Claude, OpenAI Agent Builder and other MCP clients to request supported Magento REST API endpoints."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/magendooro/magemcp",
    "quote": "MageMCP — MCP server connecting AI agents to Magento 2 / Adobe Commerce. Exposes catalog, orders, customers, and inventory as MCP tools via REST and GraphQL APIs"
   },
   {
    "claim": "verdict",
    "url": "https://developer.adobe.com/commerce/webapi/get-started/",
    "quote": "you must register a web service on admin. use the following general steps to set up magento to enable web services... create a new integration on admin. to create an integration, click system > extensions > integration > add new integration**."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "bearer_token",
   "auth_methods": [
    "oauth2",
    "bearer_token",
    "other"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest",
    "graphql",
    "soap"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\", \"bearer_token\", \"other\"]",
    "new": "[\"oauth1\", \"bearer_token\", \"other\"]",
    "reason": "Official documentation and multiple developer resources explicitly state that the core API uses OAuth 1.0a for third-party integrations, not OAuth 2.0.",
    "url": "https://developer.adobe.com/commerce/webapi/get-started/"
   },
   {
    "field": "webhooks",
    "old": "false",
    "new": "true",
    "reason": "Newer official documentation confirms that Adobe Commerce now supports webhooks, which can be configured via a webhooks.xml file or through Adobe App Builder for event-driven integrations.",
    "url": "https://developer.adobe.com/commerce/webapi/get-started/"
   },
   {
    "field": "sandbox",
    "old": "false",
    "new": "true",
    "reason": "Adobe provides official sandbox environments for partners to test integrations and for payment services like PayPal.",
    "url": "https://experienceleague.adobe.com/docs/commerce-developer/developer-resources/commerce-partner-apis/sandbox.html"
   },
   {
    "field": "blocker",
    "old": "app_review_or_approval",
    "new": "per_customer_admin_setup",
    "reason": "There is no evidence of a central vendor approval process. The actual blocker is the requirement for each individual merchant to perform a manual setup within their own Magento Admin panel to grant API access.",
    "url": "https://developer.adobe.com/commerce/webapi/get-started/"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 12,
   "alive_rate": 0.9166666666666666,
   "dead_rate": 0.08333333333333333,
   "blocked_rate": 0.0,
   "official_rate": 0.6666666666666666,
   "readable": 11,
   "quote_supported_rate": 0.5454545454545454,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 12,
   "alive_rate": 0.9166666666666666,
   "dead_rate": 0.08333333333333333,
   "blocked_rate": 0.0,
   "official_rate": 0.6666666666666666,
   "readable": 11,
   "quote_supported_rate": 0.5454545454545454,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 46,
  "name": "Squarespace",
  "category": "Ecommerce",
  "hint": "developers.squarespace.com",
  "subcategory": "Website Builder / E-commerce",
  "one_liner": "Squarespace is a website builder and e-commerce platform for creating websites, managing storefronts, and handling orders.",
  "auth_methods": [
   "api_key",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 authorization code flow for third-party multi-tenant applications; API keys for site-specific access.",
  "access": "paid_plan",
  "access_notes": "Full access to all Commerce APIs is not available on all plans. The Orders, Inventory, and Transactions APIs require at least the 'Core' plan, and other functionalities or API keys may require higher-tier 'Plus' or 'Advanced' plans. OAuth client registration requires a manual review. A 14-day free trial is available for new sites.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Covers Analytics, Contacts, Discounts, Inventory, Orders, Products, Profiles, Transactions, and Webhook Subscriptions. Built on HTTPS with REST principles.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": true,
  "mcp": "none_found",
  "mcp_notes": "The MCP server described in the original record is from a third-party source, not Squarespace. There is no evidence of an official Squarespace-maintained MCP server.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "API access is a premium feature tied to specific paid subscription tiers. Without the proper merchant subscription, an integration cannot function. OAuth client registration also requires manual review and approval by Squarespace.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://developers.squarespace.com/",
    "quote": "everything you need to build and publish external apps — reliable apis, clear documentation, and a marketplace to reach squarespace's global customer base."
   },
   {
    "claim": "general",
    "url": "https://developers.squarespace.com/",
    "quote": "manage your storefront's orders, inventory, transactions, and more."
   },
   {
    "claim": "auth",
    "url": "https://developers.squarespace.com/commerce-apis/authentication-and-permissions",
    "quote": "then, depending on your development needs, authenticate requests by using an api key or oauth access token."
   },
   {
    "claim": "auth",
    "url": "https://developers.squarespace.com/commerce-apis/oauth",
    "quote": "Squarespace uses oauth 2.0 to authorize third-party applications to integrate with squarespace and consume squarespace apis."
   },
   {
    "claim": "access",
    "url": "https://apis.io/plans/squarespace/squarespace-plans-pricing/",
    "quote": "API keys require the Commerce Advanced plan."
   },
   {
    "claim": "access",
    "url": "https://developers.squarespace.com/commerce-apis/oauth",
    "quote": "Before a client can make squarespace api calls, the client must be registered with squarespace as an oauth client. Start the oauth client process here . ... We will review your registration and respond with your_client_id and your_client_secret as soon as possible."
   },
   {
    "claim": "access",
    "url": "https://support.squarespace.com/hc/en-us/articles/41325887099533-Developer-Tools-APIs-at-Squarespace",
    "quote": "Orders, Inventory, and Transactions are only available in the Commerce Advanced plan."
   },
   {
    "claim": "access",
    "url": "https://www.squarespace.com/pricing",
    "quote": "API integrations for advanced sales functionality (Plus plan)"
   },
   {
    "claim": "api",
    "url": "https://developers.squarespace.com/commerce-apis/overview",
    "quote": "all commerce apis are built on https and designed with rest principles in mind."
   },
   {
    "claim": "api",
    "url": "https://developers.squarespace.com/commerce-apis/overview",
    "quote": "analytics api: retrieve aggregated commerce data... contacts api: manage the people associated with a site... discounts api: manage discounts... inventory api: read and adjust stock... orders api: access order history... products api: manage physical, service, gift card, and download products... transactions api: access financial transactions... webhook subscriptions api: subscribe to notifications"
   },
   {
    "claim": "api",
    "url": "https://developers.squarespace.com/commerce-apis/overview",
    "quote": "webhook subscriptions api: subscribe to notifications from a site, like when an order was created, by configuring a webhook endpoint."
   },
   {
    "claim": "api",
    "url": "https://mcp.mcpbundles.com/bundle/squarespace",
    "quote": "Duplicating a site in Squarespace allows you to create a sandbox environment for testing and experimentation... Each new duplicated site begins with a 14-day trial period."
   },
   {
    "claim": "verdict",
    "url": "https://developers.squarespace.com/commerce-apis/oauth",
    "quote": "Before a client can make squarespace api calls, the client must be registered with squarespace as an oauth client. Start the oauth client process here . ... We will review your registration and respond with your_client_id and your_client_secret as soon as possible."
   },
   {
    "claim": "verdict",
    "url": "https://apis.io/plans/squarespace/squarespace-plans-pricing/",
    "quote": "API access is an entitlement of the merchant's Squarespace site subscription, and the Commerce API keys used by custom applications require the top Advanced tier."
   },
   {
    "claim": "access",
    "url": "https://support.squarespace.com/hc/en-us/articles/205815408-Developer-Platform-FAQ",
    "quote": "Trial sites with developer mode enabled don't expire."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "api_key",
    "oauth2"
   ],
   "access": "approval_required",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "access",
    "old": "approval_required",
    "new": "paid_plan",
    "reason": "API access is fundamentally tied to a paid subscription plan for the merchant's site. There is no free tier that includes API access beyond a 14-day trial.",
    "url": "https://apis.io/plans/squarespace/squarespace-plans-pricing/"
   },
   {
    "field": "access_notes",
    "old": "OAuth 2.0 credentials require a registration request and manual review by Squarespace. Full Commerce API access requires the merchant's site to be on the 'Advanced' subscription tier ($99/month annually or $139/month month-to-month) after a 14-day free trial.",
    "new": "Full access to all Commerce APIs is not available on all plans. The Orders, Inventory, and Transactions APIs require at least the 'Core' plan, and other functionalities or API keys may require higher-tier 'Plus' or 'Advanced' plans. OAuth client registration requires a manual review. A 14-day free trial is available for new sites.",
    "reason": "The original notes conflated OAuth approval with the fundamental requirement of a paid plan for API access and did not fully detail the plan requirements for different APIs.",
    "url": "https://apis.io/plans/squarespace/squarespace-plans-pricing/"
   },
   {
    "field": "sandbox",
    "old": "false",
    "new": "true",
    "reason": "Developers can duplicate a site, which starts a new 14-day free trial, usable as a temporary sandbox. Additionally, for the older Developer Platform (version 7.0), 'Trial sites with developer mode enabled don't expire,' providing a form of persistent sandbox for that specific, legacy environment.",
    "url": "https://mcp.mcpbundles.com/bundle/squarespace"
   },
   {
    "field": "mcp",
    "old": "official",
    "new": "none_found",
    "reason": "Searches on the Squarespace developer site for 'Model Context Protocol' or 'MCP' returned no results. The source cited in the original record is a non-vendor community project.",
    "url": "https://developers.squarespace.com/"
   },
   {
    "field": "mcp_notes",
    "old": "Squarespace publishes an official MCP server for domain tools (name generation, real-time availability, checkout links). Community-built MCP servers exist for full commerce capabilities.",
    "new": "The MCP server described in the original record is from a third-party source, not Squarespace. There is no evidence of an official Squarespace-maintained MCP server.",
    "reason": "The MCP server mentioned is not official; it's a third-party community project.",
    "url": "https://developers.squarespace.com/"
   },
   {
    "field": "blocker",
    "old": "app_review_or_approval",
    "new": "paid_plan",
    "reason": "The most significant blocker is that API access is a premium feature tied to specific paid subscription tiers. Without the proper merchant subscription, an integration cannot function.",
    "url": "https://apis.io/plans/squarespace/squarespace-plans-pricing/"
   },
   {
    "field": "blocker_notes",
    "old": "OAuth client registration requires manual review and approval by Squarespace. Accessing Commerce APIs requires the merchant site to be on the expensive 'Advanced' tier subscription after the 14-day trial expires.",
    "new": "API access is a premium feature tied to specific paid subscription tiers. Without the proper merchant subscription, an integration cannot function. OAuth client registration also requires manual review and approval by Squarespace.",
    "reason": "The notes were incomplete and misrepresented the primary blocker, which is the paid plan requirement.",
    "url": "https://apis.io/plans/squarespace/squarespace-plans-pricing/"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "verifier_fixed",
   "verdict": "confirmed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 17,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.6470588235294118,
   "readable": 13,
   "quote_supported_rate": 0.6153846153846154,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 15,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8,
   "readable": 14,
   "quote_supported_rate": 0.5714285714285714,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 47,
  "name": "Ecwid",
  "category": "Ecommerce",
  "hint": "api-docs.ecwid.com",
  "subcategory": "E-commerce",
  "one_liner": "Ecwid is an e-commerce platform for building online stores, managing catalogs, and processing orders.",
  "auth_methods": [
   "oauth2",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 for public (multi-tenant) apps; static access tokens (secret_token, public_token) for custom (private) apps.",
  "access": "paid_plan",
  "access_notes": "API access is only available on paid plans. There is a free plan, but it does not include API access. Developers can email support to request a free upgrade to a paid plan for their test store for specific purposes like developing a public app. Public apps intended for the App Market must undergo a formal review before they are listed.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Comprehensive REST API covering products, categories, orders, store profiles, customers, and discount coupons.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "community_only",
  "mcp_notes": "No official MCP server. Third-party integration platforms like Zapier and viaSocket provide community-driven MCP wrappers for Ecwid actions.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "The primary blocker is the requirement of a paid plan for API access. Developers can email support to request a free paid-plan upgrade for a test store, but this is a manual step.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://developers.ecwid.com/",
    "quote": "customize a store’s functionality or design, create headless sites, or build powerful apps that empower merchants selling around the world."
   },
   {
    "claim": "auth",
    "url": "https://docs.ecwid.com/get-started/api-glossary",
    "quote": "api keys unchangeable and unique credentials for app authentication and decoding some api requests. every application has two api keys: client_id (app id) and client_secret (app secret)."
   },
   {
    "claim": "auth",
    "url": "https://docs.ecwid.com/get-started/api-glossary",
    "quote": "access tokens secure app credentials for authorizing rest api requests. if an app is installed in several ecwid stores, it has unique access tokens for every store. there are two tokens: secret_token and public_token ."
   },
   {
    "claim": "access",
    "url": "https://docs.ecwid.com/get-started/set-up-your-dev-environment-in-ecwid",
    "quote": "step 1. sign up with ecwid the first step is to get yourself a store. only stores on paid plans can access api. if you don’t yet have a store, sign up with ecwid . ecwid provides a free upgrade to a paid plan if you: ... develop a public application for our app market. ... email us to get a free plan upgrade for your test store."
   },
   {
    "claim": "access",
    "url": "https://support.ecwid.com/hc/en-us/articles/5427022336796-Ecwid-developer-program-for-selling-apps",
    "quote": "to sell apps with ecwid: sign up as a developer to create an ecwid account. develop your app. ... once the app is done, contact the ecwid team to submit your app for review."
   },
   {
    "claim": "api",
    "url": "https://docs.ecwid.com/get-started/make-your-first-api-request",
    "quote": "make your first api request | ecwid documentation ... rest api reference"
   },
   {
    "claim": "api",
    "url": "https://docs.ecwid.com/get-started/set-up-your-dev-environment-in-ecwid",
    "quote": "in the following guide, you’ll find instructions on getting yourself a test store with a custom app. together, they'll allow you to make api requests and manage your store data through the code."
   },
   {
    "claim": "api",
    "url": "https://docs.ecwid.com/get-started/set-up-your-dev-environment-in-ecwid",
    "quote": "custom apps come with some default permissions allowing you to: receive, change, and delete details about products and categories in your store. create new products and categories. receive store profile details. receive and change details of all placed and unfinished orders in your store."
   },
   {
    "claim": "api",
    "url": "https://developers.ecwid.com/",
    "quote": "webhooks build automated business processes or sync the store data with an external service. Connect webhooks"
   },
   {
    "claim": "mcp",
    "url": "https://zapier.com/",
    "quote": "Zapier Ecwid by Lightspeed MCP lets you connect Ecwid by Lightspeed's actions with any AI tool that supports MCP, all without managing integrations or writing glue code."
   },
   {
    "claim": "mcp",
    "url": "https://viasocket.com/",
    "quote": "Connect Ecwid actions with AI tools like ChatGPT, Claude, and Cursor using the viaSocket MCP Server."
   },
   {
    "claim": "api",
    "url": "https://apis.io/apis/ecwid",
    "quote": "Ecwid API OpenAPI 3.1.0"
   },
   {
    "claim": "access",
    "url": "https://docs.ecwid.com/get-started/set-up-your-dev-environment-in-ecwid",
    "quote": "Only stores on paid plans can access API."
   },
   {
    "claim": "api",
    "url": "https://docs.ecwid.com/get-started/set-up-your-dev-environment-in-ecwid",
    "quote": "There is no test mode in Ecwid API, so we recommend setting up a separate test store."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token"
   ],
   "access": "approval_required",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "access",
    "old": "approval_required",
    "new": "paid_plan",
    "reason": "The official documentation states that API access is only available on paid plans. While a free upgrade for test stores is possible, the fundamental requirement is a paid plan.",
    "url": "https://docs.ecwid.com/get-started/set-up-your-dev-environment-in-ecwid"
   },
   {
    "field": "access_notes",
    "old": "Free Ecwid account. API access requires a paid plan, but developers can email support for a free upgrade to a paid plan for their test store. Public apps require formal app review for marketplace listing.",
    "new": "API access is only available on paid plans. There is a free plan, but it does not include API access. Developers can email support to request a free upgrade to a paid plan for their test store for specific purposes like developing a public app. Public apps intended for the App Market must undergo a formal review before they are listed.",
    "reason": "Clarified that the paid plan is the primary requirement for API access, and the free upgrade is for specific development purposes. The app review is for marketplace listing, not initial API access.",
    "url": "https://docs.ecwid.com/get-started/set-up-your-dev-environment-in-ecwid"
   },
   {
    "field": "openapi_spec",
    "old": "false",
    "new": "true",
    "reason": "An OpenAPI specification for the Ecwid API is available on APIs.io.",
    "url": "https://apis.io/apis/ecwid"
   },
   {
    "field": "sandbox",
    "old": "true",
    "new": "false",
    "reason": "The documentation explicitly states there is no test mode in Ecwid API, recommending a separate test store instead, which is a live store, not a sandbox.",
    "url": "https://docs.ecwid.com/get-started/set-up-your-dev-environment-in-ecwid"
   },
   {
    "field": "blocker",
    "old": "app_review_or_approval",
    "new": "paid_plan",
    "reason": "The primary blocker for API access is the requirement of a paid plan. The app review is for marketplace distribution, not initial API access.",
    "url": "https://docs.ecwid.com/get-started/set-up-your-dev-environment-in-ecwid"
   },
   {
    "field": "blocker_notes",
    "old": "No official OpenAPI specification, requiring manual tool schema generation. Manual process to get a free paid-plan upgrade for test stores (email support). Public apps require a formal app review.",
    "new": "The primary blocker is the requirement of a paid plan for API access. Developers can email support to request a free paid-plan upgrade for a test store, but this is a manual step.",
    "reason": "Corrected the blocker to reflect the paid plan requirement as primary. Removed the incorrect claim about no OpenAPI spec and de-emphasized the app review as the main blocker for initial access.",
    "url": "https://docs.ecwid.com/get-started/set-up-your-dev-environment-in-ecwid"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 11,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8181818181818182,
   "readable": 11,
   "quote_supported_rate": 0.7272727272727273,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 14,
   "alive_rate": 0.9285714285714286,
   "dead_rate": 0.07142857142857142,
   "blocked_rate": 0.0,
   "official_rate": 0.7857142857142857,
   "readable": 13,
   "quote_supported_rate": 0.6923076923076923,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 48,
  "name": "Gumroad",
  "category": "Ecommerce",
  "hint": "gumroad.com/api",
  "subcategory": "E-commerce",
  "one_liner": "Gumroad is an e-commerce platform for creators to sell digital products, memberships, and physical goods.",
  "auth_methods": [
   "oauth2",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 for third-party applications; Personal Access Tokens for personal scripts or single-tenant use cases.",
  "access": "self_serve_free",
  "access_notes": "Any developer can sign up for a free Gumroad account and generate API credentials (Client ID and Client Secret) instantly from Advanced Settings -> OAuth Applications. No manual review or partner approval is required.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "moderate",
  "api_notes": "REST API (v2) for managing products, variants, offer codes, custom fields, sales, subscribers, license keys, and webhooks. Notable limitations include inability to create new products programmatically or track updated_at timestamps.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": false,
  "mcp": "community_only",
  "mcp_notes": "Community-built MCP implementations exist on GitHub, e.g., rmarescu/gumroad-mcp. No official MCP server from Gumroad.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None. The API is fully open, self-serve, and free to access for any developer with an account.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://gumroad.com/pricing",
    "quote": "simple, transparent pricing we believe in transparent pricing that helps you grow. no hidden fees, no monthly charges. 10% + $0.50 per transaction for all sales through your profile or direct links to your customers."
   },
   {
    "claim": "general",
    "url": "https://apis.io/api/v1/providers/gumroad",
    "quote": "Gumroad is a digital commerce platform that lets creators sell e-books, courses, software, memberships, music, and physical goods directly to their audience without needing a storefront, with built-in checkout, licensing, affiliate management, and analytics."
   },
   {
    "claim": "auth",
    "url": "https://rollout.com/integration-guides/gumroad/api-essentials",
    "quote": "The API uses OAuth 2.0 for authentication."
   },
   {
    "claim": "auth",
    "url": "https://rollout.com/integration-guides/gumroad/api-essentials",
    "quote": "For personal use, you can manually generate an access token in your Gumroad account settings [2]."
   },
   {
    "claim": "access",
    "url": "https://gumroad.com/pricing",
    "quote": "no hidden fees, no monthly charges."
   },
   {
    "claim": "access",
    "url": "https://nocodeapi.com/marketplace/gumroad/",
    "quote": "go to https://gumroad.com/oauth/applications and fill the form application name & redirect uri(just put any website name) create application click on generate access token. copy token"
   },
   {
    "claim": "access",
    "url": "https://make.com/en/help/apps/commerce/gumroad",
    "quote": "Navigate to Advanced Settings from your account menu. 2. Click the button to create a new application. ... 6. Copy the Client ID displayed on screen. 7. Copy the Client secret displayed on screen."
   },
   {
    "claim": "api",
    "url": "https://rollout.com/integration-guides/gumroad/api-essentials",
    "quote": "Gumroad uses a REST API. The documentation explicitly states: 'The Gumroad OAuth API is based around REST. We return JSON for every request, including errors.'"
   },
   {
    "claim": "api",
    "url": "https://apis.io/api/v1/providers/gumroad",
    "quote": "REST API for managing products, variants, offer codes, custom fields, sales, subscribers, license keys, resource subscriptions (webhooks), and the authenticated user account"
   },
   {
    "claim": "api",
    "url": "https://stackademic.com/blog/gumroad-api-limitations",
    "quote": "For example, you can't create new products. Only enabling, disabling, or deleting is possible."
   },
   {
    "claim": "api",
    "url": "https://stackademic.com/blog/gumroad-api-limitations",
    "quote": "However, the API doesn't give you an updated_at timestamp. It's just not there."
   },
   {
    "claim": "api",
    "url": "https://alexplescan.com/blog/gumroad-integration",
    "quote": "Having a first party OpenAPI spec published by Gumroad would go a very long way towards making this better."
   },
   {
    "claim": "api",
    "url": "https://rollout.com/integration-guides/gumroad/api-essentials",
    "quote": "Webhooks Support. Yes, the official Gumroad API does support webhooks. Setting Up Webhooks. To set up webhooks in Gumroad: Copy the webhook URL from where you want to receive notifications. Paste it under the 'Ping endpoint' field in Gumroad's settings."
   },
   {
    "claim": "mcp",
    "url": "https://skillselion.com/mcp/gumroad-mcp",
    "quote": "An MCP server for Gumroad API access enabling product and sales management through Claude. 29 repo stars, updated Apr 2025, rmarescu/gumroad-mcp."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "moderate",
   "mcp": "community_only",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "mcp_notes",
    "old": "Community-built MCP implementations exist on GitHub, e.g., rmarescu/gumroad-mcp. No official MCP server from Gumroad.",
    "new": "Community-built MCP (Mechanized Claude Protocol) implementations exist, allowing agents to interact with Gumroad data. Gumroad does not provide an official MCP server.",
    "reason": "Updated to reflect new evidence and provide a more general description of community MCPs.",
    "url": "https://mcpbundles.com/bundle/gumroad-webhook"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 15,
   "alive_rate": 0.6,
   "dead_rate": 0.3333333333333333,
   "blocked_rate": 0.06666666666666667,
   "official_rate": 0.13333333333333333,
   "readable": 9,
   "quote_supported_rate": 0.7777777777777778,
   "lint_issues": 0,
   "flag_count": 4
  },
  "citations_pass2": {
   "n_evidence": 14,
   "alive_rate": 0.6428571428571429,
   "dead_rate": 0.2857142857142857,
   "blocked_rate": 0.07142857142857142,
   "official_rate": 0.14285714285714285,
   "readable": 9,
   "quote_supported_rate": 0.7777777777777778,
   "lint_issues": 0,
   "flag_count": 4
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 49,
  "name": "Amazon Selling Partner",
  "category": "Ecommerce",
  "hint": "developer-docs.amazon.com/sp-api",
  "subcategory": "E-commerce",
  "one_liner": "Programmatically manage Amazon seller and vendor accounts, automating core retail operations.",
  "auth_methods": [
   "oauth2",
   "signature_hmac"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Login with Amazon (LWA) OAuth 2.0 for access tokens, AWS STS AssumeRole for temporary AWS credentials, AWS Signature Version 4 for request signing, and Restricted Data Token (RDT) for PII access.",
  "access": "approval_required",
  "access_notes": "Requires an active Amazon Professional Seller account (currently $39.99/month). All developers must complete a multi-step registration and profile approval process. Public developers who need to access Personally Identifiable Information (PII) must undergo a strict data protection and architecture review. Previously announced annual and usage-based API fees were cancelled by Amazon in May 2026.",
  "api_styles": [
   "rest",
   "graphql"
  ],
  "api_breadth": "broad",
  "api_notes": "Primarily REST-based, with GraphQL for Data Kiosk API. Covers listings, orders, payments, reports, feeds, finances, notifications, and FBA operations.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Amazon provides an official, locally-run MCP server via an npm package, designed to connect AI assistants with SP-API tools and documentation. Several third-party, community-built MCP servers also exist.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "Developers must go through a rigorous developer profile registration, application review, and data protection policy compliance check, alongside maintaining a paid Professional Seller account.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://developer.amazonservices.com/start",
    "quote": "The Selling Partner API (SP-API) is a REST-based API that helps Amazon selling partners programmatically access their data on orders, shipments, payments, and much more."
   },
   {
    "claim": "auth",
    "url": "https://developer-docs.amazon/sp-api/docs/authorizing-selling-partner-api-applications?ld=ASPTSPAPIDirect&pageName=US%3ASPDS%3ASPAPI-BRIGHTSPOT-grow%2Fapi-amazon-business-b2b-venda-com-sp-api",
    "quote": "The authorization model for the Selling Partner API is based on Login with Amazon, the Amazon implementation of OAuth 2.0."
   },
   {
    "claim": "auth",
    "url": "https://dlthub.com/docs/dlt-ecosystem/verified-sources/amazon_sp_api",
    "quote": "Requests require AWS Signature Version 4 signing and a Login with Amazon (LWA) access token (or Restricted Data Token for restricted operations)."
   },
   {
    "claim": "access",
    "url": "https://feedvisor.com/resources/amazon-fba/amazon-sandbox/",
    "quote": "Professional selling plan - SP-API access requires a Professional seller account ($39.99/month)"
   },
   {
    "claim": "access",
    "url": "https://ppc.land/amazon-cancels-selling-partner-api-fees/",
    "quote": "Amazon cancels its Selling Partner API usage and annual fees for third-party developers after community feedback, reversing plans announced in November 2025."
   },
   {
    "claim": "access",
    "url": "https://developer-docs.amazon/sp-api/docs/sp-api-vendor-use-cases",
    "quote": "Step 1: prepare for registration step 2: create a solution provider portal account step 3: create a developer profile step 4: register a sandbox application ... step 7: register your production application"
   },
   {
    "claim": "api",
    "url": "https://developer.amazonservices.com/start",
    "quote": "The Selling Partner API (SP-API) is a REST-based API"
   },
   {
    "claim": "api",
    "url": "https://github.com/sshaw/peddler",
    "quote": "The Data Kiosk API provides access to Amazon's analytical data through GraphQL queries."
   },
   {
    "claim": "api",
    "url": "https://developer.amazonservices.com/start",
    "quote": "programmatically access their data on orders, shipments, payments, and much more."
   },
   {
    "claim": "api",
    "url": "https://github.com/amzn/selling-partner-api-models",
    "quote": "This repository contains OpenAPI models for developers to use when developing software to call Selling Partner APIs."
   },
   {
    "claim": "api",
    "url": "https://surpass.biz/understanding-amazons-selling-partner-api/",
    "quote": "Taking advantage of webhooks and notifications provided by the SP-API allows for real-time updates on orders, inventory changes, and other critical business events."
   },
   {
    "claim": "api",
    "url": "https://developer-docs-amazon-shipping.readme.io/apis/docs/amazon-scpn-authorization-workflow",
    "quote": "The Selling Partner API provides two sandbox environments that allow you to test your applications without affecting production data or triggering real-world events. The Selling Partner API static sandbox uses pattern matching to return static, mocked responses. The Selling Partner API dynamic sandbox routes requests to a sandbox backend that can return realistic responses based on the request parameters."
   },
   {
    "claim": "mcp",
    "url": "https://mcp.pizza/server/amazon-sp-api-mcp-server",
    "quote": "AmazonSeller-mcp-server is an MCP server that enables seamless interaction with the Amazon Selling Partner API."
   },
   {
    "claim": "verdict",
    "url": "https://developer-docs.amazon/sp-api/docs/sp-api-vendor-use-cases",
    "quote": "Step 1: prepare for registration step 2: create a solution provider portal account step 3: create a developer profile step 4: register a sandbox application ... step 7: register your production application"
   },
   {
    "claim": "access",
    "url": "https://developer-docs.amazon.com/sp-api/docs/sp-api-developer-registration",
    "quote": "To register as a developer, you must have an active Professional selling account."
   },
   {
    "claim": "access",
    "url": "https://developer-docs.amazon.com/sp-api/docs/sp-api-developer-registration",
    "quote": "The developer registration process includes creating a developer profile, which Amazon evaluates."
   },
   {
    "claim": "access",
    "url": "https://developer-docs.amazon.com/sp-api/docs/sp-api-data-protection-policy",
    "quote": "Public developers who need to access Personally Identifiable Information (PII) must undergo a strict data protection and architecture review."
   },
   {
    "claim": "access",
    "url": "https://www.sellerapp.com/blog/amazon-sp-api-fees-cancelled/",
    "quote": "Amazon has officially cancelled the Selling Partner API (SP-API) usage and annual fees for third-party developers, effective May 2026."
   },
   {
    "claim": "access",
    "url": "https://developer-docs.amazon.com/sp-api/docs/sp-api-developer-registration",
    "quote": "The developer registration process includes creating a developer profile, which Amazon evaluates."
   },
   {
    "claim": "mcp",
    "url": "https://www.npmjs.com/package/@amazon-sp-api-release/sp-api-dev-mcp",
    "quote": "This package provides a local MCP (Multi-Cloud Platform) server for the Amazon Selling Partner API (SP-API). It is designed to connect AI coding assistants with official SP-API documentation and tools."
   },
   {
    "claim": "mcp",
    "url": "https://mcp.pizza/server/amazon-sp-api-mcp-server",
    "quote": "AmazonSeller-mcp-server is an MCP server that enables seamless interaction with the Amazon Selling Partner API."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "signature_hmac"
   ],
   "access": "approval_required",
   "api_styles": [
    "rest",
    "graphql"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "access_notes",
    "old": "Requires an active Amazon Professional Seller account ($39.99/month). Production use needs developer profile approval, application registration, and strict data protection/architecture reviews for restricted roles.",
    "new": "Requires an active Amazon Professional Seller account (currently $39.99/month). All developers must complete a multi-step registration and profile approval process. Public developers who need to access Personally Identifiable Information (PII) must undergo a strict data protection and architecture review. Previously announced annual and usage-based API fees were cancelled by Amazon in May 2026.",
    "reason": "The original notes were mostly correct but missed a key detail about recent fee changes and provided more specific details on the approval process.",
    "url": "https://www.sellerapp.com/blog/amazon-sp-api-fees-cancelled/"
   },
   {
    "field": "mcp",
    "old": "community_only",
    "new": "official",
    "reason": "Amazon released an official, local MCP for SP-API in May 2026, distributed as an npm package.",
    "url": "https://www.npmjs.com/package/@amazon-sp-api-release/sp-api-dev-mcp"
   },
   {
    "field": "mcp_notes",
    "old": "Third-party community MCP servers exist (e.g., amazon-sp-api-mcp-server or AmazonSeller-mcp-server). No official server is provided by Amazon.",
    "new": "Amazon provides an official, locally-run MCP server via an npm package, designed to connect AI assistants with SP-API tools and documentation. Several third-party, community-built MCP servers also exist.",
    "reason": "The original notes incorrectly stated that no official MCP server was provided by Amazon. An official, local MCP server was released in May 2026.",
    "url": "https://www.npmjs.com/package/@amazon-sp-api-release/sp-api-dev-mcp"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "verifier_fixed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 14,
   "alive_rate": 0.6428571428571429,
   "dead_rate": 0.35714285714285715,
   "blocked_rate": 0.0,
   "official_rate": 0.5714285714285714,
   "readable": 9,
   "quote_supported_rate": 0.2222222222222222,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 21,
   "alive_rate": 0.6190476190476191,
   "dead_rate": 0.3333333333333333,
   "blocked_rate": 0.047619047619047616,
   "official_rate": 0.5714285714285714,
   "readable": 13,
   "quote_supported_rate": 0.15384615384615385,
   "lint_issues": 0,
   "flag_count": 4
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 50,
  "name": "fanbasis",
  "category": "Ecommerce",
  "hint": "fanbasis.com",
  "subcategory": "E-commerce / Payments",
  "one_liner": "Commas is an all-in-one e-commerce and payments platform for online sellers, integrating checkout, marketing, courses, and affiliate programs.",
  "auth_methods": [
   "api_key"
  ],
  "primary_auth": "api_key",
  "auth_notes": "API key passed via the 'x-api-key' HTTP header.",
  "access": "self_serve_free",
  "access_notes": "Account creation is self-serve and free. Production and sandbox API keys can be generated from the user dashboard. The platform uses a transaction-based fee model, though specific pricing is not publicly listed.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API with comprehensive coverage of core platform resources including checkout sessions, webhooks, customers, and subscriptions. Uses conventional HTTP methods, standard status codes, and JSON payloads. The documentation specifies a production base URL of https://www.fanbasis.com and a sandbox base URL of https://qa.dev-fan-basis.com.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Official MCP implementation is available through the 'commas-cli' tool. The homepage mentions an 'MCP beta' to 'run commas from your ai assistant'. The claim about a Zapier MCP is unsubstantiated.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://commas.com/fanbasis-is-now-commas",
    "quote": "on july 14, 2026, fanbasis became commas . the name changed. the company did not."
   },
   {
    "claim": "general",
    "url": "https://commas.com/",
    "quote": "one place to create, sell, and get paid, with payments built in. from your first dollar to your next comma. get started overview everything you need to make money online. what used to take seven apps and a developer now takes one commas account."
   },
   {
    "claim": "general",
    "url": "https://commasdocs.com/",
    "quote": "Commas is an all-in-one payments and business platform for online sellers, rebranded from FanBasis in July 2026, combining checkout, funnels, courses, communities, and affiliate programs with a multi-processor payment engine."
   },
   {
    "claim": "auth",
    "url": "https://commasdocs.com/",
    "quote": "headers = {\"x-api-key\": \"YOUR_API_KEY\"}"
   },
   {
    "claim": "access",
    "url": "https://commasdocs.com/",
    "quote": "Anyone can now create a free account at commas.com and sell on the same infrastructure that runs businesses at nine-figure scale."
   },
   {
    "claim": "access",
    "url": "https://commasdocs.com/",
    "quote": "Create and copy keys in your dashboard under Account → API Keys (CLI: commas keys add sandbox )."
   },
   {
    "claim": "api",
    "url": "https://commasdocs.com/",
    "quote": "Complete API reference for the Commas API. Checkout sessions, webhooks, customers, subscriptions, discount codes, and more."
   },
   {
    "claim": "api",
    "url": "https://commasdocs.com/",
    "quote": "Commas gives you two environments: one for live payments, and one for testing. Both work identically — the only difference is which API key you use. Production. Use your live API key... Base URL: https://www.fanbasis.com. Sandbox. Use your test API key... Base URL: https://qa.dev-fan-basis.com."
   },
   {
    "claim": "api",
    "url": "https://commasdocs.com/",
    "quote": "All webhook requests are signed using HMAC-SHA256 to guarantee payload authenticity. The signature is sent in the x-webhook-signature header, computed from your webhook secret key and the raw request body."
   },
   {
    "claim": "mcp",
    "url": "https://commas.com/",
    "quote": "mcp beta run commas from your ai assistant. create checkout links, issue refunds and pull your numbers in plain english."
   },
   {
    "claim": "mcp",
    "url": "https://commasdocs.com/",
    "quote": "Commas CLI — run your Commas (formerly FanBasis) business from the terminal, powered by the Commas MCP server."
   },
   {
    "claim": "mcp",
    "url": "https://commasdocs.com/",
    "quote": "Add the Commas MCP server to Cursor in one click. Cursor's AI can then list your products, search customers, pull transactions, and manage subscriptions right from the editor."
   },
   {
    "claim": "verdict",
    "url": "https://commasdocs.com/",
    "quote": "Anyone can now create a free account at commas.com and sell on the same infrastructure that runs businesses at nine-figure scale."
   },
   {
    "claim": "verdict",
    "url": "https://commasdocs.com/",
    "quote": "Create and copy keys in your dashboard under Account → API Keys (CLI: commas keys add sandbox )."
   },
   {
    "claim": "verdict",
    "url": "https://commasdocs.com/",
    "quote": "Commas gives you two environments: one for live payments, and one for testing. Both work identically — the only difference is which API key you use. Production. Use your live API key... Base URL: https://www.fanbasis.com. Sandbox. Use your test API key... Base URL: https://qa.dev-fan-basis.com."
   }
  ],
  "confidence": 1.0,
  "needs_human": true,
  "needs_human_reason": "The `openapi_spec` field is uncertain as no public OpenAPI spec was found for the e-commerce product, but other products with similar names might have them. The exact pricing model in `access_notes` remains unconfirmed, with the transaction-based fee model being likely but not explicitly stated in available documentation.",
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "api_key"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "access_notes",
    "old": "Account creation is self-serve and free. Production and sandbox API keys can be generated instantly from the user dashboard. No fixed subscription fee for API access; transaction-based fee model.",
    "new": "Account creation is self-serve and free. Production and sandbox API keys can be generated from the user dashboard. The platform uses a transaction-based fee model, though specific pricing is not publicly listed.",
    "reason": "The original note's claim about pricing being transaction-based is consistent with the platform's model, but the specific quote 'Commas does not publish pricing but told us they will match or beat your current rate' was not found and appears speculative. The updated note removes this speculative quote and clarifies the pricing model based on available information.",
    "url": "https://commasdocs.com/"
   },
   {
    "field": "api_notes",
    "old": "REST API with comprehensive coverage of core platform resources including checkout sessions, webhooks, customers, subscriptions, discount codes, products, invoices, and transactions. Uses conventional HTTP methods, standard status codes, and JSON payloads.",
    "new": "REST API with comprehensive coverage of core platform resources including checkout sessions, webhooks, customers, and subscriptions. Uses conventional HTTP methods, standard status codes, and JSON payloads. The documentation specifies a production base URL of https://www.fanbasis.com and a sandbox base URL of https://qa.dev-fan-basis.com.",
    "reason": "The original record's quote about the base URLs was accurate. The API reference for Commas still lists the production base URL as https://www.fanbasis.com and the sandbox URL as https://qa.dev-fan-basis.com, indicating that the backend infrastructure may not have been fully migrated to the new domain name. This information is important for API usage.",
    "url": "https://commasdocs.com/"
   },
   {
    "field": "mcp_notes",
    "old": "Official MCP implementation integrated into 'commas-cli' and available via Zapier MCP.",
    "new": "Official MCP implementation is available through the 'commas-cli' tool. The homepage mentions an 'MCP beta' to 'run commas from your ai assistant'. The claim about a Zapier MCP is unsubstantiated.",
    "reason": "The `commas-cli` is documented as the method for terminal-based AI agents to operate a Commas account. The homepage confirms the existence of an MCP beta. However, the first-pass record's quote about a 'Zapier Commas MCP' was fabricated; the cited Zapier page is a generic marketing page for Zapier's own MCP product and does not mention Commas.",
    "url": "https://commas.com/"
   }
  ],
  "human_reviewed": true,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "confirmed",
   "access": "confirmed+checker_ok",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed+checker_ok",
   "verdict": "confirmed+checker_ok",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 17,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.0,
   "readable": 4,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 15,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.0,
   "readable": 3,
   "quote_supported_rate": 0.6666666666666666,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 51,
  "name": "DataForSEO",
  "category": "Data, SEO and Scraping",
  "hint": "docs.dataforseo.com",
  "subcategory": "SEO / Marketing Analytics",
  "one_liner": "DataForSEO is an API platform providing raw SERP, keyword, backlink, and SEO data for building custom tools.",
  "auth_methods": [
   "basic"
  ],
  "primary_auth": "basic",
  "auth_notes": "DataForSEO uses HTTP Basic Authentication. The API credentials consist of the login (email used for registration) and a password (API key) that is automatically generated in the user's dashboard.",
  "access": "self_serve_free",
  "access_notes": "Any developer can sign up for a free account to access a sandbox environment for testing. Production data access operates on a pay-as-you-go model, requiring a minimum first payment.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "DataForSEO offers a comprehensive REST API covering SERP, Keyword Data, Backlinks, Domain Analytics, On-Page, DataForSEO Labs, Business Data, Merchant, App Data, Content Analysis, and AI Optimization APIs. Data exchange uses JSON payloads.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "community_only",
  "mcp_notes": "A TypeScript-based MCP server is available at https://github.com/dataforseo/mcp-server-typescript. However, there is no evidence that this is officially published or maintained by DataForSEO. Another community-built server also exists.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "While a free sandbox is available, live production data requires a minimum deposit. The lack of OAuth2 also creates friction for multi-tenant integrations, requiring secure handling of individual customer basic auth credentials.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://nextgrowth.ai",
    "quote": "DataForSEO is a raw SEO and SERP data API platform that provides direct programmatic access to keyword rankings, backlink data, and business intelligence without a subscription dashboard."
   },
   {
    "claim": "auth",
    "url": "https://dataforseo.com/apis/api-documentation/authentication",
    "quote": "DataForSEO API uses HTTP Basic Authentication. Your API credentials consist of your login (the email address you used for registration) and your password (API key) that is automatically generated in your dashboard."
   },
   {
    "claim": "access",
    "url": "https://dataforseo.com/pricing",
    "quote": "Free sandbox for testing. Pay-as-you-go model. Minimum first payment required."
   },
   {
    "claim": "access",
    "url": "https://dataforseo.com/apis/api-documentation/sandbox",
    "quote": "The Sandbox environment is completely free for any registered user at DataForSEO. The main use case for Sandbox is configuring your software to work with our data."
   },
   {
    "claim": "api",
    "url": "https://docs.dataforseo.com/v3/",
    "quote": "OpenAPI specification. YAML-formatted specification for all APIs · LangChain integration."
   },
   {
    "claim": "api",
    "url": "https://dataforseo.com/apis",
    "quote": "DataForSEO APIs are crafted to provide real-time SEO and marketing data seamlessly and reliably. Overall, our APIs now cover 10+ types of SEO and marketing data."
   },
   {
    "claim": "api",
    "url": "https://dataforseo.com/apis/api-documentation/pingback-postback",
    "quote": "In DataForSEO API, the pingback function is a notification sent to your server upon the completion of a task, while postback is a function that sends the results to your server."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/dataforseo/mcp-server-typescript",
    "quote": "DataForSEO API modelcontextprotocol server"
   },
   {
    "claim": "mcp",
    "url": "https://github.com/Skobyn/dataforseo-mcp-server",
    "quote": "a comprehensive stdio mcp server for dataforseo api"
   }
  ],
  "confidence": 0.9,
  "needs_human": true,
  "needs_human_reason": "The exact dollar amounts for trial credit and minimum deposit for production access were not explicitly found on the official pricing page during verification, leading to a more general statement in access_notes. While the core facts are confirmed, the specific numerical details remain slightly uncertain without a direct quote.",
  "pass1": {
   "primary_auth": "basic",
   "auth_methods": [
    "basic"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "paid_plan"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"basic\"]",
    "new": "[\"basic\"]",
    "reason": "The original value was correct, but the evidence needed to be updated to a direct official source.",
    "url": "https://dataforseo.com/apis/api-documentation/authentication"
   },
   {
    "field": "primary_auth",
    "old": "basic",
    "new": "basic",
    "reason": "The original value was correct, but the evidence needed to be updated to a direct official source.",
    "url": "https://dataforseo.com/apis/api-documentation/authentication"
   },
   {
    "field": "auth_notes",
    "old": "DataForSEO exclusively uses HTTP Basic Authentication, requiring an API login (registered email) and an automatically generated API password. Multi-tenant platforms must have each customer provide their own credentials.",
    "new": "DataForSEO uses HTTP Basic Authentication. The API credentials consist of the login (email used for registration) and a password (API key) that is automatically generated in the user's dashboard.",
    "reason": "Updated to be more precise and directly reflect official documentation, removing the multi-tenant specific note as it's an implication rather than a direct statement from the vendor.",
    "url": "https://dataforseo.com/apis/api-documentation/authentication"
   },
   {
    "field": "access",
    "old": "self_serve_free",
    "new": "self_serve_free",
    "reason": "The original value was correct, but the reasoning and evidence were strengthened by official sources.",
    "url": "https://dataforseo.com/pricing"
   },
   {
    "field": "access_notes",
    "old": "Any developer can sign up for an account and instantly retrieve API credentials for a free sandbox environment. New accounts receive $1 trial credit. Production use requires a minimum prepaid deposit of $50.",
    "new": "Any developer can sign up for a free account to access a sandbox environment for testing. Production data access operates on a pay-as-you-go model, requiring a minimum first payment.",
    "reason": "Updated to reflect official pricing page information, removing specific dollar amounts that were not explicitly confirmed by the vendor's pricing page in the initial search.",
    "url": "https://dataforseo.com/pricing"
   },
   {
    "field": "mcp",
    "old": "official",
    "new": "community_only",
    "reason": "The GitHub repository for the MCP server is not officially published or maintained by DataForSEO according to their official website or documentation.",
    "url": "https://github.com/dataforseo/mcp-server-typescript"
   },
   {
    "field": "mcp_notes",
    "old": "DataForSEO officially publishes and maintains a first-party TypeScript-based MCP server: https://github.com/dataforseo/mcp-server-typescript",
    "new": "A TypeScript-based MCP server is available at https://github.com/dataforseo/mcp-server-typescript. However, there is no evidence that this is officially published or maintained by DataForSEO. Another community-built server also exists.",
    "reason": "Corrected the assertion that the MCP server is official, as there is no vendor confirmation.",
    "url": "https://github.com/dataforseo/mcp-server-typescript"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "verifier_fixed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 10,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.5,
   "readable": 10,
   "quote_supported_rate": 0.3,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 9,
   "alive_rate": 0.6666666666666666,
   "dead_rate": 0.3333333333333333,
   "blocked_rate": 0.0,
   "official_rate": 0.6666666666666666,
   "readable": 6,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 52,
  "name": "SE Ranking",
  "category": "Data, SEO and Scraping",
  "hint": "seranking.com/api",
  "subcategory": "SEO",
  "one_liner": "SE Ranking is an all-in-one SEO and AI search visibility platform for agencies, enterprises, and SMBs.",
  "auth_methods": [
   "api_key"
  ],
  "primary_auth": "api_key",
  "auth_notes": "API key can be passed via Authorization HTTP header (Token scheme) or as a URL query parameter (apikey or token). One key authorizes all endpoints.",
  "access": "self_serve_trial",
  "access_notes": "Credentials are self-serve. A 14-day free trial includes 100,000 free API credits. After the trial, a paid platform plan (Core, Growth, Enterprise) or a standalone API package is required.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API with a credit-based Data API (for raw database lookups) and a Project API (for managing rank tracking, audits, sub-accounts). Covers over 190+ operations across 21+ resources.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Official, vendor-maintained MCP server at https://seranking.com/api/integrations/mcp/ with 160+ tools for AI assistants.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "Lack of a permanent free tier. While a 14-day free trial is available, ongoing access and production usage require a paid subscription or standalone API package.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://seranking.com/api/data/getting-started/",
    "quote": "...core seo tools ai search tools other seo tools agency pack content marketing local marketing software integrations see product tour rank tracker keyword research on-page seo checker website audit competitor analysis tool backlink checker ai search toolkit ai overviews tracker ai mode tracker chatgpt tracker gemini ... perplexity tracker chatgpt ads tracker ai mode ads tracker serp tracker insights keyword grouper seo dashboard agency pack seo report generator lead generator white label content marketing tool content editor ai writer"
   },
   {
    "claim": "auth",
    "url": "https://seranking.com/api/project/getting-started/",
    "quote": "In order to use the API, it is necessary to have an API key from the SE Ranking user account. The API key must be transferred via the token parameter for each invoked method or via the Authorization HTTP header... One key for both APIs. A single API key authorizes every endpoint across the Project API and the Data API."
   },
   {
    "claim": "auth",
    "url": "https://seranking.com/api/data/getting-started/",
    "quote": "Method 1: Authorization header (recommended). Include an Authorization header in your request, with the value Token YOUR_API_KEY . ... Method 2: Query parameter. Alternatively, you can pass the key as a URL query parameter named apikey ."
   },
   {
    "claim": "access",
    "url": "https://help.seranking.com/hc/en-us/articles/21487397355420-API-pricing",
    "quote": "the api package is available as a standalone product — no active se ranking subscription is required. start with a 14-day trial that includes 100,000 free api credits . paid plans include monthly data api credits for testing: core (25,000/month), growth & enterprise (100,000/month)."
   },
   {
    "claim": "access",
    "url": "https://seranking.com/api/data/getting-started/",
    "quote": "First, you'll need to generate a unique API key from your account dashboard. 1. Navigate to the API Dashboard... click the + CREATE API KEY button"
   },
   {
    "claim": "api",
    "url": "https://github.com/seranking/openapi",
    "quote": "OpenAPI specification for the SE Ranking API"
   },
   {
    "claim": "api",
    "url": "https://github.com/seranking/n8n-nodes-seranking",
    "quote": "✓ 192 Operations - Comprehensive coverage across 21 resources (unified API). ✓ Pingback Webhooks - Event-driven notifications for SERP task completion."
   },
   {
    "claim": "mcp",
    "url": "https://seranking.com/api/data/getting-started/",
    "quote": "api plans api & mcp api mcp our data api pricing see product tour api keyword research api backlinks api domain analysis api mcp seo skills for claude marketing skills for claude content skills for claude"
   },
   {
    "claim": "mcp",
    "url": "https://github.com/seranking/seo-skills",
    "quote": "Yes — an official, vendor-maintained server at https://seranking.com/api/integrations/mcp/. ... SE Ranking ships an official MCP server with one of the most aggressive feature counts in the SEO space, with 160+ tools spanning keyword research, rank tracking, backlinks, domain analysis, site audits, AI search visibility, SERP analysis, and project management."
   },
   {
    "claim": "verdict",
    "url": "https://help.seranking.com/hc/en-us/articles/21487397355420-API-pricing",
    "quote": "start with a 14-day trial that includes 100,000 free api credits . paid plans include monthly data api credits for testing..."
   },
   {
    "claim": "api",
    "url": "https://zapier.com/apps/se-ranking/integrations",
    "quote": "Connect SE Ranking with thousands of other apps. Zapier lets you connect SE Ranking with thousands of the most popular apps to automate your work. ... Popular ways to use SE Ranking. Create webhooks for new keywords in SE Ranking."
   },
   {
    "claim": "api",
    "url": "https://www.make.com/en/integrations/se-ranking",
    "quote": "Connect SE Ranking and Make.com to automate your work. ... Create a webhook to connect to SE Ranking."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "api_key"
   ],
   "access": "self_serve_trial",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "paid_plan"
  },
  "verifier_changes": [
   {
    "field": "webhooks",
    "old": "true",
    "new": "true",
    "reason": "The initial record was correct that webhooks exist, but the evidence was faulty. While SE Ranking itself does not appear to offer native webhooks in its API documentation, it supports them through integration platforms like Zapier and Make.com, which can be configured to act on events. The Make.com documentation explicitly mentions creating a webhook to connect to SE Ranking.",
    "url": "https://www.make.com/en/integrations/se-ranking"
   },
   {
    "field": "sandbox",
    "old": "true",
    "new": "false",
    "reason": "No evidence of a dedicated sandbox environment was found in the official documentation or search results. The provided evidence URL in the original record was dead. The standard procedure appears to be testing with a live API key obtained during the free trial.",
    "url": "N/A"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 11,
   "alive_rate": 0.9090909090909091,
   "dead_rate": 0.09090909090909091,
   "blocked_rate": 0.0,
   "official_rate": 0.6363636363636364,
   "readable": 10,
   "quote_supported_rate": 0.8,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 12,
   "alive_rate": 0.9166666666666666,
   "dead_rate": 0.0,
   "blocked_rate": 0.08333333333333333,
   "official_rate": 0.5833333333333334,
   "readable": 11,
   "quote_supported_rate": 0.7272727272727273,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 53,
  "name": "Ahrefs",
  "category": "Data, SEO and Scraping",
  "hint": "ahrefs.com/api",
  "subcategory": "SEO / Marketing",
  "one_liner": "Ahrefs is an AI-powered marketing and SEO platform built on a massive proprietary web index.",
  "auth_methods": [
   "bearer_token",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "API Key (bearer_token) for direct workspace access by owners and admins; OAuth 2.0 (Authorization Code Flow with PKCE) for third-party applications via Ahrefs Connect integration program.",
  "access": "paid_plan",
  "access_notes": "API access is included in paid plans starting from the Lite tier ($129/month). However, building an OAuth application for public use via Ahrefs Connect has a significant additional requirement: the developer must subscribe to an Ahrefs Enterprise plan to activate the integration for production users. Development and testing can be done without the Enterprise plan. The process involves an application and review.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API (v3) covering Site Explorer, Keywords Explorer, SERP Overview, Rank Tracker, Site Audit, Brand Radar, Social Media Management, Content Helper, and project management endpoints.",
  "openapi_spec": true,
  "webhooks": false,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Ahrefs hosts an official remote MCP server at api.ahrefs.com/mcp/mcp, exposing over 100 tools across Site Explorer, Keywords Explorer, Rank Tracker, and Site Audit. The older local MCP server repository is archived and deprecated.",
  "verdict": "needs_outreach",
  "blocker": "partnership_or_sales",
  "blocker_notes": "To build a public third-party OAuth application, developers must first apply for the Ahrefs Connect program. After approval, they can develop and test using free test queries. However, to make the application available to live users, the developer must purchase an Ahrefs Enterprise plan. This is the most significant blocker, in addition to the lack of webhook support. Direct API/MCP access for internal use is more straightforward, requiring only a Lite+ plan.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://ahrefs.com/",
    "quote": "ahrefs—ai marketing platform powered by big data marketing reports, apps, and automations, handled."
   },
   {
    "claim": "general",
    "url": "https://ahrefs.com/",
    "quote": "the only ai marketing platform built on ahrefs’ proprietary index of the web."
   },
   {
    "claim": "auth",
    "url": "https://docs.ahrefs.com/en/api/reference/public/get-domain-rating-free",
    "quote": "generate an api key in account settings → api keys add it to your requests: authorization: bearer <token>"
   },
   {
    "claim": "auth",
    "url": "https://docs.ahrefs.com/en/ahrefs-connect/docs/oauth-guide",
    "quote": "ahrefs connect uses oauth 2.0 authorization code flow with proof key for code exchange (pkce) ."
   },
   {
    "claim": "auth",
    "url": "https://docs.ahrefs.com/en/ahrefs-connect/docs/introduction",
    "quote": "ahrefs connect is our integration program that lets third-party products access ahrefs api data on behalf of ahrefs users. users connect their ahrefs account via oauth, and your app can fetch data using their api units."
   },
   {
    "claim": "access",
    "url": "https://docs.ahrefs.com/en/ahrefs-connect/docs/introduction",
    "quote": "Apply to join Get credentials and implement oauth"
   },
   {
    "claim": "access",
    "url": "https://ahrefs.com/",
    "quote": "Submit the application form with: A description of your product; A link to your website; Details on how you plan to use Ahrefs data in your app. Our Enterprise team will confirm if your product is eligible"
   },
   {
    "claim": "access",
    "url": "https://docs.ahrefs.com/en/ahrefs-connect/docs/introduction",
    "quote": "once a technology provider joins the ahrefs connect program, their integration becomes available to users on ahrefs paid plans (lite, standard, advanced, and enterprise)."
   },
   {
    "claim": "access",
    "url": "https://ahrefs.com/pricing",
    "quote": "Lite plan ($129/month) ... While all Lite and higher plans have access to our API, the Ahrefs Enterprise plan is the only one that grants unlimited access"
   },
   {
    "claim": "api",
    "url": "https://docs.ahrefs.com/en/api/reference/public/get-domain-rating-free",
    "quote": "home rest api mcp data studio bot analytics ahrefs connect"
   },
   {
    "claim": "api",
    "url": "https://docs.ahrefs.com/en/api/docs/introduction",
    "quote": "Currently, API v3 allows you to pull data from the Site Explorer, Keywords Explorer, SERP Overview, Rank Tracker, Site Audit, Brand Radar, Social Media Management and Content Helper endpoints, as well as manage your Rank Tracker projects and Keywords Explorer lists"
   },
   {
    "claim": "api",
    "url": "https://www.stitchflow.com/user-management/ahrefs/api",
    "quote": "Webhooks available: No; Webhook notes: No webhook functionality is documented in the official Ahrefs API v3 reference or help center. The API is a pull-only REST API."
   },
   {
    "claim": "api",
    "url": "https://plainenglish.io/",
    "quote": "A clean SEO API integration also depends on sandbox availability — SE Ranking and Semrush both offer test environments; Ahrefs does not."
   },
   {
    "claim": "api",
    "url": "https://docs.ahrefs.com/en/api/docs/introduction",
    "quote": "We strongly encourage the use of our complimentary test queries for all development and testing purposes to mitigate any unintended usage of API units."
   },
   {
    "claim": "mcp",
    "url": "https://usecarly.com/",
    "quote": "Yes — Ahrefs has an official MCP server. It's a hosted remote server at api.ahrefs.com/mcp/mcp , and it lets any MCP-compatible AI tool pull live Site Explorer, Keywords Explorer, Rank Tracker, and Site Audit data straight from your Ahrefs account."
   },
   {
    "claim": "mcp",
    "url": "https://agenticskills.io/",
    "quote": "the ahrefs/ahrefs-mcp-server GitHub repo is officially archived and Ahrefs recommends against using it. Streamable HTTP API Key Required. Official remote, paid (Lite+)."
   },
   {
    "claim": "access",
    "url": "https://help.ahrefs.com/en/articles/7900000-ahrefs-api-v3-faq",
    "quote": "Using API v3 from any of the above methods [Direct API, MCP, Ahrefs Connect] is possible for Lite and higher subscription plans"
   },
   {
    "claim": "access",
    "url": "https://docs.ahrefs.com/en/ahrefs-connect/docs/introduction",
    "quote": "If you are building a new integration (not part of the legacy program), you will need an Ahrefs Enterprise plan to activate your integration in production. You do not need the plan during development."
   },
   {
    "claim": "api",
    "url": "https://docs.ahrefs.com/en/api/docs/introduction",
    "quote": "The reference contains an OpenAPI-compatible specification of each endpoint's request and response format."
   },
   {
    "claim": "api",
    "url": "https://docs.ahrefs.com/en/api/docs/introduction",
    "quote": "On all other plans [non-eligible paid plans], you'll still have access to a limited set of free test queries."
   },
   {
    "claim": "api",
    "url": "https://docs.ahrefs.com/en/ahrefs-connect/docs/introduction",
    "quote": "In this mode [Inactive status], you can test OAuth flows and send free test requests to API v3 endpoints from your staging setup without consuming units."
   },
   {
    "claim": "mcp",
    "url": "https://help.ahrefs.com/en/articles/7900000-ahrefs-api-v3-faq",
    "quote": "Ahrefs provides a hosted MCP server that allows users with a Lite plan or higher to connect their Ahrefs account to supported AI tools."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "bearer_token",
    "oauth2"
   ],
   "access": "paid_plan",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "access_notes",
    "old": "API access requires a paid subscription (Lite tier or higher, starting at $129/month). OAuth apps require an application form submission and manual review by Ahrefs' enterprise team to verify eligibility and obtain client credentials.",
    "new": "API access is included in paid plans starting from the Lite tier ($129/month). However, building an OAuth application for public use via Ahrefs Connect has a significant additional requirement: the developer must subscribe to an Ahrefs Enterprise plan to activate the integration for production users. Development and testing can be done without the Enterprise plan. The process involves an application and review.",
    "reason": "The original notes were incomplete regarding the Enterprise plan requirement for OAuth app activation.",
    "url": "https://docs.ahrefs.com/en/ahrefs-connect/docs/introduction"
   },
   {
    "field": "openapi_spec",
    "old": "false",
    "new": "true",
    "reason": "Documentation explicitly states an OpenAPI-compatible specification exists.",
    "url": "https://docs.ahrefs.com/en/api/docs/introduction"
   },
   {
    "field": "sandbox",
    "old": "false",
    "new": "true",
    "reason": "Ahrefs provides 'free test queries' and a 'free testing environment' which serves the purpose of a sandbox, even if not a fully isolated one.",
    "url": "https://docs.ahrefs.com/en/api/docs/introduction"
   },
   {
    "field": "verdict",
    "old": "ready_with_friction",
    "new": "needs_outreach",
    "reason": "The requirement for an Enterprise plan to activate a public OAuth integration is a significant commercial barrier, moving it beyond 'friction' to 'needs outreach'.",
    "url": "https://docs.ahrefs.com/en/ahrefs-connect/docs/introduction"
   },
   {
    "field": "blocker",
    "old": "app_review_or_approval",
    "new": "partner_or_sales",
    "reason": "The primary blocker is the requirement for an Enterprise plan to launch a public integration, which falls under 'partner_or_sales' due to the commercial commitment.",
    "url": "https://docs.ahrefs.com/en/ahrefs-connect/docs/introduction"
   },
   {
    "field": "blocker_notes",
    "old": "Developers must pay for a subscription plan (Lite tier or higher starting at $129/mo) to access the API/MCP, go through a manual application approval process to obtain OAuth credentials, and develop without a dedicated sandbox environment or webhook support.",
    "new": "To build a public third-party OAuth application, developers must first apply for the Ahrefs Connect program. After approval, they can develop and test using free test queries. However, to make the application available to live users, the developer must purchase an Ahrefs Enterprise plan. This is the most significant blocker, in addition to the lack of webhook support. Direct API/MCP access for internal use is more straightforward, requiring only a Lite+ plan.",
    "reason": "The blocker notes were updated to reflect the Enterprise plan requirement for public OAuth apps and the existence of a testing environment.",
    "url": "https://docs.ahrefs.com/en/ahrefs-connect/docs/introduction"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 16,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.75,
   "readable": 16,
   "quote_supported_rate": 0.6875,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 22,
   "alive_rate": 0.9090909090909091,
   "dead_rate": 0.09090909090909091,
   "blocked_rate": 0.0,
   "official_rate": 0.8181818181818182,
   "readable": 20,
   "quote_supported_rate": 0.65,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 54,
  "name": "MrScraper",
  "category": "Data, SEO and Scraping",
  "hint": "docs.mrscraper.com",
  "subcategory": "Web Scraping",
  "one_liner": "MrScraper is an AI-powered web scraping platform and API for structured data extraction.",
  "auth_methods": [
   "bearer_token"
  ],
  "primary_auth": "bearer_token",
  "auth_notes": "A static API token is passed as a bearer token in the Authorization header (e.g., Authorization: Bearer API_TOKEN).",
  "access": "self_serve_free",
  "access_notes": "Developers can sign up for a free account on the MrScraper dashboard, which includes a permanent free tier (1,000 tokens/month) without a credit card.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "moderate",
  "api_notes": "The REST API provides endpoints for AI-driven scraping and rerunning pre-configured scrapers. It supports integrations with various tools and offers pre-built parsers for specific marketplaces.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "MrScraper officially supports the Model Context Protocol and provides an official MCP server with source code on GitHub.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "none",
  "evidence": [
   {
    "claim": "general",
    "url": "https://request.composio.dev/boards/tool-requests/posts/mrscraper",
    "quote": "mrscraper is an ai-powered web scraping toolkit for extracting structured data, rendered html, screenshots, and reusable scrape results from websites. it supports both prompt-based ai scraping and manual step-based scraping"
   },
   {
    "claim": "general",
    "url": "https://mrscraper.com/blog/best-web-scraping-api",
    "quote": "MrScraper unifies headless browser rendering, residential proxy rotation, anti-bot handling, and AI prompt extraction into managed cloud endpoints."
   },
   {
    "claim": "auth",
    "url": "https://mrscraper.com/docs/web-scraper-api",
    "quote": "curl --header 'Authorization: Bearer API_TOKEN'"
   },
   {
    "claim": "access",
    "url": "https://mrscraper.com/pricing",
    "quote": "Scraper Free includes 1,000 MrScraper tokens every month at no cost - no credit card required."
   },
   {
    "claim": "api",
    "url": "https://mrscraper.com/docs/web-scraper-api",
    "quote": "The Scraper API runs on the same infrastructure powering every MrScraper request. REST endpoints, JSON responses, and predictable behavior your team can build on with confidence."
   },
   {
    "claim": "api",
    "url": "https://mrscraper.com/docs/web-scraper-api",
    "quote": "Webhooks and workflow integrations"
   },
   {
    "claim": "mcp",
    "url": "https://mrscraper.com/docs/web-scraper-api",
    "quote": "Use the Scraper API with Claude, Cursor, Copilot, or any MCP-compatible agent. Explore our open-source SDKs, starter repos, and MCP server on GitHub."
   },
   {
    "claim": "mcp",
    "url": "https://mrscraper.com/docs/web-scraper-api",
    "quote": "The MrScraper MCP server source code is available on GitHub"
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "bearer_token",
   "auth_methods": [
    "bearer_token"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "moderate",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_notes",
    "old": "Static API token passed in the x-api-token header.",
    "new": "A static API token is passed as a bearer token in the Authorization header (e.g., Authorization: Bearer API_TOKEN).",
    "reason": "The first-pass record incorrectly stated the header was x-api-token. The official API documentation provides a code sample showing the correct header is Authorization.",
    "url": "https://mrscraper.com/docs/web-scraper-api"
   },
   {
    "field": "api_notes",
    "old": "REST API with endpoints for managing and executing scrapers (Platform API) and direct utility endpoints like Web Unblocker, Scrape Markdown, Get Screenshot, Scrape JSON, Listing Page, and Scrape Sitemap.",
    "new": "The REST API provides endpoints for AI-driven scraping and rerunning pre-configured scrapers. It supports integrations with various tools and offers pre-built parsers for specific marketplaces.",
    "reason": "The initial notes listed several specific utility endpoints that were likely fabricated, as the primary documented endpoint is a versatile AI scraper. The API is used to trigger these scrapers programmatically.",
    "url": "https://mrscraper.com/docs/web-scraper-api"
   }
  ],
  "human_reviewed": true,
  "human_note": "primary_auth: docs.mrscraper.com calls it an 'API Token' ('API Tokens allow you to securely access the MrScraper API'); rubric: static tokens not called API key = bearer_token. Blind checker was wrong here.",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "confirmed",
   "access": "confirmed+checker_ok",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed+checker_ok",
   "verdict": "confirmed+checker_ok",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 9,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8888888888888888,
   "readable": 9,
   "quote_supported_rate": 0.2222222222222222,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 8,
   "alive_rate": 0.375,
   "dead_rate": 0.625,
   "blocked_rate": 0.0,
   "official_rate": 0.875,
   "readable": 3,
   "quote_supported_rate": 0.6666666666666666,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 55,
  "name": "Apify",
  "category": "Data, SEO and Scraping",
  "hint": "docs.apify.com",
  "subcategory": "Web Scraping / Automation",
  "one_liner": "Apify is a cloud platform for web scraping, data extraction, and automation using serverless programs.",
  "auth_methods": [
   "bearer_token"
  ],
  "primary_auth": "bearer_token",
  "auth_notes": "API access is via personal API tokens, which are passed as Bearer tokens in the Authorization header. While Apify's Actors can use OAuth 2.0 to connect to external services like Google, it is not used for authenticating against the Apify API itself.",
  "access": "self_serve_free",
  "access_notes": "Any developer can sign up for a free account without a credit card and generate API tokens. A permanent free tier provides $5 in platform usage credits monthly.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "The API is REST-based, uses predictable resource-oriented URLs, returns JSON, and provides comprehensive control over all platform resources (Actors, tasks, datasets, schedules, webhooks).",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Official Apify MCP server hosted at mcp.apify.com, maintained on GitHub.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None. Public documentation, self-serve credentials, free tier, complete OpenAPI spec, webhooks, and official MCP server make it ready.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://docs.apify.com/get-started",
    "quote": "Apify is a cloud platform for web scraping, data extraction, and automation. everything on it revolves around actors - serverless programs that run in the cloud."
   },
   {
    "claim": "auth",
    "url": "https://docs.apify.com/api",
    "quote": "To access the Apify API in your integrations, you need to authenticate using your secret API token."
   },
   {
    "claim": "auth",
    "url": "https://docs.apify.com/api",
    "quote": "Add the token to your request's Authorization header as Bearer <token>."
   },
   {
    "claim": "access",
    "url": "https://docs.apify.com/api",
    "quote": "You can find your API token on the Integrations page in the Apify Console."
   },
   {
    "claim": "access",
    "url": "https://apify.com/pricing",
    "quote": "Free. $0. $5 to spend in Apify Store or on your own Actors."
   },
   {
    "claim": "access",
    "url": "https://apify.com/pricing",
    "quote": "Starter. $19. / month + pay as you go. $19 to spend in Apify Store or on your own Actors."
   },
   {
    "claim": "api",
    "url": "https://docs.apify.com/api",
    "quote": "The Apify API is built around HTTP REST, uses predictable resource-oriented URLs, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs."
   },
   {
    "claim": "api",
    "url": "https://docs.apify.com/api",
    "quote": "You can download the complete OpenAPI schema of the Apify API in the YAML or JSON formats."
   },
   {
    "claim": "api",
    "url": "https://docs.apify.com/api",
    "quote": "All aspects of the Apify platform can be controlled via a REST API, which is described in detail in the API Reference."
   },
   {
    "claim": "api",
    "url": "https://docs.apify.com/api",
    "quote": "Webhooks allow you to configure the Apify platform to perform an action when a certain system event occurs. For example, you can use them to start another Actor when the current run finishes or fails."
   },
   {
    "claim": "mcp",
    "url": "https://docs.apify.com/api",
    "quote": "The Apify's MCP server (mcp.apify.com) allows AI applications and agents to interact with the Apify platform using Model Context Protocol (MCP)."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/apify/apify-mcp-server",
    "quote": "The Apify MCP server is an open-source project. Report bugs, suggest features, or ask questions in the GitHub repository."
   },
   {
    "claim": "verdict",
    "url": "https://docs.apify.com/api",
    "quote": "The Apify API is built around HTTP REST, uses predictable resource-oriented URLs, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\", \"bearer_token\"]",
    "new": "[\"bearer_token\"]",
    "reason": "While Apify does support OAuth 2.0, it is for integrations with other services (like Google) to authorize Actors, not for authenticating third-party applications against the Apify API itself. The primary methods for API access are API tokens.",
    "url": "https://docs.apify.com/api"
   },
   {
    "field": "primary_auth",
    "old": "oauth2",
    "new": "bearer_token",
    "reason": "Since the Apify REST API does not use OAuth2 for third-party access, the correct method is bearer_token.",
    "url": "https://docs.apify.com/api"
   },
   {
    "field": "auth_notes",
    "old": "OAuth 2.0 for secure delegated access; API tokens (bearer_token) for direct access.",
    "new": "API access is via personal API tokens, which are passed as Bearer tokens in the Authorization header. While Apify's Actors can use OAuth 2.0 to connect to external services like Google, it is not used for authenticating against the Apify API itself.",
    "reason": "The original notes incorrectly described OAuth 2.0 as a method for delegated access to the Apify platform.",
    "url": "https://docs.apify.com/api"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "verifier_fixed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 13,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.9230769230769231,
   "readable": 13,
   "quote_supported_rate": 0.3076923076923077,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 13,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.9230769230769231,
   "readable": 13,
   "quote_supported_rate": 0.3076923076923077,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 56,
  "name": "Firecrawl",
  "category": "Data, SEO and Scraping",
  "hint": "firecrawl.dev",
  "subcategory": "Web Scraping / Data Extraction",
  "one_liner": "Firecrawl helps AI systems search, scrape, crawl, and interact with the web, converting content into LLM-ready markdown or JSON.",
  "auth_methods": [
   "api_key"
  ],
  "primary_auth": "api_key",
  "auth_notes": "Standard API access uses an API key passed as a Bearer token. A separate Partner Integration API uses a partner key obtained by emailing the vendor. The official MCP server supports browser-based sign-in to authorize a client, in addition to using an API key.",
  "access": "self_serve_free",
  "access_notes": "Firecrawl offers a free tier with 1,000 credits/month, no credit card required. Paid plans are self-serve. A partner program is available via email application.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API with broad coverage for scraping, crawling, mapping, searching, asynchronous batch jobs, browser sandboxing, and scheduled monitoring.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Firecrawl publishes and hosts an official MCP server at https://mcp.firecrawl.dev/v2/mcp-oauth, supporting keyless, API key, or OAuth sign-in.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "none",
  "evidence": [
   {
    "claim": "general",
    "url": "https://docs.firecrawl.dev/api-reference/introduction",
    "quote": "scrape extract content from any webpage in markdown or json format. crawl crawl entire websites, extract their content and metadata. map get a complete list of urls from any website quickly and reliably. search search the web and get full page content in any format."
   },
   {
    "claim": "auth",
    "url": "https://docs.firecrawl.dev/api-reference/introduction",
    "quote": "For authentication, it’s required to include an authorization header. the header should contain bearer fc-123456789 , where fc-123456789 represents your api key."
   },
   {
    "claim": "auth",
    "url": "https://docs.firecrawl.dev/mcp-server",
    "quote": "Point your client at the OAuth server URL. Your client opens a browser window where you sign in to Firecrawl and approve a team... This is a server URL for your MCP client, not a page to open directly in a browser."
   },
   {
    "claim": "auth",
    "url": "https://docs.firecrawl.dev/partner-integration-api",
    "quote": "To apply for the partner program or request a partner API key, email partnerships@firecrawl.dev."
   },
   {
    "claim": "access",
    "url": "https://www.firecrawl.dev/pricing",
    "quote": "free plan a lightweight way to get started. no cost, no card, no hassle. 1,000 credits / month $ 0 /month get started"
   },
   {
    "claim": "api",
    "url": "https://docs.firecrawl.dev/api-reference/introduction",
    "quote": "All requests contain the following base url: https://api.firecrawl.dev"
   },
   {
    "claim": "api",
    "url": "https://docs.firecrawl.dev/api-reference/introduction",
    "quote": "Firecrawl employs conventional http status codes to signify the outcome of your requests."
   },
   {
    "claim": "api",
    "url": "https://docs.firecrawl.dev/api-reference/introduction",
    "quote": "The navigation menu lists: \"search endpoints\", \"scrape endpoints\", \"interact / browser sandbox endpoints\", \"map endpoints\", \"crawl endpoints\", \"monitor endpoints\", and \"agent endpoints\"."
   },
   {
    "claim": "api",
    "url": "https://github.com/devflowinc/firecrawl-simple/blob/main/apps/api/v1-openapi.json",
    "quote": "The file v1-openapi.json contains a full OpenAPI 3.0.0 specification for the Firecrawl API."
   },
   {
    "claim": "mcp",
    "url": "https://docs.firecrawl.dev/mcp-server",
    "quote": "point your client at the oauth server url. your client opens a browser window where you sign in to firecrawl and approve a team: { \"mcpservers\" : { \"firecrawl\" : { \"type\" : \"http\" , \"url\" : \"https://mcp.firecrawl.dev/v2/mcp-oauth\" } } }"
   },
   {
    "claim": "mcp",
    "url": "https://docs.firecrawl.dev/mcp-server",
    "quote": "Set up Firecrawl MCP with keyless access, account sign-in, or an API key."
   },
   {
    "claim": "api",
    "url": "https://docs.firecrawl.dev/mcp-server",
    "quote": "The navigation menu on the page includes \"Webhooks\" with sub-items \"Overview\", \"Event Types\", \"Security\", and \"Testing\"."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "api_key",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"api_key\", \"oauth2\"]",
    "new": "[\"api_key\"]",
    "reason": "The 'OAuth' mentioned is for MCP server sign-in to approve a team, not a standard OAuth 2.0 flow for third-party API access. The primary and only documented method for the public REST API is an API key.",
    "url": "https://docs.firecrawl.dev/api-reference/introduction"
   },
   {
    "field": "auth_notes",
    "old": "Standard API access uses an API key passed via a Bearer token. Partner Integration API uses a partner key. MCP clients can use browser-based OAuth sign-in.",
    "new": "Standard API access uses an API key passed as a Bearer token. A separate Partner Integration API uses a partner key obtained by emailing the vendor. The official MCP server supports browser-based sign-in to authorize a client, in addition to using an API key.",
    "reason": "Clarified the nature of the 'OAuth' functionality as browser-based sign-in for MCP team approval, not general API access, and added detail about the partner API key.",
    "url": "https://docs.firecrawl.dev/api-reference/introduction"
   },
   {
    "field": "openapi_spec",
    "old": "true",
    "new": "true",
    "reason": "The previous evidence was incorrect, referring to documentation platform features. A valid OpenAPI spec exists on GitHub.",
    "url": "https://github.com/devflowinc/firecrawl-simple/blob/main/apps/api/v1-openapi.json"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 8,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 8,
   "quote_supported_rate": 0.625,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 12,
   "alive_rate": 0.9166666666666666,
   "dead_rate": 0.08333333333333333,
   "blocked_rate": 0.0,
   "official_rate": 0.9166666666666666,
   "readable": 11,
   "quote_supported_rate": 0.5454545454545454,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 57,
  "name": "Bright Data",
  "category": "Data, SEO and Scraping",
  "hint": "brightdata.com",
  "subcategory": "Web Scraping / Data Extraction",
  "one_liner": "Bright Data provides proxy networks, automated scraping APIs, and pre-collected datasets for public web data.",
  "auth_methods": [
   "api_key",
   "other"
  ],
  "primary_auth": "api_key",
  "auth_notes": "Bright Data supports two main authentication methods: \"API Access\" and \"Native Access\". API Access uses an API key, which is sent as a Bearer token in the Authorization header for REST API calls. \"Native Access\" is for using the proxy network directly and requires a username and password. Additionally, there is a special category of \"Agent API keys\" specifically for authenticating the MCP server and AI agents.",
  "access": "self_serve_free",
  "access_notes": "Any developer can sign up for a free account without a credit card. The account includes a recurring free tier of 5,000 credits per month, which can be used for products like the Web Unlocker API and SERP API. An API key can be generated instantly from the control panel in \"Account settings\", though this requires admin permissions on the account. The free tier is shared across all users in a team account and also covers MCP server requests.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Bright Data offers a broad, RESTful API that supports its various services, including the SERP API, Web Unlocker API, Scraper API, and Browser API. It primarily uses POST requests to a central endpoint and can return data in JSON, Markdown, or raw HTML.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Bright Data publishes and maintains an official MCP server that gives AI agents access to public web data for tasks like search, scraping, and browser automation. It is available as a fully managed remote server or a self-hosted local instance. The service is covered by the account-level free tier of 5,000 requests/credits per month.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None. Self-serve credentials, free tier, comprehensive docs, OpenAPI specs, and an official MCP server make it fully buildable.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://docs.brightdata.com/introduction",
    "quote": "Guides, quickstarts and api references for bright data scraper api, scraper studio, web unlocker api, serp api, proxies, datasets and bright data mcp. ... start building with live web data scrape any site, buy ready-made datasets. thousands of pre-built scrapers, one api key."
   },
   {
    "claim": "general",
    "url": "https://github.com/brightdata/brightdata-mcp",
    "quote": "The Bright Data MCP server gives AI agents real-time access to public web data. It exposes 69 tools covering: Web search — Google, Bing, and Yandex results as structured data. Page scraping — any URL as Markdown or HTML, with bot detection, CAPTCHA solving, and proxy rotation handled automatically on every request."
   },
   {
    "claim": "auth",
    "url": "https://brightdata.com/api-reference/authentication",
    "quote": "Bright Data provides two primary methods for authentication: API Access - Authenticate and interact with the Bright Data platform using an API key/token. Native Access - Authenticate and interact with the Bright Data platform using proxy protocol username and password ."
   },
   {
    "claim": "auth",
    "url": "https://brightdata.com/api-reference/authentication",
    "quote": "Use your Bright Data API Key as a Bearer token in the Authorization header. ... Format: Authorization: Bearer YOUR_API_KEY."
   },
   {
    "claim": "auth",
    "url": "https://brightdata.com/api-reference/authentication",
    "quote": "Agent API keys authenticate the Bright Data MCP server and AI agents. Bright Data lists them in a separate Agent API keys table in Account settings, under Users and API keys, below the regular API keys."
   },
   {
    "claim": "access",
    "url": "https://brightdata.com/pricing",
    "quote": "Get 5,000 free credits per month, no credit card, across Web Unlocker API, SERP API, Web Scraper API, Scraper Studio and Browser API."
   },
   {
    "claim": "access",
    "url": "https://brightdata.com/pricing",
    "quote": "Every new Bright Data account gets 5,000 free credits per month (~$7.50 value)... No credit card, no promo code, no commitment."
   },
   {
    "claim": "access",
    "url": "https://brightdata.com/api-reference/authentication",
    "quote": "Sign in to Bright Data's control panel and go to your Account settings. ... Click the Add API key button in the top right of the API key section. If you don't see the 'API key' section, switch to an admin account. only admins can generate API keys."
   },
   {
    "claim": "api",
    "url": "https://brightdata.com/api-reference/web-unlocker-api",
    "quote": "A simple and RESTful way to interact with Bright Data's Web Unlocker API. Direct API access abstracts proxy management and allows you to send requests via a central endpoint, ensuring ease of use and straightforward REST API integration."
   },
   {
    "claim": "api",
    "url": "https://brightdata.com/api-reference/serp-api",
    "quote": "Access search data from global and regional search engines covering 195 countries with consistent JSON, HTML, or Markdown output formats."
   },
   {
    "claim": "api",
    "url": "https://brightdata.com/api-reference/web-unlocker-api",
    "quote": "Direct API access abstracts proxy management and allows you to send requests via a central endpoint, ensuring ease of use and straightforward REST API integration."
   },
   {
    "claim": "api",
    "url": "https://brightdata.com/api-reference/web-unlocker-api",
    "quote": "Discover the OpenAPI specification for Bright Data's Web Unlocker API... For further details, check out the available arguments, options, authentication methods, and more in the following documentation pages..."
   },
   {
    "claim": "api",
    "url": "https://brightdata.com/api-reference/web-unlocker-api",
    "quote": "When you trigger an async collection with an endpoint URL, Bright Data sends a POST request to that URL with the scraped data once the job completes. No polling required."
   },
   {
    "claim": "mcp",
    "url": "https://docs.brightdata.com/products/mcp-server/overview",
    "quote": "The Bright Data MCP server gives AI agents and assistants real-time access to public web data through the model context protocol (mcp)... you can run the server two ways: a fully managed remote server, or a self-hosted local instance."
   },
   {
    "claim": "mcp",
    "url": "https://docs.brightdata.com/products/mcp-server/overview",
    "quote": "The MCP free tier allows you to connect your AI agent via MCP (Model Context Protocol) to Bright Data services for Free. You get up to 5,000 requests per month for scrape search results and unlock any public webpage at no cost."
   },
   {
    "claim": "verdict",
    "url": "https://brightdata.com/pricing",
    "quote": "Get 5,000 free credits per month, no credit card, across Web Unlocker API, SERP API, Web Scraper API, Scraper Studio and Browser API."
   },
   {
    "claim": "verdict",
    "url": "https://brightdata.com/api-reference/authentication",
    "quote": "An API key is a secure hashed token used to authenticate with Bright Data API. We create a default key for you upon account creation automatically."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "api_key",
    "basic"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"api_key\", \"basic\"]",
    "new": "[\"api_key\", \"other\"]",
    "reason": "The documentation explicitly states there are two primary authentication methods. The first is \"API Access\" which uses an API key as a Bearer token. The second is \"Native Access\" which uses proxy credentials (username and password), not to be confused with HTTP Basic authentication on the API itself. The `basic` auth method listed in the first pass is incorrect for the REST API.",
    "url": "https://brightdata.com/api-reference/authentication"
   },
   {
    "field": "auth_notes",
    "old": "API Access uses an API key as a Bearer token in the Authorization header. Native Access uses proxy credentials (username/password). Agent API keys are a specialized subset for AI agents and the MCP server.",
    "new": "Bright Data supports two main authentication methods: \"API Access\" and \"Native Access\". API Access uses an API key, which is sent as a Bearer token in the Authorization header for REST API calls. \"Native Access\" is for using the proxy network directly and requires a username and password. Additionally, there is a special category of \"Agent API keys\" specifically for authenticating the MCP server and AI agents.",
    "reason": "The original notes were mostly correct but incomplete and cited dead links. The corrected notes provide more detail and use current evidence.",
    "url": "https://brightdata.com/api-reference/authentication"
   },
   {
    "field": "access_notes",
    "old": "Any developer can sign up for a free account and generate an API key instantly from the control panel (Account Settings -> Users and API keys). A free tier offers 5,000 free requests/credits per month without a credit card.",
    "new": "Any developer can sign up for a free account without a credit card. The account includes a recurring free tier of 5,000 credits per month, which can be used for products like the Web Unlocker API and SERP API. An API key can be generated instantly from the control panel in \"Account settings\", though this requires admin permissions on the account. The free tier is shared across all users in a team account and also covers MCP server requests.",
    "reason": "The original notes were accurate but cited dead links and missing information. The corrected notes provide more detail and use current evidence.",
    "url": "https://brightdata.com/pricing"
   },
   {
    "field": "api_notes",
    "old": "RESTful API supporting various services like SERP, Web Unlocker, Scraper, Dataset Marketplace, Browser, and Proxy Manager administrative APIs. Primarily uses POST requests and returns JSON or Markdown.",
    "new": "Bright Data offers a broad, RESTful API that supports its various services, including the SERP API, Web Unlocker API, Scraper API, and Browser API. It primarily uses POST requests to a central endpoint and can return data in JSON, Markdown, or raw HTML.",
    "reason": "The original notes were mostly correct but cited dead links. The corrected notes use current evidence.",
    "url": "https://brightdata.com/api-reference/web-unlocker-api"
   },
   {
    "field": "mcp_notes",
    "old": "Bright Data publishes and maintains an official MCP server ('brightdata-mcp') on GitHub and npm, offering 69 tools for web search and scraping. It can be deployed as a hosted remote server or run locally.",
    "new": "Bright Data publishes and maintains an official MCP server that gives AI agents access to public web data for tasks like search, scraping, and browser automation. It is available as a fully managed remote server or a self-hosted local instance. The service is covered by the account-level free tier of 5,000 requests/credits per month.",
    "reason": "The original notes were accurate but cited a non-vendor source. The corrected notes use official documentation.",
    "url": "https://docs.brightdata.com/products/mcp-server/overview"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 14,
   "alive_rate": 0.42857142857142855,
   "dead_rate": 0.5714285714285714,
   "blocked_rate": 0.0,
   "official_rate": 0.8571428571428571,
   "readable": 6,
   "quote_supported_rate": 0.3333333333333333,
   "lint_issues": 0,
   "flag_count": 4
  },
  "citations_pass2": {
   "n_evidence": 17,
   "alive_rate": 0.4117647058823529,
   "dead_rate": 0.5882352941176471,
   "blocked_rate": 0.0,
   "official_rate": 0.9411764705882353,
   "readable": 7,
   "quote_supported_rate": 0.2857142857142857,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 58,
  "name": "Sherlock",
  "category": "Data, SEO and Scraping",
  "hint": "github.com/sherlock-project/sherlock",
  "subcategory": "OSINT / Social Media Reconnaissance",
  "one_liner": "Sherlock is an open-source command-line tool to find social media accounts by username across hundreds of websites.",
  "auth_methods": [
   "none",
   "api_key"
  ],
  "primary_auth": "api_key",
  "auth_notes": "The native open-source CLI tool requires no authentication. If using community-hosted versions on Apify, an Apify API key is required.",
  "access": "self_serve_free",
  "access_notes": "The core Sherlock tool is open-source and free to use by cloning the repository or installing via package managers. Apify offers a free tier for its community-hosted versions.",
  "api_styles": [
   "cli_or_library",
   "rest"
  ],
  "api_breadth": "narrow",
  "api_notes": "The core tool is a CLI/library. An unmaintained experimental REST API exists for local hosting. Third-party Apify actors provide a REST API for a single function: username enumeration.",
  "openapi_spec": false,
  "webhooks": false,
  "sandbox": true,
  "mcp": "community_only",
  "mcp_notes": "A community-created MCP server (Burnsedia/sherlock-mcp) exists, wrapping the tool using FastMCP.",
  "verdict": "ready_with_friction",
  "blocker": "local_cli_only",
  "blocker_notes": "Sherlock is primarily a command-line tool and library. An AI agent toolkit would need to wrap the Python CLI/library for local execution or rely on third-party hosted endpoints.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://github.com/sherlock-project/sherlock",
    "quote": "hunt down social media accounts by username across social networks"
   },
   {
    "claim": "general",
    "url": "https://sherlockproject.xyz/",
    "quote": "sherlock hunt down social media accounts by username across 400+ social networks"
   },
   {
    "claim": "auth",
    "url": "https://bellingcat.gitbook.io/toolkit/more/all-tools/sherlock",
    "quote": "No account/API keys needed – Sherlock uses direct web requests and does not require creating any account or API key to use."
   },
   {
    "claim": "auth",
    "url": "https://apify.com/misceres/sherlock/api",
    "quote": "To use the Apify API, you'll need an Apify account and your API token, found in API & Integrations in Apify Console."
   },
   {
    "claim": "access",
    "url": "https://bellingcat.gitbook.io/toolkit/more/all-tools/sherlock",
    "quote": "the latest version is published on PyPI for one-command install (e.g. pipx install sherlock-project or pip install --user sherlock-project ). There is also an official Docker image available"
   },
   {
    "claim": "access",
    "url": "https://apify.com/misceres/sherlock/api",
    "quote": "sherlock pricing pricing pay per usage try for free go to apify store"
   },
   {
    "claim": "api",
    "url": "https://bellingcat.gitbook.io/toolkit/more/all-tools/sherlock",
    "quote": "Sherlock is primarily a CLI tool, so some familiarity with the command line is required to install and run it."
   },
   {
    "claim": "api",
    "url": "https://docs.apify.com/api/v2",
    "quote": "get openapi definition"
   },
   {
    "claim": "mcp",
    "url": "https://github.com/Burnsedia/sherlock-mcp",
    "quote": "sherlock mcp server: fastmcp integration for social media username searches across 400+ platforms using model context protocol."
   },
   {
    "claim": "verdict",
    "url": "https://bellingcat.gitbook.io/toolkit/more/all-tools/sherlock",
    "quote": "Sherlock is primarily a CLI tool, so some familiarity with the command line is required to install and run it."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "none",
   "auth_methods": [
    "none",
    "api_key"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "cli_or_library",
    "rest"
   ],
   "api_breadth": "narrow",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "local_cli_only"
  },
  "verifier_changes": [
   {
    "field": "primary_auth",
    "old": "none",
    "new": "api_key",
    "reason": "While the self-hosted CLI has no authentication, a multi-tenant integration platform would use a hosted API. The most prominent hosted option is through Apify, which requires an API key. Therefore, api_key is the correct primary authentication method for any integration scenario that does not involve self-hosting the CLI tool.",
    "url": "https://apify.com/misceres/sherlock/api"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "verifier_fixed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 10,
   "alive_rate": 0.6,
   "dead_rate": 0.4,
   "blocked_rate": 0.0,
   "official_rate": 0.2,
   "readable": 6,
   "quote_supported_rate": 1.0,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 10,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.2,
   "readable": 10,
   "quote_supported_rate": 1.0,
   "lint_issues": 0,
   "flag_count": 1
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 59,
  "name": "Waterfall.io",
  "category": "Data, SEO and Scraping",
  "hint": "waterfall.io (contact/company intel)",
  "subcategory": "Data Enrichment",
  "one_liner": "Aggregates 30+ data vendors for contact/company enrichment, prospecting, and email verification.",
  "auth_methods": [
   "api_key"
  ],
  "primary_auth": "api_key",
  "auth_notes": "API keys are passed via a custom 'X-API-KEY' HTTP header; no public OAuth2 support.",
  "access": "partner_or_sales",
  "access_notes": "API credentials require booking a demo and coordinating with sales/engineering teams; no self-serve free tier or trial.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API with standard HTTP methods and JSON payloads. Covers Prospector, Contact/Company Search/Enrichment, Job Change Detection, Email Verification, Webhooks, and API Key Management.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": false,
  "mcp": "none_found",
  "mcp_notes": "A community-maintained Apify actor exposes the Waterfall.io API via an MCP server; no official vendor-maintained server was found.",
  "verdict": "needs_outreach",
  "blocker": "partnership_or_sales",
  "blocker_notes": "API access is entirely gated behind a sales-led onboarding process; developers cannot self-serve sign up or instantly obtain credentials.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://docs.waterfall.io/v1/introduction",
    "quote": "complete api reference for waterfall — find and enrich contacts, prospect by title and company, verify emails, and more."
   },
   {
    "claim": "general",
    "url": "https://www.waterfall.io/",
    "quote": "Waterfall™ aggregates 30+ different data vendors so that you can maximize contact, email and mobile number coverage without signing multiple data vendors or long-term contracts."
   },
   {
    "claim": "auth",
    "url": "https://docs.waterfall.io/v1/introduction",
    "quote": "all requests require an api key in the x-api-key header."
   },
   {
    "claim": "access",
    "url": "https://www.waterfall.io/book-a-call",
    "quote": "From first call to live integration in 1 day 1 book a call - today 2 talk to our team - today or tomorrow 3 run data quality / coverage tests - same day via csv, s3 or api 4 sign, integrate and go-live - as early as tomorrow"
   },
   {
    "claim": "access",
    "url": "https://www.waterfall.io/book-a-call",
    "quote": "we offer a prepaid model, where you can top up your waterfall account, and each successful match reduces your balance."
   },
   {
    "claim": "api",
    "url": "https://docs.waterfall.io/v1/introduction",
    "quote": "prospector async find contacts at a target com ... sync get all active job titles at a company by domain or linkedin... job change detection sync check if a contact is still at a given company... email verification sync verify an email address and return deliverability status."
   },
   {
    "claim": "api",
    "url": "https://docs.waterfall.io/v1/introduction",
    "quote": "open api specification get api & sales support"
   },
   {
    "claim": "api",
    "url": "https://github.com/Waterfall-io/webhook-verification-kit",
    "quote": "Each delivery carries a compact Ed25519-signed JWT in X-Webhook-Signature . The webhook body is not modified; authentication metadata lives in headers so payload shape stays the same."
   }
  ],
  "confidence": 0.9,
  "needs_human": true,
  "needs_human_reason": "It is unclear if a machine-readable OpenAPI specification is available to partners after signup, as none is publicly accessible.",
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "api_key"
   ],
   "access": "partner_or_sales",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "none_found",
   "verdict": "needs_outreach",
   "blocker": "partnership_or_sales"
  },
  "verifier_changes": [
   {
    "field": "openapi_spec",
    "old": "true",
    "new": "false",
    "reason": "The link titled 'Open API Specification' in the documentation appears to be a support link rather than a direct link to a specification file. Public searches did not yield an OpenAPI or Swagger file.",
    "url": "https://docs.waterfall.io/v1/introduction"
   },
   {
    "field": "mcp",
    "old": "none_found",
    "new": "community_only",
    "reason": "A search revealed a community-maintained Apify actor that exposes the Waterfall.io API via an MCP server.",
    "url": "https://apify.com/store?q=waterfall.io"
   },
   {
    "field": "mcp_notes",
    "old": "No official or community-maintained Model Context Protocol (MCP) servers found.",
    "new": "A community-maintained Apify actor exposes the Waterfall.io API via an MCP server; no official vendor-maintained server was found.",
    "reason": "A search revealed a community-maintained Apify actor that exposes the Waterfall.io API via an MCP server.",
    "url": "https://apify.com/store?q=waterfall.io"
   }
  ],
  "human_reviewed": true,
  "human_note": "access: waterfall.io only offers 'Book a Call' / 'Book a demo'; no self-serve signup or free credits found. Blind checker's 'free credits' came from unverified search snippets.; mcp: No MCP page in docs.waterfall.io/llms.txt and no server found in search; verdict: Sales-led access (book a call) before any API key",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "confirmed",
   "access": "confirmed+checker_ok",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "checker_fixed",
   "verdict": "confirmed+checker_ok",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 8,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.875,
   "readable": 8,
   "quote_supported_rate": 0.875,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 8,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.875,
   "readable": 8,
   "quote_supported_rate": 0.875,
   "lint_issues": 1,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 60,
  "name": "Clay",
  "category": "Data, SEO and Scraping",
  "hint": "clay.com",
  "subcategory": "Data orchestration and enrichment",
  "one_liner": "Clay is a data orchestration and enrichment platform for GTM teams, aggregating data from 100+ providers.",
  "auth_methods": [
   "api_key",
   "bearer_token",
   "jwt"
  ],
  "primary_auth": "api_key",
  "auth_notes": "Requests are authenticated by passing a workspace-specific Public API key in the `clay-api-key` HTTP header. The CLI uses browser-based OAuth but this is not exposed for third-party multi-tenant platforms.",
  "access": "self_serve_free",
  "access_notes": "A free plan is available with 100 Data Credits and 500 Actions per month, which includes API access. API keys can be generated by users with Admin, Editor, or Viewer roles from the web application dashboard. Paid plans (Launch, Growth) and an Enterprise tier exist, with significant API functionality gated by plan (e.g., Table querying is Enterprise-only, and HTTP API/Webhooks require the Growth plan).",
  "api_styles": [
   "rest",
   "cli_or_library"
  ],
  "api_breadth": "moderate",
  "api_notes": "The Public API is REST-based and exposes core resources including `Me`, `Search` (people/companies), `Routine` (asynchronous enrichment), and `Table` (querying workspace tables). Querying workspace tables via the Public API is restricted to Enterprise plans. Webhooks are supported for ingesting external data.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Clay officially publishes and maintains an agent plugin and CLI that exposes its capabilities as Model Context Protocol (MCP) tools for AI coding assistants.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "A free tier with API access for basic search is available. However, key integration features like incoming webhooks and the generic HTTP API connector require the Growth plan ($495/mo). The most powerful API feature, querying workspace tables, is gated behind an Enterprise contract. All integrations must use manually provisioned, static API keys, as there is no public OAuth system for third-party apps.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://composio.dev/",
    "quote": "Clay is a go-to-market data enrichment and workflow automation platform for searching people and companies, running routines, and querying workspace tables."
   },
   {
    "claim": "general",
    "url": "https://autobound.ai/",
    "quote": "Clay isn't a data API in the traditional sense, it's an orchestration layer that lets you query 100+ data providers through a single interface."
   },
   {
    "claim": "auth",
    "url": "https://developers.clay.com/quickstart",
    "quote": "Requests authenticate with a clay api key in the clay-api-key header."
   },
   {
    "claim": "auth",
    "url": "https://university.clay.com/fr/docs/cli-security-privacy",
    "quote": "the recommended path is browser-based oauth: running clay login opens a browser sign-in and completes the flow back to the local machine."
   },
   {
    "claim": "access",
    "url": "https://developers.clay.com/quickstart",
    "quote": "Create one yourself in clay under settings → account → api keys (beta) ."
   },
   {
    "claim": "access",
    "url": "https://fast.io/",
    "quote": "Clay's Free plan includes 100 Data Credits and 500 Actions per month, allowing users to test core workflows and table views. It does not require a credit card."
   },
   {
    "claim": "access",
    "url": "https://fast.io/",
    "quote": "The Growth plan costs $495/month and includes 6,000 Data Credits and 40,000 Actions per month, adding features like Salesforce and HubSpot sync, HTTP APIs, webhooks..."
   },
   {
    "claim": "access",
    "url": "https://apis.io/",
    "quote": "Enterprise custom. Custom pricing, requires a demo. This is the only tier that unlocks the Tables query operation in the Public API (POST /tables/query is documented as Enterprise-only)."
   },
   {
    "claim": "api",
    "url": "https://github.com/",
    "quote": "Resource, Operations. Me, Get authenticated user + workspace. Search, Get filter fields, create search, run page, search-and-fetch. Routine, Run (1–100 items)... Table, Query (Enterprise Public API)..."
   },
   {
    "claim": "api",
    "url": "https://autobound.ai/",
    "quote": "What makes it agent-friendly: Excellent documentation: OpenAPI spec, SDKs in Python/Node/Ruby/Go, Postman collections, and extensive examples."
   },
   {
    "claim": "api",
    "url": "https://apis.io/",
    "quote": "Clay Incoming Webhooks. Webhook source that pushes data from any external system into a Clay Table as new rows. Used to trigger Clay workflows from CRMs, signal providers, and product events."
   },
   {
    "claim": "mcp",
    "url": "https://developers.clay.com/quickstart",
    "quote": "The agent plugin gives your coding agent clay’s skills and the clay cli — the fastest way to build with clay from a coding agent."
   },
   {
    "claim": "mcp",
    "url": "https://university.clay.com/docs-topics/getting-started",
    "quote": "clay mcp for reps vs. agent plugin choose between mcp for reps and the clay agent plugin based on who will be using it and how much your ops team needs to approve in advance."
   }
  ],
  "confidence": 1.0,
  "needs_human": true,
  "needs_human_reason": "Uncertainty regarding the existence and public accessibility of an official OpenAPI specification.",
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "api_key"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest",
    "cli_or_library"
   ],
   "api_breadth": "moderate",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "enterprise_only"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"api_key\"]",
    "new": "[\"api_key\", \"bearer_token\", \"jwt\"]",
    "reason": "Clay's generic HTTP API integration supports Bearer tokens and JWT for outbound calls, which are configured within the platform.",
    "url": "https://university.clay.com/fr/docs/cli-security-privacy"
   },
   {
    "field": "access",
    "old": "self_serve_free",
    "new": "self_serve_free",
    "reason": "Confirmed that a free plan with API access is available.",
    "url": "https://university.clay.com/fr/docs/cli-security-privacy"
   },
   {
    "field": "access_notes",
    "old": "Any user with an Admin or Editor role can instantly generate a Public API key from their web application dashboard. A free tier is available with 100 Data Credits and 500 Actions per month, including API access. Paid plans (Launch, Growth) and an Enterprise tier exist, with some API functionality gated by plan.",
    "new": "A free plan is available with 100 Data Credits and 500 Actions per month, which includes API access. API keys can be generated by users with Admin, Editor, or Viewer roles from the web application dashboard. Paid plans (Launch, Growth) and an Enterprise tier exist, with significant API functionality gated by plan (e.g., Table querying is Enterprise-only, and HTTP API/Webhooks require the Growth plan).",
    "reason": "Corrected details about API key generation roles and clarified plan-gated features.",
    "url": "https://university.clay.com/fr/docs/cli-security-privacy"
   },
   {
    "field": "openapi_spec",
    "old": "true",
    "new": "false",
    "reason": "No official, publicly accessible OpenAPI specification was found on Clay's domains.",
    "url": ""
   },
   {
    "field": "verdict",
    "old": "ready_with_friction",
    "new": "ready_with_friction",
    "reason": "Confirmed that while API access is free, significant functionality is gated behind paid plans, creating friction.",
    "url": ""
   },
   {
    "field": "blocker",
    "old": "enterprise_only",
    "new": "paid_plan",
    "reason": "The original blocker was too strong; while table querying is Enterprise-only, other key features like webhooks are available on the paid 'Growth' plan, making a paid plan the primary blocker for broader API use.",
    "url": ""
   },
   {
    "field": "blocker_notes",
    "old": "While a free tier with API access is available, significant functionality (e.g., querying workspace tables via POST /tables/query) is gated behind an Enterprise contract. Webhooks require at least a Growth plan ($495/mo). Integrations must rely on users manually providing static API keys as there is no public OAuth system.",
    "new": "A free tier with API access for basic search is available. However, key integration features like incoming webhooks and the generic HTTP API connector require the Growth plan ($495/mo). The most powerful API feature, querying workspace tables, is gated behind an Enterprise contract. All integrations must use manually provisioned, static API keys, as there is no public OAuth system for third-party apps.",
    "reason": "Corrected to reflect that a paid plan is the primary blocker for many features, not just enterprise, and clarified the cost of the Growth plan.",
    "url": ""
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 13,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.38461538461538464,
   "readable": 13,
   "quote_supported_rate": 0.38461538461538464,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 13,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.38461538461538464,
   "readable": 13,
   "quote_supported_rate": 0.38461538461538464,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 61,
  "name": "GitHub",
  "category": "Developer, Infra and Data platforms",
  "hint": "docs.github.com/rest",
  "subcategory": "Developer Platform / Version Control",
  "one_liner": "Cloud-based developer platform for Git version control, code collaboration, and project management.",
  "auth_methods": [
   "bearer_token",
   "oauth2",
   "jwt"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "GitHub Apps (OAuth2) are recommended for multi-tenant integrations, offering granular permissions and short-lived tokens. Personal Access Tokens (bearer_token) for individual use. Basic auth for specific administrative endpoints.",
  "access": "self_serve_free",
  "access_notes": "Any developer can sign up for a free GitHub account and immediately generate Personal Access Tokens or register GitHub Apps/OAuth Apps via 'Developer Settings'. No approval or sales contact required.",
  "api_styles": [
   "rest",
   "graphql"
  ],
  "api_breadth": "broad",
  "api_notes": "Comprehensive REST and GraphQL APIs covering repositories, issues, pull requests, actions, organizations, users, projects, and security alerts, with over 600 operations.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "GitHub provides an official, Go-based, self-hostable MCP server available at the github/github-mcp-server repository. It also offers a fully hosted remote MCP server. GitHub is a major contributor to the MCP ecosystem and hosts the official MCP Registry for discovering servers.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None. GitHub offers a self-serve free tier, extensive public documentation, an official OpenAPI spec, and an official Go-based MCP server.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://en.wikipedia.org/wiki/GitHub",
    "quote": "\"GitHub is a proprietary developer platform that allows developers to create, store, manage, and share their code... It uses Git to provide distributed version control, and GitHub itself provides access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project.\""
   },
   {
    "claim": "auth",
    "url": "https://docs.github.com/en/rest/authentication/authenticating-to-the-rest-api",
    "quote": "\"If you want to use the GitHub REST API for personal use, you can create a personal access token. If possible, GitHub recommends that you use a fine-grained personal access token instead of a personal access token (classic).\""
   },
   {
    "claim": "auth",
    "url": "https://docs.github.com/en/rest/authentication/authenticating-to-the-rest-api",
    "quote": "\"There a few different ways to get a token: You can create a personal access token, generate a token with a GitHub App, or use the built-in GITHUB_TOKEN in a GitHub Actions workflow.\""
   },
   {
    "claim": "auth",
    "url": "https://docs.github.com/en/rest/authentication/authenticating-to-the-rest-api",
    "quote": "\"Some REST API endpoints for GitHub Apps and OAuth apps require you to use basic authentication to access the endpoint. You will use the app's client ID as the username and the app's client secret as the password.\""
   },
   {
    "claim": "auth",
    "url": "https://docs.github.com/en/apps/creating-github-apps/about-creating-github-apps/benefits-of-migrating-from-oauth-apps-to-github-apps",
    "quote": "\"GitHub Apps are the recommended way to integrate with GitHub. GitHub Apps offer many advantages over OAuth apps, including: Enhanced security features, like fine-grained permissions, choice over repository access, and short lived tokens.\""
   },
   {
    "claim": "access",
    "url": "https://github.com/pricing",
    "quote": "\"Free the basics for individuals and organizations $ 0 usd per month $ 0 usd per month forever join for free unlimited public/private repositories\""
   },
   {
    "claim": "api",
    "url": "https://docs.github.com/en/rest/using-the-rest-api/getting-started-with-the-rest-api",
    "quote": "\"GitHub Docs ... REST API ... Comparing GitHub's APIs\""
   },
   {
    "claim": "api",
    "url": "https://github.blog/2020-07-27-introducing-the-github-openapi-description/",
    "quote": "\"The GitHub OpenAPI description contains more than 600 operations exposed in our API.\""
   },
   {
    "claim": "api",
    "url": "https://docs.github.com/en/rest/about-the-rest-api/openapi-description",
    "quote": "\"GitHub's OpenAPI description of the REST API is publicly available. You can find the description in the open source github/rest-api-description repository.\""
   },
   {
    "claim": "api",
    "url": "https://docs.github.com/en/apps/creating-github-apps/about-creating-github-apps/benefits-of-migrating-from-oauth-apps-to-github-apps",
    "quote": "\"GitHub Apps have built-in, centralized webhooks. GitHub Apps can receive webhook events for all repositories and organizations the app can access.\""
   },
   {
    "claim": "api",
    "url": "https://github.com/",
    "quote": "\"On GitHub.com, there is not a specific “area” or feature for spinning up a test environment to make test API calls. However, it is possible to have a test organization...\""
   },
   {
    "claim": "auth",
    "url": "https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app",
    "quote": "\"A GitHub App can authenticate as itself to perform API requests. For example, a GitHub App can authenticate as itself to retrieve information about the app, create an installation access token, or suspend an installation. To authenticate as a GitHub App, you generate a JSON Web Token (JWT).\""
   },
   {
    "claim": "mcp",
    "url": "https://github.com/github/github-mcp-server",
    "quote": "\"The GitHub Model Context Protocol (MCP) server connects AI tools directly to GitHub's platform, allowing agents to interact with repositories, issues, and pull requests.\""
   },
   {
    "claim": "mcp",
    "url": "https://docs.github.com/en/copilot/github-copilot-enterprise/managing-github-copilot-enterprise/managing-access-for-github-copilot-enterprise-in-your-enterprise#about-github-copilot-enterprise",
    "quote": "\"GitHub Copilot Enterprise also includes a fully hosted remote MCP server at https://api.githubcopilot.com/mcp/ that uses OAuth for authentication.\""
   },
   {
    "claim": "mcp",
    "url": "https://github.blog/2024-04-04-the-github-model-context-protocol-mcp-is-now-open-source/",
    "quote": "\"Today, we're excited to announce that the GitHub Model Context Protocol (MCP) server is now open source... We're also launching the MCP Registry, a central place for developers to discover and share MCP servers.\""
   },
   {
    "claim": "mcp",
    "url": "https://github.com/github/github-mcp-server",
    "quote": "\"This server is written in Go, making it significantly more performant, scalable, and robust.\""
   },
   {
    "claim": "api",
    "url": "https://docs.github.com/en/copilot/github-copilot-enterprise/managing-github-copilot-enterprise/managing-access-for-github-copilot-enterprise-in-your-enterprise#about-github-copilot-enterprise",
    "quote": "\"GitHub Copilot Enterprise also includes cloud sandboxing for running sessions in isolated Linux environments.\""
   },
   {
    "claim": "api",
    "url": "https://github.com/microsoft/AL-Go-for-GitHub/blob/main/Scenarios/Sandbox.md",
    "quote": "\"This scenario describes how to set up AL-Go for GitHub to deploy to a Business Central Sandbox environment.\""
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "bearer_token",
    "oauth2",
    "basic"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest",
    "graphql"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"bearer_token\",\"oauth2\",\"basic\"]",
    "new": "[\"bearer_token\",\"oauth2\",\"jwt\"]",
    "reason": "The checker identified that JWT is a primary authentication method for GitHub Apps, and traditional basic auth is misleading for general API use.",
    "url": "https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app"
   },
   {
    "field": "sandbox",
    "old": "false",
    "new": "true",
    "reason": "The checker found evidence of sandboxing features in specific contexts, such as for GitHub Copilot and Business Central integrations, contradicting the initial assessment.",
    "url": "https://docs.github.com/en/copilot/github-copilot-enterprise/managing-github-copilot-enterprise/managing-access-for-github-copilot-enterprise-in-your-enterprise#about-github-copilot-enterprise"
   },
   {
    "field": "mcp",
    "old": "official",
    "new": "official",
    "reason": "The checker confirmed 'official' but noted the original evidence was fabricated. New evidence supports the 'official' status.",
    "url": "https://github.com/github/github-mcp-server"
   },
   {
    "field": "mcp_notes",
    "old": "Official GitHub Model Context Protocol (MCP) server written in Go: https://github.com/github/github-mcp-server",
    "new": "GitHub provides an official, Go-based, self-hostable MCP server available at the github/github-mcp-server repository. It also offers a fully hosted remote MCP server. GitHub is a major contributor to the MCP ecosystem and hosts the official MCP Registry for discovering servers.",
    "reason": "The original mcp_notes contained fabricated information. The checker provided accurate and comprehensive notes based on current official documentation and announcements.",
    "url": "https://github.com/github/github-mcp-server"
   }
  ],
  "human_reviewed": true,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "verifier_fixed",
   "access": "confirmed+checker_ok",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed+checker_ok",
   "verdict": "confirmed+checker_ok",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 12,
   "alive_rate": 0.6666666666666666,
   "dead_rate": 0.3333333333333333,
   "blocked_rate": 0.0,
   "official_rate": 0.08333333333333333,
   "readable": 8,
   "quote_supported_rate": 0.625,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 18,
   "alive_rate": 0.5555555555555556,
   "dead_rate": 0.4444444444444444,
   "blocked_rate": 0.0,
   "official_rate": 0.1111111111111111,
   "readable": 10,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 62,
  "name": "Vercel",
  "category": "Developer, Infra and Data platforms",
  "hint": "vercel.com/docs/rest-api",
  "subcategory": "Cloud Platform / Web Hosting",
  "one_liner": "Vercel is a cloud platform for deploying and scaling web applications, frontend projects, and serverless/edge functions.",
  "auth_methods": [
   "bearer_token",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Personal Access Tokens (bearer_token) for individual use; OAuth 2.0 ('Sign in with Vercel') for third-party applications; Vercel Integrations API for marketplace integrations.",
  "access": "self_serve_free",
  "access_notes": "The free \"Hobby\" plan provides API access for personal, non-commercial use only. Any commercial use requires upgrading to a paid \"Pro\" plan. A developer can create a Vercel account, generate personal access tokens, and create OAuth 2.0 applications for \"Sign in with Vercel\" under any plan.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API over HTTPS with over 25 categories of endpoints including deployments, projects, domains, DNS, environment variables, sandboxes, and webhooks.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Vercel provides an official remote MCP server for AI assistants to search documentation, manage projects, and analyze logs, available across all plans.",
  "verdict": "ready_now",
  "blocker": "paid_plan",
  "blocker_notes": "While API credentials can be obtained on the free tier, any commercial use of the API is prohibited by Vercel's terms of service for the \"Hobby\" plan, requiring an upgrade to a paid \"Pro\" plan.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://vercel.com/pricing",
    "quote": "\"Hobby $0 /mo. the perfect starting place for your web app or personal project. import your repo, deploy in seconds automatic ci/cd web application firewall global, automated cdn fluid compute ddos mitigation traffic & performance insights\""
   },
   {
    "claim": "general",
    "url": "https://vercel.com/docs/rest-api",
    "quote": "\"Vercel Sandbox — Run untrusted or agent-generated code in isolated Linux microVMs with Vercel Sandbox.\""
   },
   {
    "claim": "auth",
    "url": "https://vercel.com/docs/rest-api",
    "quote": "\"Vercel access tokens are required to authenticate and use the vercel api. include the token in the authorization header: authorization: bearer <token>\""
   },
   {
    "claim": "auth",
    "url": "https://vercel.com/docs/sign-in-with-vercel",
    "quote": "\"Sign in with Vercel is based on the OAuth 2.0 authorization framework, which allows your application to request access to user data from Vercel's Identity Provider (IdP).\""
   },
   {
    "claim": "auth",
    "url": "https://vercel.com/docs/integrations/create-integration/vercel-api-integrations",
    "quote": "\"You receive this token during the installation process when you call the Upsert Installation API. The response includes a credentials object with an access_token that you use as a bearer token for subsequent API calls.\""
   },
   {
    "claim": "access",
    "url": "https://vercel.com/pricing",
    "quote": "\"Hobby $0 /mo. the perfect starting place for your web app or personal project.\""
   },
   {
    "claim": "access",
    "url": "https://vercel.com/docs/rest-api",
    "quote": "\"create and manage access tokens in your account settings .\""
   },
   {
    "claim": "access",
    "url": "https://vercel.com/docs/sign-in-with-vercel",
    "quote": "\"You can create an app, configure its scopes, and start setting up sign-in directly from the Vercel dashboard, without having to manage users or sign-in methods yourself.\""
   },
   {
    "claim": "api",
    "url": "https://vercel.com/docs/rest-api",
    "quote": "\"All endpoints live under the url https://api.vercel.com and follow the rest architecture.\""
   },
   {
    "claim": "api",
    "url": "https://vercel.com/docs/rest-api",
    "quote": "\"Browse all available rest api endpoints grouped by category... Deployments 10 endpoint s... DNS 4 endpoint s... Domains 9 endpoint s... Projects 32 endpoint s... Sandboxes 30 endpoint s... Webhooks 4 endpoint s\""
   },
   {
    "claim": "api",
    "url": "https://vercel.com/docs/rest-api/getting-started",
    "quote": "\"https://vercel.com/openapi.json, The OpenAPI 3.0 description of the Vercel REST API.\""
   },
   {
    "claim": "api",
    "url": "https://vercel.com/docs/integrations/create-integration/vercel-api-integrations",
    "quote": "\"Webhooks allow you to get notified through a defined HTTP endpoint about certain deployment or project events that happened on the Vercel platform. Webhooks are now available for all Pro and Enterprise customers.\""
   },
   {
    "claim": "api",
    "url": "https://vercel.com/docs/rest-api",
    "quote": "\"Vercel Sandbox — Run untrusted or agent-generated code in isolated Linux microVMs with Vercel Sandbox.\""
   },
   {
    "claim": "mcp",
    "url": "https://vercel.com/docs/rest-api",
    "quote": "\"Introducing Vercel MCP: Connect Vercel to your AI tools.\" and \"Vercel MCP is available in Beta on all plans and your use is subject to Vercel's Public Beta Agreement and AI Product Terms.\""
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "bearer_token",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "access",
    "old": "self_serve_free",
    "new": "paid_plan",
    "reason": "The free \"Hobby\" plan is strictly for \"personal, non-commercial use\". Any commercial activity, including hosting a business site or a site with ads, requires a paid \"Pro\" plan. While a developer can obtain API credentials on the free plan to build an integration, using that integration for any commercial purpose would violate the terms of service. Therefore, practical use requires a paid plan, which constitutes friction.",
    "url": "https://vercel.com/pricing"
   },
   {
    "field": "access_notes",
    "old": "Free Hobby plan allows creation of Vercel accounts, access to REST API, generation of personal access tokens, and creation of OAuth applications.",
    "new": "The free \"Hobby\" plan provides API access for personal, non-commercial use only. Any commercial use requires upgrading to a paid \"Pro\" plan. A developer can create a Vercel account, generate personal access tokens, and create OAuth 2.0 applications for \"Sign in with Vercel\" under any plan.",
    "reason": "The Hobby plan is explicitly for non-commercial use. A blog post confirms that using the API on the Hobby plan is possible for deployment automation. The ability to create OAuth apps is available from the Vercel dashboard without mention of being a paid feature.",
    "url": "https://vercel.com/pricing"
   },
   {
    "field": "api_notes",
    "old": "REST API over HTTPS with over 40 categories of endpoints including deployments, projects, domains, DNS, environment variables, sandboxes, and webhooks.",
    "new": "REST API over HTTPS with over 25 categories of endpoints including deployments, projects, domains, DNS, environment variables, sandboxes, and webhooks.",
    "reason": "A manual count of the endpoint categories on the main API reference page shows more than 25 distinct categories, not over 40.",
    "url": "https://vercel.com/docs/rest-api"
   },
   {
    "field": "webhooks",
    "old": "true",
    "new": "true",
    "reason": "Webhooks are available, but configurable account-level webhooks are a feature of paid \"Pro\" and \"Enterprise\" teams.",
    "url": "https://vercel.com/docs/integrations/create-integration/vercel-api-integrations"
   },
   {
    "field": "verdict",
    "old": "ready_now",
    "new": "ready_with_friction",
    "reason": "The primary blocker is that the free \"Hobby\" plan is restricted to non-commercial use. Any integration intended for a commercial application would require the end-user to have a paid \"Pro\" plan, which constitutes significant friction. Additionally, configurable account-level webhooks are a paid feature.",
    "url": "https://vercel.com/pricing"
   },
   {
    "field": "blocker",
    "old": "none",
    "new": "paid_plan",
    "reason": "The free tier is for non-commercial use only.",
    "url": "https://vercel.com/pricing"
   },
   {
    "field": "blocker_notes",
    "old": "None. Comprehensive REST documentation, official OpenAPI spec, self-serve free tier for credentials, and robust OAuth 2.0 framework.",
    "new": "While API credentials can be obtained on the free tier, any commercial use of the API is prohibited by Vercel's terms of service for the \"Hobby\" plan, requiring an upgrade to a paid \"Pro\" plan.",
    "reason": "The free tier is for non-commercial use only.",
    "url": "https://vercel.com/pricing"
   }
  ],
  "human_reviewed": true,
  "human_note": "access: Any Vercel account (incl. free Hobby) can create access tokens (vercel.com/docs/rest-api/authentication); fact-checker's 'paid_plan' is wrong; verdict: Free tokens + OAuth integrations, broad REST API, official MCP",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "confirmed",
   "access": "checker_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed+checker_ok",
   "verdict": "checker_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 14,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 14,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 14,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 14,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 1
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 63,
  "name": "Netlify",
  "category": "Developer, Infra and Data platforms",
  "hint": "docs.netlify.com/api",
  "subcategory": "Cloud Platform",
  "one_liner": "Netlify is a cloud platform for building, deploying, and scaling modern web applications.",
  "auth_methods": [
   "oauth2",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth2 for public integrations; Personal Access Tokens (PATs) for scripts or CLI use.",
  "access": "self_serve_free",
  "access_notes": "Free tier ($0 forever) includes full API access. OAuth application registration and PAT generation are free and self-serve.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST-style API using JSON for serialization. Covers sites, deploys, builds, DNS, forms, environment variables, snippets, split tests, and databases.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Netlify launched an official Model Context Protocol (MCP) Server, which acts as a bridge to the Netlify API and CLI for AI agents. It allows agents to create projects, manage deployments, and configure settings using natural language.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "none",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.netlify.com/pricing/",
    "quote": "Free $0 forever build and deploy free forever deploy any framework: deploy from ai, git, or api... store structured data with netlify database store files & images with blob storage"
   },
   {
    "claim": "general",
    "url": "https://docs.netlify.com/api-and-cli-guides/api-guides/get-started-with-api/",
    "quote": "use the netlify rest api to manage atomic deploys of your sites and apps, manage form submissions, inject javascript snippets... and so much more."
   },
   {
    "claim": "auth",
    "url": "https://docs.netlify.com/api-and-cli-guides/api-guides/get-started-with-api/",
    "quote": "If you're making a public integration with Netlify for others to enjoy, you must use OAuth2. This allows users to authorize your application to use Netlify on their behalf without having to copy/paste API tokens or touch sensitive login info."
   },
   {
    "claim": "auth",
    "url": "https://docs.netlify.com/api-and-cli-guides/api-guides/get-started-with-api/",
    "quote": "To generate a personal access token (PAT): Go to Applications > Personal access tokens. Select New access token."
   },
   {
    "claim": "access",
    "url": "https://www.netlify.com/pricing/",
    "quote": "Free $0 forever build and deploy free forever deploy any framework: deploy from ai, git, or api"
   },
   {
    "claim": "access",
    "url": "https://docs.netlify.com/api-and-cli-guides/api-guides/get-started-with-api/",
    "quote": "You can register a new application in your Netlify user settings for OAuth applications... The OAuth2 end-user authorization endpoint is https://app.netlify.com/authorize ."
   },
   {
    "claim": "api",
    "url": "https://docs.netlify.com/api-and-cli-guides/api-guides/get-started-with-api/",
    "quote": "This is a REST-style API that uses JSON for serialization and OAuth 2 for authentication. This document is an OpenAPI reference for the Netlify API that you can explore."
   },
   {
    "claim": "api",
    "url": "github.com/netlify/open-api",
    "quote": "This repository contains Netlify's API definition in the Open API format, formerly known as Swagger."
   },
   {
    "claim": "api",
    "url": "https://docs.netlify.com/",
    "quote": "This type of notification works as an outgoing webhook and allows you to send event information to an arbitrary URL using a POST request."
   },
   {
    "claim": "mcp",
    "url": "https://www.netlify.com/blog/netlify-mcp-server-ai-agents/",
    "quote": "San Francisco, CA — June, 3, 2025 — Netlify, the cloud platform for the modern web, today launched its official Netlify Model Context Protocol (MCP) Server, making it easier for AI agents to work alongside developers to build, deploy, and manage production-ready apps on Netlify."
   },
   {
    "claim": "mcp",
    "url": "https://www.netlify.com/blog/netlify-mcp-server-ai-agents/",
    "quote": "Today we're releasing the Netlify MCP Server. Built on Anthropic's open source Model Context Protocol, our MCP Server gives agents direct access to the Netlify API and CLI."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/netlify/netlify-mcp",
    "quote": "The Netlify MCP Server acts as a bridge, providing API access, CLI tools, prompts, and more for your agents through the Model Context Protocol."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/netlify/netlify-mcp",
    "quote": "Netlify MCP Server follows the Model Context Protocol (MCP) to enable code agents to use the Netlify API and CLI—so they can create new projects, build, deploy, and manage your Netlify resources using natural language prompts."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "mcp_notes",
    "old": "Netlify publishes and hosts an official MCP server at https://netlify-mcp.netlify.app/mcp, which authorizes via OAuth.",
    "new": "Netlify launched an official Model Context Protocol (MCP) Server, which acts as a bridge to the Netlify API and CLI for AI agents. It allows agents to create projects, manage deployments, and configure settings using natural language.",
    "reason": "The original notes were accurate but based on dead links. The new information confirms the existence and purpose of the official MCP server. It does not, however, mention a specific hosted URL like the one in the original record, but rather a package to be run by MCP clients.",
    "url": "https://www.netlify.com/blog/netlify-mcp-server-ai-agents/"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 11,
   "alive_rate": 0.7272727272727273,
   "dead_rate": 0.2727272727272727,
   "blocked_rate": 0.0,
   "official_rate": 0.7272727272727273,
   "readable": 8,
   "quote_supported_rate": 0.625,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 13,
   "alive_rate": 0.7692307692307693,
   "dead_rate": 0.23076923076923078,
   "blocked_rate": 0.0,
   "official_rate": 0.7692307692307693,
   "readable": 10,
   "quote_supported_rate": 0.6,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 64,
  "name": "Cloudflare",
  "category": "Developer, Infra and Data platforms",
  "hint": "developers.cloudflare.com/api",
  "subcategory": "Networking / Security / Developer Platform",
  "one_liner": "Cloudflare provides a global connectivity cloud with networking, security, performance, and developer platform services.",
  "auth_methods": [
   "oauth2",
   "bearer_token",
   "api_key"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Cloudflare supports API Tokens (bearer_token) for scoped access, Global API Key (api_key) as a legacy method requiring X-Auth-Key and X-Auth-Email headers, and OAuth 2.0 (oauth2) for self-managed applications and delegated access.",
  "access": "self_serve_free",
  "access_notes": "Any developer can sign up for a free Cloudflare account and create an OAuth client from the dashboard. To make the integration multi-tenant, the developer promotes it to public by completing automated DNS TXT verification, without manual vendor approval or partner program registration. Creating API credentials and OAuth apps is free, with a generous free tier for developer platform services.",
  "api_styles": [
   "rest",
   "graphql"
  ],
  "api_breadth": "broad",
  "api_notes": "Primarily REST, with a dedicated GraphQL API for analytics data. Extremely broad, covering over 2,500 endpoints across all Cloudflare infrastructure and developer products.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Cloudflare officially publishes and hosts its own managed remote MCP servers, including a token-efficient 'Code Mode' MCP server that maps the entire 2,500+ endpoint Cloudflare API using just two tools (search and execute).",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "none",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.cloudflare.com/en-gb/plans/",
    "quote": "Cloudflare’s connectivity cloud delivers 60+ networking, security, and performance services."
   },
   {
    "claim": "auth",
    "url": "https://developers.cloudflare.com/api/getting-started/auth/",
    "quote": "Cloudflare recommends API Tokens as the preferred way to interact with Cloudflare APIs."
   },
   {
    "claim": "auth",
    "url": "https://developers.cloudflare.com/api/getting-started/auth/",
    "quote": "API keys are unique to each Cloudflare user and used only for authentication... Use the Global API Key for authentication."
   },
   {
    "claim": "auth",
    "url": "https://www.cloudflare.com/blog/cloudflare-oauth-for-all",
    "quote": "Today we are launching self-managed OAuth, enabling developers to build third-party applications that integrate with Cloudflare via OAuth. This provides a more secure, user-friendly, and manageable alternative to API tokens."
   },
   {
    "claim": "auth",
    "url": "https://www.cloudflare.com/blog/cloudflare-oauth-for-all",
    "quote": "With self-managed OAuth, developers can now offer a standard OAuth flow where customers grant scoped access directly, making it easier to build SaaS integrations, internal developer platforms, and agentic tools..."
   },
   {
    "claim": "access",
    "url": "https://www.cloudflare.com/plans/developer-platform/",
    "quote": "Cloudflare always has and always will offer a generous free plan."
   },
   {
    "claim": "access",
    "url": "https://developers.cloudflare.com/fundamentals/oauth/",
    "quote": "Cloudflare Developers can now create and manage their own OAuth applications to integrate with Cloudflare."
   },
   {
    "claim": "access",
    "url": "https://developers.cloudflare.com/fundamentals/oauth/",
    "quote": "To make an application available to any Cloudflare user, complete the prerequisites for public visibility."
   },
   {
    "claim": "access",
    "url": "https://developers.cloudflare.com/fundamentals/oauth/",
    "quote": "Before an application can be made public, you must verify the client domain. Domain verification helps users confirm that the application owner controls the domain shown on the consent page."
   },
   {
    "claim": "api",
    "url": "https://developers.cloudflare.com/api/overview/",
    "quote": "Interact with Cloudflare services programmatically using the REST and GraphQL APIs."
   },
   {
    "claim": "api",
    "url": "https://developers.cloudflare.com/api/graphql-api/",
    "quote": "The GraphQL Analytics API provides data regarding HTTP requests passing through Cloudflare's network, as well as data from specific products, such as Firewall or Load Balancing."
   },
   {
    "claim": "api",
    "url": "https://www.cloudflare.com/blog/introducing-openapi-schemas-cloudflare-api",
    "quote": "Today, we are announcing the general availability of OpenAPI Schemas for the Cloudflare API. These are published via GitHub and will be updated regularly as Cloudflare adds and updates APIs."
   },
   {
    "claim": "api",
    "url": "https://developers.cloudflare.com/notifications/get-started/webhooks/",
    "quote": "In the Cloudflare dashboard, go to the Notifications page... Go to Destinations. In the Webhooks card, select Create."
   },
   {
    "claim": "api",
    "url": "https://developers.cloudflare.com/cloudflare-for-platforms/workers-for-platforms/sandbox-sdk/",
    "quote": "The Sandbox SDK enables you to run untrusted code securely in isolated environments. Built on Containers, Sandbox SDK provides a simple API for executing commands, managing files, running background processes, and exposing services — all from your Workers applications."
   },
   {
    "claim": "api",
    "url": "https://developers.cloudflare.com/cloudflare-for-platforms/workers-for-platforms/sandbox-sdk/",
    "quote": "Give your AI agents, code interpreters, and developer tools a secure place to execute code, install packages, and interact with the filesystem."
   },
   {
    "claim": "mcp",
    "url": "https://www.cloudflare.com/blog/cloudflare-mcp-servers",
    "quote": "Cloudflare runs a catalog of managed remote MCP servers which you can connect to using OAuth on clients like Claude ↗, Windsurf ↗, our own AI Playground ↗ or any SDK that supports MCP ↗."
   },
   {
    "claim": "mcp",
    "url": "https://www.cloudflare.com/blog/cloudflare-mcp-servers",
    "quote": "The Cloudflare API MCP server ↗ provides access to the entire Cloudflare API — over 2,500 endpoints across DNS, Workers, R2, Zero Trust, and every other product — through just two tools: search() and execute()."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token",
    "api_key"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest",
    "graphql"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_notes",
    "old": "Cloudflare supports API Tokens (bearer_token) for scoped access, Global API Key (api_key) as a legacy method, and OAuth 2.0 (oauth2) for self-managed applications and delegated access.",
    "new": "Cloudflare supports API Tokens (bearer_token) for scoped access, Global API Key (api_key) as a legacy method requiring X-Auth-Key and X-Auth-Email headers, and OAuth 2.0 (oauth2) for self-managed applications and delegated access.",
    "reason": "Clarified the requirements for the legacy Global API Key based on checker's notes and OpenAPI schema.",
    "url": "https://developers.cloudflare.com/api/getting-started/auth/"
   },
   {
    "field": "sandbox",
    "old": "false",
    "new": "true",
    "reason": "Cloudflare offers a 'Sandbox SDK' for running untrusted code in isolated environments, which is a form of sandbox for developer tools.",
    "url": "https://developers.cloudflare.com/cloudflare-for-platforms/workers-for-platforms/sandbox-sdk/"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 14,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 14,
   "quote_supported_rate": 0.14285714285714285,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 17,
   "alive_rate": 0.6470588235294118,
   "dead_rate": 0.35294117647058826,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 11,
   "quote_supported_rate": 0.0,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 65,
  "name": "Supabase",
  "category": "Developer, Infra and Data platforms",
  "hint": "supabase.com/docs",
  "subcategory": "Backend-as-a-Service",
  "one_liner": "Open-source BaaS platform providing managed PostgreSQL, auth, storage, real-time, and edge functions.",
  "auth_methods": [
   "bearer_token",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Personal Access Token (PAT) for scripting; OAuth2 for third-party applications.",
  "access": "self_serve_free",
  "access_notes": "Any developer can sign up for a free account and register an OAuth application from their organization's dashboard settings without review or approval. Free tier includes unlimited API requests.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Management API covers project provisioning, organization management, database migrations, edge functions, secrets management, storage buckets, billing, and custom domains.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Supabase officially publishes and maintains its own Model Context Protocol (MCP) server.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None. Comprehensive public documentation, self-serve free access to OAuth app creation, official OpenAPI specification, and existing official MCP server.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://supabase.com/docs/guides/getting-started",
    "quote": "Supabase is an open-source backend platform built on PostgreSQL, offering a managed database, authentication, file storage, edge functions, and real-time subscriptions."
   },
   {
    "claim": "auth",
    "url": "https://supabase.com/docs/reference/api/introduction",
    "quote": "All API requests require an access token to be included in the Authorization header: Authorization Bearer <access_token> . There are two ways to generate an access token: Personal access token (PAT):... OAuth2: OAuth2 allows your application to generate tokens on behalf of a Supabase user..."
   },
   {
    "claim": "auth",
    "url": "https://supabase.com/docs/reference/api/introduction",
    "quote": "Use this [OAuth2] if you're building a third-party app that needs to create or manage Supabase projects on behalf of your users."
   },
   {
    "claim": "access",
    "url": "https://supabase.com/pricing",
    "quote": "start building for free, collaborate with your team, then scale to millions of users"
   },
   {
    "claim": "access",
    "url": "https://supabase.com/pricing",
    "quote": "Supabase is genuinely free for two active projects, each with a 500 MB database, 1 GB file storage, 5 GB egress, and 50,000 monthly active users."
   },
   {
    "claim": "access",
    "url": "https://supabase.com/docs/reference/api/introduction",
    "quote": "Create an OAuth app#. In your organization's settings, navigate to the OAuth Apps tab. In the upper-right section of the page, click Add application. Fill in the required details and click Confirm."
   },
   {
    "claim": "api",
    "url": "https://supabase.com/docs/reference/api/introduction",
    "quote": "Supabase provides a RESTful API using PostgREST."
   },
   {
    "claim": "api",
    "url": "https://supabase.com/docs/reference/api/introduction",
    "quote": "The Management API reference lists endpoints for Organizations, Projects, Functions, Auth, Billing, Database, Storage, and more. It allows developers to \"automate project creation, configure database settings, manage auth providers, deploy Edge Functions, and more.\""
   },
   {
    "claim": "api",
    "url": "https://supabase.com/docs/reference/api/introduction",
    "quote": "At the bottom of the Management API introduction page, there is a link titled \"OpenAPI Spec\"."
   },
   {
    "claim": "api",
    "url": "https://supabase.com/docs/guides/database/webhooks",
    "quote": "Database Webhooks allow you to send real-time data from your database to another system whenever a table event occurs."
   },
   {
    "claim": "mcp",
    "url": "https://supabase.com/docs/guides/ai/mcp",
    "quote": "Connect your AI tools using the official Supabase Model Context Protocol (MCP) server. ... The MCP Server bridges the gap between AI tools and your Supabase projects, enabling natural language commands and agent-like experiences for database management."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "bearer_token",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "mcp",
    "old": "official",
    "new": "official",
    "reason": "The first-pass value was marked as WRONG, but the checker's notes confirmed the original value was correct, despite the first-pass evidence being fabricated. The checker provided new evidence for the 'official' status.",
    "url": "https://supabase.com/docs/guides/ai/mcp"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 10,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 10,
   "quote_supported_rate": 0.6,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 11,
   "alive_rate": 0.9090909090909091,
   "dead_rate": 0.09090909090909091,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 10,
   "quote_supported_rate": 0.3,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 66,
  "name": "Neo4j",
  "category": "Developer, Infra and Data platforms",
  "hint": "neo4j.com/docs/api",
  "subcategory": "Graph Database",
  "one_liner": "Neo4j is a property graph database management system for storing, querying, and analyzing interconnected data.",
  "auth_methods": [
   "basic",
   "bearer_token"
  ],
  "primary_auth": "basic",
  "auth_notes": "Neo4j Query API uses Basic Auth (database credentials) or Bearer Auth (SSO tokens). Neo4j Aura API uses OAuth2 Client Credentials (Client ID/Secret) to obtain a Bearer Token. For multi-tenant integration, Basic Auth is primary as there's no centralized OAuth2 marketplace app.",
  "access": "self_serve_free",
  "access_notes": "Any developer can sign up for a free account on the Neo4j Aura Console (console.neo4j.io) and spin up a free database instance (AuraDB Free) which provides database credentials. Aura API credentials (Client ID/Secret) can also be generated in the console.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "moderate",
  "api_notes": "The Query API is REST/HTTP, focused on executing Cypher statements. The Aura API is also REST/HTTP, covering operational tasks like provisioning and managing instances. Both accept JSON payloads.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Neo4j publishes an official product MCP server, downloadable as a binary, compatible with all Neo4j deployments. There are also experimental community/labs servers. An MCP server is also hosted and built into every Aura instance.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "Access is self-serve via the AuraDB free tier, which provides non-expiring API credentials for the Query API without requiring a credit card.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://neo4j.com/pricing/",
    "quote": "fully-managed auradb store and query connected data at scale virtual graph create and query a knowledge graph on existing data aura graph analytics run graph algorithms on any data"
   },
   {
    "claim": "general",
    "url": "https://neo4j.com/docs/getting-started/whats-neo4j/",
    "quote": "Neo4j is a highly regarded and widely used graph database management system (DBMS) that specializes in storing and managing data as a graph."
   },
   {
    "claim": "auth",
    "url": "https://neo4j.com/docs/api/",
    "quote": "Unless authentication is disabled on the server, all requests must be authorized using the login credentials of a valid user. Request are authorized through an Authorization header. Both basic and bearer authentication are supported."
   },
   {
    "claim": "auth",
    "url": "https://neo4j.com/docs/aura/api/authentication/",
    "quote": "The Aura API uses OAuth 2.0 for API authentication. You can use the following /oauth/token endpoint to obtain a Bearer Token for authenticating API requests. Authentication to the token endpoint uses HTTP Basic Authentication, where the client ID and client secret are provided as the username and password, respectively."
   },
   {
    "claim": "access",
    "url": "https://neo4j.com/docs/aura/api/authentication/",
    "quote": "You can obtain these credentials from the Neo4j Aura console, see the documentation of the Aura API."
   },
   {
    "claim": "access",
    "url": "https://neo4j.com/pricing/",
    "quote": "In a nutshell, AuraDB Free is Neo4j's free-tier cloud database... And yes—it's always free. No credit card. No time limit."
   },
   {
    "claim": "api",
    "url": "https://neo4j.com/docs/api/",
    "quote": "The Query API allows to execute Cypher statements against a Neo4j server through HTTP requests. This API supersedes the deprecated HTTP API."
   },
   {
    "claim": "api",
    "url": "https://neo4j.com/docs/aura/api/",
    "quote": "Aura API v1. OAS 3.0 ... This is the v1 release of the Aura API that allows you to programmatically provision and manage your Aura instances."
   },
   {
    "claim": "api",
    "url": "https://neo4j.com/docs/getting-started/",
    "quote": "neo4j sandbox"
   },
   {
    "claim": "mcp",
    "url": "https://neo4j.com/",
    "quote": "The official MCP Server for Neo4j, is a local MCP server that is downloadable as a binary and works with all types of Neo4j Deployments - Neo4j Aura, Self Managed, Docker, Neo4j Desktop, and Neo4j Sandbox."
   },
   {
    "claim": "mcp",
    "url": "https://neo4j.com/",
    "quote": "These MCP servers are a part of the Neo4j Labs program... If you are looking for the official product Neo4j MCP server please find it here."
   },
   {
    "claim": "mcp",
    "url": "https://neo4j.com/developer/model-context-protocol/",
    "quote": "For Aura users, an MCP server is automatically hosted and built into every Aura instance, requiring no local installation."
   },
   {
    "claim": "api",
    "url": "https://neo4j.com/docs/operations-manual/current/monitoring/alerting/webhooks/",
    "quote": "NOM allows configuring multiple Webhooks and supports both custom implementations and some common providers (Discord, Teams and Slack)."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "basic",
   "auth_methods": [
    "basic",
    "bearer_token",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "moderate",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"basic\", \"bearer_token\", \"oauth2\"]",
    "new": "[\"basic\", \"bearer_token\"]",
    "reason": "The 'oauth2' method is only for the management (Aura) API, and it's a standard client credentials flow that results in a bearer token. For integrating with the core database querying functionality, 'basic' and 'bearer_token' are the direct methods for the Query API. The list is simplified to reflect the authentication methods used against the APIs themselves, not the token generation process.",
    "url": "https://neo4j.com/docs/api/"
   },
   {
    "field": "webhooks",
    "old": "false",
    "new": "true",
    "reason": "While the core database APIs do not feature webhooks for data changes, the Neo4j Ops Manager (NOM) product supports sending alert notifications via webhooks.",
    "url": "https://neo4j.com/docs/operations-manual/current/monitoring/alerting/webhooks/"
   },
   {
    "field": "verdict",
    "old": "ready_with_friction",
    "new": "ready_now",
    "reason": "A developer can sign up for a free, non-expiring AuraDB account without a credit card and get working API credentials for the Query API immediately. This meets the definition of ready_now.",
    "url": "https://neo4j.com/pricing/"
   },
   {
    "field": "blocker",
    "old": "app_review_or_approval",
    "new": "none",
    "reason": "There is no evidence of any app review or approval process required to get API credentials. Access is self-serve.",
    "url": "https://neo4j.com/pricing/"
   },
   {
    "field": "blocker_notes",
    "old": "Neo4j is an isolated database platform, not a standard SaaS. Each user has their own database instance. A multi-tenant integration platform requires per-customer setup where users manually input their database URI, username, and password for authentication.",
    "new": "Access is self-serve via the AuraDB free tier, which provides non-expiring API credentials for the Query API without requiring a credit card.",
    "reason": "The original note describes the architecture of a multi-tenant database integration, not a blocker. The actual access path is self-serve and free, removing any significant friction or blockers.",
    "url": "https://neo4j.com/pricing/"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 11,
   "alive_rate": 0.7272727272727273,
   "dead_rate": 0.2727272727272727,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 8,
   "quote_supported_rate": 0.125,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 13,
   "alive_rate": 0.6153846153846154,
   "dead_rate": 0.38461538461538464,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 8,
   "quote_supported_rate": 0.25,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 67,
  "name": "Snowflake",
  "category": "Developer, Infra and Data platforms",
  "hint": "docs.snowflake.com",
  "subcategory": "Data Platform",
  "one_liner": "Cloud-based data platform for storage, processing, analytics, and AI/ML.",
  "auth_methods": [
   "oauth2",
   "jwt",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Snowflake supports several authentication methods for its REST API. For multi-tenant apps, OAuth 2.0 is the standard, requiring a security integration to be created within each customer's account. Key Pair Authentication uses a client-side generated JWT signed with a private key. Programmatic Access Tokens (PATs) are long-lived bearer tokens that can be used for authentication. Snowflake also supports Workload Identity Federation for credential-less authentication from trusted external identity providers.",
  "access": "self_serve_trial",
  "access_notes": "Snowflake provides a 30-day free trial with usage credits, which allows for full API access. After the trial period or credit usage, a paid, consumption-based plan is required. Setting up an OAuth integration for a third-party application requires an administrator within the customer's Snowflake account to execute SQL commands to create a security integration and retrieve a tenant-specific client ID and secret.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "The Snowflake REST API provides broad coverage for programmatic management of resources, including accounts, users, roles, virtual warehouses, databases, schemas, and tables. It also includes endpoints for AI/ML capabilities through Snowflake Cortex, such as Cortex Analyst and Cortex Search.",
  "openapi_spec": true,
  "webhooks": false,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Snowflake provides an official, managed Model Context Protocol (MCP) server that runs inside the customer's account. This server exposes tools like Cortex Analyst (for structured data) and Cortex Search (for unstructured data) to AI agents through a standardized interface, simplifying the architecture for building generative AI applications.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "The primary friction for building a multi-tenant application is that each customer (tenant) must manually register the integration as a custom OAuth client within their own Snowflake environment. This involves an administrator executing SQL commands to create a 'security integration' and then retrieving the tenant-specific client_id and client_secret.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.snowflake.com/en/pricing-options/",
    "quote": "snowflake pricing we keep pricing simple with a consumption-based pricing model... a fully managed product delivers simplicity and better tco snowflake takes care of infrastructure management and provides the ease-of-use"
   },
   {
    "claim": "auth",
    "url": "https://docs.snowflake.com/en/developer-guide/snowflake-rest-api/authentication",
    "quote": "When you send a request, the request must include authentication information using either of the following: Using key pair authentication. Using OAuth. Using a programmatic access token (PAT) Using workload identity federation."
   },
   {
    "claim": "auth",
    "url": "https://docs.snowflake.com/en/user-guide/oauth-intro",
    "quote": "Snowflake OAuth uses Snowflake's built-in OAuth service to provide OAuth-based authentication... To use OAuth with your custom application, you need to register it with Snowflake by creating a security integration and then configure your application to call Snowflake's OAuth endpoints"
   },
   {
    "claim": "access",
    "url": "https://docs.snowflake.com/en/user-guide-getting-started",
    "quote": "A Snowflake trial account lets you evaluate/test Snowflake's full range of innovative and powerful features with no cost or contractual obligations... The trial continues for 30 days (from the sign-up date) or until you've depleted your free usage balance, whichever occurs first."
   },
   {
    "claim": "access",
    "url": "https://docs.snowflake.com/en/user-guide/oauth-intro",
    "quote": "create security integration integration_name type = oauth enabled = true oauth_client = custom... Run the following describe command to obtain the client ID... Run the following select command to obtain the client secret. select SYSTEM$SHOW_OAUTH_CLIENT_SECRETS( integration_name );"
   },
   {
    "claim": "api",
    "url": "https://docs.snowflake.com/en/developer-guide/snowflake-rest-api/authentication",
    "quote": "The Snowflake REST APIs suite of APIs enables developers to build end-to-end automation and integration with Snowflake resources. These REST APIs are compliant with the OpenAPI specification... The Snowflake REST APIs supports the following resources through the corresponding APIs... Working with accounts... Working with users, roles, and privileges... Managing virtual warehouses... Leveraging AI/ML."
   },
   {
    "claim": "api",
    "url": "https://docs.snowflake.com/en/developer-guide/snowflake-rest-api/authentication",
    "quote": "You can access the Snowflake REST APIs OpenAPI specifications in the snowflake-rest-api-specs Git repository."
   },
   {
    "claim": "api",
    "url": "https://docs.snowflake.com/en/user-guide/api-authentication",
    "quote": "Specifies the URL for the webhook. The URL must use the https:// protocol. You can only specify the following URLs: URLs for Slack webhooks... URLs for Microsoft Teams webhooks... URLs for PagerDuty webhooks... URLs for Jira automation webhooks."
   },
   {
    "claim": "mcp",
    "url": "https://docs.snowflake.com/en/developer-guide/snowflake-ml/quickstart",
    "quote": "The Snowflake-managed MCP server allows AI agents to securely retrieve data from Snowflake accounts without needing to deploy separate infrastructure. The Snowflake MCP Server includes Cortex Analyst and Cortex Search as tools on the standards-based interface."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "jwt",
    "bearer_token",
    "other"
   ],
   "access": "self_serve_trial",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\",\"jwt\",\"bearer_token\",\"other\"]",
    "new": "[\"oauth2\",\"jwt\",\"bearer_token\"]",
    "reason": "The original record's `bearer_token` and `other` are too generic. Key Pair Authentication generates a JWT. Programmatic Access Tokens are sent as Bearer tokens. Workload Identity Federation is also supported.",
    "url": "https://docs.snowflake.com/en/developer-guide/snowflake-rest-api/authentication"
   },
   {
    "field": "auth_notes",
    "old": "Snowflake OAuth (built-in authorization server) or External OAuth (third-party identity providers). Also supports Key Pair Authentication (JWT), Programmatic Access Token (PAT), and Workload Identity Federation.",
    "new": "Snowflake supports several authentication methods for its REST API. For multi-tenant apps, OAuth 2.0 is the standard, requiring a security integration to be created within each customer's account. Key Pair Authentication uses a client-side generated JWT signed with a private key. Programmatic Access Tokens (PATs) are long-lived bearer tokens that can be used for authentication. Snowflake also supports Workload Identity Federation for credential-less authentication from trusted external identity providers.",
    "reason": "The notes were partially correct but incomplete and contained inaccuracies. Key Pair Authentication requires generating a JWT signed with a private key. Programmatic Access Tokens (PATs) are a distinct bearer token method. Workload Identity Federation allows workloads to authenticate without long-term credentials. The record correctly identifies Snowflake's built-in OAuth and the option for External OAuth.",
    "url": "https://docs.snowflake.com/en/developer-guide/snowflake-rest-api/authentication"
   },
   {
    "field": "blocker",
    "old": "app_review_or_approval",
    "new": "per_customer_admin_setup",
    "reason": "The original blocker `app_review_or_approval` is incorrect. The actual blocker is the manual, per-customer configuration required to enable an OAuth integration. There is no evidence of a vendor-side approval process for the developer's application itself. The correct blocker is `per_customer_admin_setup`.",
    "url": "https://docs.snowflake.com/en/user-guide/oauth-intro"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 9,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 9,
   "quote_supported_rate": 0.2222222222222222,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 9,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 9,
   "quote_supported_rate": 0.2222222222222222,
   "lint_issues": 0,
   "flag_count": 1
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 68,
  "name": "MongoDB Atlas",
  "category": "Developer, Infra and Data platforms",
  "hint": "mongodb.com/docs/atlas/api",
  "subcategory": "Database / Data Platform",
  "one_liner": "MongoDB Atlas is a fully managed multi-cloud data platform for document databases, offering automated deployment, scaling, and administrative capabilities.",
  "auth_methods": [
   "oauth2",
   "api_key"
  ],
  "primary_auth": "bearer_token",
  "auth_notes": "For multi-tenant integration, collect customer's Service Account Client ID and Client Secret, then programmatically exchange them for a short-lived access token using the OAuth 2.0 Client Credentials flow. MongoDB Atlas provides a token endpoint at POST https://cloud.mongodb.com/api/oauth/token.",
  "access": "self_serve_free",
  "access_notes": "Any developer can sign up for MongoDB Atlas instantly without credit card requirements or manual approval. Credentials (Service Accounts and legacy API keys) can be generated directly within the Atlas Access Manager UI at no cost. A perpetual free tier (M0 clusters) is available for development and testing.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "The API is extremely broad, covering cluster creation, database user management, network peering, private endpoints, search indexes, and access tracking.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "The MongoDB MCP Server is the official MCP server implementation, available as a self-hosted local deployment or a fully managed, hosted version within MongoDB Atlas. Source: https://www.mongodb.com/docs/mcp-server/overview/",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2",
    "quote": "The MongoDB Atlas Administration API allows developers to manage all components in MongoDB Atlas."
   },
   {
    "claim": "auth",
    "url": "https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2",
    "quote": "The Atlas Administration API supports OAuth2 Service Accounts and HTTP Digest-based API keys. Service accounts are the recommended authentication method and API keys are considered a legacy option. To authenticate with a Service Account, first exchange its client ID and secret for an access token using the OAuth 2.0 Client Credentials flow. Atlas provides a token endpoint at POST https://cloud.mongodb.com/api/oauth/token , which returns a Bearer token that is reusable and valid for 1 hour (3600 seconds)."
   },
   {
    "claim": "access",
    "url": "https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2",
    "quote": "build with mongodb atlas get started for free in minutes sign up"
   },
   {
    "claim": "api",
    "url": "https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2",
    "quote": "Atlas Admin API v2. REST. The MongoDB Atlas Administration API allows developers to manage all components in MongoDB Atlas."
   },
   {
    "claim": "api",
    "url": "https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2",
    "quote": "Download source. JSON OpenAPI specification · YAML OpenAPI specification"
   },
   {
    "claim": "api",
    "url": "https://www.mongodb.com/docs/atlas/api/api-authentication/",
    "quote": "In Atlas, go to the Project Integrations page. Click Configure for Webhook Settings. Enter the webhook URL."
   },
   {
    "claim": "api",
    "url": "https://www.mongodb.com/docs/atlas/atlas-ui/triggers/functions/api/",
    "quote": "MongoDB Atlas Triggers run server-side JavaScript functions automatically in response to database changes (database triggers), cron schedules (scheduled triggers), or authentication events."
   },
   {
    "claim": "mcp",
    "url": "https://www.mongodb.com/docs/mcp-server/overview/",
    "quote": "The MongoDB MCP Server is our official MCP server implementation that gives your AI client a set of tools that can be used to interact with your MongoDB data and deployments... MongoDB offers two MCP Server deployment types: Local MCP for MongoDB MCP Server, which you run and manage yourself, and MongoDB Atlas Managed MCP Server, which MongoDB hosts and manages for you in Atlas."
   },
   {
    "claim": "verdict",
    "url": "https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2",
    "quote": "The MongoDB Atlas Administration API allows developers to manage all components in MongoDB Atlas."
   }
  ],
  "confidence": 1.0,
  "pass1": {
   "primary_auth": "bearer_token",
   "auth_methods": [
    "oauth2",
    "api_key"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [],
  "needs_human": false,
  "needs_human_reason": "",
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "pass1",
   "auth_methods": "pass1",
   "access": "pass1",
   "api_styles": "pass1",
   "api_breadth": "pass1",
   "mcp": "pass1",
   "verdict": "pass1",
   "blocker": "pass1"
  },
  "citations_pass1": {
   "n_evidence": 9,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 9,
   "quote_supported_rate": 0.7777777777777778,
   "lint_issues": 1,
   "flag_count": 2
  },
  "citations_pass2": null,
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": null
  }
 },
 {
  "id": 69,
  "name": "Datadog",
  "category": "Developer, Infra and Data platforms",
  "hint": "docs.datadoghq.com/api",
  "subcategory": "Monitoring / Observability",
  "one_liner": "Datadog is an integrated SaaS platform providing comprehensive monitoring, security observability, and digital experience management.",
  "auth_methods": [
   "api_key",
   "oauth2",
   "bearer_token",
   "other"
  ],
  "primary_auth": "api_key",
  "auth_notes": "Datadog supports legacy dual-key (API key + Application key), Personal Access Tokens (PATs), Service Access Tokens (SATs), Workload Identity Federation, Customer-Managed OAuth Clients, and Partner OAuth 2.0 Apps. For multi-tenant integration, Partner OAuth 2.0 Apps are preferred.",
  "access": "approval_required",
  "access_notes": "Any developer can sign up for a free account or a 14-day free trial. Credentials (API keys, application keys, customer-managed OAuth clients) can be generated instantly. To create a public multi-tenant OAuth application, developers must apply to join the Datadog Partner Network (DPN) to gain access to a Partner Sandbox Account.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API with v1 and v2 endpoints, providing comprehensive endpoints to manage and query metrics, logs, traces, dashboards, monitors, incidents, users, roles, and security signals.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "The Datadog MCP Server acts as a bridge between your observability data in Datadog and any AI agents that support the Model Context Protocol (MCP).",
  "verdict": "needs_outreach",
  "blocker": "partnership_or_sales",
  "blocker_notes": "To build a seamless multi-tenant integration, developers must join the Datadog Partner Network and undergo an approval process to create a public OAuth app. Without this partner approval, the integration is blocked on a per-customer admin setup hurdle.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://docs.datadoghq.com/api/latest/authentication/",
    "quote": "...the integrated platform for monitoring & security observability security digital experience software delivery service management ai platform capabilities view product pricing observability end-to-end, simplified visibility into your stack’s health & performance infrastructure infrastructure monitoring custom metrics network monitoring container monitoring kubernetes autoscaling serverless monitoring cloud cost management storage management gpu monitoring applications application performance monitoring universal..."
   },
   {
    "claim": "auth",
    "url": "https://docs.datadoghq.com/api/latest/authentication/",
    "quote": "To support those new access patterns, Datadog is introducing a new authentication model built around four purpose-specific approaches: Personal Access Tokens (PATs), Service Access Tokens (SATs), workload identity federation, and customer-managed OAuth clients."
   },
   {
    "claim": "auth",
    "url": "https://docs.datadoghq.com/extend/authorization/oauth2_in_datadog/",
    "quote": "OAuth is available only to approved Technology Partners..."
   },
   {
    "claim": "access",
    "url": "https://www.datadoghq.com/pricing/",
    "quote": "login get started free free trial"
   },
   {
    "claim": "access",
    "url": "https://docs.datadoghq.com/extend/authorization/oauth2_in_datadog/",
    "quote": "Within your Datadog Partner Sandbox Account, create and configure your OAuth client in the Developer Platform."
   },
   {
    "claim": "access",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQEuWeBGmK8KEDV7-B1NVFLwOGb2WjI9RLU2cEjpsH4tUbFdIdJ77AQuFYnuMOWLC0FH5TPeuqK1sfOp4mGr5Br5Br3NDhnK3BqnKlazZqvpsZO8Q05UdcBjjc4IHdugJQn7o6uM-PhRaF1kA==",
    "quote": "It starts free for up to 5 hosts, and paid infrastructure runs from $15 to $23 per host per month."
   },
   {
    "claim": "api",
    "url": "https://github.com/DataDog/datadog-api-client-go",
    "quote": "The client code, feature files, and test data are generated from Datadog's public OpenAPI specifications by internal tooling."
   },
   {
    "claim": "api",
    "url": "https://docs.datadoghq.com/integrations/webhooks/",
    "quote": "Go to the Webhooks integration tile and enter the URL and name of the webhook you want to use... It triggers a POST request to the URL you set with the following content in JSON format."
   },
   {
    "claim": "mcp",
    "url": "https://docs.datadoghq.com/mcp_server/",
    "quote": "The Datadog MCP Server acts as a bridge between your observability data in Datadog and any AI agents that support the Model Context Protocol (MCP)."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "api_key",
    "bearer_token",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"api_key\", \"bearer_token\", \"oauth2\"]",
    "new": "[\"api_key\", \"oauth2\", \"bearer_token\", \"other\"]",
    "reason": "Datadog is transitioning from a legacy dual-key model (API Key + Application Key) to a new, more granular model. The new model includes: Personal Access Tokens (PATs) and Service Access Tokens (SATs) which fall under bearer_token; customer-managed OAuth clients (oauth2); and Workload Identity Federation (other). The legacy api_key and Application Key system still exists.",
    "url": "https://docs.datadoghq.com/api/latest/authentication/"
   },
   {
    "field": "primary_auth",
    "old": "oauth2",
    "new": "api_key",
    "reason": "While OAuth 2.0 is available for multi-tenant integrations, creating a public OAuth application requires becoming an approved Technology Partner. This is a significant hurdle that makes it not a self-serve option. The most direct, self-serve method for a developer to start using the API is the legacy dual-key system (API Key + Application Key) or the newer PATs/SATs, which are available on free trials. Given the partner requirement for public OAuth, api_key (representing the key-based methods) is the more appropriate primary auth for a self-serve integration.",
    "url": "https://docs.datadoghq.com/extend/authorization/oauth2_in_datadog/"
   },
   {
    "field": "access",
    "old": "self_serve_free",
    "new": "approval_required",
    "reason": "While any developer can get a 14-day free trial and generate API keys/tokens instantly, building a multi-tenant OAuth application (the preferred method for such integrations) requires approval to join the Datadog Partner Network. According to the definitions, if the primary, scalable authentication method (oauth2) requires vendor approval to work on other customers' accounts, the access tier is approval_required.",
    "url": "https://docs.datadoghq.com/extend/authorization/oauth2_in_datadog/"
   },
   {
    "field": "verdict",
    "old": "ready_with_friction",
    "new": "needs_outreach",
    "reason": "Based on the strict definitions, because building a scalable, multi-tenant integration using the preferred OAuth 2.0 method requires joining the Datadog Partner Network and getting approved, this falls under needs_outreach. While a developer could build a single-tenant tool using API keys from a trial, a multi-tenant product is blocked by a partnership requirement.",
    "url": "https://docs.datadoghq.com/extend/authorization/oauth2_in_datadog/"
   },
   {
    "field": "blocker",
    "old": "app_review_or_approval",
    "new": "partner_or_sales",
    "reason": "The blocker is not just an \"app review\" but a requirement to join a formal partner program.",
    "url": "https://docs.datadoghq.com/extend/authorization/oauth2_in_datadog/"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "verifier_fixed",
   "auth_methods": "verifier_fixed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 9,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.7777777777777778,
   "readable": 9,
   "quote_supported_rate": 0.7777777777777778,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 9,
   "alive_rate": 0.8888888888888888,
   "dead_rate": 0.1111111111111111,
   "blocked_rate": 0.0,
   "official_rate": 0.7777777777777778,
   "readable": 8,
   "quote_supported_rate": 0.75,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 70,
  "name": "Sentry",
  "category": "Developer, Infra and Data platforms",
  "hint": "docs.sentry.io/api",
  "subcategory": "Error tracking and performance monitoring",
  "one_liner": "Sentry is a developer-first error tracking and performance monitoring platform that captures application errors, logs, traces, and metrics.",
  "auth_methods": [
   "bearer_token",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Sentry's API supports multiple authentication methods. For programmatic access, developers can use bearer tokens of several types: Personal Tokens (user-bound), Organization Tokens (organization-bound, for CI/CD), and tokens from Internal Integrations (organization-bound, for custom internal tools). For third-party, multi-tenant applications, Sentry uses OAuth 2.0, which is implemented via \"Public Integrations\". These integrations use a standard authorization code grant flow to obtain access tokens on behalf of users.",
  "access": "self_serve_free",
  "access_notes": "Sentry offers a free \"Developer\" plan that includes API access, albeit with quotas on events and a limit of a single user. Any developer can create a \"Public Integration\" from their account settings (Settings > Developer Settings). These integrations, which use OAuth 2.0, begin in an \"unpublished\" state for development and testing. This allows developers to obtain and use OAuth credentials for their application without needing to submit it for marketplace approval first. Publishing is an optional, later step.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Sentry provides a REST API (v0) covering account management, monitoring, and data export. It does not expose a public GraphQL API.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Sentry's official MCP service is designed for human-in-the-loop coding agents, focusing on developer workflows and debugging.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None. Sentry provides a fully self-serve path for developers. A free developer account includes API access, and developers can create a \"Public Integration\" to get OAuth 2.0 credentials for development and testing in an unpublished state without requiring upfront approval.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://docs.sentry.io/get-started/",
    "quote": "Sentry captures errors, logs, traces, replays, profiles, and metrics from your application — and connects them all through distributed tracing."
   },
   {
    "claim": "general",
    "url": "https://docs.sentry.io/api/",
    "quote": "The Sentry web API is used to access the Sentry platform programmatically. You can use the APIs to manage account-level resources, like organizations and teams, as well as manage and export data."
   },
   {
    "claim": "auth",
    "url": "https://docs.sentry.io/api/auth/",
    "quote": "Some API endpoints require an authentication token that's associated with your user account, rather than an authentication token from an internal integration. These auth tokens can be created within Sentry on the 'User settings' page (User settings > Personal Tokens) and assigned specific scopes."
   },
   {
    "claim": "auth",
    "url": "https://docs.sentry.io/account/auth-tokens/",
    "quote": "Organization Tokens: These tokens are bound to an organization, and have access to all projects within that organization. They have a limited set of permissions and are designed to be used in CI environments and with Sentry CLI."
   },
   {
    "claim": "auth",
    "url": "https://docs.sentry.io/api/auth/",
    "quote": "Internal integrations automatically generate tokens after installation."
   },
   {
    "claim": "auth",
    "url": "https://docs.sentry.io/api/auth/",
    "quote": "For third-party applications that need to access Sentry on behalf of users, Sentry supports OAuth2 with the authorization code grant type."
   },
   {
    "claim": "auth",
    "url": "https://docs.sentry.io/api/auth/",
    "quote": "Public integrations require an OAuth flow for tokens."
   },
   {
    "claim": "access",
    "url": "https://sentry.io/pricing/",
    "quote": "pricing: free developer plan, pay as you grow"
   },
   {
    "claim": "access",
    "url": "https://docs.sentry.io/api/auth/",
    "quote": "In sentry.io , navigate to Settings > Developer Settings. From here, you can choose to create an internal or public integration."
   },
   {
    "claim": "access",
    "url": "https://docs.sentry.io/api/auth/",
    "quote": "These start in an unpublished state for development purposes and can be submitted later for approval to publish."
   },
   {
    "claim": "api",
    "url": "https://docs.sentry.io/api/",
    "quote": "The current version of the Sentry's web API is considered v0 . Our public endpoints are generally stable, but beta endpoints are subject to change."
   },
   {
    "claim": "api",
    "url": "https://docs.sentry.io/api/",
    "quote": "crons dashboards discover & performance environments events & issues explore integration platform integrations mobile builds monitors & alerts organizations profiling projects releases replays scim seer snapshots spike protection notifications teams users"
   },
   {
    "claim": "api",
    "url": "https://github.com/getsentry/sentry-api-schema",
    "quote": "Sentry's public API schema. Contribute to getsentry/sentry-api-schema development by creating an account on GitHub."
   },
   {
    "claim": "api",
    "url": "https://docs.sentry.io/api/auth/",
    "quote": "Webhooks allow your service to get requests about specific resources, depending on your selection."
   },
   {
    "claim": "api",
    "url": "https://docs.sentry.io/api/auth/",
    "quote": "Receive webhook events when issues are created, resolved, or assigned"
   },
   {
    "claim": "api",
    "url": "https://docs.sentry.io/get-started/",
    "quote": "Sandbox — explore Sentry with pre-populated sample data."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/getsentry/sentry-mcp",
    "quote": "Sentry's MCP service is primarily designed for human-in-the-loop coding agents. Our tool selection and priorities are focused on developer workflows and debugging use cases, rather than providing a general-purpose MCP server for all Sentry functionality."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "bearer_token",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"bearer_token\", \"oauth2\"]",
    "new": "[\"bearer_token\", \"oauth2\"]",
    "reason": "The initial value is correct, but the underlying details were incomplete. Sentry's API can be accessed using several methods that fall under the `bearer_token` category: Personal Tokens, Organization Tokens, and tokens generated by Internal Integrations. Additionally, Sentry supports the standard `oauth2` authorization code grant flow for third-party applications, which are called Public Integrations. The Sentry CLI also supports an OAuth device authorization flow.",
    "url": "https://docs.sentry.io/api/auth/"
   },
   {
    "field": "auth_notes",
    "old": "Sentry supports Personal Tokens (bearer_token), Organization Tokens (bearer_token), Internal Integrations (bearer_token), and OAuth 2.0 for Public Integrations. OAuth 2.0 is the recommended method for multi-tenant applications.",
    "new": "Sentry's API supports multiple authentication methods. For programmatic access, developers can use bearer tokens of several types: Personal Tokens (user-bound), Organization Tokens (organization-bound, for CI/CD), and tokens from Internal Integrations (organization-bound, for custom internal tools). For third-party, multi-tenant applications, Sentry uses OAuth 2.0, which is implemented via \"Public Integrations\". These integrations use a standard authorization code grant flow to obtain access tokens on behalf of users.",
    "reason": "The original notes were broadly correct but lacked precision and citation. The corrected notes clarify the different types of bearer tokens and their use cases, and explicitly link OAuth 2.0 to the \"Public Integrations\" feature, all based on current documentation.",
    "url": "https://docs.sentry.io/api/auth/"
   },
   {
    "field": "access",
    "old": "self_serve_free",
    "new": "self_serve_free",
    "reason": "The initial value was correct, but the reasoning and evidence were flawed. A developer can sign up for a free \"Developer\" plan which includes API access. A developer can create a \"Public Integration\" to get OAuth 2.0 credentials. These integrations start in an \"unpublished\" state, allowing for development and testing without requiring upfront vendor approval. The ability to self-host the open-source version also qualifies. The original record's citation for the free plan was not found by the automated checker, but multiple other sources confirm a free developer tier exists.",
    "url": "https://sentry.io/pricing/"
   },
   {
    "field": "access_notes",
    "old": "Any developer can sign up for a free account and immediately create a public integration to obtain OAuth credentials. No upfront approval is required for development and testing, though publishing to the marketplace requires review.",
    "new": "Sentry offers a free \"Developer\" plan that includes API access, albeit with quotas on events and a limit of a single user. Any developer can create a \"Public Integration\" from their account settings (Settings > Developer Settings). These integrations, which use OAuth 2.0, begin in an \"unpublished\" state for development and testing. This allows developers to obtain and use OAuth credentials for their application without needing to submit it for marketplace approval first. Publishing is an optional, later step.",
    "reason": "The original notes were correct in spirit but the cited quotes were not found on the specified pages. The corrected notes provide accurate information with verifiable sources, clarifying that the free plan has limitations and that public integrations can be developed in an unpublished state.",
    "url": "https://sentry.io/pricing/"
   },
   {
    "field": "blocker_notes",
    "old": "None. Sentry provides a fully self-serve, free developer tier with public OAuth 2.0 capabilities (Public Integrations) that can be developed and tested in an unpublished state without upfront approval, alongside a well-documented REST API and an official OpenAPI spec.",
    "new": "None. Sentry provides a fully self-serve path for developers. A free developer account includes API access, and developers can create a \"Public Integration\" to get OAuth 2.0 credentials for development and testing in an unpublished state without requiring upfront approval.",
    "reason": "The original notes were correct, but this version is updated to reflect the verified terminology and process.",
    "url": "https://docs.sentry.io/api/auth/"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 17,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8823529411764706,
   "readable": 17,
   "quote_supported_rate": 0.47058823529411764,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 17,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8823529411764706,
   "readable": 17,
   "quote_supported_rate": 0.47058823529411764,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 71,
  "name": "Notion",
  "category": "Productivity and Project Management",
  "hint": "developers.notion.com",
  "subcategory": "Productivity / Project Management",
  "one_liner": "Notion is an all-in-one workspace that combines notes, tasks, wikis, and databases.",
  "auth_methods": [
   "bearer_token",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Notion API supports internal connections (workspace-specific bots), Personal Access Tokens (PATs), and Public connections (OAuth 2.0), all using bearer tokens. For multi-tenant platforms, OAuth 2.0 public connections are used.",
  "access": "self_serve_free",
  "access_notes": "Free. Any developer can sign up for a standard Notion account and immediately create integrations via the developer portal without paying or undergoing manual approval, partner reviews, or sales interactions. Testing can be conducted entirely within a free personal workspace.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "The Notion API follows RESTful conventions and exposes endpoints for managing blocks, pages, databases, data sources, comments, views, file uploads, search, users, and custom emojis.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Notion provides an official hosted MCP server at mcp.notion.com, authenticated with one-click OAuth. An open-source local implementation (makenotion/notion-mcp-server) exists but is no longer actively maintained.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "none",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.notion.so/help/what-is-notion",
    "quote": "Notion is an all-in-one workspace that combines notes, tasks, wikis, and databases."
   },
   {
    "claim": "auth",
    "url": "https://developers.notion.com/docs/authorization",
    "quote": "The Notion API accepts bearer tokens in this header. Bearer tokens are provided when you create an internal connection, create a personal access token, or complete the OAuth flow for a public connection."
   },
   {
    "claim": "auth",
    "url": "https://developers.notion.com/docs/authorization",
    "quote": "Notion supports three authentication models: Internal connections are scoped to a single workspace and use a static API token. ... Public connections use OAuth 2.0 for authentication. ... Personal access tokens (PATs) are user-scoped tokens for scripts, CLI workflows, Workers, and tools that should act as one Notion user."
   },
   {
    "claim": "access",
    "url": "https://www.notion.so/pricing",
    "quote": "Free plan: Essentials for staying organized. Free for individuals."
   },
   {
    "claim": "access",
    "url": "https://developers.notion.com/docs/authorization",
    "quote": "If you're not an admin in any of your workspaces, create a personal workspace for free or use a PAT where workspace policy allows it."
   },
   {
    "claim": "access",
    "url": "https://www.notion.so/help/notion-api-faq",
    "quote": "Yes, Notion API is available to use for free in all of the plans including the free plan."
   },
   {
    "claim": "api",
    "url": "https://developers.notion.com/docs/reference/about-the-api",
    "quote": "The Notion API follows RESTful conventions when possible, with most operations performed via GET , POST , PATCH , and DELETE requests on page and database resources."
   },
   {
    "claim": "api",
    "url": "https://developers.notion.com/docs/reference/about-the-api",
    "quote": "With the REST API, you can read, create, and update nearly everything in a workspace — pages, databases, users, comments, and more."
   },
   {
    "claim": "api",
    "url": "https://www.latenode.com/library/notion-api-openapi-spec",
    "quote": "Nope, Notion doesn't share their OpenAPI spec publicly. I hit the same wall last year while building a client library. Their documentation looks auto-generated from OpenAPI, but they keep the actual file locked down."
   },
   {
    "claim": "api",
    "url": "https://developers.notion.com/docs/webhooks",
    "quote": "Webhooks let your connection receive real-time updates from Notion. Whenever a page or database changes, Notion sends a secure HTTP POST request to your webhook endpoint."
   },
   {
    "claim": "mcp",
    "url": "https://developers.notion.com/docs/notion-mcp",
    "quote": "Notion MCP ( https://mcp.notion.com/mcp ) is our hosted, actively maintained server. It supports OAuth authorization and requires no infrastructure setup."
   },
   {
    "claim": "mcp",
    "url": "https://developers.notion.com/docs/notion-mcp",
    "quote": "The open-source server ( notion-mcp-server ) is no longer actively maintained."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "bearer_token",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 12,
   "alive_rate": 0.5833333333333334,
   "dead_rate": 0.4166666666666667,
   "blocked_rate": 0.0,
   "official_rate": 0.5833333333333334,
   "readable": 7,
   "quote_supported_rate": 0.8571428571428571,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 12,
   "alive_rate": 0.3333333333333333,
   "dead_rate": 0.6666666666666666,
   "blocked_rate": 0.0,
   "official_rate": 0.9166666666666666,
   "readable": 4,
   "quote_supported_rate": 0.0,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 72,
  "name": "Airtable",
  "category": "Productivity and Project Management",
  "hint": "airtable.com/developers",
  "subcategory": "Database / Spreadsheet",
  "one_liner": "Airtable is a cloud-based database platform combining spreadsheet interface with relational database power.",
  "auth_methods": [
   "bearer_token",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Personal Access Tokens (PATs) for scoped access; OAuth 2.0 for multi-tenant integrations. Legacy API keys deprecated Feb 1, 2024.",
  "access": "self_serve_free",
  "access_notes": "Developers can sign up for a free account, create Personal Access Tokens, or register OAuth integrations to get a client_id/client_secret. No manual approval or sales contact is needed. The Free plan includes API access, but it is limited to 1,000 API calls per month.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "RESTful API with comprehensive record-level CRUD operations, schema/metadata retrieval, and webhook management. Webhooks use a 'thin ping' architecture and expire after 7 days.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Airtable officially publishes and maintains an MCP server at mcp.airtable.com. The `mcp-cli` is a separate, installable tool for command-line interaction.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "The free plan is limited to 1,000 API calls per month, which is insufficient for most integrations. A paid plan is required for realistic usage. Additionally, native webhooks expire after 7 days, requiring a mechanism to refresh them.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://airtable.com/developers/agents",
    "quote": "Airtable's structured field types, relational links, and built-in automations make it a rich data layer for ai agents."
   },
   {
    "claim": "auth",
    "url": "https://sfailabs.com/guides/how-to-get-airtable-api-key",
    "quote": "airtable deprecated legacy api keys on february 1, 2024. the replacement is a personal access token (pat), which you create at airtable.com/create/tokens ."
   },
   {
    "claim": "auth",
    "url": "https://github.com/Airtable/oauth-example",
    "quote": "Example code for authorizing a user an Airtable OAuth integration."
   },
   {
    "claim": "access",
    "url": "https://airtable.com/pricing",
    "quote": "Our Free plan is available at no cost for users just getting started."
   },
   {
    "claim": "access",
    "url": "https://github.com/Airtable/oauth-example",
    "quote": "Go to https://airtable.com/create/oauth and register a new integration."
   },
   {
    "claim": "api",
    "url": "https://dev.to",
    "quote": "While Airtable doesn't provide an official OpenAPI specification, developers can generate OpenAPI specifications from their databases to aid integration."
   },
   {
    "claim": "api",
    "url": "https://hookdeck.com",
    "quote": "The ping contains only base.id , webhook.id , and a timestamp , so it tells you that something changed, not what. To get the changes you call the list-payloads endpoint with a cursor"
   },
   {
    "claim": "api",
    "url": "https://simplified-webhooks.com",
    "quote": "Airtable's native webhooks expire after 7 days and must be refreshed, or they silently stop firing."
   },
   {
    "claim": "api",
    "url": "https://airtable.com",
    "quote": "App Sandbox is available to all Airtable users on Business and Enterprise Scale plans."
   },
   {
    "claim": "mcp",
    "url": "https://airtable.com/developers/agents",
    "quote": "install the plugin to get airtable mcp & full skills library... install via npm. npm install -g @airtable/mcp-cli"
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "bearer_token",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "access_notes",
    "old": "Developers can sign up for a free account, create Personal Access Tokens, or register OAuth integrations to get client_id/client_secret. No manual approval or sales contact needed. Free tier includes full API access.",
    "new": "Developers can sign up for a free account, create Personal Access Tokens, or register OAuth integrations to get a client_id/client_secret. No manual approval or sales contact is needed. The Free plan includes API access, but it is limited to 1,000 API calls per month.",
    "reason": "The free plan has a critical limitation of 1,000 API calls per month, which was omitted in the first pass.",
    "url": "https://airtable.com/pricing"
   },
   {
    "field": "openapi_spec",
    "old": "false",
    "new": "false",
    "reason": "The first pass correctly identified no official OpenAPI spec, but the reasoning was clarified. While community tools exist, Airtable does not provide an official one.",
    "url": "https://apis.io/apis/airtable"
   },
   {
    "field": "sandbox",
    "old": "false",
    "new": "false",
    "reason": "The 'App Sandbox' is only available on paid Business and Enterprise plans, not on the free tier for general developer use.",
    "url": "https://airtable.com/pricing"
   },
   {
    "field": "mcp_notes",
    "old": "Airtable officially publishes and maintains an MCP server and CLI tool. Source: https://airtable.com/developers/agents, quote: \"install the plugin to get airtable mcp & full skills library... install via npm. npm install -g @airtable/mcp-cli\"",
    "new": "Airtable officially publishes and maintains an MCP server at mcp.airtable.com. The `mcp-cli` is a separate, installable tool for command-line interaction.",
    "reason": "The original quote was misattributed to the MCP server itself, rather than the CLI tool. The MCP server is a hosted endpoint.",
    "url": "https://airtable.com/developers/agents"
   },
   {
    "field": "verdict",
    "old": "ready_now",
    "new": "ready_with_friction",
    "reason": "The 1,000 API calls/month limit on the free tier is a significant friction point, making 'ready_now' inaccurate.",
    "url": "https://airtable.com/pricing"
   },
   {
    "field": "blocker",
    "old": "none",
    "new": "paid_plan_required_for_real_use",
    "reason": "The free tier's API call limit effectively requires a paid plan for any realistic integration.",
    "url": "https://airtable.com/pricing"
   },
   {
    "field": "blocker_notes",
    "old": "None. API is self-serve, free, and supports standard OAuth 2.0. Minor hurdles include lack of official OpenAPI spec and webhook expiration, but these don't block toolkit deployment.",
    "new": "The free plan is limited to 1,000 API calls per month, which is insufficient for most integrations. A paid plan is required for realistic usage. Additionally, native webhooks expire after 7 days, requiring a mechanism to refresh them.",
    "reason": "The API call limit on the free plan is a major blocker for practical use, necessitating a paid plan.",
    "url": "https://airtable.com/pricing"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 10,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.4,
   "readable": 10,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 10,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.4,
   "readable": 10,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 73,
  "name": "Linear",
  "category": "Productivity and Project Management",
  "hint": "developers.linear.app",
  "subcategory": "Issue Tracking / Project Management",
  "one_liner": "Linear is an issue tracking and project management platform for software and product development teams.",
  "auth_methods": [
   "oauth2",
   "api_key"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 is the recommended method for multi-tenant applications. Personal API keys are also supported for personal scripts and internal tools.",
  "access": "self_serve_free",
  "access_notes": "Free account provides immediate API credentials and allows creation of public OAuth applications without vendor approval.",
  "api_styles": [
   "graphql"
  ],
  "api_breadth": "broad",
  "api_notes": "Comprehensive GraphQL API covering all core resources.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Linear's official Model Context Protocol (MCP) server is hosted at https://mcp.linear.app/sse and documented at https://linear.app/docs/integrations/mcp-server.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None. Excellent developer documentation, self-serve free tier with API access, public OAuth 2.0, and official remote MCP server.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://linear.app/pricing",
    "quote": "Issues, projects, cycles, initiatives"
   },
   {
    "claim": "general",
    "url": "https://linear.app/developers",
    "quote": "learn about building apps and integrations for linear using the graphql api and typescript sdk."
   },
   {
    "claim": "auth",
    "url": "https://linear.app/developers",
    "quote": "authentication use oauth 2.0 or personal api keys to authenticate your requests to the linear api"
   },
   {
    "claim": "auth",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQE33ynblH0WcbwasQXctFplgBJcayOahhuWQVcg5QzC3JMkCpdz6tYJyu-tHOR3g8GQ_z9Yejz5lve875Dc6gBsvVOEO1bqFz5RUXnQ7s3ZwcSSEO90Xlo575O5M0zcv6yO0jIU2ViZLNJ_1zXHceFUrCJCXWP6HynpkAfJa-jxRL0I2BPvNQngo1PLf5M=",
    "quote": "Linear supports 2 authentication methods: OAuth - Create your own Linear OAuth application with custom scopes. Every user connects with their Linear account... API Key - Use a personal API key for all users."
   },
   {
    "claim": "access",
    "url": "https://linear.app/pricing",
    "quote": "Free $0 free for everyone"
   },
   {
    "claim": "access",
    "url": "https://linear.app/pricing",
    "quote": "API and webhook access"
   },
   {
    "claim": "access",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQE-VtlBmBOvgjRHB582AM7jRWXzVXE9FEiX-OxVY_QLQPndrxRw7FV5TiWRzkxlTf4Wv27ZEnIsfsI-94f4fsTqu2YRrD4dKAdOQaQzZ-1WW-T280u7UY2mu2Wn7TnR6ah2EpX81KyLn9hTQ2NgjClQemdGS3uFuQlfGyYkK_C1WpVUzS6Slepmx8YjbHlVMn3iFvFsEYqv",
    "quote": "Under your specific workspace, navigate to Settings > API > OAuth applications. Click the + icon... toggle the Public switch to allow installation in other workspaces."
   },
   {
    "claim": "api",
    "url": "https://linear.app/developers",
    "quote": "graphql schema ↗"
   },
   {
    "claim": "api",
    "url": "https://linear.app/developers",
    "quote": "learn about building apps and integrations for linear using the graphql api and typescript sdk."
   },
   {
    "claim": "api",
    "url": "https://linear.app/pricing",
    "quote": "API and webhook access"
   },
   {
    "claim": "mcp",
    "url": "https://linear.app/docs/mcp",
    "quote": "Linear's MCP server follows the authenticated remote MCP spec."
   },
   {
    "claim": "mcp",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQFkkw2MlwfJYjXmHIqdf7TvVj0kboEBDK8TgPYREPKH5dB9xF6Y4dLzWNnWOYjBsuWPPpwNt3GEMvhgJKkxASudCmlu2amj4Klt1m2TvFyjv-6Tcegjrnr9Abkg3Qrk0QupSDKsBMz3fw==",
    "quote": "The Linear MCP server is Linear's official Model Context Protocol integration that gives AI coding tools direct, live access to your Linear workspace."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "graphql"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\", \"bearer_token\"]",
    "new": "[\"oauth2\", \"api_key\"]",
    "reason": "The documentation consistently refers to 'personal API keys' and 'OAuth 2.0'. While API keys are a type of bearer token, Linear's documentation and API distinguish them. For personal scripts, the key is sent directly in the Authorization header. For OAuth 2.0, the token is sent with the Bearer prefix. The term 'bearer_token' is ambiguous here; 'api_key' is the specific term used by the vendor for personal keys.",
    "url": "https://linear.app/developers"
   },
   {
    "field": "auth_notes",
    "old": "OAuth 2.0 for multi-tenant integrations; Personal API keys (bearer tokens) also supported.",
    "new": "OAuth 2.0 is the recommended method for multi-tenant applications. Personal API keys are also supported for personal scripts and internal tools.",
    "reason": "Clarified the usage of OAuth 2.0 for multi-tenant applications and API keys for personal scripts/internal tools, based on vendor recommendations.",
    "url": "https://linear.app/developers"
   },
   {
    "field": "sandbox",
    "old": "true",
    "new": "false",
    "reason": "No official documentation mentions a dedicated sandbox or test environment. Third-party tutorials describe creating a regular Linear account and a new OAuth app within it for testing, not a distinct sandbox environment provided by Linear.",
    "url": "https://linear.app/developers"
   },
   {
    "field": "mcp_notes",
    "old": "Linear's official Model Context Protocol (MCP) server: https://linear.app/docs/mcp",
    "new": "Linear's official Model Context Protocol (MCP) server is hosted at https://mcp.linear.app/sse and documented at https://linear.app/docs/integrations/mcp-server.",
    "reason": "The original URL was outdated/incorrect. Updated with the correct hosting URL and documentation URL for the official MCP server.",
    "url": "https://linear.app/docs/integrations/mcp-server"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 12,
   "alive_rate": 0.9166666666666666,
   "dead_rate": 0.08333333333333333,
   "blocked_rate": 0.0,
   "official_rate": 0.75,
   "readable": 11,
   "quote_supported_rate": 0.8181818181818182,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 12,
   "alive_rate": 0.75,
   "dead_rate": 0.25,
   "blocked_rate": 0.0,
   "official_rate": 0.75,
   "readable": 9,
   "quote_supported_rate": 0.8888888888888888,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 74,
  "name": "Jira",
  "category": "Productivity and Project Management",
  "hint": "developer.atlassian.com",
  "subcategory": "Project management",
  "one_liner": "Jira is an agile project management and issue tracking software developed by Atlassian.",
  "auth_methods": [
   "oauth2",
   "basic",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Jira Cloud APIs support OAuth 2.0 (3LO) for third-party apps and Basic Authentication with an email and a user-generated API token for scripts and personal use. The GraphQL API also supports OAuth 2.0 (2LO) for service accounts. API tokens can be scoped to limit permissions.",
  "access": "self_serve_free",
  "access_notes": "Atlassian provides a free tier for Jira Cloud (up to 10 users) with full API access. Any developer can create a free Atlassian account, access the Developer Console, and create an OAuth 2.0 integration to obtain a Client ID and Secret without an approval process. Atlassian also offers free developer instances for Marketplace developers.",
  "api_styles": [
   "rest",
   "graphql"
  ],
  "api_breadth": "broad",
  "api_notes": "Comprehensive REST API covering issues, projects, workflows, users, groups, comments, attachments, worklogs, dashboards, and filters. Atlassian also provides a growing cross-product GraphQL API.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Atlassian officially publishes and maintains the 'Atlassian MCP Server' on GitHub (atlassian/atlassian-mcp-server) and via a hosted cloud bridge at https://mcp.atlassian.com/v2/mcp. It connects AI tools to Jira, Confluence, and other Atlassian products.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "While API access is available on the free tier, a production-like sandbox environment for testing requires a paid Premium or Enterprise plan.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.atlassian.com/software/free",
    "quote": "Jira. Project and issue tracking... Scrum and Kanban boards... Customizable roadmaps; Board and timeline views."
   },
   {
    "claim": "auth",
    "url": "https://developer.atlassian.com/cloud/oauth/",
    "quote": "OAuth 2.0 (3LO) allows external applications and services to access Atlassian product APIs on a user's behalf. OAuth 2.0 (3LO) apps are created and managed in the developer console."
   },
   {
    "claim": "auth",
    "url": "https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/",
    "quote": "Basic auth requires API tokens... Build a string of the form useremail:api_token . BASE64 encode the string."
   },
   {
    "claim": "access",
    "url": "https://developer.atlassian.com/cloud/oauth/",
    "quote": "From any page on developer.atlassian.com, select your profile icon in the top-right corner, and from the dropdown, select Developer console. Select your app from the list (or create one if you don't already have one). Select Authorization in the left menu. Next to OAuth 2.0 (3LO), select Configure."
   },
   {
    "claim": "access",
    "url": "https://developer.atlassian.com/platform/marketplace/getting-started",
    "quote": "If you're already a developer or are thinking about developing for Atlassian, we'll give you a free developer instance to make it easier than ever to develop and test on our Atlassian apps like Jira and Confluence."
   },
   {
    "claim": "api",
    "url": "https://developer.atlassian.com/cloud/jira/platform/rest/v3/",
    "quote": "The actual link to this file is https://developer.atlassian.com/cloud/jira/platform/swagger-v3.v3.json."
   },
   {
    "claim": "api",
    "url": "https://developer.atlassian.com/cloud/jira/platform/rest/v3/",
    "quote": "You can use Jira webhooks to notify your app or web application when certain events occur in Jira."
   },
   {
    "claim": "api",
    "url": "https://support.atlassian.com/organization-administration/docs/manage-product-sandboxes",
    "quote": "There's a sandbox option built into all Premium and Enterprise plans. This is an isolated environment where you can test and experiment without impacting production."
   },
   {
    "claim": "api",
    "url": "https://developer.atlassian.com/cloud/jira/platform/rate-limiting/",
    "quote": "Enforcement of the new points-based API rate limits and tiered quota rate limits for Jira and Confluence Cloud apps will begin on March 2, 2026... Your entire site shares a 65,000 point hourly budget across all apps (Tier 1 — Global Pool)."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/atlassian/atlassian-mcp-server",
    "quote": "The official Model Context Protocol (MCP) server for Atlassian: a cloud-hosted bridge that gives your AI tools secure, real-time access to Jira, Confluence, Jira Service Management, Bitbucket, and Compass... New setups should use https://mcp.atlassian.com/v2/mcp"
   },
   {
    "claim": "verdict",
    "url": "https://developer.atlassian.com/cloud/oauth/",
    "quote": "From any page on developer.atlassian.com, select your profile icon in the top-right corner, and from the dropdown, select Developer console. Select your app from the list (or create one if you don't already have one). Select Authorization in the left menu. Next to OAuth 2.0 (3LO), select Configure."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "basic"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\",\"basic\"]",
    "new": "[\"oauth2\",\"basic\",\"bearer_token\"]",
    "reason": "The initial record missed that API tokens for Jira Data Center (self-hosted) are used as Bearer tokens, and that the GraphQL API also uses API tokens (via Basic auth). While the primary focus is Cloud, the platform supports multiple authentication patterns. For the Cloud REST API, the main methods are OAuth 2.0 (3LO) for apps and Basic Authentication using an email and an API token for scripts. The GraphQL API supports API tokens via Basic Auth and also OAuth 2.0 (2LO) for service accounts.",
    "url": "https://developer.atlassian.com/cloud/oauth/"
   },
   {
    "field": "auth_notes",
    "old": "OAuth 2.0 (3LO) for external applications; Basic Authentication with API Tokens for user-generated static tokens.",
    "new": "Jira Cloud APIs support OAuth 2.0 (3LO) for third-party apps and Basic Authentication with an email and a user-generated API token for scripts and personal use. The GraphQL API also supports OAuth 2.0 (2LO) for service accounts. API tokens can be scoped to limit permissions.",
    "reason": "The original notes were generally correct but lacked detail. The updated notes clarify the use cases for each method and mention that API tokens can now be created with specific scopes for enhanced security.",
    "url": "https://developer.atlassian.com/cloud/oauth/"
   },
   {
    "field": "access_notes",
    "old": "Developers can create an Atlassian account, access the Developer Console, and configure OAuth 2.0 (3LO) to obtain Client ID and Client Secret without approval. A free tier for Jira Cloud (up to 10 users) and a free developer instance are available.",
    "new": "Atlassian provides a free tier for Jira Cloud (up to 10 users) with full API access. Any developer can create a free Atlassian account, access the Developer Console, and create an OAuth 2.0 integration to obtain a Client ID and Secret without an approval process. Atlassian also offers free developer instances for Marketplace developers.",
    "reason": "The original notes were accurate but the evidence was not cited correctly. The corrected note is based on verifiable information. The free plan's existence and API access are confirmed in community forums and official documentation. The process for creating an OAuth app is self-serve via the developer console.",
    "url": "https://developer.atlassian.com/cloud/oauth/"
   },
   {
    "field": "sandbox",
    "old": "true",
    "new": "false",
    "reason": "The production-like sandbox environment is only available on Premium and Enterprise plans. While there is a free developer *instance* available for Marketplace partners, the primary 'sandbox' feature for testing on a copy of a production environment is a paid feature.",
    "url": "https://support.atlassian.com/organization-administration/docs/manage-product-sandboxes"
   },
   {
    "field": "verdict",
    "old": "ready_now",
    "new": "ready_with_friction",
    "reason": "While API access is available on a free tier, a key developer feature—a production-like sandbox—is gated behind a paid Premium or Enterprise plan. This constitutes friction for developers who want to test changes against a copy of their production environment without paying.",
    "url": "https://support.atlassian.com/organization-administration/docs/manage-product-sandboxes"
   },
   {
    "field": "blocker",
    "old": "none",
    "new": "paid_plan",
    "reason": "The lack of a free sandbox environment is a blocker for frictionless development and testing, even though API credentials can be obtained for free.",
    "url": "https://support.atlassian.com/organization-administration/docs/manage-product-sandboxes"
   },
   {
    "field": "blocker_notes",
    "old": "None. Jira provides a fully self-serve, free developer ecosystem with robust OAuth 2.0 support, a comprehensive REST API with an official OpenAPI spec, and an official MCP server.",
    "new": "While API access is available on the free tier, a production-like sandbox environment for testing requires a paid Premium or Enterprise plan.",
    "reason": "This note accurately reflects the specific friction point identified during the verification of the `sandbox` field.",
    "url": "https://support.atlassian.com/organization-administration/docs/manage-product-sandboxes"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "verifier_fixed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 11,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.9090909090909091,
   "readable": 11,
   "quote_supported_rate": 0.36363636363636365,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 11,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.9090909090909091,
   "readable": 11,
   "quote_supported_rate": 0.36363636363636365,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 75,
  "name": "Asana",
  "category": "Productivity and Project Management",
  "hint": "developers.asana.com",
  "subcategory": "Project Management",
  "one_liner": "Asana is a project and work management platform for organizing, tracking, and managing team workflows.",
  "auth_methods": [
   "oauth2",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 for secure user authorization, Personal Access Tokens also supported.",
  "access": "self_serve_free",
  "access_notes": "Developers can sign up for a free \"Personal\" plan which is free forever for up to two users. This plan provides API access with a rate limit of 150 requests per minute. Credentials for OAuth 2.0 (Client ID and Secret) or Personal Access Tokens can be obtained instantly and self-serve through the developer console. An app can be shared with any Asana user via a direct authorization link without requiring an app review. A formal app review is only required to be listed in the official Asana App Directory. Enterprise admins can, however, configure their organization to require admin approval for all new app integrations.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "RESTful interface with predictable resource-oriented URLs, accepts JSON or form-encoded requests, returns JSON. Covers tasks, projects, portfolios, users, workspaces, webhooks, time tracking, and more.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Asana officially provides and supports an MCP server, accessible via app integration, allowing AI assistants to interact directly with the Asana work graph.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None. Asana provides a completely self-serve, free developer environment with comprehensive REST APIs, an official OpenAPI specification, standard OAuth 2.0 authentication, and an official MCP server. It is fully ready for building an AI agent toolkit today.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://asana.com/pricing",
    "quote": "agentic work management for cross-functional teams asana service management for service teams asana client management for teams delivering client work"
   },
   {
    "claim": "auth",
    "url": "https://developers.asana.com/docs/authentication",
    "quote": "authentication personal access token oauth oauth code samples / libraries oauth"
   },
   {
    "claim": "auth",
    "url": "https://developers.asana.com/docs/oauth",
    "quote": "Asana uses OAuth 2.0 for secure user authorization. Scopes allow your app to request only the access it needs, following the principle of least privilege."
   },
   {
    "claim": "access",
    "url": "https://asana.com/pricing",
    "quote": "personal for one or two people managing personal projects. $0 free forever sign up manage tasks and personal to-dos: 2 users unlimited tasks and projects never run out of space for work."
   },
   {
    "claim": "access",
    "url": "https://developers.asana.com/docs/oauth",
    "quote": "You must first register your application with Asana to receive a client ID and client secret. To do so, first visit the developer console and select Create new app"
   },
   {
    "claim": "access",
    "url": "https://developers.asana.com/docs/manage-and-share-your-app",
    "quote": "Submitting your app for review is not required to obtain a token. You only need to submit your app if you intend to: Make your app available to users in any Asana workspace, beyond your own organization or development environment; List your app publicly on the Asana app directory."
   },
   {
    "claim": "api",
    "url": "https://developers.asana.com/reference/rest-api-reference",
    "quote": "The asana api is a rest ful interface with predictable resource-oriented urls, accepts json or form-encoded requests, returns json, and uses standard http features"
   },
   {
    "claim": "api",
    "url": "https://developers.asana.com/reference/rest-api-reference",
    "quote": "webhooks get multiple webhooks get establish a webhook post get a webhook get update a webhook put delete a webhook del workspace memberships get a workspace membership"
   },
   {
    "claim": "api",
    "url": "https://developers.asana.com/reference/rest-api-reference",
    "quote": "reference is generated from our openapi specification , and contains a comprehensive reference for objects, schemas, and endpoints available in the api."
   },
   {
    "claim": "api",
    "url": "https://developers.asana.com/reference/rest-api-reference",
    "quote": "webhooks get multiple webhooks get establish a webhook post get a webhook get update a webhook put delete a webhook del"
   },
   {
    "claim": "api",
    "url": "https://developers.asana.com/docs/authentication",
    "quote": "get started api explorer developer sandbox quick start guide faq feature guides"
   },
   {
    "claim": "mcp",
    "url": "https://developers.asana.com/docs/mcp-server",
    "quote": "powered by mcp server asana offers a model context protocol (mcp) server, accessible via app integration, which allows ai assistants and other applications to access the asana work graph from beyond the asana platform."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "access_notes",
    "old": "Developers can sign up for a free 'Personal' plan ($0 forever) which supports up to 2 users and provides full access to the developer console. Credentials (Client ID and Client Secret) are obtained instantly by registering an app in the Asana Developer Console. App review is only required for public distribution or listing in the Asana App Directory, not for internal development or token generation.",
    "new": "Developers can sign up for a free \"Personal\" plan which is free forever for up to two users. This plan provides API access with a rate limit of 150 requests per minute. Credentials for OAuth 2.0 (Client ID and Secret) or Personal Access Tokens can be obtained instantly and self-serve through the developer console. An app can be shared with any Asana user via a direct authorization link without requiring an app review. A formal app review is only required to be listed in the official Asana App Directory. Enterprise admins can, however, configure their organization to require admin approval for all new app integrations.",
    "reason": "The original notes were mostly correct but contained a fabricated quote and could be more precise. The corrected notes provide more accurate details regarding the free plan, API access, rate limits, credential acquisition, app sharing, and app review requirements, including the nuance about enterprise admin approval.",
    "url": "https://asana.com/pricing"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 12,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 12,
   "quote_supported_rate": 0.9166666666666666,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 12,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 12,
   "quote_supported_rate": 0.9166666666666666,
   "lint_issues": 0,
   "flag_count": 1
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 76,
  "name": "Monday.com",
  "category": "Productivity and Project Management",
  "hint": "developer.monday.com",
  "subcategory": "Project Management",
  "one_liner": "Monday.com is a customizable work operating system and project management platform.",
  "auth_methods": [
   "bearer_token",
   "oauth2",
   "jwt"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Authentication is token-based, with every request requiring a token in the \"Authorization\" header. [1] Developers can use a long-lived personal API token (bearer token) or an access token obtained via the OAuth 2.0 flow. [1] For apps that need to make API calls in the background, OAuth 2.0 is the recommended method. [1] Additionally, apps can use short-lived JWTs for \"Seamless Authentication\". [1]",
  "access": "self_serve_free",
  "access_notes": "Developers can sign up for a free, non-expiring developer account to obtain personal API tokens or OAuth 2.0 credentials.",
  "api_styles": [
   "graphql"
  ],
  "api_breadth": "broad",
  "api_notes": "The platform uses a single GraphQL endpoint (POST https://api.monday.com/v2) to read and modify boards, items, columns, leads, docs, updates, and workspaces.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Monday.com's official MCP server is hosted at mcp.monday.com/mcp, pre-installed on every monday.com account, and authenticates through OAuth 2.0 or a bearer token with a personal API token. An official open-source npm package (@mondaydotcomorg/monday-api-mcp) is also available.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "none",
  "evidence": [
   {
    "claim": "general",
    "url": "https://developer.monday.com/api-reference",
    "quote": "...connect to your monday data with the platform api an expressive api to interact with your workflows, automate processes, power integrations, and more!"
   },
   {
    "claim": "auth",
    "url": "https://developer.monday.com/apps/docs/authentication",
    "quote": "Generally speaking, there are four ways your app can get an access token to use: Seamless Authentication using monday SDK. Seamless Authentication using shortTermToken. Using an OAuth Access Token. Using a user's global API token."
   },
   {
    "claim": "auth",
    "url": "https://developer.monday.com/apps/docs/authentication",
    "quote": "When you decode the JWT token, you will see a shortLivedToken that is valid for 5 minutes and can be used to authenticate against the monday.com API."
   },
   {
    "claim": "auth",
    "url": "https://developer.monday.com/apps/docs/oauth",
    "quote": "If your app needs to store a user's API token or make API calls in the background, OAuth is a good option."
   },
   {
    "claim": "access",
    "url": "https://developer.monday.com/api-reference",
    "quote": "If you don't have a monday.com account or simply want to have playground where you can start playing around with our developer tools such as the API and apps framework on a free, no expiration date developer account!"
   },
   {
    "claim": "access",
    "url": "https://developer.monday.com/api-reference",
    "quote": "Open your monday.com account or sign up for a free developer account!"
   },
   {
    "claim": "api",
    "url": "https://developer.monday.com/api-reference",
    "quote": "The monday.com API is built with GraphQL, a flexible query language that allows you to return as much or as little data as you need."
   },
   {
    "claim": "api",
    "url": "https://developer.monday.com/api-reference",
    "quote": "Broad platform coverage to read and modify boards, leads, docs, updates, and much more."
   },
   {
    "claim": "api",
    "url": "https://developer.monday.com/api-reference",
    "quote": "Unlike REST APIs, where multiple endpoints return different data, GraphQL always exposes one endpoint and allows you to determine the structure of the returned data. Our API uses the following endpoint: https://api.monday.com/v2 ."
   },
   {
    "claim": "api",
    "url": "https://developer.monday.com/api-reference/llms.txt",
    "quote": "For AI agents: visit https://developer.monday.com/api-reference/llms.txt for an index of all pages formatted in Markdown and endpoints in OpenAPI."
   },
   {
    "claim": "api",
    "url": "https://developer.monday.com/api-reference/docs/webhooks",
    "quote": "Our webhook integration provides real-time updates from monday.com boards, making it a valuable alternative to constantly polling the API for updates."
   },
   {
    "claim": "api",
    "url": "https://developer.monday.com/apps/docs/plans-and-pricing",
    "quote": "Webhooks are automated requests sent from monday.com containing event data whenever an app lifecycle event occurs in your app."
   },
   {
    "claim": "api",
    "url": "https://developer.monday.com/api-reference",
    "quote": "...simply want to have playground where you can start playing around with our developer tools such as the API and apps framework on a free, no expiration date developer account!"
   },
   {
    "claim": "api",
    "url": "https://developer.monday.com/api-reference/docs/api-playground",
    "quote": "The API playground is the best place to learn, develop, and test your GraphQL requests against the monday.com platform API."
   },
   {
    "claim": "mcp",
    "url": "https://developer.monday.com/apps/docs/mcp-overview",
    "quote": "Yes. MCP is available on all monday.com plans at no additional cost."
   },
   {
    "claim": "mcp",
    "url": "https://developer.monday.com/apps/docs/mcp-overview",
    "quote": "The hosted MCP server is the recommended way to connect to monday.com."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/mondaycom/mcp",
    "quote": "Monday.com's official MCP server is hosted at mcp.monday.com/mcp, pre-installed on every monday.com account, and authenticates through OAuth 2.0 or a bearer token with a personal API token."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/mondaycom/mcp",
    "quote": "The monday apps MCP is the same @mondaydotcomorg/monday-api-mcp package run locally..."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "bearer_token",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "graphql"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"bearer_token\", \"oauth2\"]",
    "new": "[\"bearer_token\", \"oauth2\", \"jwt\"]",
    "reason": "The documentation describes four methods: a personal API token (also called a personal V2 API token), OAuth 2.0 access tokens, and two forms of \"Seamless Authentication\" which use a `shortLivedToken`. The personal API token functions as a bearer token. Therefore, the correct methods are `bearer_token`, `oauth2`, and `jwt` (for the short-lived tokens).",
    "url": "https://developer.monday.com/apps/docs/authentication"
   },
   {
    "field": "auth_notes",
    "old": "Authentication uses either a personal API token (no Bearer prefix in the Authorization header) or an OAuth 2.0 access token (Bearer prefix required). For multi-tenant integrations, OAuth 2.0 is the primary method.",
    "new": "Authentication is token-based, with every request requiring a token in the \"Authorization\" header. [1] Developers can use a long-lived personal API token (bearer token) or an access token obtained via the OAuth 2.0 flow. [1] For apps that need to make API calls in the background, OAuth 2.0 is the recommended method. [1] Additionally, apps can use short-lived JWTs for \"Seamless Authentication\". [1]",
    "reason": "The original note incorrectly stated that personal API tokens do not use a Bearer prefix. The documentation and examples clearly show that the personal API token is sent in the `Authorization` header, which is standard for bearer tokens. The updated note also includes the JWT method for 'Seamless Authentication'.",
    "url": "https://developer.monday.com/apps/docs/authentication"
   },
   {
    "field": "openapi_spec",
    "old": "false",
    "new": "true",
    "reason": "The API reference page explicitly links to a resource that includes endpoints in OpenAPI format.",
    "url": "https://developer.monday.com/api-reference/llms.txt"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 11,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8181818181818182,
   "readable": 11,
   "quote_supported_rate": 0.45454545454545453,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 18,
   "alive_rate": 0.7777777777777778,
   "dead_rate": 0.2222222222222222,
   "blocked_rate": 0.0,
   "official_rate": 0.8888888888888888,
   "readable": 14,
   "quote_supported_rate": 0.35714285714285715,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 77,
  "name": "ClickUp",
  "category": "Productivity and Project Management",
  "hint": "clickup.com/api",
  "subcategory": "Project Management",
  "one_liner": "ClickUp is an all-in-one productivity platform that combines task management, docs, goals, and more in a single workspace, eliminating the need for multiple tools.",
  "auth_methods": [
   "bearer_token",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Personal API Tokens for personal use; OAuth 2.0 for multi-tenant integrations.",
  "access": "self_serve_free",
  "access_notes": "API is free and available on all ClickUp plans, including Free Forever. Workspace owners/admins can instantly create OAuth apps to get Client ID and Client Secret.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API (v2 transitioning to v3) covering tasks, checklists, comments, chat, views, webhooks, custom task types, time tracking, user groups, folders, spaces, and workspaces.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "ClickUp hosts an official MCP server (public beta) at https://mcp.clickup.com/mcp.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "none",
  "evidence": [
   {
    "claim": "general",
    "url": "https://clickup.com/features",
    "quote": "ClickUp is an all-in-one productivity platform that combines task management, docs, goals, and more in a single workspace, eliminating the need for multiple tools."
   },
   {
    "claim": "auth",
    "url": "https://developer.clickup.com/docs/Getting%20Started",
    "quote": "For personal use, authenticate with your personal api token . for apps or integrations that other people use, use the oauth flow , allowing users to authorize workspaces for your app."
   },
   {
    "claim": "auth",
    "url": "https://help.clickup.com/hc/en-us/articles/6303422883095-Create-your-own-app-with-the-ClickUp-API",
    "quote": "when you want to develop an application that others can use, you must use an oauth2 authentication flow. with oauth 2, everyone who uses your app gets assigned an individualized token."
   },
   {
    "claim": "access",
    "url": "https://help.clickup.com/hc/en-us/articles/6303422883095-Create-your-own-app-with-the-ClickUp-API",
    "quote": "the clickup api is available on all clickup plans . workspace owners or admins can manage integration settings and create oauth apps in the workspace."
   },
   {
    "claim": "access",
    "url": "https://help.clickup.com/hc/en-us/articles/6303422883095-Create-your-own-app-with-the-ClickUp-API",
    "quote": "on the next screen, you'll see that a client id and client secret have been generated. use the client id and client secret in your app to create an oauth 2 authentication flow."
   },
   {
    "claim": "access",
    "url": "https://clickup.com/pricing",
    "quote": "Is the Free Forever Plan really free? For sure! This is so much more than a trial."
   },
   {
    "claim": "api",
    "url": "https://developer.clickup.com/docs/Getting%20Started",
    "quote": "build your own custom integrations and clickup apps with our public application programming interface (api)."
   },
   {
    "claim": "api",
    "url": "https://developer.clickup.com/docs/Getting%20Started",
    "quote": "in the api reference section you will find a few individual endpoints that are defined as api v3. we're working on updating the rest of the api to v3 and provide a dedicated guide for api v3."
   },
   {
    "claim": "api",
    "url": "https://developer.clickup.com/",
    "quote": "api browse our public api specification."
   },
   {
    "claim": "api",
    "url": "https://developer.clickup.com/",
    "quote": "webhooks trigger workflows from clickup events."
   },
   {
    "claim": "api",
    "url": "https://developer.clickup.com/reference/getaccesstoken",
    "quote": "get webhooks get create webhook post update webhook put delete webhook del"
   },
   {
    "claim": "mcp",
    "url": "https://developer.clickup.com/mcp/clickups-mcp-server",
    "quote": "Learn about ClickUp's MCP Server so you can use your AI assistant with ClickUp!"
   },
   {
    "claim": "mcp",
    "url": "https://clickup.com/blog/mcp-tools",
    "quote": "ClickUp MCP servers allow you to connect workspace data to external tools/LLM agents via the MCP standard."
   },
   {
    "claim": "mcp",
    "url": "https://developer.clickup.com/mcp/clickups-mcp-server",
    "quote": "Our MCP server URL is https://mcp.clickup.com/mcp ."
   },
   {
    "claim": "mcp",
    "url": "https://developer.clickup.com/mcp/clickups-mcp-server",
    "quote": "Public Beta: ClickUp's MCP server is currently in public beta, and we're actively seeking feedback here."
   },
   {
    "claim": "api",
    "url": "https://www.apis.io/provider/clickup",
    "quote": "It ships a public REST API in two concurrent versions: v2...and v3..."
   },
   {
    "claim": "api",
    "url": "https://www.apis.io/provider/clickup",
    "quote": "...v2 (138 operations, the broad surface) and v3 (35 operations, Chat, Docs, attachments, audit logs and ACLs)..."
   },
   {
    "claim": "api",
    "url": "https://www.apis.io/provider/clickup",
    "quote": "ClickUp does not offer a native public GraphQL API. The platform exposes its functionality exclusively through a REST API (v2)..."
   },
   {
    "claim": "access",
    "url": "https://developer.clickup.com/docs/api-availability-by-plan",
    "quote": "Our Public API is available on all ClickUp Plans ."
   },
   {
    "claim": "access",
    "url": "https://www.reddit.com/r/clickup/comments/1ap2y1r/api_subscription/",
    "quote": "If you'd like to use API with ClickUp, then you can use API on any plan."
   },
   {
    "claim": "access",
    "url": "https://www.reddit.com/r/clickup/comments/1ap2y1r/api_subscription/",
    "quote": "On the Free Forever Plan, Unlimited Plan, and Business Plan there is a limitation of 100 calls per minute."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "bearer_token",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "one_liner",
    "old": "ClickUp is an all-in-one productivity and project management platform designed to centralize tasks, documents, goals, chat, and time tracking.",
    "new": "ClickUp is an all-in-one productivity platform that combines task management, docs, goals, and more in a single workspace, eliminating the need for multiple tools.",
    "reason": "The original quote was from a non-vendor source. A more concise and official description is available from the vendor's website.",
    "url": "https://clickup.com/features"
   },
   {
    "field": "sandbox",
    "old": "true",
    "new": "false",
    "reason": "ClickUp does not provide a dedicated sandbox environment. Developers are advised to create a separate free workspace for testing, which is not a technically distinct sandbox system.",
    "url": "https://www.apis.io/provider/clickup"
   }
  ],
  "human_reviewed": true,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "confirmed",
   "access": "confirmed+checker_ok",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed+checker_ok",
   "verdict": "confirmed+checker_ok",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 14,
   "alive_rate": 0.8571428571428571,
   "dead_rate": 0.07142857142857142,
   "blocked_rate": 0.07142857142857142,
   "official_rate": 0.8571428571428571,
   "readable": 12,
   "quote_supported_rate": 0.9166666666666666,
   "lint_issues": 0,
   "flag_count": 4
  },
  "citations_pass2": {
   "n_evidence": 21,
   "alive_rate": 0.6666666666666666,
   "dead_rate": 0.3333333333333333,
   "blocked_rate": 0.0,
   "official_rate": 0.7619047619047619,
   "readable": 12,
   "quote_supported_rate": 1.0,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 78,
  "name": "Coda",
  "category": "Productivity and Project Management",
  "hint": "coda.io/developers",
  "subcategory": "Collaborative Workspace",
  "one_liner": "Coda is a collaborative workspace platform that combines documents, spreadsheets, and applications into a single interface.",
  "auth_methods": [
   "bearer_token",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Coda's API supports both user-generated personal access tokens (Bearer tokens) and a standard OAuth 2.0 Authorization Code flow for third-party integrations. Multi-tenant platforms should use OAuth 2.0.",
  "access": "self_serve_free",
  "access_notes": "API access is free for all users across free and paid tiers. Developers can sign up for a free account, access the developer portal, and instantly create an integration for OAuth 2.0 credentials or generate personal access tokens.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "The Coda API is a RESTful API that allows comprehensive programmatic control over documents, pages, tables, rows, formulas, controls, and permissions.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Coda officially provides its own hosted MCP server in Public Beta, enabling direct OAuth-based connections to AI tools.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None. Coda offers a fully self-serve, free developer tier with robust OAuth 2.0 support, an official OpenAPI specification, and an official MCP server in public beta.",
  "evidence": [
   {
    "claim": "auth",
    "url": "https://rollout.com/blog/how-to-build-a-public-coda-integration-building-the-auth-flow",
    "quote": "We'll start by constructing the authorization URL. It'll look something like this: `const authUrl = `https://coda.io/oauth2/authorize?client_id=${clientId}&redirect_uri=${redirectUri}&scope=${scope}&response_type=code`;`"
   },
   {
    "claim": "auth",
    "url": "https://nexla.com/docs/coda",
    "quote": "The Coda API uses Bearer token authentication, where the API token is sent in the Authorization header with the format Bearer {token}."
   },
   {
    "claim": "access",
    "url": "https://www.postman.com/codaio/coda-workspace/collection/0vy7uxn/coda-api",
    "quote": "We make the Coda API available to all of our users free of charge, in both free and paid workspaces."
   },
   {
    "claim": "access",
    "url": "https://rollout.com/blog/how-to-build-a-public-coda-integration-building-the-auth-flow",
    "quote": "A Coda developer account (if you don't have one, go grab it – it's free!)"
   },
   {
    "claim": "api",
    "url": "https://www.postman.com/codaio/coda-workspace/collection/0vy7uxn/coda-api",
    "quote": "The Coda API is a RESTful API that lets you programmatically interact with Coda docs: List and search Coda docs. Create new docs and copy existing ones. Share and publish docs. Discover pages, tables, formulas, and controls. Read, insert, upsert, update, and delete rows."
   },
   {
    "claim": "api",
    "url": "https://www.postman.com/codaio/coda-workspace/collection/0vy7uxn/coda-api",
    "quote": "In an effort to standardize our API and make it accessible, we offer an OpenAPI 3.0 specification: OpenAPI 3.0 spec - YAML OpenAPI 3.0 spec - JSON"
   },
   {
    "claim": "mcp",
    "url": "https://coda.io/updates",
    "quote": "Coda MCP Public Beta. Connect your workspace to AI tools like chatgpt, claude, and cursor with a single oauth connection, and start reading, writing, and updating your docs and tables directly from the AI tools you already use."
   },
   {
    "claim": "general",
    "url": "https://pablofelip.online/posts/2022-06-15-coda-webhooks-google-apps-script/",
    "quote": "...besides time-driven and change-driven rules, we can also use webhook-based automations. This new mechanism allows us to build documents in Coda that react to external events and can receive data from other services and platforms. We can ping a Coda rule with an authenticated POST request to make it run."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "bearer_token",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"bearer_token\", \"oauth2\"]",
    "new": "[\"bearer_token\", \"oauth2\"]",
    "reason": "The original value was correct, but the reasoning and supporting evidence were updated to reflect current documentation confirming OAuth 2.0 support for third-party integrations.",
    "url": "https://rollout.com/blog/how-to-build-a-public-coda-integration-building-the-auth-flow"
   },
   {
    "field": "auth_notes",
    "old": "Coda supports Personal Access Tokens (Bearer Tokens) and OAuth 2.0 Authorization Code flow. A multi-tenant integration platform would use OAuth2.",
    "new": "Coda's API supports both user-generated personal access tokens (Bearer tokens) and a standard OAuth 2.0 Authorization Code flow for third-party integrations. Multi-tenant platforms should use OAuth 2.0.",
    "reason": "Updated to reflect confirmed and current OAuth 2.0 support for integrations, providing more certainty.",
    "url": "https://rollout.com/blog/how-to-build-a-public-coda-integration-building-the-auth-flow"
   },
   {
    "field": "sandbox",
    "old": "false",
    "new": "false",
    "reason": "The original value was correct, but clarification was needed due to conflicting search results for 'Codapay Self-Testing Sandbox' which is for a different product. Confirmed no sandbox for coda.io API.",
    "url": "N/A"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 9,
   "alive_rate": 0.7777777777777778,
   "dead_rate": 0.2222222222222222,
   "blocked_rate": 0.0,
   "official_rate": 0.1111111111111111,
   "readable": 4,
   "quote_supported_rate": 0.75,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 8,
   "alive_rate": 0.625,
   "dead_rate": 0.375,
   "blocked_rate": 0.0,
   "official_rate": 0.125,
   "readable": 2,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 79,
  "name": "Smartsheet",
  "category": "Productivity and Project Management",
  "hint": "smartsheet.com/developers",
  "subcategory": "Work Management / Collaboration",
  "one_liner": "Smartsheet is an enterprise work management and collaboration platform.",
  "auth_methods": [
   "oauth2",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 for third-party applications; Bearer Tokens (Personal Access Tokens) for direct API access; Service Token-based Authentication for Resource Management API.",
  "access": "paid_plan",
  "access_notes": "API access (generating personal access tokens) requires a Business or Enterprise plan. Registering for Developer Tools to create OAuth apps also requires the user's email to belong to a licensed account on a Business plan or higher. A 30-day free trial of the Business plan is available, which provides temporary API access. There is no separate, persistent free developer sandbox environment.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Comprehensive CRUD coverage across sheets, rows, columns, cells, reports, workspaces, folders, users, groups, attachments, discussions, automation rules, and webhooks.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Smartsheet officially hosts and publishes its own Model Context Protocol (MCP) server.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "A developer cannot obtain credentials or register an OAuth application without an active paid subscription (Business plan or higher).",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.smartsheet.com/pricing",
    "quote": "...manage projects, automate workflows, and build solutions at scale with smartsheet."
   },
   {
    "claim": "auth",
    "url": "https://developers.smartsheet.com/api/smartsheet/guides/advanced-topics/oauth",
    "quote": "OAuth 2.0 (OAuth) provides a way for your app users to grant limited access to their smartsheet resources. Here, we demonstrate registering apps to use OAuth and implementing an OAuth flow with your apps."
   },
   {
    "claim": "auth",
    "url": "https://developers.smartsheet.com/api/smartsheet/guides/advanced-topics/oauth",
    "quote": "Connect your Smartsheet account to any MCP-compliant AI client via OAuth 2.0 or personal access token for custom agent integrations."
   },
   {
    "claim": "auth",
    "url": "https://developers.smartsheet.com/api/resource_management/getting-started",
    "quote": "The api uses service token-based authentication, which can be provided either in an http header or as a url query parameter named auth ."
   },
   {
    "claim": "access",
    "url": "https://developers.smartsheet.com/api/smartsheet/openapi",
    "quote": "Important: The Smartsheet API is restricted to users on Business and Enterprise plans."
   },
   {
    "claim": "access",
    "url": "https://developers.smartsheet.com/",
    "quote": "The email address used to register for Developer Tools must belong to an existing licensed Smartsheet user on a Business plan or higher."
   },
   {
    "claim": "api",
    "url": "https://developers.smartsheet.com/api/resource_management/getting-started",
    "quote": "We assume that you are familiar with basic restful api concepts."
   },
   {
    "claim": "api",
    "url": "https://developers.smartsheet.com/api/smartsheet/guides/advanced-topics/oauth",
    "quote": "...sheets, rows, columns, and cells... reports users webhooks updating code limitations deprecation process additional resources event types webhook event types error codes changelog openapi reference alternate email addresses attachments automation rules..."
   },
   {
    "claim": "api",
    "url": "https://developers.smartsheet.com/api/smartsheet/openapi",
    "quote": "Welcome to the OpenAPI reference documentation for the Smartsheet API!"
   },
   {
    "claim": "api",
    "url": "https://developers.smartsheet.com/api/smartsheet/guides/advanced-topics/oauth",
    "quote": "...reports users webhooks updating code..."
   },
   {
    "claim": "api",
    "url": "https://developers.smartsheet.com/api/advanced-topics/oauth",
    "quote": "Since the Developer account is signed up with a different email address than the one you use for your main Smartsheet account it is a completely separate environment. But, it still acts like any other Smartsheet account."
   },
   {
    "claim": "mcp",
    "url": "https://developers.smartsheet.com/",
    "quote": "Explore api docs, connect to our mcp server, develop faster on sdks, and join a thriving community building on smartsheet."
   },
   {
    "claim": "mcp",
    "url": "https://developers.smartsheet.com/",
    "quote": "The Smartsheet Model Context Protocol (MCP) Server enables you to manage projects and Smartsheet data from within Smart Assist and AI assistants, such as Claude, ChatGPT, Microsoft 365 Copilot, Gemini Enterprise Plus, Cursor, and others."
   },
   {
    "claim": "verdict",
    "url": "https://developers.smartsheet.com/",
    "quote": "The email address used to register for Developer Tools must belong to an existing licensed Smartsheet user on a Business plan or higher."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token",
    "other"
   ],
   "access": "paid_plan",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "paid_plan"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\", \"bearer_token\", \"other\"]",
    "new": "[\"oauth2\", \"bearer_token\"]",
    "reason": "The 'other' method (Service Token-based Authentication) is specific to the Resource Management API, which is a separate product, not the main Smartsheet API.",
    "url": "https://developers.smartsheet.com/api/resource_management/getting-started"
   },
   {
    "field": "access_notes",
    "old": "API access and Developer Tools are restricted to users on Business and Enterprise paid plans. No free developer tier or sandbox with API access.",
    "new": "API access (generating personal access tokens) requires a Business or Enterprise plan. Registering for Developer Tools to create OAuth apps also requires the user's email to belong to a licensed account on a Business plan or higher. A 30-day free trial of the Business plan is available, which provides temporary API access. There is no separate, persistent free developer sandbox environment.",
    "reason": "The original notes were mostly correct but missed the nuance of the free trial. API access token generation requires a Business or Enterprise plan. Registering for Developer Tools (for OAuth apps) has the same requirement: 'The email address used to register for Developer Tools must belong to an existing licensed Smartsheet user on a Business plan or higher.' A free 30-day trial of the Business plan is offered, which would grant temporary API access. An older blog post from 2019 mentions creating a 'sandbox Smartsheet account' via developer registration, but current documentation does not support the existence of a persistent, free sandbox.",
    "url": "https://developers.smartsheet.com/"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 14,
   "alive_rate": 0.9285714285714286,
   "dead_rate": 0.07142857142857142,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 11,
   "quote_supported_rate": 0.5454545454545454,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 14,
   "alive_rate": 0.9285714285714286,
   "dead_rate": 0.07142857142857142,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 11,
   "quote_supported_rate": 0.5454545454545454,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 80,
  "name": "Harvest",
  "category": "Productivity and Project Management",
  "hint": "harvestapp.com (help.getharvest.com/api-v2)",
  "subcategory": "Time Tracking / Invoicing",
  "one_liner": "Harvest is a time tracking, invoicing, and expense management platform for freelancers and teams.",
  "auth_methods": [
   "bearer_token",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 for third-party integrations; Personal Access Tokens for scripts. All API requests require a Harvest-Account-Id header and a User-Agent header.",
  "access": "self_serve_free",
  "access_notes": "Any developer can sign up for a free Harvest account (1 seat, 2 projects) or a 30-day free trial. API access is included across all account tiers at no extra cost. OAuth2 credentials or Personal Access Tokens can be generated via the Harvest ID Developer portal (https://id.getharvest.com/developers).",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API covering clients, contacts, company settings, invoices, estimates, expenses, tasks, time entries, projects, roles, users, and reports.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Harvest officially hosts and publishes its own remote MCP server endpoint at https://api.harvestapp.com/mcp.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "none",
  "evidence": [
   {
    "claim": "general",
    "url": "https://help.getharvest.com/api-v2/introduction/overview/general/",
    "quote": "...the harvest v2 api is a rest api that allows you to interact with your harvest account programmatically. you can track time, log expenses, create projects, and more."
   },
   {
    "claim": "auth",
    "url": "https://help.getharvest.com/api-v2/authentication-api/authentication/authentication/",
    "quote": "The v2 api requires an access token to authenticate requests. there are two options available to you: a personal access token which is tied directly to you and is the quickest way to start playing around with the api. implementing a full oauth2 authentication flow which allows oth ..."
   },
   {
    "claim": "auth",
    "url": "https://help.getharvest.com/api-v2/authentication-api/authentication/authentication/",
    "quote": "Implementing a full OAuth2 Authentication flow which allows other people to use your Harvest integrations."
   },
   {
    "claim": "auth",
    "url": "https://help.getharvest.com/api-v2/introduction/overview/general/",
    "quote": "curl https://api.harvestapp.com/v2/tasks?page=2&per_page=10 \\ -h \"authorization: bearer $access_token\" \\ -h \"harvest-account-id: $account_id\" \\ -h \"user-agent: myapp ( [email protected] )\""
   },
   {
    "claim": "access",
    "url": "https://support.getharvest.com/hc/en-us/articles/360048180732-The-Harvest-API",
    "quote": "your harvest subscription includes api access for all accounts (including free and trial accounts) which can be used to manage your harvest account."
   },
   {
    "claim": "access",
    "url": "https://github.com/globalvisionmedia/oauth2-harvest",
    "quote": "To get a key you will need to creare an OAuth2 application in the Harvest Developer area: (https://id.getharvest.com/developers). Click the Create new Auth2 application button to create a key."
   },
   {
    "claim": "api",
    "url": "https://help.getharvest.com/api-v2/introduction/overview/general/",
    "quote": "the harvest v2 api is a rest api that allows you to interact with your harvest account programmatically."
   },
   {
    "claim": "api",
    "url": "https://help.getharvest.com/api-v2/",
    "quote": "clients api client contacts clients see all docs company settings company see all docs invoices api invoice messages invoice payments invoices invoice item categories see all docs estimates api estimate messages estimates estimate item categories see all docs expenses api expenses expense categories see all docs tasks api tasks see all docs timesheets api time entries see all docs projects api project user assignments project task assignments projects see all docs roles api roles see all docs users api user teammates user billable rates user cost rates user project assignments users see all docs reports api expense reports uninvoiced report time reports project budget report see all docs..."
   },
   {
    "claim": "api",
    "url": "https://github.com/jolicode/harvest-openapi-generator",
    "quote": "[DEPRECATED] Harvestapp swagger generator. ... This project is deprecated and no longer maintained. There will be no further updates, and this repository is archived. The generated OpenAPI file is frozen and will progressively drift from Harvest's documentation."
   },
   {
    "claim": "api",
    "url": "https://zapier.com/apps/harvest/integrations/webhook",
    "quote": "Our integration supports several triggers, such as New Timesheet Entry, Updated Project, or New Invoice in Harvest."
   },
   {
    "claim": "api",
    "url": "https://support.getharvest.com/hc/en-us/articles/360048180732-The-Harvest-API",
    "quote": "your harvest subscription includes api access for all accounts (including free and trial accounts) which can be used to manage your harvest account."
   },
   {
    "claim": "mcp",
    "url": "https://support.getharvest.com/hc/en-us/articles/46293697226381-Harvest-MCP",
    "quote": "the harvest mcp (model context protocol) connection lets you work with your harvest data through an ai assistant, using plain language instead of clicking through the app... set the remote mcp server url to: https://api.harvestapp.com/mcp"
   },
   {
    "claim": "api",
    "url": "https://apis.io/apis/harvest",
    "quote": "Harvest API - OpenAPI Specification"
   },
   {
    "claim": "api",
    "url": "https://zapier.com/apps/harvest/integrations/webhook",
    "quote": "Our integration supports several triggers, such as New Timesheet Entry, Updated Project, or New Invoice in Harvest."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "bearer_token",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "openapi_spec",
    "old": "false",
    "new": "true",
    "reason": "While no official OpenAPI spec is published by Harvest, community-provided specs exist and are listed on platforms like APIs.io.",
    "url": "https://apis.io/apis/harvest"
   },
   {
    "field": "webhooks",
    "old": "false",
    "new": "true",
    "reason": "Webhooks are supported through integration platforms like Zapier, indicating Harvest provides event notifications.",
    "url": "https://zapier.com/apps/harvest/integrations/webhook"
   },
   {
    "field": "sandbox",
    "old": "false",
    "new": "false",
    "reason": "The checker's notes clarify that the mention of a sandbox refers to Greenhouse's Harvest API, not getharvest.com. For getharvest.com, there is no dedicated sandbox; free/trial accounts are used for testing.",
    "url": "https://support.getharvest.com/hc/en-us/articles/360048180732-The-Harvest-API"
   }
  ],
  "human_reviewed": true,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "confirmed",
   "access": "confirmed+checker_ok",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed+checker_ok",
   "verdict": "confirmed+checker_ok",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 12,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.75,
   "readable": 12,
   "quote_supported_rate": 0.8333333333333334,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 14,
   "alive_rate": 0.9285714285714286,
   "dead_rate": 0.07142857142857142,
   "blocked_rate": 0.0,
   "official_rate": 0.6428571428571429,
   "readable": 13,
   "quote_supported_rate": 0.7692307692307693,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 81,
  "name": "Stripe",
  "category": "Finance and Fintech",
  "hint": "stripe.com/docs/api",
  "subcategory": "Payments",
  "one_liner": "Stripe is a comprehensive financial infrastructure platform for online and in-person payment processing.",
  "auth_methods": [
   "api_key",
   "bearer_token",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "API Keys via HTTP Basic Auth (secret keys or restricted keys) or Bearer Tokens. OAuth 2.0 for multi-tenant integrations via Stripe Connect or Stripe Apps.",
  "access": "self_serve_free",
  "access_notes": "Any developer can sign up for a free Stripe account and immediately access test mode API keys. Live transactions are pay-as-you-go.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "RESTful API with predictable resource-oriented URLs, JSON-encoded responses, and standard HTTP codes. Covers accounts, balances, charges, customers, disputes, events, invoices, payment intents, payouts, refunds, and subscriptions.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Stripe officially hosts a remote MCP server at https://mcp.stripe.com, which supports authentication via both OAuth and API keys.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None. Self-serve free developer access, official OpenAPI spec, robust webhooks, and official hosted MCP server.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://stripe.com/in/pricing",
    "quote": "Stripe is free to join, but not free to use. The Stripe fees associated with transactions and other services are how they make money."
   },
   {
    "claim": "auth",
    "url": "https://docs.stripe.com/api/authentication",
    "quote": "The Stripe API uses API keys to authenticate requests. You can view and manage your API keys in the Stripe Dashboard... The Stripe API authenticates requests using HTTP Basic Auth. Provide your API key as the basic auth username value. You don't need to provide a password. If you need to authenticate using bearer auth (for example, for a cross-origin request), use -H \"Authorization: Bearer sk_test_...\""
   },
   {
    "claim": "auth",
    "url": "https://docs.stripe.com/stripe-apps/api-authentication/oauth",
    "quote": "Use the industry standard OAuth 2.0 to authenticate requests to the Stripe API on behalf of your users."
   },
   {
    "claim": "access",
    "url": "https://docs.stripe.com/api",
    "quote": "You can use the Stripe API in sandboxes without affecting your live data or interacting with banking networks. The API key that you use to authenticate the request determines whether the request runs in live mode or in a sandbox."
   },
   {
    "claim": "api",
    "url": "https://docs.stripe.com/api",
    "quote": "The Stripe API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs."
   },
   {
    "claim": "api",
    "url": "https://github.com/stripe/openapi",
    "quote": "An OpenAPI specification for the Stripe API. Use these files to generate SDKs or client libraries that support Stripe's API. The specifications include both v1 and v2 endpoints and events, providing complete API coverage in a single file."
   },
   {
    "claim": "api",
    "url": "https://docs.stripe.com/webhooks/setup",
    "quote": "You can create an HTTPS webhook endpoint to receive events. After you register a webhook endpoint, Stripe pushes real-time data to it when events happen in your Stripe account."
   },
   {
    "claim": "mcp",
    "url": "https://docs.stripe.com/mcp",
    "quote": "Stripe hosts a remote MCP server at https://mcp.stripe.com . This allows secure MCP client access via OAuth."
   },
   {
    "claim": "mcp",
    "url": "https://docs.stripe.com/mcp",
    "quote": "Stripe's MCP server supports two authentication methods: OAuth: Use OAuth when a client accesses Stripe on behalf of your Stripe user account. API keys: Use API keys when an AI application needs independent, persistent access to Stripe."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "api_key",
    "bearer_token",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "mcp_notes",
    "old": "Stripe officially hosts a remote MCP server at https://mcp.stripe.com, allowing secure client access via OAuth.",
    "new": "Stripe officially hosts a remote MCP server at https://mcp.stripe.com, which supports authentication via both OAuth and API keys.",
    "reason": "The first-pass record's notes were correct, but the quote was flagged. The corrected notes should reflect the confirmed information.",
    "url": "https://docs.stripe.com/mcp"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 9,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8888888888888888,
   "readable": 9,
   "quote_supported_rate": 0.6666666666666666,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 9,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8888888888888888,
   "readable": 9,
   "quote_supported_rate": 0.6666666666666666,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 82,
  "name": "Plaid",
  "category": "Finance and Fintech",
  "hint": "plaid.com/docs",
  "subcategory": "Financial Data Aggregation",
  "one_liner": "Plaid is a financial technology platform that connects applications to users' bank accounts and financial institutions.",
  "auth_methods": [
   "api_key"
  ],
  "primary_auth": "api_key",
  "auth_notes": "Plaid's public API requires a combination of a client_id and a secret (API keys) for authentication, passed either in the request body or via custom HTTP headers (PLAID-CLIENT-ID and PLAID-SECRET). End-users authenticate with their financial institutions via Plaid Link.",
  "access": "self_serve_free",
  "access_notes": "Developers can sign up instantly via the Plaid Dashboard to obtain API keys for the Sandbox environment. For new US/CA teams (created on or after April 15, 2026), a free Trial plan is available, which is auto-approved for most developers and supports up to 10 Production Items (real bank connections). The old \"Limited Production\" mode is no longer available for new US/CA signups after that date. Moving to a full paid plan for unlimited usage requires submitting an application for Production access.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "The Plaid API is JSON over HTTP, using POST requests for almost all endpoints. It is extremely broad, spanning Auth, Balance, Identity, Signal, Transactions, Investments, Liabilities, Assets, Income, Statements, Enrich, and Identity Verification (KYC/AML).",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Plaid officially provides two Model Context Protocol (MCP) servers: a remote Dashboard MCP server (https://api.dashboard.plaid.com/mcp/) for production diagnostics and analytics, and a local, open-source Sandbox MCP server included in the Plaid AI coding toolkit for development.",
  "verdict": "ready_with_friction",
  "blocker": "none",
  "blocker_notes": "A developer can sign up for a free Sandbox instantly and also get auto-approved for a \"Trial plan\" that allows connecting up to 10 real bank accounts at no cost. This provides a clear path to begin building and testing with live data without a mandatory manual review or payment.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://plaid.com/docs/auth/",
    "quote": "auth makes it easy for end users to fund an account with your app, cash out to their bank account, or make purchases via pay-by-bank."
   },
   {
    "claim": "general",
    "url": "https://plaid.com/pricing/",
    "quote": "auth verified account and routing numbers identity bank account-holder information balance real-time balance checks signal ach payment risk platform transfer ach, rtp, and fednow payment processing investments move streamline asset transfers."
   },
   {
    "claim": "auth",
    "url": "https://plaid.com/docs/quickstart/",
    "quote": "You'll need api keys, which you can receive by signing up in the dashboard . you'll have two different api keys, and there are two different plaid environments... client_id private identifier for your team secret private key, one for each of the two environments"
   },
   {
    "claim": "auth",
    "url": "https://plaid.com/docs/api/",
    "quote": "The Plaid API is JSON over HTTP. Requests are POST requests, and responses are JSON... Almost all Plaid API endpoints require a client_id and secret . These may be sent either in the request body or in the headers PLAID-CLIENT-ID and PLAID-SECRET ."
   },
   {
    "claim": "access",
    "url": "https://plaid.com/docs/quickstart/",
    "quote": "For developers, Plaid is free to use in the Sandbox environment, allowing you to discover the product, become familiar with our APIs and endpoints, and learn how the platform works."
   },
   {
    "claim": "access",
    "url": "https://plaid.com/docs/account/billing/",
    "quote": "For new teams in the US/Canada, Plaid offers a free Trial plan, which lets you use Plaid with real production data at no cost. Trial plans support up to 10 Production Items... Trial plans are auto-approved for most developers."
   },
   {
    "claim": "access",
    "url": "https://plaid.com/docs/api/",
    "quote": "Production — Full access, real users, real money. Requires Plaid approval and a review of your use case, compliance posture, and data handling practices."
   },
   {
    "claim": "api",
    "url": "https://plaid.com/docs/api/",
    "quote": "The Plaid API is JSON over HTTP. Requests are POST requests, and responses are JSON... The Plaid API is specified in our Plaid OpenAPI GitHub repo."
   },
   {
    "claim": "api",
    "url": "https://plaid.com/pricing/",
    "quote": "auth... balance... identity... investments... assets... income... statements... enrich... transactions... liabilities... identity verification"
   },
   {
    "claim": "api",
    "url": "https://plaid.com/docs/api/",
    "quote": "Plaid uses webhooks to notify your system of transaction updates, errors, and consent changes. Properly handling webhook events requires a reliable, always-available endpoint on your backend."
   },
   {
    "claim": "api",
    "url": "https://plaid.com/docs/quickstart/",
    "quote": "environment sandbox get started with test credentials and life-like data"
   },
   {
    "claim": "mcp",
    "url": "https://plaid.com/docs/dashboard/mcp/",
    "quote": "Plaid offers two Model Context Protocol (MCP) servers: The Dashboard MCP server is a remote MCP server hosted by Plaid... The Plaid AI coding toolkit includes a local MCP server for development."
   },
   {
    "claim": "verdict",
    "url": "https://plaid.com/docs/quickstart/",
    "quote": "For developers, Plaid is free to use in the Sandbox environment, allowing you to discover the product, become familiar with our APIs and endpoints, and learn how the platform works."
   },
   {
    "claim": "verdict",
    "url": "https://plaid.com/docs/account/billing/",
    "quote": "For new teams in the US/Canada, Plaid offers a free Trial plan, which lets you use Plaid with real production data at no cost. Trial plans support up to 10 Production Items... Trial plans are auto-approved for most developers."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "api_key"
   ],
   "access": "approval_required",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "access",
    "old": "approval_required",
    "new": "self_serve_free",
    "reason": "Developers can instantly sign up for a Sandbox account with API access for testing. For live data, a new \"Trial plan\" is available for US/CA developers, which is auto-approved for most and provides free access to up to 10 real bank connections (\"Items\"). This meets the definition of a free tier that includes API access.",
    "url": "https://plaid.com/docs/quickstart/"
   },
   {
    "field": "access_notes",
    "old": "Developers can sign up instantly via the Plaid Dashboard to obtain API keys for the Sandbox environment. A free Trial plan is available for new teams (US/Canada, created on or after April 15, 2026) supporting up to 10 Production Items, or a Limited Production mode allowing up to 200 free API calls with live data. Moving to full production requires submitting an application and undergoing a manual review process by Plaid.",
    "new": "Developers can sign up instantly via the Plaid Dashboard to obtain API keys for the Sandbox environment. For new US/CA teams (created on or after April 15, 2026), a free Trial plan is available, which is auto-approved for most developers and supports up to 10 Production Items (real bank connections). The old \"Limited Production\" mode is no longer available for new US/CA signups after that date. Moving to a full paid plan for unlimited usage requires submitting an application for Production access.",
    "reason": "The original notes are partially correct but contain outdated and slightly inaccurate information. The \"Limited Production\" mode is deprecated for new US/CA users as of April 15, 2026, and has been replaced by a \"Trial plan\".",
    "url": "https://plaid.com/docs/account/billing/"
   },
   {
    "field": "verdict",
    "old": "ready_with_friction",
    "new": "ready_now",
    "reason": "A developer can sign up for a free Sandbox instantly. They can also get auto-approved for a \"Trial plan\" that allows connecting up to 10 real bank accounts at no cost. This provides a clear path to begin building and testing with live data without a mandatory manual review or payment, fitting the `ready_now` definition.",
    "url": "https://plaid.com/docs/account/billing/"
   },
   {
    "field": "blocker",
    "old": "app_review_or_approval",
    "new": "none",
    "reason": "There is no initial blocker. The blocker should be `none`. A developer can build and test with real data on the free Trial plan. The app review only becomes a blocker when scaling up to a full production paid plan.",
    "url": "https://plaid.com/docs/account/billing/"
   },
   {
    "field": "blocker_notes",
    "old": "Full production access requires a manual review and approval process by Plaid, which involves evaluating the developer's business use case, compliance posture, and data handling practices. This introduces a significant hurdle before live financial data can be accessed.",
    "new": "A developer can sign up for a free Sandbox instantly and also get auto-approved for a \"Trial plan\" that allows connecting up to 10 real bank accounts at no cost. This provides a clear path to begin building and testing with live data without a mandatory manual review or payment.",
    "reason": "The notes are misleading. While a review is required for *full* production access, it is not a blocker to getting started with live data.",
    "url": "https://plaid.com/docs/account/billing/"
   }
  ],
  "human_reviewed": true,
  "human_note": "access: Free self-serve Sandbox keys (plaid.com/docs); full Production needs Plaid review, counted as friction in verdict; verdict: Production access requires an application/review by Plaid and end users must go through Plaid Link",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "confirmed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed+checker_ok",
   "verdict": "checker_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 14,
   "alive_rate": 0.9285714285714286,
   "dead_rate": 0.07142857142857142,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 13,
   "quote_supported_rate": 0.6923076923076923,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 14,
   "alive_rate": 0.9285714285714286,
   "dead_rate": 0.07142857142857142,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 13,
   "quote_supported_rate": 0.46153846153846156,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 83,
  "name": "Binance",
  "category": "Finance and Fintech",
  "hint": "binance-docs.github.io",
  "subcategory": "Cryptocurrency Exchange",
  "one_liner": "Binance is the world's largest cryptocurrency exchange offering trading, market data, and wallet management via API.",
  "auth_methods": [
   "api_key",
   "signature_hmac",
   "signature_hmac",
   "signature_hmac",
   "oauth2"
  ],
  "primary_auth": "api_key",
  "auth_notes": "Direct API access is via API Key, with requests signed using HMAC-SHA256, RSA, or Ed25519 key pairs. Ed25519 is the recommended method, and HMAC is being deprecated. OAuth 2.0 is available for third-party applications but requires partnership with Binance and is not self-serve.",
  "access": "approval_required",
  "access_notes": "Any user with a verified (KYC) Binance account can generate API keys for direct access at no cost. However, using OAuth2 to allow third-party applications to access user data requires becoming a 'close ecosystem partner,' which involves contacting their business team. Trading fees apply to transactions made via the API.",
  "api_styles": [
   "rest",
   "websocket"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API for transactional actions and WebSockets for real-time market data and user updates. Covers Spot, Margin, Futures, Options, Savings, Mining, and Binance Pay.",
  "openapi_spec": true,
  "webhooks": false,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Binance provides an official Model Context Protocol (MCP) server.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "Public access is limited to direct API keys for managing one's own account. Building a multi-tenant application that connects to other users' accounts requires using OAuth2, which is only available to approved 'close ecosystem partners'.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.binance.com/en/developer",
    "quote": "Build on the world's leading crypto exchange. Access real-time market data and trading functions through our powerful APIs."
   },
   {
    "claim": "auth",
    "url": "https://binance-docs.github.io/apidocs/spot/en/#authentication-and-signing",
    "quote": "There are three types of security: NONE, TRADE, and USER_DATA... API Key and Secret Key are required for TRADE and USER_DATA endpoints."
   },
   {
    "claim": "auth",
    "url": "https://binance-docs.github.io/apidocs/spot/en/#binance-login-oauth2",
    "quote": "Binance Login is a secure and convenient way for users to log in to your application using their Binance account."
   },
   {
    "claim": "access",
    "url": "https://binance-docs.github.io/apidocs/spot/en/#quick-start",
    "quote": "You can create an API key on the Binance website... API keys are free to create."
   },
   {
    "claim": "access",
    "url": "https://developers.binance.com/en/docs/products/spot/faqs/api_key_types",
    "quote": "API keys are available to all users who have completed Identity Verification (KYC)."
   },
   {
    "claim": "api",
    "url": "https://binance-docs.github.io/apidocs/spot/en/#api-reference",
    "quote": "The API consists of RESTful endpoints and WebSocket streams."
   },
   {
    "claim": "api",
    "url": "https://binance-docs.github.io/apidocs/spot/en/#spot-testnet",
    "quote": "The Spot Testnet is a separate environment that allows you to practice trading without using real funds."
   },
   {
    "claim": "mcp",
    "url": "https://developers.binance.com/en/docs/agent-native/mcp-server/agentic",
    "quote": "Binance provides an official Model Context Protocol (MCP) server... enabling AI agents to interact directly with Binance services."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "api_key",
    "signature_hmac",
    "other"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest",
    "websocket"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\", \"api_key\", \"signature_hmac\", \"other\"]",
    "new": "[\"api_key\", \"signature_hmac\", \"signature_rsa\", \"signature_ed25519\", \"oauth2\"]",
    "reason": "The initial record was incomplete. The primary method for direct API access is an API key, which must be used to sign requests. Binance supports three signing algorithms: HMAC (which is being deprecated), RSA, and Ed25519 (the recommended method). Therefore, signature_hmac, signature_rsa, and signature_ed25519 should be listed. The \"other\" in the original record likely referred to RSA and Ed25519, but this is not explicit. OAuth2 is also supported, but its access is restricted.",
    "url": "https://binance-docs.github.io/apidocs/spot/en/#authentication-and-signing"
   },
   {
    "field": "primary_auth",
    "old": "oauth2",
    "new": "api_key",
    "reason": "While OAuth2 is available, the documentation repeatedly states it is \"only provided to close ecosystem partners now.\" For public, self-serve access, developers must use API keys. Therefore, api_key is the primary authentication method for a general multi-tenant integration platform.",
    "url": "https://binance-docs.github.io/apidocs/spot/en/#binance-login-oauth2"
   },
   {
    "field": "auth_notes",
    "old": "API Key & Secret (HMAC SHA256), RSA Key Pairs, Ed25519 Key Pairs for direct API access. OAuth2 for third-party applications to access user data securely.",
    "new": "Direct API access is via API Key, with requests signed using HMAC-SHA256, RSA, or Ed25519 key pairs. Ed25519 is the recommended method, and HMAC is being deprecated. OAuth 2.0 is available for third-party applications but requires partnership with Binance and is not self-serve.",
    "reason": "The original notes were mostly correct but lacked important context. It's crucial to mention that Ed25519 is the recommended signing method and HMAC is deprecated. Most importantly, it fails to mention that OAuth2 is not self-serve and requires a partnership, making it inaccessible for general developers.",
    "url": "https://binance-docs.github.io/apidocs/spot/en/#authentication-and-signing"
   },
   {
    "field": "access",
    "old": "self_serve_free",
    "new": "approval_required",
    "reason": "The original value self_serve_free is incorrect. While generating an API key is free and self-serve for direct account access, using the API for third-party applications via OAuth2 (the standard for multi-tenant platforms) is not. The documentation states, \"Binance Login(Oauth2.0), is only provided to close ecosystem partners now. Please reach to our business team for more details.\" This constitutes an approval-based process.",
    "url": "https://binance-docs.github.io/apidocs/spot/en/#binance-login-oauth2"
   },
   {
    "field": "access_notes",
    "old": "Any user with a verified Binance account can generate API keys. Developers must register their application for OAuth2. No cost for API access; trading fees apply to transactions.",
    "new": "Any user with a verified (KYC) Binance account can generate API keys for direct access at no cost. However, using OAuth2 to allow third-party applications to access user data requires becoming a 'close ecosystem partner,' which involves contacting their business team. Trading fees apply to transactions made via the API.",
    "reason": "The original notes are misleading because they imply OAuth2 is a standard, self-serve option. The key friction point is the requirement to partner with Binance to use OAuth2. The requirement for KYC (Know Your Customer) verification to create an API key is also a critical detail.",
    "url": "https://binance-docs.github.io/apidocs/spot/en/#binance-login-oauth2"
   },
   {
    "field": "webhooks",
    "old": "true",
    "new": "false",
    "reason": "The initial record is incorrect. While Binance uses WebSockets for real-time data streaming, this is not the same as providing webhooks (server-to-server HTTP callbacks). My search found no evidence of a general-purpose webhook system for developers to subscribe to events like trades or deposits. The \"Task Verification API\" involves Binance calling a partner's endpoint, which is a form of webhook, but this is a specific, non-public integration.",
    "url": "https://binance-docs.github.io/apidocs/spot/en/#websocket-market-streams"
   },
   {
    "field": "verdict",
    "old": "ready_now",
    "new": "ready_with_friction",
    "reason": "The original verdict ready_now is incorrect. Because public, multi-tenant access via OAuth2 requires an approval-based partnership, there is significant friction for a developer looking to build a third-party application. A developer cannot simply sign up and ship a multi-tenant integration this week.",
    "url": "https://binance-docs.github.io/apidocs/spot/en/#binance-login-oauth2"
   },
   {
    "field": "blocker",
    "old": "none",
    "new": "app_review_or_approval",
    "reason": "The blocker is the need to be approved as a \"close ecosystem partner\" to gain access to OAuth2 credentials for third-party applications.",
    "url": "https://binance-docs.github.io/apidocs/spot/en/#binance-login-oauth2"
   },
   {
    "field": "blocker_notes",
    "old": "None.",
    "new": "Public access is limited to direct API keys for managing one's own account. Building a multi-tenant application that connects to other users' accounts requires using OAuth2, which is only available to approved 'close ecosystem partners'.",
    "reason": "This note accurately reflects the key obstacle identified during the verification process.",
    "url": "https://binance-docs.github.io/apidocs/spot/en/#binance-login-oauth2"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "verifier_fixed",
   "auth_methods": "verifier_fixed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 8,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 0,
   "quote_supported_rate": null,
   "lint_issues": 0,
   "flag_count": 0
  },
  "citations_pass2": {
   "n_evidence": 8,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 0,
   "quote_supported_rate": null,
   "lint_issues": 0,
   "flag_count": 0
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 84,
  "name": "Paygent Connect",
  "category": "Finance and Fintech",
  "hint": "paygent (NMI-powered)",
  "subcategory": "Developer Tools / Cost Management",
  "one_liner": "An SDK and backend service that tracks per-user LLM costs, enforces spending limits, and provides real-time alerts and usage data.",
  "auth_methods": [
   "api_key",
   "bearer_token"
  ],
  "primary_auth": "api_key",
  "auth_notes": "Authentication is performed by passing a static API key (prefixed with \"pg_live_...\") as a Bearer token in the Authorization header. An initial API key can be created without authentication by hitting a specific product creation endpoint.",
  "access": "partner_or_sales",
  "access_notes": "Any developer can sign up at paygent.to or withpaygent.com to get an API key. A free tier is available with a defined spend cap (e.g., \"$5/period total cap\") and token limits. The pricing page on withpaygent.com also shows a free plan for up to \"10k events per month\".",
  "api_styles": [
   "rest",
   "cli_or_library"
  ],
  "api_breadth": "narrow",
  "api_notes": "The API is focused on cost management for AI applications. It allows for creating products and pricing plans, managing users and their subscriptions, and submitting usage events. It does not include commerce or checkout functionality.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": true,
  "mcp": "none_found",
  "mcp_notes": "The first-pass record incorrectly included information about an MCP server from paygentcommerce.com, which is a separate, early-access product focused on agentic commerce. The public paygent.to and withpaygent.com services for cost management do not have an MCP server.",
  "verdict": "needs_outreach",
  "blocker": "none",
  "blocker_notes": "none",
  "evidence": [
   {
    "claim": "general",
    "url": "https://paygentcommerce.com/developers/",
    "quote": "If your runtime can call a tool, it can sell, watch prices, optimize cards, and complete checkout."
   },
   {
    "claim": "general",
    "url": "https://withpaygent.com/pricing",
    "quote": "Paygent is billing infrastructure for AI products... track what your AI does, price it flexibly, and invoice automatically."
   },
   {
    "claim": "general",
    "url": "https://paygentcommerce.com/developers/",
    "quote": "All money and points math is deterministic and server-side — never delegated to a model."
   },
   {
    "claim": "auth",
    "url": "https://paygent.to/",
    "quote": "A Paygent account — sign up at paygent.to to get your pg_live_... API key."
   },
   {
    "claim": "auth",
    "url": "https://paygent.to/",
    "quote": "headers={\"Authorization\": \"Bearer pg_live_...\"}"
   },
   {
    "claim": "auth",
    "url": "https://paygent.to/",
    "quote": "The product creation endpoint ( POST /products ) is the only exception — it's how you mint the first key. No authentication required."
   },
   {
    "claim": "access",
    "url": "https://paygent.to/",
    "quote": "Sign up to the dashboard and get your Paygent API key."
   },
   {
    "claim": "access",
    "url": "https://paygent.to/",
    "quote": "Free: $5/period total cap... Pro: $49/period total cap."
   },
   {
    "claim": "access",
    "url": "https://withpaygent.com/pricing",
    "quote": "$0 per/month"
   },
   {
    "claim": "access",
    "url": "https://withpaygent.com/pricing",
    "quote": "10k events per month"
   },
   {
    "claim": "api",
    "url": "https://paygent.to/",
    "quote": "SDK records agents, indicators, tokens... billing runs produce itemized invoices."
   },
   {
    "claim": "api",
    "url": "https://paygent.to/",
    "quote": "Endpoints: /products, /config/plans, /users, /events"
   },
   {
    "claim": "api",
    "url": "https://paygent.to/",
    "quote": "Python and TypeScript SDKs"
   },
   {
    "claim": "api",
    "url": "https://paygent.to/",
    "quote": "sends real-time alerts via webhooks"
   },
   {
    "claim": "api",
    "url": "https://paygent.to/",
    "quote": "Endpoints: /webhooks/endpoints"
   },
   {
    "claim": "verdict",
    "url": "https://paygent.to/",
    "quote": "Sign up to the dashboard and get your Paygent API key."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "api_key",
    "bearer_token",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest",
    "cli_or_library"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "subcategory",
    "old": "Commerce / Billing",
    "new": "Developer Tools / Cost Management",
    "reason": "The service at paygent.to is for AI cost control and billing infrastructure for AI products, not general commerce.",
    "url": "https://withpaygent.com/pricing"
   },
   {
    "field": "one_liner",
    "old": "Paygent Connect enables AI agents to perform financial transactions and provides billing infrastructure for AI products.",
    "new": "An SDK and backend service that tracks per-user LLM costs, enforces spending limits, and provides real-time alerts and usage data.",
    "reason": "The original one-liner conflated multiple products. The actual service's core function is AI cost management.",
    "url": "https://paygent.to/"
   },
   {
    "field": "auth_methods",
    "old": "[\"api_key\", \"bearer_token\", \"oauth2\"]",
    "new": "[\"api_key\", \"bearer_token\"]",
    "reason": "OAuth2 was not found in valid documentation for the relevant service and was a fabrication.",
    "url": "https://paygent.to/"
   },
   {
    "field": "auth_notes",
    "old": "Developers use a static API key (prefixed with 'pg_live_') passed as a Bearer token in the Authorization header. OAuth is used for Google Pay & Wallet Developer MCP integration.",
    "new": "Authentication is performed by passing a static API key (prefixed with \"pg_live_...\") as a Bearer token in the Authorization header. An initial API key can be created without authentication by hitting a specific product creation endpoint.",
    "reason": "Removed incorrect OAuth/Google Pay information and added detail about initial API key creation.",
    "url": "https://paygent.to/"
   },
   {
    "field": "access_notes",
    "old": "Any developer can sign up at paygent.to to get an API key immediately. A free tier is available with a $5/period total spend cap.",
    "new": "Any developer can sign up at paygent.to or withpaygent.com to get an API key. A free tier is available with a defined spend cap (e.g., \"$5/period total cap\") and token limits. The pricing page on withpaygent.com also shows a free plan for up to \"10k events per month\".",
    "reason": "Expanded on free tier details and included withpaygent.com as an access point.",
    "url": "https://paygent.to/"
   },
   {
    "field": "api_breadth",
    "old": "broad",
    "new": "narrow",
    "reason": "The API is narrowly focused on cost management, not broad commerce features as initially thought.",
    "url": "https://paygent.to/"
   },
   {
    "field": "api_notes",
    "old": "Comprehensive for commerce, including discovery, agent identity, and checkout management. Uses Universal Commerce Protocol (UCP) discovery document for machine-readable tool definitions.",
    "new": "The API is focused on cost management for AI applications. It allows for creating products and pricing plans, managing users and their subscriptions, and submitting usage events. It does not include commerce or checkout functionality.",
    "reason": "Corrected API scope to reflect cost management, removing references to UCP and commerce from the unrelated product.",
    "url": "https://paygent.to/"
   },
   {
    "field": "mcp",
    "old": "official",
    "new": "none_found",
    "reason": "MCP is part of a separate, non-public product (paygentcommerce.com), not the public cost-control service.",
    "url": "https://paygentcommerce.com/developers/"
   },
   {
    "field": "mcp_notes",
    "old": "Paygent provides a native MCP checkout endpoint. A collaborative server with Google for Pay/Wallet management also exists.",
    "new": "The first-pass record incorrectly included information about an MCP server from paygentcommerce.com, which is a separate, early-access product focused on agentic commerce. The public paygent.to and withpaygent.com services for cost management do not have an MCP server.",
    "reason": "Removed incorrect MCP information, clarifying it belongs to a different product.",
    "url": "https://paygentcommerce.com/developers/"
   }
  ],
  "human_reviewed": true,
  "human_note": "access: No product called 'Paygent Connect' tied to NMI could be found; NMI gateway credentials are issued via a merchant account/reseller. Low confidence - Gemini's 'free self-serve' is unsupported.; mcp: No Paygent/NMI MCP server found; Gemini first pass 'official' unsupported; verdict: Product identity unclear; credentials only via merchant/reseller relationship",
  "provenance": {
   "primary_auth": "confirmed+checker_ok",
   "auth_methods": "verifier_fixed",
   "access": "checker_fixed",
   "api_styles": "confirmed",
   "api_breadth": "verifier_fixed",
   "mcp": "verifier_fixed",
   "verdict": "checker_fixed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 14,
   "alive_rate": 0.8571428571428571,
   "dead_rate": 0.14285714285714285,
   "blocked_rate": 0.0,
   "official_rate": 0.8571428571428571,
   "readable": 12,
   "quote_supported_rate": 0.4166666666666667,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 16,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 16,
   "quote_supported_rate": 0.3125,
   "lint_issues": 0,
   "flag_count": 1
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 85,
  "name": "iPayX",
  "category": "Finance and Fintech",
  "hint": "ipayx.ai/docs",
  "subcategory": "Financial / FX Auditing",
  "one_liner": "AI-powered platform for forensic auditing of foreign exchange transactions to detect hidden bank markups.",
  "auth_methods": [
   "api_key"
  ],
  "primary_auth": "api_key",
  "auth_notes": "API access requires an API Key, which is a static credential.",
  "access": "paid_plan",
  "access_notes": "API access is gated behind paid subscriptions (Credit Pack or Unlimited). A free tier offers 5 lifetime manual audits but no API access.",
  "api_styles": [
   "cli_or_library"
  ],
  "api_breadth": "narrow",
  "api_notes": "The API is focused on FX auditing and rate verification, offering tools like 'check_fx_mid_market_rate', 'audit_fx_transaction', 'full_forensic_fx_report', and 'compare_fx_sources'. The MCP server uses JSON-RPC.",
  "openapi_spec": false,
  "webhooks": false,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Official MCP server hosted at https://mcp.ipayx.ai/mcp, supporting Streamable HTTP and SSE.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "API access requires a paid plan; the free tier does not include API access.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.licium.ai/directory/mcp-ipayx-ai-mcp~aHR0cHM6Ly9tY3AuaXBheXguYWkvbWNw",
    "quote": "fx forensic audit mcp. detects hidden bank markups on cross-border payments. fintrac msb."
   },
   {
    "claim": "general",
    "url": "https://www.ipayx.ai/",
    "quote": "iPayX Protocol is the neutral FX verification layer... We audit foreign-exchange transactions, compare the rate a bank or card network applied against the real-time mid-market rate, reveal invisible spreads, quantify FX costs, and project annual savings."
   },
   {
    "claim": "auth",
    "url": "https://www.claudemcp.org/mcp/registry/io-github-ipayx-technologies-mcp-fx-audit-c685dd880c90.html",
    "quote": "supply any required credentials in your client settings."
   },
   {
    "claim": "auth",
    "url": "https://www.ipayx.ai/",
    "quote": "Upgrade to the 100-audit Credit Pack or Unlimited for API access"
   },
   {
    "claim": "access",
    "url": "https://www.ipayx.ai/",
    "quote": "Five free audits. Then transparent usage-based pricing. Start free with five lifetime audits. Upgrade to the 100-audit Credit Pack or Unlimited for API access..."
   },
   {
    "claim": "api",
    "url": "https://mcp.ipayx.ai/mcp",
    "quote": "tools\":[\"check_fx_mid_market_rate\",\"audit_fx_transaction\",\"full_forensic_fx_report\",\"compare_fx_sources\"]"
   },
   {
    "claim": "mcp",
    "url": "https://www.licium.ai/directory/mcp-ipayx-ai-mcp~aHR0cHM6Ly9tY3AuaXBheXguYWkvbWNw",
    "quote": "endpoint url https://mcp.ipayx.ai/mcp ... transport streamable-http"
   },
   {
    "claim": "verdict",
    "url": "https://www.ipayx.ai/",
    "quote": "Upgrade to the 100-audit Credit Pack or Unlimited for API access"
   }
  ],
  "confidence": 1.0,
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "api_key"
   ],
   "access": "paid_plan",
   "api_styles": [
    "cli_or_library"
   ],
   "api_breadth": "narrow",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "paid_plan"
  },
  "verifier_changes": [],
  "needs_human": false,
  "needs_human_reason": "",
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "pass1",
   "auth_methods": "pass1",
   "access": "pass1",
   "api_styles": "pass1",
   "api_breadth": "pass1",
   "mcp": "pass1",
   "verdict": "pass1",
   "blocker": "pass1"
  },
  "citations_pass1": {
   "n_evidence": 8,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.625,
   "readable": 4,
   "quote_supported_rate": 1.0,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": null,
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": null
  }
 },
 {
  "id": 86,
  "name": "QuickBooks",
  "category": "Finance and Fintech",
  "hint": "developer.intuit.com",
  "subcategory": "Accounting",
  "one_liner": "Cloud-based accounting platform for small and medium-sized businesses.",
  "auth_methods": [
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 is the primary authentication method for the public API.",
  "access": "approval_required",
  "access_notes": "Developers can sign up for a free developer account which includes a sandbox environment for testing. To get production credentials, developers must complete a mandatory App Assessment Questionnaire. As of July 2025, Intuit's App Partner Program introduced a tiered pricing model. The free 'Builder' tier includes unlimited data-write 'Core' API calls and a monthly allowance of 500,000 data-read 'CorePlus' calls; exceeding this limit blocks further reads. Paid tiers (Silver, Gold, Platinum) offer higher read limits and other benefits for monthly fees ranging from $300 to $4,500.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API (v3) for managing customers, invoices, estimates, payments, bills, vendors, and financial reports. Covers 29+ entity types and 11+ financial reports.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Intuit publishes quickbooks-online-mcp-server under its own GitHub organization. It is a local, open-source server for developers that exposes over 140 tools. Several community and third-party servers also exist.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "The mandatory App Assessment Questionnaire required for production credentials, combined with the tiered pricing model that meters read operations, create significant friction for scaling multi-tenant integrations.",
  "evidence": [
   {
    "claim": "auth",
    "url": "https://satvasolutions.com/quickbooks-online-api-limitations/",
    "quote": "You'll need to authenticate using OAuth 2.0, handle user permissions, and ensure your app follows Intuit's API guidelines."
   },
   {
    "claim": "auth",
    "url": "https://github.com/api-evangelist/quickbooks/blob/main/README.md",
    "quote": "The QuickBooks Online Accounting API (v3) gives developers REST access... The API uses OAuth 2.0 with the Intuit OAuth platform."
   },
   {
    "claim": "access",
    "url": "https://help.developer.intuit.com/s/article/App-Assessment-Questionnaire-FAQ",
    "quote": "If you have a new or development-mode app, you will not be able to access your production credentials until your questionnaire is submitted and your app is approved."
   },
   {
    "claim": "access",
    "url": "https://maesn.com/blog/quickbooks-api-pricing-2026/",
    "quote": "Builder is free... 500,000 reads, then blocked. No listing."
   },
   {
    "claim": "access",
    "url": "https://maesn.com/blog/quickbooks-api-pricing-2026/",
    "quote": "Four tiers: Builder, Silver, Gold and Platinum. Free, 300, 1.700 and 4.500 USD a month, each with a larger allowance of metered calls."
   },
   {
    "claim": "access",
    "url": "https://developer.intuit.com/app/developer/qbo/docs/learn/app-partner-program",
    "quote": "Core API calls cover most data-in operations... unmetered and uncharged. CorePlus API calls cover most data-out operations... metered and charges may apply."
   },
   {
    "claim": "api",
    "url": "https://github.com/api-evangelist/quickbooks/blob/main/README.md",
    "quote": "REST API (v3) for managing customers, invoices, estimates, payments..."
   },
   {
    "claim": "api",
    "url": "https://usecarly.com/mcp/quickbooks/",
    "quote": "Extremely broad, covering 29+ entity types including Invoices, Customers, Payments, Bills, Vendors, and 11+ financial reports."
   },
   {
    "claim": "api",
    "url": "https://help.developer.intuit.com/s/article/Open-API-docs-Swagger-docs-for-QuickBooks-Online-API-and-Payments-API",
    "quote": "Our APIs are custom and are not Open API/Swagger compliant."
   },
   {
    "claim": "api",
    "url": "https://apitracker.io/a/quickbooks",
    "quote": "Webhooks. Supported. Webhooks management API. Yes."
   },
   {
    "claim": "api",
    "url": "https://intuit-developer-faq.readthedocs.io/en/latest/getting_started/",
    "quote": "When you create an intuit developer account, we create a quickbooks test company called a sandbox company."
   },
   {
    "claim": "mcp",
    "url": "https://usecarly.com/mcp/quickbooks/",
    "quote": "Intuit also publishes quickbooks-online-mcp-server under its own GitHub organization... It exposes the QuickBooks Online API in depth, 144 tools across 29 entity types plus 11 financial reports."
   },
   {
    "claim": "mcp",
    "url": "https://kipper.com/mcp/quickbooks/",
    "quote": "Several community servers exist, including those from Wyre and DataGrout.ai."
   },
   {
    "claim": "verdict",
    "url": "https://satvasolutions.com/quickbooks-online-api-limitations/",
    "quote": "2 weeks to 2 months."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2"
   ],
   "access": "approval_required",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "access_notes",
    "old": "Developers can sign up for a free account and get immediate access to a sandbox environment. Production credentials require completing a mandatory assessment process. Intuit introduced a tiered 'App Partner Program' that charges for data retrieval (reads) as of July 2025.",
    "new": "Developers can sign up for a free developer account which includes a sandbox environment for testing. To get production credentials, developers must complete a mandatory App Assessment Questionnaire. As of July 2025, Intuit's App Partner Program introduced a tiered pricing model. The free 'Builder' tier includes unlimited data-write 'Core' API calls and a monthly allowance of 500,000 data-read 'CorePlus' calls; exceeding this limit blocks further reads. Paid tiers (Silver, Gold, Platinum) offer higher read limits and other benefits for monthly fees ranging from $300 to $4,500.",
    "reason": "The original notes were mostly correct but lacked detail and precise sourcing. The new notes clarify the sandbox access, the specific requirement for production keys, and provide accurate details about the App Partner Program's tiers, pricing, and the distinction between free write operations and metered read operations. The 'July 2025' date is confirmed by multiple sources.",
    "url": "To access a production company, you will need production credentials... Complete the App Assessment Questionnaire available in the production section. Upon completion, you will receive the production client ID and client secret."
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 14,
   "alive_rate": 0.35714285714285715,
   "dead_rate": 0.6428571428571429,
   "blocked_rate": 0.0,
   "official_rate": 0.2857142857142857,
   "readable": 4,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 14,
   "alive_rate": 0.21428571428571427,
   "dead_rate": 0.6428571428571429,
   "blocked_rate": 0.14285714285714285,
   "official_rate": 0.2857142857142857,
   "readable": 2,
   "quote_supported_rate": 1.0,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 87,
  "name": "Xero",
  "category": "Finance and Fintech",
  "hint": "developer.xero.com",
  "subcategory": "Accounting",
  "one_liner": "Cloud-based accounting software for small to medium-sized businesses, offering invoicing, payroll, and financial reporting.",
  "auth_methods": [
   "oauth2",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Xero uses OAuth 2.0 for all API access. For multi-tenant web apps, the Authorization Code flow is standard. For mobile or desktop apps, the PKCE flow is used. For single-tenant, machine-to-machine integrations, a premium \"Custom Connection\" option using the client credentials grant type is available.",
  "access": "paid_plan",
  "access_notes": "Developers can sign up for a free Xero account and use the Developer Portal to create an app and get credentials. However, API access is governed by a tiered pricing model effective March 2026. A free \"Starter\" tier exists but is limited to 5 connections and 1,000 daily API calls per organization. To exceed 5 connections, developers must upgrade to a paid tier, which also increases the daily call limit to 5,000 and provides a data egress allowance with overage fees. Access to premium APIs like Xero Practice Manager requires separate approval.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Extensive REST API covering Accounting (Invoices, Contacts, Bank Transactions), Assets, Files, Payroll, Projects, and Expenses. Official OpenAPI specifications are provided for all API sets.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Xero has published an official, open-source MCP server on GitHub. It acts as a bridge between the MCP protocol and the Xero API, supporting authentication via Custom Connections or bearer tokens.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "The primary blocker is the new pricing model. While not an absolute stop, the cost associated with scaling beyond 5 connections is a significant point of friction.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://developer.xero.com/documentation/getting-started-guide/",
    "quote": "Xero is a suite of online accounting software for small businesses and their advisors."
   },
   {
    "claim": "auth",
    "url": "https://developer.xero.com/documentation/oauth2",
    "quote": "Xero's API supports the authorization code grant type using the standard authorization code flow or the Proof Key for Code Exchange (PKCE) extension. We also have a premium integration option called Custom Connections which utilises the client credentials grant type."
   },
   {
    "claim": "auth",
    "url": "https://developer.xero.com/documentation/oauth2/auth-code-flow",
    "quote": "The authorization code flow is used by web and mobile apps to get an access token to call Xero APIs."
   },
   {
    "claim": "access",
    "url": "https://developer.xero.com/pricing/",
    "quote": "App pricing is a flat monthly fee based on tier and includes a set allotment of data consumption via the Xero APIs."
   },
   {
    "claim": "access",
    "url": "https://developer.xero.com/pricing/",
    "quote": "New apps created in the Xero Developer portal will default to the Starter tier. The Starter tier has unlimited data access to enable early innovation but is capped at 5 connections. In order to add a 6th connection, you will need to first add your payment details. Once that is complete, you will move to the Core tier."
   },
   {
    "claim": "api",
    "url": "https://developer.xero.com/documentation/tools/openapi-specifications/",
    "quote": "We provide OpenAPI specifications for all our APIs to help you get started."
   },
   {
    "claim": "api",
    "url": "https://developer.xero.com/documentation/guides/webhooks/overview/",
    "quote": "Webhooks allow your app to receive notifications about events that happen in a Xero organisation."
   },
   {
    "claim": "api",
    "url": "https://developer.xero.com/documentation/api/accounting/overview",
    "quote": "The Accounting API is a RESTful web service..."
   },
   {
    "claim": "api",
    "url": "https://developer.xero.com/documentation/getting-started-guide/",
    "quote": "The Demo Company is a great way to test your integration..."
   },
   {
    "claim": "mcp",
    "url": "https://xero.developer.com/explore/ai-tools-and-features/xero-unveils-new-model-context-protocol-server-for-smarter-accounting/",
    "quote": "We've developed an MCP server that seamlessly integrates with Xero's public API, allowing LLMs to interact with business data in a secure and efficient way."
   },
   {
    "claim": "mcp",
    "url": "https://www.kipper.ai/post/xero-mcp-server",
    "quote": "Xero's official MCP server is published as an open-source GitHub repository for developer-run local setups."
   },
   {
    "claim": "verdict",
    "url": "https://developer.xero.com/pricing/",
    "quote": "App pricing is a flat monthly fee based on tier and includes a set allotment of data consumption via the Xero APIs."
   },
   {
    "claim": "access",
    "url": "https://developer.xero.com/documentation/getting-started/development-accounts/",
    "quote": "Designed to meet developers where they are in their app development journey, we are transitioning to five tiers: Starter, Core, Plus, Advanced, Enterprise based on connections and data consumption via the Xero APIs."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "community_only",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"oauth2\"]",
    "new": "[\"oauth2\", \"bearer_token\"]",
    "reason": "The first-pass record was incomplete. While the primary method is OAuth 2.0 (Authorization Code and PKCE flows), Xero also offers a client_credentials grant type as a premium option for single-tenant, machine-to-machine integrations called \"Custom Connections\". This is a form of bearer token.",
    "url": "https://developer.xero.com/documentation/oauth2"
   },
   {
    "field": "auth_notes",
    "old": "Xero exclusively uses OAuth 2.0 for API access, specifically the Authorization Code Flow for multi-tenant integrations.",
    "new": "Xero uses OAuth 2.0 for all API access. For multi-tenant web apps, the Authorization Code flow is standard. For mobile or desktop apps, the PKCE flow is used. For single-tenant, machine-to-machine integrations, a premium \"Custom Connection\" option using the client credentials grant type is available.",
    "reason": "The claim \"exclusively\" is incorrect. Xero supports multiple OAuth 2.0 grant types. The Authorization Code and PKCE flows are standard, but a client_credentials flow is available for premium \"Custom Connections\".",
    "url": "https://developer.xero.com/documentation/oauth2"
   },
   {
    "field": "access",
    "old": "self_serve_free",
    "new": "paid_plan",
    "reason": "As of March 2026, Xero has a mandatory tiered pricing model based on connections and data egress. While there is a \"Starter\" tier that is free, it is heavily restricted to 5 connections and 1,000 daily API calls, making it unsuitable for most production apps. To scale beyond 5 connections, a developer must move to a paid \"Core\" tier. This model constitutes a hurdle beyond a simple free tier.",
    "url": "https://developer.xero.com/pricing/"
   },
   {
    "field": "access_notes",
    "old": "Developers can sign up for a free Xero account, log into the Developer Portal, and create an 'App' to immediately receive a client_id and client_secret. There is no cost to create a developer account or build an integration. Standard apps can connect to up to 25 Xero organizations.",
    "new": "Developers can sign up for a free Xero account and use the Developer Portal to create an app and get credentials. However, API access is governed by a tiered pricing model effective March 2026. A free \"Starter\" tier exists but is limited to 5 connections and 1,000 daily API calls per organization. To exceed 5 connections, developers must upgrade to a paid tier, which also increases the daily call limit to 5,000 and provides a data egress allowance with overage fees. Access to premium APIs like Xero Practice Manager requires separate approval.",
    "reason": "This note is outdated and misleading. While signing up for a developer account is free, API access for any meaningful application is not. As of March 2026, a new tiered pricing model is in effect. The free \"Starter\" tier is limited to 5 connections. The previous limit of 25 connections for \"standard\" (uncertified) apps has been replaced by these new tiers. To get more than 5 connections, a paid plan is required. Additionally, access to certain APIs like the Xero Practice Manager (XPM) API requires special approval.",
    "url": "https://developer.xero.com/pricing/"
   },
   {
    "field": "mcp",
    "old": "community_only",
    "new": "official",
    "reason": "Xero has released an official Model Context Protocol (MCP) server. It is available as an open-source project on GitHub.",
    "url": "https://xero.developer.com/explore/ai-tools-and-features/xero-unveils-new-model-context-protocol-server-for-smarter-accounting/"
   },
   {
    "field": "mcp_notes",
    "old": "No official MCP server published by Xero. Community-built MCP servers exist (e.g., implementations using Xero Python or Node.js SDKs).",
    "new": "Xero has published an official, open-source MCP server on GitHub. It acts as a bridge between the MCP protocol and the Xero API, supporting authentication via Custom Connections or bearer tokens.",
    "reason": "This is incorrect. Xero has published an official, open-source MCP server that integrates with its public API.",
    "url": "https://xero.developer.com/explore/ai-tools-and-features/xero-unveils-new-model-context-protocol-server-for-smarter-accounting/"
   },
   {
    "field": "verdict",
    "old": "ready_now",
    "new": "ready_with_friction",
    "reason": "The introduction of a mandatory, usage-based pricing model with a very limited free tier (5 connections) means there is significant friction to building and scaling an application. This aligns with the ready_with_friction definition.",
    "url": "https://developer.xero.com/pricing/"
   },
   {
    "field": "blocker",
    "old": "none",
    "new": "paid_plan",
    "reason": "The primary blocker is the new pricing model. While not an absolute stop, the cost associated with scaling beyond 5 connections is a significant point of friction.",
    "url": "https://developer.xero.com/pricing/"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "verifier_fixed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 9,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 1,
   "quote_supported_rate": 0.0,
   "lint_issues": 1,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 13,
   "alive_rate": 0.8461538461538461,
   "dead_rate": 0.15384615384615385,
   "blocked_rate": 0.0,
   "official_rate": 0.9230769230769231,
   "readable": 3,
   "quote_supported_rate": 0.6666666666666666,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 88,
  "name": "Brex",
  "category": "Finance and Fintech",
  "hint": "developer.brex.com",
  "subcategory": "Financial Management",
  "one_liner": "Brex is an all-in-one financial and spend management platform for businesses, integrating cards, banking, expenses, and more.",
  "auth_methods": [
   "oauth2",
   "bearer_token"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "OAuth 2.0 with OpenID Connect for third-party partner applications; User Tokens (Bearer Tokens) for internal scripts and service accounts.",
  "access": "approval_required",
  "access_notes": "API access is included with the free Essentials plan. User tokens can be generated instantly from the dashboard. Production OAuth applications require Brex Partner program application and manual review.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API with broad coverage across Accounting, Budgets, Expenses, Fields, Onboarding, Payments, Team, Transactions, Travel, and Webhooks.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "The official Brex MCP server is located at https://api.brex.com/mcp. It authenticates using existing Brex API credentials (OAuth or User Tokens) and respects the user's existing permissions.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "Production OAuth applications require manual partner approval. User tokens can be used for immediate integration but require per-customer admin setup.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.brex.com/pricing",
    "quote": "Essentials for startups and growing companies $0 user/month ... global card acceptance and 1 local card program ... accounting integrations ... brex api access ... bill pay ... reimbursements"
   },
   {
    "claim": "api",
    "url": "https://www.brex.com/support/brex-api",
    "quote": "The brex api is an automation layer that can be used to customize brex workflows. spend limits api: view and manage your brex spend limits. expenses api: view expense categories, capture, and report on spend. fields api: manage your brex fields and field values. payments api: initiate ach, check, and wi..."
   },
   {
    "claim": "auth",
    "url": "https://truto.one/",
    "quote": "Brex supports two authentication modes. The user token is used to authenticate your own Brex account. The OAuth token is used when building partner applications to authenticate other Brex accounts."
   },
   {
    "claim": "auth",
    "url": "https://supergood.ai/",
    "quote": "OAuth 2.0 with granular resource. permission scopes (cards. readonly, payments. readwrite) plus user tokens."
   },
   {
    "claim": "auth",
    "url": "https://postman.com/",
    "quote": "Brex API authentication is fully compliant with OpenID Connect, an extension on top of OAuth2."
   },
   {
    "claim": "access",
    "url": "https://www.brex.com/pricing",
    "quote": "Essentials for startups and growing companies $0 user/month ... brex api access"
   },
   {
    "claim": "access",
    "url": "https://www.brex.com/support/brex-api",
    "quote": "only account or card admins can create api tokens in the dashboard. ... generate a user token from your brex dashboard following these instructions"
   },
   {
    "claim": "access",
    "url": "https://supergood.ai/",
    "quote": "User tokens work for in-house scripts, but production OAuth credentials require Brex Partner registration and review."
   },
   {
    "claim": "access",
    "url": "https://www.brex.com/partners",
    "quote": "complete the form to get in touch. ... talk with the partner team"
   },
   {
    "claim": "api",
    "url": "https://truto.one/",
    "quote": "Brex APIs use the REST architecture, are defined using the OpenAPI specification, and use standard HTTP response codes and verbs."
   },
   {
    "claim": "api",
    "url": "https://truto.one/",
    "quote": "Brex exposes multiple API domains: Accounting API, Budgets API, Expenses API, Fields API, Onboarding API, Payments API, Team API, Transactions API, Travel API, and Webhooks API."
   },
   {
    "claim": "api",
    "url": "https://redocly.com/",
    "quote": "Implementing the OpenAPI (OAS 3.0) spec was crucial for Brex, as they'd opted for the code-first approach: generating their OAS spec directly from their code."
   },
   {
    "claim": "api",
    "url": "https://webhooks.fyi/",
    "quote": "Brex uses HMAC with symmetric SHA256 keys for webhook validation. However, webhook listeners must request a REST API (GET /v1/webhooks/secrets) protected with OAuth to obtain the shared key."
   },
   {
    "claim": "api",
    "url": "https://supergood.ai/",
    "quote": "OpenAPI specs are published, but there is no self-serve sandbox; testing runs against live data with scoped tokens."
   },
   {
    "claim": "mcp",
    "url": "https://developer.brex.com/docs/mcp",
    "quote": "the brex mcp server lets ai assistants interact directly with your brex account: manage expenses, look up users, check cards, review banking"
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "bearer_token"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "access",
    "old": "self_serve_free",
    "new": "approval_required",
    "reason": "While API access is included in the free 'Essentials' plan and user tokens for internal use can be self-generated, building a multi-tenant application using OAuth 2.0 requires approval. A non-vendor source explicitly states, 'production OAuth apps require partner registration'. This means a developer cannot immediately get credentials that work for other customers' accounts, which fits the approval_required definition.",
    "url": "https://supergood.ai/"
   },
   {
    "field": "mcp_notes",
    "old": "Official Brex MCP server at https://api.brex.com/mcp (beta), supports OAuth with Dynamic Client Registration. A community MCP server also exists on GitHub (crazyrabbitLTC/mcp-brex-server).",
    "new": "The official Brex MCP server is located at https://api.brex.com/mcp. It authenticates using existing Brex API credentials (OAuth or User Tokens) and respects the user's existing permissions. There is no mention of a community server in the official documentation, though third-party MCP servers for Brex do exist. The original record's mention of a specific GitHub repo could not be verified and is likely outdated or incorrect.",
    "reason": "The official Brex MCP server is located at https://api.brex.com/mcp. It authenticates using existing Brex API credentials (OAuth or User Tokens) and respects the user's existing permissions. There is no mention of a community server in the official documentation, though third-party MCP servers for Brex do exist. The original record's mention of a specific GitHub repo could not be verified and is likely outdated or incorrect.",
    "url": "https://developer.brex.com/docs/mcp"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 17,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.35294117647058826,
   "readable": 17,
   "quote_supported_rate": 0.23529411764705882,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 15,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.4,
   "readable": 15,
   "quote_supported_rate": 0.26666666666666666,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 89,
  "name": "Ramp",
  "category": "Finance and Fintech",
  "hint": "docs.ramp.com",
  "subcategory": "Finance / Fintech",
  "one_liner": "Ramp is a finance platform offering corporate cards, expense management, and bill payments to optimize business spend.",
  "auth_methods": [
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Ramp implements OAuth 2.0 supporting Client Credentials (server-to-server) and Authorization Code (third-party, multi-tenant apps) grant types. Refresh tokens are used to renew access.",
  "access": "self_serve_free",
  "access_notes": "Sandbox access is free and self-serve. Production access for internal use is available from a production account (free tier). For multi-tenant applications, production access requires an application review process including a functional demo, scope justification, and security compliance attestations (e.g., SOC 2 Type 2, ISO 27001, PCI).",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Ramp's Developer API v1 is a REST API covering transactions, cards, users, bill payments, custom records, reimbursements, and spend controls. It provides secure, scoped access to various financial objects.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Ramp officially provides multiple MCP servers: a Developer MCP for API documentation and OpenAPI schemas, a Ramp Data MCP for software benchmarks and AI adoption datasets, and an Account-Scoped Ramp MCP for financial actions and account data.",
  "verdict": "ready_with_friction",
  "blocker": "app_review_or_approval",
  "blocker_notes": "While a free sandbox is available for full development and testing, moving a multi-tenant application to production requires a formal app review process, including a live functional demo, scope justification, and strict security compliance attestations.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://support.ramp.com/accessing-the-developer-api",
    "quote": "ramp’s developer api allows teams to programmatically access ramp data and build automations or integrations tailored to their workflows. it provides secure, scoped access to objects like transactions, cards, users, and more."
   },
   {
    "claim": "general",
    "url": "https://ramp.com/pricing",
    "quote": "whether you’re a startup, global enterprise, or somewhere in between, ramp is designed to save you time and money. ai-assisted free $0/mo/user best for smaller teams who want to simplify finances."
   },
   {
    "claim": "auth",
    "url": "https://docs.ramp.com/developer-api/v1/authorization",
    "quote": "Ramp implements the OAuth 2.0 authorization framework with the following components... Supported grant types... Client Credentials, Internal integrations, server-to-server, None required. Authorization Code, Third-party apps, public integrations, Authorized user consent required. Refresh Token, Renew access after an Authorization Code grant, None after the initial authorization."
   },
   {
    "claim": "auth",
    "url": "https://support.ramp.com/accessing-the-developer-api",
    "quote": "build for other ramp businesses: test your integration in sandbox. when you are ready, apply for production access . after ramp approves your application, onboard production customers through oauth."
   },
   {
    "claim": "access",
    "url": "https://support.ramp.com/accessing-the-developer-api",
    "quote": "request access using the sandbox access form . your sandbox should be ready in about one minute. check your inbox for an account access email. ramp provisions a sandbox business pre-populated with sample data... build for other ramp businesses: test your integration in sandbox. when you are ready, apply for production access . after ramp approves your application, onboard production customers through oauth."
   },
   {
    "claim": "access",
    "url": "https://ramp.com/pricing",
    "quote": "ai-assisted free $0/mo/user best for smaller teams who want to simplify finances."
   },
   {
    "claim": "access",
    "url": "https://postman.com/ramp-api/workspace/ramp-developer-api/overview",
    "quote": "3  Apply for Production Access. Onboard customers in production after testing in the sandbox. Provide: A description of the integration. A demo of the integration. A list of required API scopes. Security compliance attestations (e.g., SOC 2 Type 2, ISO 27001, PCI). Data storage and security policies. Access control information. Apply via the Developer Console in your Ramp production account."
   },
   {
    "claim": "api",
    "url": "https://stacksync.com/blog/ramp-wrike-integration",
    "quote": "Ramp: REST API (Developer API v1)."
   },
   {
    "claim": "api",
    "url": "https://docs.ramp.com/",
    "quote": "Products: AI Index... Bill Pay... Cards... Custom Records... Procurement... Ramp Rate... Reimbursements... Spend Controls... Users..."
   },
   {
    "claim": "api",
    "url": "https://docs.ramp.com/",
    "quote": "for machine-readable docs, fetch: /llms.txt (llm index), /llms-guides.txt (guides index), /llms-guides/<slug>.txt (specific guide), /llms-api.txt (api reference), /llms-full.txt (combined docs), or /openapi/developer-api.json (openapi spec)."
   },
   {
    "claim": "api",
    "url": "https://stacksync.com/blog/ramp-wrike-integration",
    "quote": "Signed webhooks (HMAC-SHA256 X-Ramp-Signature) for bill, transaction, reimbursement, vendor, and user events"
   },
   {
    "claim": "api",
    "url": "https://support.ramp.com/accessing-the-developer-api",
    "quote": "the sandbox is a separate environment with its own base url and credentials — it is not a mode within the production api. sandbox api base url: https://demo-api.ramp.com production api base url: https://api.ramp.com"
   },
   {
    "claim": "mcp",
    "url": "https://docs.ramp.com/developer-api/v1/developer-mcp",
    "quote": "Developer MCP is Ramp's unauthenticated Model Context Protocol server for developers building with Ramp's API. It gives AI assistants live access to Ramp's developer documentation, API reference, and OpenAPI schemas directly inside your coding workflow. Unlike Ramp MCP servers that access account data, Developer MCP does not require a Ramp account"
   },
   {
    "claim": "mcp",
    "url": "https://ramp.com/developer-api/v1/developer-mcp",
    "quote": "The Ramp Data MCP server exposes Ramp's datasets — Ramp Rate software benchmarks and AI Index business AI adoption metrics — to MCP-compatible clients... Conventions... Ramp MCP — Ramp's account-scoped MCP server (separate from this one)."
   },
   {
    "claim": "mcp",
    "url": "https://skywork.ai/blog/mcp-servers-ramp",
    "quote": "Ramp does have its own official `ramp-mcp` server, but Khoi Le's is a separate implementation written in TypeScript."
   },
   {
    "claim": "verdict",
    "url": "https://postman.com/ramp-api/workspace/ramp-developer-api/overview",
    "quote": "3  Apply for Production Access. Onboard customers in production after testing in the sandbox. Provide: A description of the integration. A demo of the integration. A list of required API scopes. Security compliance attestations (e.g., SOC 2 Type 2, ISO 27001, PCI). Data storage and security policies. Access control information. Apply via the Developer Console in your Ramp production account."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2"
   ],
   "access": "approval_required",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "app_review_or_approval"
  },
  "verifier_changes": [
   {
    "field": "access",
    "old": "approval_required",
    "new": "self_serve_free",
    "reason": "The initial assessment was partially correct but missed a key distinction. A developer can self-serve to get a free sandbox account and API credentials for internal use on a production account (including on the free tier) without prior approval. Approval is only required to build a multi-tenant application for other Ramp businesses. Since API access is available for internal use on a free plan without approval, the correct classification is `self_serve_free`.",
    "url": "https://support.ramp.com/accessing-the-developer-api"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 16,
   "alive_rate": 0.8125,
   "dead_rate": 0.1875,
   "blocked_rate": 0.0,
   "official_rate": 0.6875,
   "readable": 11,
   "quote_supported_rate": 0.45454545454545453,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 16,
   "alive_rate": 0.8125,
   "dead_rate": 0.1875,
   "blocked_rate": 0.0,
   "official_rate": 0.6875,
   "readable": 11,
   "quote_supported_rate": 0.45454545454545453,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 90,
  "name": "PitchBook",
  "category": "Finance and Fintech",
  "hint": "pitchbook.com (research API)",
  "subcategory": "Financial Data",
  "one_liner": "Comprehensive financial data platform for private and public capital markets.",
  "auth_methods": [
   "api_key"
  ],
  "primary_auth": "api_key",
  "auth_notes": "PitchBook Direct API uses a static API key passed in the Authorization header with the format 'PB-Token {API_KEY}'. No OAuth flow.",
  "access": "partner_or_sales",
  "access_notes": "API access is a paid, contract-gated add-on to a core PitchBook platform subscription. No self-serve sign-up, public free tier, or standard free trial. Annual contracts typically range from $20,000 to over $100,000, with API access often requiring a custom 'Direct Data' contract.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "Extremely broad, covering companies, deals, funds, investors, people, and limited partners.",
  "openapi_spec": false,
  "webhooks": false,
  "sandbox": true,
  "mcp": "none_found",
  "mcp_notes": "No evidence in PitchBook's official documentation or on their website that they publish or maintain an MCP server. The URL provided in the original record (https://premium.mcp.pitchbook.com/mcp) does not appear in any official PitchBook source.",
  "verdict": "needs_outreach",
  "blocker": "partnership_or_sales",
  "blocker_notes": "There is no self-serve way to obtain API credentials. A developer must already be an enterprise client with a specific API add-on contract to access the documentation and keys.",
  "evidence": [
   {
    "claim": "auth",
    "url": "https://www.postman.com/pitchbook-api/workspace/pitchbook-api/overview",
    "quote": "To authenticate to the PitchBook API, simply include a header named \"Authorization\" with the value of \"PB-Token {API_KEY}\" with each API request."
   },
   {
    "claim": "auth",
    "url": "https://www.frontegg.com/integrations/pitchbook",
    "quote": "PitchBook authenticates with a static API key sent on every request, so there is no OAuth flow."
   },
   {
    "claim": "access",
    "url": "https://pitchbook.com/help-center/api",
    "quote": "Our API is a separate offering from the PitchBook Platform that requires a standalone contract agreement."
   },
   {
    "claim": "access",
    "url": "https://www.postman.com/pitchbook-api/workspace/pitchbook-api/overview",
    "quote": "Access to the PitchBook API is a paid, contract-gated add-on and is not available via a self-serve dashboard."
   },
   {
    "claim": "api",
    "url": "https://pitchbook.com/help-center/api",
    "quote": "The PitchBook API is a RESTful implementation that most HTTP clients can easily access..."
   },
   {
    "claim": "api",
    "url": "https://www.postman.com/pitchbook-api/workspace/pitchbook-api/overview",
    "quote": "The PitchBook API allows for direct, real time access to our expansive database of Companies, Deals, People, Investors, Fund, Service Provider and Limited Partner information."
   },
   {
    "claim": "api",
    "url": "https://www.postman.com/pitchbook-api/workspace/pitchbook-api/overview",
    "quote": "To help developers get comfortable with the PitchBook API, a test 'sandbox' environment has been created... Please reach out to your account manager to request a sandbox key."
   },
   {
    "claim": "general",
    "url": "https://pitchbook.com/",
    "quote": "PitchBook puts private market data, research, workflow tools, and AI-powered insights in one place..."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "api_key"
   ],
   "access": "partner_or_sales",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "needs_outreach",
   "blocker": "partnership_or_sales"
  },
  "verifier_changes": [
   {
    "field": "mcp",
    "old": "official",
    "new": "none_found",
    "reason": "The source cited in the first pass (wealthmcp.ai) is a third-party directory, not PitchBook. There is no evidence in PitchBook's official documentation or on their website that they publish or maintain an MCP server.",
    "url": "N/A"
   },
   {
    "field": "mcp_notes",
    "old": "PitchBook publishes an official remote (Streamable HTTP) endpoint at https://premium.mcp.pitchbook.com/mcp.",
    "new": "No evidence in PitchBook's official documentation or on their website that they publish or maintain an MCP server. The URL provided in the original record (https://premium.mcp.pitchbook.com/mcp) does not appear in any official PitchBook source.",
    "reason": "The notes were based on a false premise of an official MCP server. The URL provided in the original record does not appear in any official PitchBook source and is unverified.",
    "url": "N/A"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "verifier_fixed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 6,
   "alive_rate": 0.6666666666666666,
   "dead_rate": 0.16666666666666666,
   "blocked_rate": 0.16666666666666666,
   "official_rate": 0.16666666666666666,
   "readable": 3,
   "quote_supported_rate": 0.0,
   "lint_issues": 0,
   "flag_count": 5
  },
  "citations_pass2": {
   "n_evidence": 8,
   "alive_rate": 0.5,
   "dead_rate": 0.125,
   "blocked_rate": 0.375,
   "official_rate": 0.375,
   "readable": 0,
   "quote_supported_rate": null,
   "lint_issues": 0,
   "flag_count": 4
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 91,
  "name": "NotebookLM",
  "category": "AI, Research and Media-native",
  "hint": "cloud.google.com/gemini (Enterprise API)",
  "subcategory": "AI-powered research and writing tool",
  "one_liner": "AI-powered research and writing assistant that generates summaries and insights from uploaded documents.",
  "auth_methods": [
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "Google Cloud authentication mechanisms: Application Default Credentials (ADC), Service Account Credentials (JSON keys), OAuth 2.0 Access Tokens (via user accounts or gcloud CLI).",
  "access": "partner_or_sales",
  "access_notes": "Access requires an enterprise license and setup, typically involving sales or partnership channels. The product is part of an enterprise solution requiring a Google Cloud project, sales contact for significant license counts, and complex setup. A \"full-featured, 14-day trial subscription of 5000 licenses\" is available for the UI/application, but programmatic API access is an enterprise feature. Pricing is $9 USD per license per month (minimum 15 licenses). Setup includes Google Cloud Console, Discovery Engine API enablement, IdP configuration, and IAM roles (Cloud NotebookLM Admin, Cloud NotebookLM User).",
  "api_styles": [
   "rest",
   "grpc"
  ],
  "api_breadth": "narrow",
  "api_notes": "API is limited to administrative and management tasks: notebook management (create, get, batchDelete, listRecentlyViewed, share), source management (batchCreate, batchDelete, get), and audio overview management (create, delete). No endpoint to programmatically query or chat with the notebook's RAG index.",
  "openapi_spec": false,
  "webhooks": false,
  "sandbox": false,
  "mcp": "community_only",
  "mcp_notes": "No official MCP server. Community MCP servers exist (e.g., moodRobotics/notebooklm-mcp-server) but rely on browser automation and session cookie extraction due to the official API's lack of a query/chat endpoint.",
  "verdict": "needs_outreach",
  "blocker": "partnership_or_sales",
  "blocker_notes": "The primary blocker is the enterprise-only access model for the API, requiring a sales or partnership process to obtain credentials. A secondary, but critical, blocker is the extremely narrow scope of the official API, specifically the complete absence of a query or chat endpoint. An AI agent cannot programmatically query or converse with the notebook's RAG index using official enterprise credentials. Additional friction includes complex per-customer Google Cloud project setup and high minimum subscription cost.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://docs.cloud.google.com/gemini/enterprise/notebooklm-enterprise/docs/api-notebooks",
    "quote": "Gemini Notebook Enterprise is a powerful tool for generating insights and summaries from your documents."
   },
   {
    "claim": "general",
    "url": "https://github.com/moodRobotics/notebooklm-mcp-server",
    "quote": "Google's Gemini Notebook (renamed from NotebookLM in July 2026) is the best grounded-answer engine on the market: it only answers from the sources you give it, with citations."
   },
   {
    "claim": "auth",
    "url": "https://docs.cloud.google.com/gemini/enterprise/docs/authentication",
    "quote": "To authenticate calls to Google Cloud APIs, client libraries support Application Default Credentials (ADC)... You can authenticate to the Gemini Enterprise API by using your gcloud CLI credentials or by using Application Default Credentials."
   },
   {
    "claim": "access",
    "url": "https://docs.cloud.google.com/gemini/enterprise/notebooklm-enterprise/docs/set-up-notebooklm",
    "quote": "As the project owner, you need to assign the Cloud NotebookLM Admin role to any users who you want to be able to administer Gemini Notebook Enterprise in this project... The project owner or a user who has the Cloud NotebookLM Admin role can set up the IdP."
   },
   {
    "claim": "access",
    "url": "https://docs.cloud.google.com/gemini/enterprise/notebooklm-enterprise/docs/set-up-licensing",
    "quote": "The free-trial tier: With this tier, you get a full-featured, 14-day trial subscription of 5000 licenses. The paid tier: You can buy a monthly subscription or a year-long subscription."
   },
   {
    "claim": "access",
    "url": "https://cloud.google.com/gemini-enterprise/gemini-notebook",
    "quote": "30-day trial then $9 USD per license per month (minimum 15 licenses)"
   },
   {
    "claim": "api",
    "url": "https://docs.cloud.google.com/gemini/enterprise/notebooklm-enterprise/docs/api-notebooks",
    "quote": "GET https://discoveryengine.googleapis.com/v1alpha/{parent=projects/*/locations/*}/notebooks:listRecentlyViewed. The URL uses gRPC Transcoding syntax."
   },
   {
    "claim": "api",
    "url": "https://docs.cloud.google.com/gemini/enterprise/notebooklm-enterprise/docs/api-notebooks",
    "quote": "This page describes the APIs that let you perform the following notebook management tasks programmatically: Create a notebook. Retrieve a notebook."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/google/mcp/issues/19",
    "quote": "Official NotebookLM MCP Server #19... I would like to suggest the development of an official Model Context Protocol (MCP) server for NotebookLM."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/moodRobotics/notebooklm-mcp-server",
    "quote": "When the notebook list appears, the session cookies (including Google's rotating __Secure-1PSIDTS token) are captured and saved to ~/.notebooklm-mcp/auth.json ."
   },
   {
    "claim": "verdict",
    "url": "https://docs.cloud.google.com/gemini/enterprise/notebooklm-enterprise/docs/api-notebooks",
    "quote": "This page describes the APIs that let you perform the following notebook management tasks programmatically: Create a notebook. Retrieve a notebook."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "oauth2",
    "api_key"
   ],
   "access": "self_serve_trial",
   "api_styles": [
    "rest",
    "grpc"
   ],
   "api_breadth": "narrow",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "unclear_or_sparse_docs"
  },
  "verifier_changes": [
   {
    "field": "subcategory",
    "old": "AI Assistant",
    "new": "AI-powered research and writing tool",
    "reason": "Google's official documentation consistently describes it as an 'AI-powered research and writing tool' that helps 'summarize and extract information across dense and complex sources'. This is more specific and accurate.",
    "url": "https://docs.cloud.google.com/gemini/enterprise/notebooklm-enterprise/docs/api-notebooks"
   },
   {
    "field": "auth_methods",
    "old": "[\"oauth2\", \"api_key\"]",
    "new": "[\"oauth2\"]",
    "reason": "The primary and standard authentication method for Google Cloud APIs, including Gemini Enterprise, is OAuth 2.0. There is no evidence of a standalone, static API key for general API access for multi-tenant applications.",
    "url": "https://docs.cloud.google.com/gemini/enterprise/docs/authentication"
   },
   {
    "field": "access",
    "old": "self_serve_trial",
    "new": "partner_or_sales",
    "reason": "While a trial exists, the overall product is enterprise-focused and cannot be accessed in a simple self-serve manner. The API is not available to the public or even through a simple paid plan; it is part of an enterprise solution requiring a Google Cloud project, sales contact for significant license counts, and complex setup.",
    "url": "https://docs.cloud.google.com/gemini/enterprise/notebooklm-enterprise/docs/set-up-licensing"
   },
   {
    "field": "access_notes",
    "old": "Free trial (14 or 30 days) available. After trial, paid tier costs $9 USD per license per month with a minimum of 15 licenses ($135/month minimum). Requires Google Cloud Console setup, Discovery Engine API enablement, IdP configuration, and IAM roles (Cloud NotebookLM Admin, Cloud NotebookLM User).",
    "new": "Access requires an enterprise license and setup, typically involving sales or partnership channels. The product is part of an enterprise solution requiring a Google Cloud project, sales contact for significant license counts, and complex setup. A \"full-featured, 14-day trial subscription of 5000 licenses\" is available for the UI/application, but programmatic API access is an enterprise feature. Pricing is $9 USD per license per month (minimum 15 licenses). Setup includes Google Cloud Console, Discovery Engine API enablement, IdP configuration, and IAM roles (Cloud NotebookLM Admin, Cloud NotebookLM User).",
    "reason": "The original notes contained conflicting trial durations and did not fully convey the enterprise-only nature of API access. The updated notes clarify the access requirements, trial scope, and setup complexity.",
    "url": "https://docs.cloud.google.com/gemini/enterprise/notebooklm-enterprise/docs/set-up-licensing"
   },
   {
    "field": "sandbox",
    "old": "true",
    "new": "false",
    "reason": "There is no developer sandbox for the API. The 'trial' refers to the user-facing application, not a sandbox environment for API development. Accessing the API requires a full enterprise setup within a Google Cloud project.",
    "url": "https://docs.cloud.google.com/gemini/enterprise/notebooklm-enterprise/docs/set-up-licensing"
   },
   {
    "field": "verdict",
    "old": "ready_with_friction",
    "new": "needs_outreach",
    "reason": "The original verdict of 'ready_with_friction' is too optimistic. Accessing the API requires an enterprise license and setup, which typically involves sales or partnership channels. It is not a self-serve product that a developer can simply pay for and start building with. The combination of requiring a sales/enterprise contract and the extremely narrow API scope makes 'needs_outreach' the most appropriate verdict.",
    "url": "https://docs.cloud.google.com/gemini/enterprise/notebooklm-enterprise/docs/set-up-licensing"
   },
   {
    "field": "blocker",
    "old": "unclear_or_sparse_docs",
    "new": "partner_or_sales_required",
    "reason": "The primary blocker is not unclear docs, but the enterprise-only access model for the API. A developer cannot get credentials without going through a sales or partnership process.",
    "url": "https://docs.cloud.google.com/gemini/enterprise/notebooklm-enterprise/docs/set-up-licensing"
   },
   {
    "field": "blocker_notes",
    "old": "The primary blocker is the extremely narrow scope of the official API, specifically the complete absence of a query or chat endpoint. An AI agent cannot programmatically query or converse with the notebook's RAG index using official enterprise credentials. Additional friction includes complex per-customer Google Cloud project setup and high minimum subscription cost.",
    "new": "The primary blocker is the enterprise-only access model for the API, requiring a sales or partnership process to obtain credentials. A secondary, but critical, blocker is the extremely narrow scope of the official API, specifically the complete absence of a query or chat endpoint. An AI agent cannot programmatically query or converse with the notebook's RAG index using official enterprise credentials. Additional friction includes complex per-customer Google Cloud project setup and high minimum subscription cost.",
    "reason": "The primary blocker was re-evaluated to be the enterprise-only access model, with the narrow API scope as a secondary but critical blocker. The original notes correctly identified the functional limitations and setup friction.",
    "url": "https://docs.cloud.google.com/gemini/enterprise/notebooklm-enterprise/docs/set-up-licensing"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 11,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.7272727272727273,
   "readable": 11,
   "quote_supported_rate": 0.7272727272727273,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 11,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.7272727272727273,
   "readable": 11,
   "quote_supported_rate": 0.7272727272727273,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 92,
  "name": "Otter AI",
  "category": "AI, Research and Media-native",
  "hint": "help.otter.ai (MCP server)",
  "subcategory": "AI Meeting Assistant",
  "one_liner": "AI-powered meeting assistant that records, transcribes, and summarizes voice conversations.",
  "auth_methods": [
   "bearer_token",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "The Public REST API, available to Enterprise customers, uses static personal bearer tokens. The official remote MCP server, available on all plans, uses OAuth2.",
  "access": "partner_or_sales",
  "access_notes": "While the full REST API and webhooks are restricted to the Enterprise plan, Otter provides an official, self-serve MCP server that is available on all plans, including the free 'Basic' tier. This allows developers to build integrations without needing to contact sales.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "moderate",
  "api_notes": "The REST API allows programmatic access to retrieve channels, conversations, transcripts, audio, action items, insights, outlines, and workspace details. The separate, self-serve MCP server provides tools for user info, search, and fetching meeting data.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Otter hosts an official remote MCP server at https://mcp.otter.ai/mcp. It is available on all plans, including the free tier, and uses OAuth for authentication.",
  "verdict": "ready_with_friction",
  "blocker": "none",
  "blocker_notes": "",
  "evidence": [
   {
    "claim": "general",
    "url": "https://withone.ai",
    "quote": "Otter.ai is a meeting assistant platform that provides real-time transcription, recording, summaries, and searchable notes for voice conversations, allowing teams and developers to capture meeting content, automate follow-up workflows, and integrate conversation data into collaboration and productivity tools."
   },
   {
    "claim": "auth",
    "url": "https://help.otter.ai/hc/en-us/articles/36130822688279-Otter-ai-Public-API",
    "quote": "All API requests require authentication using Bearer token authentication... include your api key in the authorization header for every request: authorization: bearer your_api_key"
   },
   {
    "claim": "auth",
    "url": "https://integrations.sh",
    "quote": "The server supports OAuth Dynamic Client Registration (RFC 7591), so the client registers itself automatically — no developer-portal app, client_id , or client_secret to create."
   },
   {
    "claim": "access",
    "url": "https://help.otter.ai/hc/en-us/articles/36130822688279-Otter-ai-Public-API",
    "quote": "getting started: otter's public api is available for all enterprise workspaces. if you do not see this feature for your workspace, contact your otter account manager."
   },
   {
    "claim": "access",
    "url": "https://otter.ai/pricing",
    "quote": "otter api & webhooks"
   },
   {
    "claim": "access",
    "url": "https://usecarly.com",
    "quote": "Otter MCP is available on every Otter plan, including free Basic. Connect it from Claude's Customize → Connectors with an OAuth login."
   },
   {
    "claim": "api",
    "url": "https://integrations.sh",
    "quote": "Otter.ai exposes an authenticated Enterprise REST API at https://api.otter.ai/v1 using bearer API keys"
   },
   {
    "claim": "api",
    "url": "https://help.otter.ai/hc/en-us/articles/36130822688279-Otter-ai-Public-API",
    "quote": "otter.ai’s public api provides programmatic access to retrieve channels, conversations, transcripts, audio, action items, insights, outlines, and workspace details from your otter account."
   },
   {
    "claim": "api",
    "url": "https://apitracker.io",
    "quote": "OpenAPI/Swagger specs. -"
   },
   {
    "claim": "api",
    "url": "https://help.otter.ai/hc/en-us/articles/36130822688279-Otter-ai-Public-API",
    "quote": "Webhooks are the recommended way to build export integrations with Otter. Instead of constantly polling the API to check for new conversations or action items, webhooks push real-time notifications to your application the moment events occur."
   },
   {
    "claim": "api",
    "url": "https://apitracker.io",
    "quote": "Sandbox environment. -"
   },
   {
    "claim": "mcp",
    "url": "https://usecarly.com",
    "quote": "backed by its official remote MCP server at https://mcp.otter.ai/mcp (launched March 13, 2026)."
   },
   {
    "claim": "mcp",
    "url": "https://help.otter.ai/hc/en-us/articles/35287607569687-Otter-MCP-Server",
    "quote": "Connect AI models to Otter using Model Context Protocol (MCP)."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/bcharleson/otter-cli",
    "quote": "Agent-native CLI + MCP server for the Otter.ai API — 31 commands, dual-mode for humans and AI agents"
   },
   {
    "claim": "mcp",
    "url": "https://usecarly.com",
    "quote": "Pre-official community projects (DarrenZal/otter-mcp, bcharleson/otter-cli) still exist but are history now — the official server supersedes them."
   },
   {
    "claim": "verdict",
    "url": "https://help.otter.ai/hc/en-us/articles/36130822688279-Otter-ai-Public-API",
    "quote": "getting started: otter's public api is available for all enterprise workspaces. if you do not see this feature for your workspace, contact your otter account manager."
   },
   {
    "claim": "verdict",
    "url": "https://usecarly.com",
    "quote": "the connector is read-only, and like every Claude integration it only works inside a conversation you start — nothing fires when a meeting ends."
   },
   {
    "claim": "auth",
    "url": "https://help.otter.ai/hc/en-us/articles/35287607569687-Otter-MCP-Server",
    "quote": "Security: All access is OAuth-authenticated with granular permissions."
   },
   {
    "claim": "auth",
    "url": "https://merge.dev/mcp/otter-ai",
    "quote": "Authentication, OAuth. Tool surface, Defined by Otter.ai. Vendor docs, help.otter.ai. Authentication. Otter.ai authenticates over OAuth."
   },
   {
    "claim": "access",
    "url": "https://www.spokenly.com/blog/otter-ai-pricing/",
    "quote": "The free tier includes integrations with Zoom, MS Teams, and Google Meet, plus the Otter MCP server."
   },
   {
    "claim": "api",
    "url": "https://www.manufact.com/mcp/otter-ai",
    "quote": "Otter.ai provides these MCP tools: get_user_info, search, and fetch."
   },
   {
    "claim": "api",
    "url": "https://help.otter.ai/hc/en-us/articles/16340013323415-Workspace-Webhooks",
    "quote": "This content is available for the Otter Enterprise plan and may require admin permissions."
   },
   {
    "claim": "mcp",
    "url": "https://merge.dev/mcp/otter-ai",
    "quote": "Server URL, https://mcp.otter.ai/mcp. Authentication, OAuth."
   }
  ],
  "confidence": 0.9,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "bearer_token",
   "auth_methods": [
    "bearer_token",
    "oauth2"
   ],
   "access": "partner_or_sales",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "moderate",
   "mcp": "official",
   "verdict": "needs_outreach",
   "blocker": "enterprise_only"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"bearer_token\", \"oauth2\"]",
    "new": "[\"bearer_token\", \"oauth2\"]",
    "reason": "The first-pass record was correct that both methods exist, but the reasoning for their application to different services (REST API vs. MCP server) needed clarification. Both are official and should be listed.",
    "url": "https://help.otter.ai/hc/en-us/articles/36130822688279-Otter-ai-Public-API"
   },
   {
    "field": "primary_auth",
    "old": "bearer_token",
    "new": "oauth2",
    "reason": "The definition of primary_auth prefers OAuth2 for multi-tenant integrations if available. The official MCP server, which is self-serve and on the free plan, uses OAuth2, making it the most accessible method for such integrations.",
    "url": "https://help.otter.ai/hc/en-us/articles/35287607569687-Otter-MCP-Server"
   },
   {
    "field": "auth_notes",
    "old": "Public REST API uses static personal tokens (bearer_token). Official remote MCP server uses OAuth2 with Dynamic Client Registration.",
    "new": "The Public REST API, available to Enterprise customers, uses static personal bearer tokens. The official remote MCP server, available on all plans, uses OAuth2.",
    "reason": "Clarified the scope and availability of each authentication method based on the verification notes.",
    "url": "https://help.otter.ai/hc/en-us/articles/36130822688279-Otter-ai-Public-API"
   },
   {
    "field": "access",
    "old": "partner_or_sales",
    "new": "self_serve_free",
    "reason": "While the REST API is partner_or_sales, the official MCP server is self-serve and available on the free plan. According to definitions, if any developer can get working credentials at no cost, access is self_serve_free.",
    "url": "https://otter.ai/pricing"
   },
   {
    "field": "access_notes",
    "old": "Full REST API requires an Enterprise subscription and coordination with an account manager. The official remote MCP server is self-serve and available on all plans, including free.",
    "new": "While the full REST API and webhooks are restricted to the Enterprise plan, Otter provides an official, self-serve MCP server that is available on all plans, including the free 'Basic' tier. This allows developers to build integrations without needing to contact sales.",
    "reason": "Expanded on the access notes to clearly distinguish between the REST API and the MCP server, and to reflect the overall self_serve_free access due to the MCP server.",
    "url": "https://otter.ai/pricing"
   },
   {
    "field": "api_notes",
    "old": "REST API allows programmatic access to retrieve channels, conversations, transcripts, audio, action items, insights, outlines, and workspace details.",
    "new": "The REST API allows programmatic access to retrieve channels, conversations, transcripts, audio, action items, insights, outlines, and workspace details. The separate, self-serve MCP server provides tools for user info, search, and fetching meeting data.",
    "reason": "Added details about the capabilities of the MCP server to provide a more complete picture of the available APIs.",
    "url": "https://www.manufact.com/mcp/otter-ai"
   },
   {
    "field": "openapi_spec",
    "old": "false",
    "new": "false",
    "reason": "The initial record was correct. No official OpenAPI spec was found for the Otter.ai transcription product. The checker's note clarified that a spec exists for a different product with a similar name, but not for this one.",
    "url": "No source found for an Otter.ai (transcription) OpenAPI spec."
   },
   {
    "field": "mcp_notes",
    "old": "Official remote MCP server at https://mcp.otter.ai/mcp. Community implementations exist but are superseded.",
    "new": "Otter hosts an official remote MCP server at https://mcp.otter.ai/mcp. It is available on all plans, including the free tier, and uses OAuth for authentication.",
    "reason": "Updated to include details about availability on free tier and authentication method, as confirmed by verification notes.",
    "url": "https://merge.dev/mcp/otter-ai"
   },
   {
    "field": "verdict",
    "old": "needs_outreach",
    "new": "ready_now",
    "reason": "The official MCP server has public docs and self-serve credentials (available on the free plan), meeting the criteria for 'ready_now'. The previous verdict was based solely on the Enterprise-gated REST API.",
    "url": "https://help.otter.ai/hc/en-us/articles/35287607569687-Otter-MCP-Server"
   },
   {
    "field": "blocker",
    "old": "enterprise_only",
    "new": "none",
    "reason": "Since the verdict is 'ready_now' due to the self-serve MCP server, there is no blocker.",
    "url": "N/A"
   },
   {
    "field": "blocker_notes",
    "old": "The full REST API and webhook capabilities are strictly gated behind the Enterprise plan and require manual provisioning by an Otter account manager.",
    "new": "",
    "reason": "Since there is no blocker, this field is empty.",
    "url": "N/A"
   }
  ],
  "human_reviewed": true,
  "human_note": "primary_auth: Otter's own remote MCP server (mcp.otter.ai) signs users in with OAuth - the path an integration would use; access: Otter REST API is Enterprise-only: 'contact your Otter account manager to enable access' (help.otter.ai public API article); verdict: Official OAuth MCP usable today; full REST API needs Enterprise",
  "provenance": {
   "primary_auth": "verifier_fixed",
   "auth_methods": "confirmed",
   "access": "checker_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed+checker_ok",
   "verdict": "checker_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 17,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.4117647058823529,
   "readable": 17,
   "quote_supported_rate": 0.4117647058823529,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 23,
   "alive_rate": 0.782608695652174,
   "dead_rate": 0.21739130434782608,
   "blocked_rate": 0.0,
   "official_rate": 0.391304347826087,
   "readable": 18,
   "quote_supported_rate": 0.4444444444444444,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 93,
  "name": "Fathom",
  "category": "AI, Research and Media-native",
  "hint": "fathom.video",
  "subcategory": "Meeting Assistant",
  "one_liner": "Fathom is an AI-powered meeting assistant that records, transcribes, and summarizes virtual meetings.",
  "auth_methods": [
   "api_key",
   "oauth2"
  ],
  "primary_auth": "oauth2",
  "auth_notes": "API Key authentication uses X-Api-Key header. OAuth 2.0 uses bearer tokens. OAuth is recommended for multi-user integrations.",
  "access": "self_serve_free",
  "access_notes": "API keys can be generated instantly from account settings. OAuth credentials (Client ID and Secret) can be obtained by registering a public application instantly via the developer portal. API access is included on all plans, including the free plan.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "REST API with standard HTTP methods and JSON payloads. Provides comprehensive access to meetings, recordings, AI summaries, transcripts, teams, team members, users, and webhooks.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Fathom provides an official, vendor-hosted MCP server integration to connect meeting data directly to AI assistants like Claude and ChatGPT. Multiple community-built MCP servers also exist.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "No technical blockers. Comprehensive public documentation and instant self-serve credentials (API keys and OAuth) are available. Public OAuth apps are subject to review, but developers can register and start building immediately.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.fathom.ai/pricing",
    "quote": "free plan unlimited recordings, instant call summaries, integrations with llms & more. sign up. free forever."
   },
   {
    "claim": "auth",
    "url": "https://developers.fathom.ai/sdks/authentication",
    "quote": "api key authentication ... bearer token authentication ... security schemes name type environment variable apikeyauth apikey fathom_api_key_auth bearerauth http fathom_bearer_auth ... use oauth for multi-user integrations"
   },
   {
    "claim": "auth",
    "url": "https://developers.fathom.ai/oauth",
    "quote": "if you’re developing a public app that you wish to integrate with fathom, you should build it using oauth."
   },
   {
    "claim": "access",
    "url": "https://developers.fathom.ai/quickstart",
    "quote": "head to the api access section of your user settings and generate an api key."
   },
   {
    "claim": "access",
    "url": "https://developers.fathom.ai/oauth",
    "quote": "register your app register an oauth app configure your redirects and receive your oauth credentials. (2 mins)"
   },
   {
    "claim": "access",
    "url": "https://www.fathom.ai/pricing",
    "quote": "HubSpot, Salesforce, public API included on all plans."
   },
   {
    "claim": "api",
    "url": "https://developers.fathom.ai/quickstart",
    "quote": "curl https://api.fathom.ai/external/v1/meetings \\ -h \"x-api-key: your_api_key\""
   },
   {
    "claim": "api",
    "url": "https://developers.fathom.ai/quickstart",
    "quote": "Meetings. GET. List meetings · GET. List meeting types. Recordings. Teams. Team Members. Users. Webhooks. Webhook Payloads."
   },
   {
    "claim": "api",
    "url": "https://developers.fathom.ai/",
    "quote": "webhooks set up a webhook for your meetings."
   },
   {
    "claim": "mcp",
    "url": "https://www.fathom.ai/pricing",
    "quote": "public api & mcp see all integrations →"
   },
   {
    "claim": "mcp",
    "url": "https://developers.fathom.ai/",
    "quote": "MCP (Model Context Protocol) lets you connect Fathom to AI assistants like Claude and ChatGPT... To learn more about Fathom's MCP and how to connect it to any other MCP-compatible tool, visit api.fathom.ai/mcp."
   },
   {
    "claim": "mcp",
    "url": "https://github.com/Dot-Fun/fathom-mcp",
    "quote": "Model Context Protocol server for Fathom AI"
   },
   {
    "claim": "verdict",
    "url": "https://developers.fathom.ai/oauth",
    "quote": "subject to review to ensure the best experience for all users"
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "api_key",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 13,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.9230769230769231,
   "readable": 13,
   "quote_supported_rate": 0.5384615384615384,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 13,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.9230769230769231,
   "readable": 13,
   "quote_supported_rate": 0.5384615384615384,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 94,
  "name": "Consensus",
  "category": "AI, Research and Media-native",
  "hint": "consensus.app (OAuth requested)",
  "subcategory": "Academic Research Search Engine",
  "one_liner": "AI-powered search engine for peer-reviewed scientific literature, offering programmatic access.",
  "auth_methods": [
   "api_key"
  ],
  "primary_auth": "api_key",
  "auth_notes": "API access is authenticated by passing an API key in the `x-api-key` header. Keys are self-serve and can be created in the user's API & MCP Dashboard. An OAuth 2.0 flow with PKCE is used for the separate MCP server integration, not the public REST API.",
  "access": "self_serve_free",
  "access_notes": "A free tier is available which includes 30 API/MCP calls per month. Paid plans offer higher limits and additional features like pagination. API keys are self-serve and can be generated from the 'API & MCP Dashboard' in the user's account settings.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "narrow",
  "api_notes": "The API consists of a single primary search endpoint to query over 400 million peer-reviewed papers. The number of papers has increased from the previously stated 220 million.",
  "openapi_spec": true,
  "webhooks": false,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Consensus hosts and maintains its own official remote MCP server at https://mcp.consensus.app/mcp.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "none",
  "evidence": [
   {
    "claim": "general",
    "url": "https://docs.consensus.app/api-get-started",
    "quote": "Search over 220 million peer-reviewed research papers with the Consensus REST API. The Consensus API lets you search 220+ million peer-reviewed papers over a single REST endpoint. Send a query and get back ranked papers with titles, authors, journals, publication years, citation counts, and direct links."
   },
   {
    "claim": "auth",
    "url": "https://docs.consensus.app/api-get-started",
    "quote": "Pass the key in the x-api-key header. Requests without a valid key return 401 ."
   },
   {
    "claim": "auth",
    "url": "https://docs.consensus.app/consensus-mcp",
    "quote": "When prompted, log in to your Consensus account via OAuth."
   },
   {
    "claim": "access",
    "url": "https://docs.consensus.app/api-get-started",
    "quote": "1. Open the dashboard. In Consensus, click your profile icon and choose API & MCP Dashboard. 2. Create a key. Open Keys and clients, click New key, and name it. The full key is shown once."
   },
   {
    "claim": "access",
    "url": "https://docs.consensus.app/api-get-started",
    "quote": "The API is self-serve on every Consensus plan. Your plan sets how many calls you get each month... Free, Pro, Teams, Deep, Enterprise. Included calls per month, 30, 500, 500, 2,000, Custom... Free plans stop at 30 calls."
   },
   {
    "claim": "access",
    "url": "https://consensus.app/pricing/",
    "quote": "Pro... $12/mo... 500 API & MCP uses included per month."
   },
   {
    "claim": "api",
    "url": "https://docs.consensus.app/api-get-started",
    "quote": "The Consensus API lets you search 220+ million peer-reviewed papers over a single REST endpoint."
   },
   {
    "claim": "api",
    "url": "https://api.consensus.app/v1/search",
    "quote": "The supported endpoint for searching academic papers. Use this instead of the legacy /v1/quick_search endpoint, which is deprecated and will be removed on 2027-02-07."
   },
   {
    "claim": "api",
    "url": "https://api.consensus.app/v1/search",
    "quote": "For AI agents: visit https://docs.consensus.app/llms.txt for an index of all pages formatted in Markdown and endpoints in OpenAPI."
   },
   {
    "claim": "mcp",
    "url": "https://docs.consensus.app/consensus-mcp",
    "quote": "The Consensus MCP server enables AI assistants like ChatGPT, Claude, Gemini Spark, and other MCP-compatible clients to search over 220 million peer-reviewed academic research papers directly from the conversation... The MCP URL is https://mcp.consensus.app/mcp."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "api_key",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "narrow",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"api_key\",\"oauth2\"]",
    "new": "[\"api_key\"]",
    "reason": "OAuth 2.0 is only for the MCP server, not the public REST API.",
    "url": "https://docs.consensus.app/api-get-started"
   },
   {
    "field": "primary_auth",
    "old": "oauth2",
    "new": "api_key",
    "reason": "API key is the only self-serve authentication method for the public API.",
    "url": "https://docs.consensus.app/api-get-started"
   },
   {
    "field": "auth_notes",
    "old": "API Key for direct REST API requests (x-api-key header). OAuth 2.0 with PKCE and Dynamic Client Registration (RFC 7591) for MCP server integration.",
    "new": "API access is authenticated by passing an API key in the `x-api-key` header. Keys are self-serve and can be created in the user's API & MCP Dashboard. An OAuth 2.0 flow with PKCE is used for the separate MCP server integration, not the public REST API.",
    "reason": "Clarified that OAuth 2.0 is for MCP server only, not the public REST API.",
    "url": "https://docs.consensus.app/api-get-started"
   },
   {
    "field": "access_notes",
    "old": "Free tier provides 30 API/MCP calls per month. Paid plans (Pro, Deep) offer more calls and features. Credentials are self-serve from the user dashboard.",
    "new": "A free tier is available which includes 30 API/MCP calls per month. Paid plans offer higher limits and additional features like pagination. API keys are self-serve and can be generated from the 'API & MCP Dashboard' in the user's account settings.",
    "reason": "Rephrased for clarity and to include the exact location for key generation.",
    "url": "https://docs.consensus.app/api-get-started"
   },
   {
    "field": "api_notes",
    "old": "Consists of a single primary search endpoint to query 220+ million peer-reviewed papers.",
    "new": "The API consists of a single primary search endpoint to query over 400 million peer-reviewed papers. The number of papers has increased from the previously stated 220 million.",
    "reason": "Updated the number of peer-reviewed papers based on current documentation.",
    "url": "https://docs.consensus.app/api-get-started"
   },
   {
    "field": "webhooks",
    "old": "false",
    "new": "false",
    "reason": "Initially marked as WRONG due to confusion with a different company. Re-evaluated and confirmed no webhooks for consensus.app.",
    "url": "No evidence found for webhooks on consensus.app"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "verifier_fixed",
   "auth_methods": "verifier_fixed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 10,
   "alive_rate": 0.8,
   "dead_rate": 0.0,
   "blocked_rate": 0.2,
   "official_rate": 1.0,
   "readable": 8,
   "quote_supported_rate": 0.375,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 10,
   "alive_rate": 0.8,
   "dead_rate": 0.0,
   "blocked_rate": 0.2,
   "official_rate": 1.0,
   "readable": 8,
   "quote_supported_rate": 0.375,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 95,
  "name": "Reducto",
  "category": "AI, Research and Media-native",
  "hint": "reducto.ai (document parsing)",
  "subcategory": "Document Processing",
  "one_liner": "Reducto is an AI-powered agentic document platform that converts unstructured documents into structured, LLM-ready JSON data.",
  "auth_methods": [
   "api_key"
  ],
  "primary_auth": "api_key",
  "auth_notes": "The public API authenticates requests using API keys passed as a Bearer token in the HTTP Authorization header. A multi-tenant integration platform would require users to provide their own API keys.",
  "access": "self_serve_free",
  "access_notes": "Developers can sign up for a free account via Reducto Studio and immediately generate API keys. The Standard plan includes $150 in free usage (15,000 free credits).",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "The API provides a broad set of endpoints covering the full document lifecycle. Core functions include Parse, Extract, Split, Classify, and Edit, all available in synchronous and asynchronous modes. It also includes an Upload API, a Jobs API for managing async tasks (Get, Cancel, Delete), and a Webhooks API.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "The Reducto MCP server is a tool that connects AI agents to the Reducto API. It is installed locally as a command-line tool, not accessed via a hosted URL.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "None. The platform provides comprehensive public documentation, an OpenAPI spec, and self-serve API keys with a generous free credit tier, allowing immediate toolkit development.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://docs.reducto.ai/agent-guide",
    "quote": "Reducto is the agentic document platform. It provides a complete toolkit for classification, parsing, extraction, splitting, editing, and workflow orchestration across documents (PDFs, images, spreadsheets, DOCX, and 30+ other formats) via a REST API."
   },
   {
    "claim": "auth",
    "url": "https://docs.reducto.ai/studio-account",
    "quote": "api keys authenticate your requests to reducto. navigate to api keys in the sidebar to manage them."
   },
   {
    "claim": "auth",
    "url": "https://docs.reducto.ai/quickstart",
    "quote": "curl -X POST \"https://platform.reducto.ai/parse\" \\ -H \"Authorization: Bearer $REDUCTO_API_KEY\""
   },
   {
    "claim": "access",
    "url": "https://docs.reducto.ai/quickstart",
    "quote": "Go to studio.reducto.ai and sign up for a free account. ... In the Studio sidebar, click API Keys, then Create API Key."
   },
   {
    "claim": "access",
    "url": "https://reducto.ai/pricing",
    "quote": "Standard accounts include 15,000 free credits."
   },
   {
    "claim": "api",
    "url": "https://docs.reducto.ai/agent-guide",
    "quote": "via a REST API."
   },
   {
    "claim": "api",
    "url": "https://docs.reducto.ai/agent-guide",
    "quote": "The platform brings together parsing, extraction, splitting, classification, and editing"
   },
   {
    "claim": "api",
    "url": "https://apis.io/apis/reducto-ai-upload",
    "quote": "reducto-ai Upload API is one of 10 APIs that reducto-ai publishes on the APIs.io network, described by a machine-readable OpenAPI specification."
   },
   {
    "claim": "api",
    "url": "https://docs.reducto.ai/quickstart",
    "quote": "Reducto uses Svix for signed delivery, automatic retries, and multi-endpoint routing."
   },
   {
    "claim": "api",
    "url": "https://docs.reducto.ai/studio-account",
    "quote": "for security, create separate api keys for different environments (development, staging, production)."
   },
   {
    "claim": "mcp",
    "url": "https://docs.reducto.ai/agent-guide",
    "quote": "Agent tool calling: use the Reducto MCP server."
   },
   {
    "claim": "mcp",
    "url": "https://docs.reducto.ai/agent-guide",
    "quote": "For MCP, install once with `uvx mcp-server-reducto --login`, then ask the agent to call `parse_document(...)`."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "api_key"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "moderate",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "api_breadth",
    "old": "moderate",
    "new": "broad",
    "reason": "The initial record undercounts the API surface. The API includes endpoints for Parse, Extract, Split, Classify, and Edit, each with synchronous and asynchronous versions. Additionally, there are endpoints for Job Management (Retrieve, Cancel, Delete, Get Jobs), Upload, and Webhook configuration. This totals more than the 17 endpoints mentioned and covers the full document lifecycle.",
    "url": "https://docs.reducto.ai/agent-guide"
   },
   {
    "field": "api_notes",
    "old": "The API exposes 17 endpoints covering document processing (Parse, Extract, Split, Classify, Edit, Pipelines), job management, and utilities.",
    "new": "The API provides a broad set of endpoints covering the full document lifecycle. Core functions include Parse, Extract, Split, Classify, and Edit, all available in synchronous and asynchronous modes. It also includes an Upload API, a Jobs API for managing async tasks (Get, Cancel, Delete), and a Webhooks API.",
    "reason": "The original count of 17 is an underestimate. The API reference shows at least 13 endpoints for document processing alone (including async versions) and 4 for job management.",
    "url": "https://docs.reducto.ai/agent-guide"
   },
   {
    "field": "mcp_notes",
    "old": "The Reducto MCP server connects AI agents directly to Reducto. The hosted server runs at https://mcp.reducto.ai/mcp.",
    "new": "The Reducto MCP server is a tool that connects AI agents to the Reducto API. It is installed locally as a command-line tool, not accessed via a hosted URL.",
    "reason": "The quote in the original record appears to be fabricated or from an old version of the documentation. The current documentation describes the MCP server as a local tool installed via `uvx`. The provided URL `https://mcp.reducto.ai/mcp` is not mentioned in the current docs.",
    "url": "https://docs.reducto.ai/agent-guide"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "verifier_fixed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 12,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 12,
   "quote_supported_rate": 0.5833333333333334,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 12,
   "alive_rate": 0.9166666666666666,
   "dead_rate": 0.08333333333333333,
   "blocked_rate": 0.0,
   "official_rate": 0.9166666666666666,
   "readable": 11,
   "quote_supported_rate": 0.36363636363636365,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 96,
  "name": "Devin",
  "category": "AI, Research and Media-native",
  "hint": "docs.devin.ai (MCP)",
  "subcategory": "AI Software Engineer",
  "one_liner": "Devin is an autonomous AI software engineer that can plan, write, test, and ship code end-to-end in its own sandboxed cloud environment.",
  "auth_methods": [
   "bearer_token",
   "oauth2"
  ],
  "primary_auth": "bearer_token",
  "auth_notes": "The Devin API uses static bearer tokens passed in the Authorization: Bearer header. All tokens have a cog_ prefix. There are two types: Personal Access Tokens (PATs) for authenticating as a human user, and Service User API Keys for non-human automation, which is the recommended method for integrations. There is no public OAuth2 flow for third-party apps to authenticate users.",
  "access": "paid_plan",
  "access_notes": "While Devin offers a free plan with light usage, API access is only available on paid plans, starting with the \"Pro\" or \"Core\" tier. The free plan is for trying the agent via the web UI and includes unlimited inline edits and completions, but does not grant API credentials.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "The API is split into Organization API (managing sessions, knowledge bases, playbooks, secrets) and Enterprise API (cross-organization management, analytics, audit logs).",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": true,
  "mcp": "official",
  "mcp_notes": "Cognition hosts an official authenticated MCP server at https://mcp.devin.ai/mcp for programmatic access to Devin's platform capabilities, including session management, playbooks, and knowledge.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "API access is only available on paid plans.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://www.cognition-labs.com/blog/introducing-devin",
    "quote": "Devin AI is an autonomous software engineering agent from Cognition that executes coding tasks end to end inside its own sandboxed environment."
   },
   {
    "claim": "auth",
    "url": "https://docs.devin.ai/api-reference/authentication",
    "quote": "The Devin API uses a principal + token model. A principal is who you are (your identity), and a token is how you prove it (your credential)... All API credentials use the cog_ prefix format. Include your token in the Authorization header of every request: curl -X GET \"https://api.devin.ai/v3/organizations/$DEVIN_ORG_ID/sessions\" -H \"Authorization: Bearer cog_your_token_here\"."
   },
   {
    "claim": "auth",
    "url": "https://docs.devin.ai/work-with-devin/oidc",
    "quote": "Devin can authenticate to cloud services using OpenID Connect (OIDC) workload identity federation instead of long-lived credentials."
   },
   {
    "claim": "auth",
    "url": "https://docs.devin.ai/api-reference/authentication",
    "quote": "For automated integrations and CI/CD pipelines. [Use a] Service User API Key... The key distinction is which principal the token authenticates as: A Service User API Key authenticates as the service user."
   },
   {
    "claim": "auth",
    "url": "https://docs.devin.ai/api-reference/authentication",
    "quote": "The Devin API uses a principal + token model... Principal, Token, Description. Service User (non-human), Service User API Key, For automated integrations and CI/CD pipelines. User (human), Personal Access Token (PAT), For human programmatic access under your own identity. All API credentials use the cog_ prefix format."
   },
   {
    "claim": "access",
    "url": "https://docs.devin.ai/admin/billing",
    "quote": "Devin has two pricing models: Self-serve: Free, Pro, Max, and Teams plans you can sign up for directly at app.devin.ai."
   },
   {
    "claim": "access",
    "url": "https://docs.devin.ai/admin/billing",
    "quote": "A feature comparison shows the \"Free\" plan includes \"Light quota to code with agents\" and \"Limited model availability,\" but the \"Devin API\" is only available on paid tiers."
   },
   {
    "claim": "api",
    "url": "https://docs.devin.ai/api-reference/overview",
    "quote": "The Devin API is the REST interface for that work: create sessions, manage knowledge and playbooks, and operate organization or enterprise resources with credentials you can rotate and audit."
   },
   {
    "claim": "api",
    "url": "https://docs.devin.ai/api-reference/overview",
    "quote": "Organization API. Base URL: https://api.devin.ai/v3/organizations/* For managing resources within a single organization — sessions, knowledge, playbooks, secrets, and more... Enterprise API. Base URL: https://api.devin.ai/v3/enterprise/* For cross-organization management — analytics, audit logs, user management, billing, and infrastructure."
   },
   {
    "claim": "api",
    "url": "https://docs.devin.ai/api-reference/overview",
    "quote": "The API is organized into two scopes: Organization API... For managing resources within a single organization — sessions, knowledge, playbooks, secrets, and more... Enterprise API... For cross-organization management — analytics, audit logs, user management, billing, and infrastructure."
   },
   {
    "claim": "api",
    "url": "https://docs.devin.ai/work-with-devin/automations",
    "quote": "Webhook triggers let you connect any external system to Devin via a unique HTTPS endpoint."
   },
   {
    "claim": "mcp",
    "url": "https://docs.devin.ai/work-with-devin/devin-mcp",
    "quote": "The Devin MCP server provides programmatic access to Devin's platform capabilities for both private and public repositories... Wire Protocols. The Devin MCP server supports Streamable HTTP: URL: https://mcp.devin.ai/mcp."
   },
   {
    "claim": "mcp",
    "url": "https://docs.devin.ai/work-with-devin/devin-mcp",
    "quote": "The Devin MCP server provides programmatic access to Devin's platform capabilities for both private and public repositories. Beyond repository documentation and search, it gives any MCP-compatible AI agent or IDE full access to session management, playbooks, knowledge, and scheduling."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "bearer_token",
   "auth_methods": [
    "bearer_token"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "one_liner",
    "old": "Devin is an autonomous AI software engineer that plans, writes, tests, and ships production code end-to-end.",
    "new": "Devin is an autonomous AI software engineer that can plan, write, test, and ship code end-to-end in its own sandboxed cloud environment.",
    "reason": "The original one-liner was close but missed key aspects. Devin's core feature is its autonomy and sandboxed environment.",
    "url": "https://www.cognition-labs.com/blog/introducing-devin"
   },
   {
    "field": "auth_methods",
    "old": "[\"bearer_token\"]",
    "new": "[\"bearer_token\", \"oauth2\"]",
    "reason": "The primary authentication method is static bearer tokens (Personal Access Tokens and Service User API Keys). However, the documentation also describes a keyless OIDC-based method for authenticating to cloud services like AWS and GCP. While this isn't for authenticating to the Devin API itself, it is a documented authentication method used by Devin. The first-pass record missed OIDC.",
    "url": "https://docs.devin.ai/work-with-devin/oidc"
   },
   {
    "field": "auth_notes",
    "old": "Static tokens (Service User API Key or Personal Access Token) with a 'cog_' prefix passed via the 'Authorization: Bearer' header. No public OAuth2 application flow.",
    "new": "The Devin API uses static bearer tokens passed in the Authorization: Bearer header. All tokens have a cog_ prefix. There are two types: Personal Access Tokens (PATs) for authenticating as a human user, and Service User API Keys for non-human automation, which is the recommended method for integrations. There is no public OAuth2 flow for third-party apps to authenticate users.",
    "reason": "The original quote was fabricated. The official documentation clearly outlines the two types of tokens and their use cases.",
    "url": "https://docs.devin.ai/api-reference/authentication"
   },
   {
    "field": "access",
    "old": "self_serve_free",
    "new": "paid_plan",
    "reason": "The original record incorrectly stated that the free tier includes API access. While a free plan exists, multiple sources confirm API access is a feature of paid plans. The billing page on the docs site is ambiguous, but a pricing comparison page and third-party analysis clarify that the \"Devin API\" is not included in the free tier.",
    "url": "https://docs.devin.ai/admin/billing"
   },
   {
    "field": "access_notes",
    "old": "Any developer can sign up for a free Devin account and generate working API keys from account settings. A permanently free tier with limited usage is available.",
    "new": "While Devin offers a free plan with light usage, API access is only available on paid plans, starting with the \"Pro\" or \"Core\" tier. The free plan is for trying the agent via the web UI and includes unlimited inline edits and completions, but does not grant API credentials.",
    "reason": "The original quotes were either fabricated or misinterpreted. The free plan exists but is limited. API access is explicitly listed as a feature of paid plans.",
    "url": "https://docs.devin.ai/admin/billing"
   },
   {
    "field": "mcp_notes",
    "old": "Cognition hosts an official authenticated MCP server at https://mcp.devin.ai/ for programmatic access to Devin's platform capabilities.",
    "new": "Cognition hosts an official authenticated MCP server at https://mcp.devin.ai/mcp for programmatic access to Devin's platform capabilities, including session management, playbooks, and knowledge.",
    "reason": "The URL for the MCP server was more specific in the verification notes.",
    "url": "https://docs.devin.ai/work-with-devin/devin-mcp"
   },
   {
    "field": "verdict",
    "old": "ready_now",
    "new": "ready_with_friction",
    "reason": "Since API access requires a paid plan, it does not meet the ready_now definition (\"self-serve creds... at no cost\"). It falls under ready_with_friction due to the paid_plan requirement.",
    "url": "https://docs.devin.ai/admin/billing"
   },
   {
    "field": "blocker",
    "old": "none",
    "new": "paid_plan",
    "reason": "The blocker is that API access is not available on the free tier.",
    "url": "https://docs.devin.ai/admin/billing"
   },
   {
    "field": "blocker_notes",
    "old": "none",
    "new": "API access is only available on paid plans.",
    "reason": "Based on the verification of the access field.",
    "url": "https://docs.devin.ai/admin/billing"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 9,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 9,
   "quote_supported_rate": 0.6666666666666666,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 13,
   "alive_rate": 0.8461538461538461,
   "dead_rate": 0.15384615384615385,
   "blocked_rate": 0.0,
   "official_rate": 0.9230769230769231,
   "readable": 11,
   "quote_supported_rate": 0.45454545454545453,
   "lint_issues": 0,
   "flag_count": 4
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 97,
  "name": "higgsfield",
  "category": "AI, Research and Media-native",
  "hint": "higgsfield.ai/cli (content suite)",
  "subcategory": "AI-powered video and image generation",
  "one_liner": "Higgsfield is an AI-powered video and image generation platform that consolidates access to over 50 generative media models under a single, unified API endpoint.",
  "auth_methods": [
   "api_key"
  ],
  "primary_auth": "api_key",
  "auth_notes": "The public developer REST API authenticates requests using a custom Authorization header with the format key KEY_ID:KEY_SECRET. This is the only method for the REST API. Separately, Higgsfield offers an official MCP server that allows AI agents to access its tools, which uses the same underlying API key credentials for authentication on the backend.",
  "access": "self_serve_free",
  "access_notes": "To obtain and use API credentials, developers must sign up for an API account, register a payment method, and fund a prepaid balance. Access is pay-as-you-go with no required subscription. The minimum top-up is $5. While there is no permanent free tier for API usage, Higgsfield has offered promotional free trials, such as a 3-day trial with 100 credits via its MCP page.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "moderate",
  "api_notes": "The API covers image and video generation operations, checking request status, canceling queued requests, and file uploads. It is a REST API.",
  "openapi_spec": true,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "The official Higgsfield MCP server is located at mcp.higgsfield.ai. It allows AI agents like Claude to connect to Higgsfield's tools. Community-built MCP servers also exist, for example, in public GitHub repositories.",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "There is no permanent free tier for API usage. To test the integration, developers must register a payment method and fund a prepaid balance with a minimum of $5.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://docs.higgsfield.ai/docs",
    "quote": "generate images and videos through one authenticated, asynchronous api. higgsfield provides one integration point for generative media models."
   },
   {
    "claim": "general",
    "url": "https://higgsfield.ai/creator-hub/help-center/integrations/what-is-the-higgsfield-api",
    "quote": "one api key opens every model in the api catalog: 50+ current video and image models, including seedance, kling, wan, minimax, pixverse, ltx, and grok for video and ideogram, recraft, and qwen for images, alongside higgsfield's own soul 2, soul cinema, dop, and marketing studio image."
   },
   {
    "claim": "auth",
    "url": "https://docs.higgsfield.ai/docs",
    "quote": "--header \"authorization: key ${ hf_api_key_id }:${ hf_api_key_secret }\""
   },
   {
    "claim": "auth",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQFYHc1C619B2jG-mOsGk5n8fcBZRxQhzbtSsEuccoesI73MI_IdnLVV1xnsG1I6Ryq8r2Sd8n2xTNRveu55qd4Aj4VktF78NG8RoSiDSbxNxRzMoyuh5qydNIZVTh_9HFMfhAHI7luj_KpfRVUghwaMbWlf0mbJmZJr-XG2qRJNRlSyQ0zT5QCZexOQ62JFv1nS4VFIu26v",
    "quote": "The REST API at https://api.higgsfield.ai: a separate developer path that authenticates with an Authorization: Key KEY_ID:KEY_SECRET header issued from cloud.higgsfield.ai."
   },
   {
    "claim": "access",
    "url": "https://higgsfield.ai/creator-hub/help-center/integrations/what-is-the-higgsfield-api",
    "quote": "sign up for an api account, either as an individual or as a company. register a payment method and fund your balance. generate an api key in the console at console.higgsfield.ai ."
   },
   {
    "claim": "access",
    "url": "https://higgsfield.ai/creator-hub/help-center/integrations/what-is-the-higgsfield-api",
    "quote": "each request is paid in us dollars from a prepaid balance. no plan or subscription is involved: fund the balance, send requests at the rates listed in the catalog, and new requests simply wait once the balance hits zero."
   },
   {
    "claim": "access",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQHg5xksIkYZiGa4kqmKCz_ZjsE46LCVy1nBxt8yieu8kO5S7HFdjlveEUIJqZqfOIyklHDMD_NkDRU9GVDk5RNKTnLSyEKB1wesknDsJqBvw-4fVjPd18kuniDZ-ubB8RXxJB8fiFHY4coUW6ZUBHuifH9EP5ISgH_WLKlDGphAaCfHOerLih210vNwKrn46guRowiFkvQrfWHodoUSk1emAv-r8q4IQQwwWuFfwpK94baAuovS0QKjSESWPrt_VhVHxkJLNg==",
    "quote": "There is no subscription fee of any kind for API access; Minimum top up is $5;"
   },
   {
    "claim": "api",
    "url": "https://higgsfield.ai/creator-hub/help-center/integrations/what-is-the-higgsfield-api",
    "quote": "call the rest api directly from any language with an http client"
   },
   {
    "claim": "api",
    "url": "https://docs.higgsfield.ai/docs/api-reference/overview",
    "quote": "reference for higgsfield image and video generation operations, request status, and cancellation."
   },
   {
    "claim": "api",
    "url": "https://docs.higgsfield.ai/docs/api-reference/overview",
    "quote": "the api reference is generated from the public openapi specification."
   },
   {
    "claim": "api",
    "url": "https://docs.higgsfield.ai/docs",
    "quote": "submit a request to a model endpoint, then poll for the result or receive a webhook when processing finishes."
   },
   {
    "claim": "mcp",
    "url": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQEDh1Hzrzj8Bjm9eq16mek-iFUPGG25Jv64-TuReiiZBVgfAeHVQHt7-f1DNIPlthAlpCBAYeFh_ryx_IKmM7_i4ay9OuETYjr0AhF2Y-miynoYo5rdgZ4l62KxNIeJcy8oGA_QogdM8kvVWSy60vetbDV57KdwDXWOMta_SxoqefNr6KXXW5gLUOBL0pbBPkCVG4OuY5E=",
    "quote": "The official Higgsfield MCP. Connects Higgsfield to Claude, ChatGPT, and other AI agents. The official setup page is higgsfield.ai/mcp, and the only official connector URL is mcp.higgsfield.ai/mcp."
   },
   {
    "claim": "verdict",
    "url": "https://higgsfield.ai/creator-hub/help-center/integrations/what-is-the-higgsfield-api",
    "quote": "each request is paid in us dollars from a prepaid balance. no plan or subscription is involved: fund the balance, send requests at the rates listed in the catalog, and new requests simply wait once the balance hits zero."
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "api_key",
   "auth_methods": [
    "api_key"
   ],
   "access": "paid_plan",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "moderate",
   "mcp": "official",
   "verdict": "ready_with_friction",
   "blocker": "paid_plan"
  },
  "verifier_changes": [
   {
    "field": "auth_notes",
    "old": "The public developer REST API authenticates requests using a custom authorization header containing an API Key ID and an API Key Secret. A multi-tenant integration platform would use this method, requiring each tenant to generate and provide their own server-side API Key ID and Secret. Higgsfield provides an official hosted MCP server that utilizes an OAuth connector to link directly to a user's web account credits, but the public developer REST API relies strictly on the server-side API key credentials.",
    "new": "The public developer REST API authenticates requests using a custom Authorization header with the format key KEY_ID:KEY_SECRET. This is the only method for the REST API. Separately, Higgsfield offers an official MCP server that allows AI agents to access its tools, which uses the same underlying API key credentials for authentication on the backend.",
    "reason": "The original notes incorrectly implied the MCP server uses OAuth in a user-facing sense. The MCP is a separate connection method for AI agents and uses the same underlying API key credentials.",
    "url": "https://docs.higgsfield.ai/docs"
   },
   {
    "field": "access",
    "old": "paid_plan",
    "new": "self_serve_free",
    "reason": "The API is pay-as-you-go with no subscription required to obtain credentials, fitting the 'self_serve_free' definition where usage is paid but access to credentials is free.",
    "url": "https://higgsfield.ai/creator-hub/help-center/integrations/what-is-the-higgsfield-api"
   },
   {
    "field": "access_notes",
    "old": "To obtain credentials, developers must sign up for an API account, register a payment method, and fund a prepaid balance. There is no free tier or trial available for the public REST API. Minimum top up is $5.",
    "new": "To obtain and use API credentials, developers must sign up for an API account, register a payment method, and fund a prepaid balance. Access is pay-as-you-go with no required subscription. The minimum top-up is $5. While there is no permanent free tier for API usage, Higgsfield has offered promotional free trials, such as a 3-day trial with 100 credits via its MCP page.",
    "reason": "The original notes incorrectly stated no free tier or trial. While the main API is pay-as-you-go, promotional trials exist, and the core access is not subscription-based.",
    "url": "https://higgsfield.ai/creator-hub/help-center/integrations/what-is-the-higgsfield-api"
   },
   {
    "field": "blocker",
    "old": "paid_plan",
    "new": "paid_plan",
    "reason": "The blocker is not a 'paid_plan' (which implies a subscription). The blocker is the requirement to add a payment method and pre-fund an account balance.",
    "url": "https://higgsfield.ai/creator-hub/help-center/integrations/what-is-the-higgsfield-api"
   },
   {
    "field": "blocker_notes",
    "old": "There is no free tier or trial available for the public developer REST API. Developers must register a payment method and fund a prepaid balance (minimum $5) to obtain working credentials and test the integration.",
    "new": "There is no permanent free tier for API usage. To test the integration, developers must register a payment method and fund a prepaid balance with a minimum of $5.",
    "reason": "The notes were updated to reflect the existence of promotional trials and clarify that the core issue is funding a balance, not a lack of a free tier.",
    "url": "https://higgsfield.ai/creator-hub/help-center/integrations/what-is-the-higgsfield-api"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 13,
   "alive_rate": 0.8461538461538461,
   "dead_rate": 0.15384615384615385,
   "blocked_rate": 0.0,
   "official_rate": 0.7692307692307693,
   "readable": 11,
   "quote_supported_rate": 0.7272727272727273,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 13,
   "alive_rate": 0.8461538461538461,
   "dead_rate": 0.15384615384615385,
   "blocked_rate": 0.0,
   "official_rate": 0.7692307692307693,
   "readable": 11,
   "quote_supported_rate": 0.7272727272727273,
   "lint_issues": 0,
   "flag_count": 3
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 98,
  "name": "Mermaid CLI",
  "category": "AI, Research and Media-native",
  "hint": "github.com/mermaid-js/mermaid-cli",
  "subcategory": "Diagramming",
  "one_liner": "Mermaid CLI is a command-line utility for converting Mermaid text-based diagram definitions into image formats.",
  "auth_methods": [
   "none"
  ],
  "primary_auth": "none",
  "auth_notes": "Mermaid CLI is a local command-line utility and does not offer a hosted public API, thus no authentication mechanisms are present.",
  "access": "self_serve_free",
  "access_notes": "The tool is completely free and open-source, installable via package managers like npm or run via Docker without registration or credentials.",
  "api_styles": [
   "cli_or_library"
  ],
  "api_breadth": "moderate",
  "api_notes": "Operated via terminal commands and arguments, supporting single diagram conversion, batch processing of markdown files, and extensive visual customization.",
  "openapi_spec": false,
  "webhooks": false,
  "sandbox": false,
  "mcp": "community_only",
  "mcp_notes": "No official MCP servers for the standalone Mermaid CLI; community-created MCP servers exist that wrap the CLI for AI agents.",
  "verdict": "ready_with_friction",
  "blocker": "local_cli_only",
  "blocker_notes": "As an open-source command-line tool, it requires wrapping and execution within a secure local sandbox or container environment for integration.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://github.com/mermaid-js/mermaid-cli",
    "quote": "command-line interface (CLI) for mermaid"
   },
   {
    "claim": "auth",
    "url": "https://github.com/mermaid-js/mermaid-cli",
    "quote": "MIT License"
   },
   {
    "claim": "access",
    "url": "https://github.com/mermaid-js/mermaid-cli",
    "quote": "npx -p @mermaid-js/mermaid-cli mmdc -h"
   },
   {
    "claim": "api",
    "url": "https://github.com/mermaid-js/mermaid-cli",
    "quote": "It's possible to call mermaid-cli via a Node.JS API"
   },
   {
    "claim": "mcp",
    "url": "https://lobehub.com/nl/mcp/aviciot-mcp_mermaid",
    "quote": "generate beautiful diagrams from mermaid syntax code via model context protocol (mcp)... docker deployment : fully containerized with mermaid-cli"
   },
   {
    "claim": "verdict",
    "url": "https://github.com/mermaid-js/mermaid-cli",
    "quote": "command-line interface (CLI) for mermaid"
   }
  ],
  "confidence": 1.0,
  "needs_human": false,
  "needs_human_reason": "",
  "pass1": {
   "primary_auth": "none",
   "auth_methods": [
    "none"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "cli_or_library"
   ],
   "api_breadth": "moderate",
   "mcp": "community_only",
   "verdict": "ready_with_friction",
   "blocker": "local_cli_only"
  },
  "verifier_changes": [],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "confirmed",
   "access": "confirmed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "confirmed",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 8,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.625,
   "readable": 8,
   "quote_supported_rate": 0.875,
   "lint_issues": 0,
   "flag_count": 2
  },
  "citations_pass2": {
   "n_evidence": 6,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 0.8333333333333334,
   "readable": 6,
   "quote_supported_rate": 0.5,
   "lint_issues": 0,
   "flag_count": 2
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 99,
  "name": "YouTube Transcript",
  "category": "AI, Research and Media-native",
  "hint": "transcriptapi.com",
  "subcategory": "Video Transcripts",
  "one_liner": "Extracts YouTube video transcripts, channel data, playlists, and search results via REST API or a native MCP server for AI agents.",
  "auth_methods": [
   "api_key",
   "oauth2"
  ],
  "primary_auth": "api_key",
  "auth_notes": "The REST API uses an API key passed as a bearer token in the Authorization header. The MCP server supports both API Key authentication and OAuth 2.1 for connecting with AI agents like Claude (Dynamic Client Registration) and ChatGPT (Static Client Registration with Client ID/Secret).",
  "access": "self_serve_free",
  "access_notes": "Instant, self-serve signup with a free tier of 100 credits and no credit card required. Paid plans start at $5/month for 1,000 credits. API keys (prefixed with 'sk_') are available on the user dashboard after signup.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "moderate",
  "api_notes": "The API has two documented base URLs: https://transcriptapi.com/api/v2 and a newer https://api.transcriptapi.io. It offers approximately 8 endpoints covering transcripts, search, channel data (info, videos, search, latest uploads), and playlists. A User-Agent header is required for all requests to avoid being blocked.",
  "openapi_spec": false,
  "webhooks": false,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "The vendor hosts an official MCP server at https://transcriptapi.com/mcp, providing AI agents with access to transcripts, video search, channel browsing, and playlist extraction.",
  "verdict": "ready_now",
  "blocker": "none",
  "blocker_notes": "none",
  "evidence": [
   {
    "claim": "general",
    "url": "https://transcriptapi.com/",
    "quote": "Stop fighting YouTube blocks. Get transcripts, search videos, browse channels, and extract playlists via REST API or YouTube MCP — at scale."
   },
   {
    "claim": "auth",
    "url": "https://transcriptapi.com/docs/mcp/",
    "quote": "OAuth Authentication. ... OAuth provides automatic, secure authentication without manual key management. Supported by: Claude (Dynamic Client Registration - optional credentials) ChatGPT (Static Client Registration - requires Client ID/Secret) Any MCP client supporting OAuth 2.1."
   },
   {
    "claim": "access",
    "url": "https://transcriptapi.com/blog/youtube-transcript-api-complete-developer-guide",
    "quote": "Free tier: 100 credits to start. No credit card required. No time limit. Monthly plan: $5/month for 1,000 credits. Top-up at $2.50 per 1,000 extra credits. ... Annual plan: $54/year for 1,000 credits/month. Top-up at $1.50 per 1,000 extra credits."
   },
   {
    "claim": "access",
    "url": "https://transcriptapi.com/docs/mcp/chatgpt/",
    "quote": "Get your credentials from the MCP Integration dashboard. Select “OAuth (Recommended)” and click “Generate Credentials” ... Copy both the Client ID and Client Secret from the TranscriptAPI dashboard."
   },
   {
    "claim": "api",
    "url": "https://transcriptapi.com/docs/api-reference",
    "quote": "TranscriptAPI is a managed REST API built specifically for YouTube data extraction. It handles transcripts, but it also covers search, channel listing, and playlist extraction in a single API."
   },
   {
    "claim": "api",
    "url": "https://transcriptapi.com/docs/api-reference",
    "quote": "curl -s \"https://transcriptapi.com/api/v2/youtube/transcript... -H \"Authorization: Bearer YOUR_API_KEY\""
   },
   {
    "claim": "api",
    "url": "https://transcriptapi.com/docs/api-reference",
    "quote": "Every request needs two headers: - Authorization: Bearer $TRANSCRIPT_API_KEY - User-Agent: your agent's name and version if known ... Do not omit this header or send a bare default — Cloudflare will return a 403 (error code 1010) and block the request."
   },
   {
    "claim": "mcp",
    "url": "https://transcriptapi.com/docs/mcp/",
    "quote": "Server Name, Transcript API. Server URL, https://transcriptapi.com/mcp. Description, Use TranscriptAPI to fetch YouTube video transcript automatically."
   }
  ],
  "confidence": 1.0,
  "needs_human": true,
  "needs_human_reason": "The 'webhooks' field is uncertain due to conflicting information (new API reference vs. other documentation). Also, there are two different active API reference pages with different base URLs and slightly different endpoint sets, and their relationship is unclear.",
  "pass1": {
   "primary_auth": "oauth2",
   "auth_methods": [
    "api_key",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "moderate",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "primary_auth",
    "old": "oauth2",
    "new": "api_key",
    "reason": "The primary method for direct, multi-tenant API integration is api_key. OAuth 2.1 is specifically for MCP clients, not general API access.",
    "url": "https://transcriptapi.com/docs/api-reference"
   },
   {
    "field": "auth_notes",
    "old": "API Key for direct REST API requests (Bearer token in Authorization header). OAuth 2.1 for MCP server, supporting Dynamic Client Registration (Claude) and Static Client Registration (ChatGPT).",
    "new": "The REST API uses an API key passed as a bearer token in the Authorization header. The MCP server supports both API Key authentication and OAuth 2.1 for connecting with AI agents like Claude (Dynamic Client Registration) and ChatGPT (Static Client Registration with Client ID/Secret).",
    "reason": "Clarified the usage of API key for direct API and OAuth 2.1 for MCP integrations.",
    "url": "https://transcriptapi.com/docs/api-reference"
   },
   {
    "field": "access_notes",
    "old": "Instant signup without credit card. API keys (sk_ prefix) available on dashboard. OAuth Client ID/Secret generated from MCP Integration dashboard. Free tier: 100 credits, no time limit, no credit card. Paid plans available.",
    "new": "Instant, self-serve signup with a free tier of 100 credits and no credit card required. Paid plans start at $5/month for 1,000 credits. API keys (prefixed with 'sk_') are available on the user dashboard after signup.",
    "reason": "Corrected based on verification notes, removing fabricated quotes and adding details about API key prefix.",
    "url": "https://transcriptapi.com/blog/youtube-transcript-api-complete-developer-guide"
   },
   {
    "field": "api_breadth",
    "old": "moderate",
    "new": "moderate",
    "reason": "The first-pass record was correct in breadth but cited a dead link. The new API reference documents 8 primary endpoints, which is still considered moderate.",
    "url": "https://transcriptapi.com/docs/api-reference"
   },
   {
    "field": "api_notes",
    "old": "Base URL: https://transcriptapi.com/api/v2. Approximately 12 endpoints covering transcripts, video metadata, channel profiles, paginated channel feeds, playlists, community posts, and search filters. Requires User-Agent header.",
    "new": "The API has two documented base URLs: https://transcriptapi.com/api/v2 and a newer https://api.transcriptapi.io. It offers approximately 8 endpoints covering transcripts, search, channel data (info, videos, search, latest uploads), and playlists. A User-Agent header is required for all requests to avoid being blocked.",
    "reason": "Corrected base URLs, endpoint count, and clarified required User-Agent header based on verification notes.",
    "url": "https://transcriptapi.com/docs/api-reference"
   },
   {
    "field": "openapi_spec",
    "old": "true",
    "new": "false",
    "reason": "The first-pass record claimed 'true' based on a fabricated quote from a dead link. No public URL for an openapi.json file was found.",
    "url": "N/A"
   },
   {
    "field": "webhooks",
    "old": "false",
    "new": "false",
    "reason": "While a new API reference mentions webhook endpoints, it seems to be a very recent and possibly unlaunched feature, and other documentation does not mention webhooks. Therefore, it's safer to keep it as false for now.",
    "url": "N/A"
   }
  ],
  "human_reviewed": true,
  "human_note": "primary_auth: transcriptapi.com: key sent as 'Authorization: Bearer API_KEY', vendor calls it an API key; no OAuth",
  "provenance": {
   "primary_auth": "verifier_fixed",
   "auth_methods": "confirmed",
   "access": "confirmed+checker_ok",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed+checker_ok",
   "verdict": "confirmed+checker_ok",
   "blocker": "confirmed"
  },
  "citations_pass1": {
   "n_evidence": 10,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 10,
   "quote_supported_rate": 0.1,
   "lint_issues": 0,
   "flag_count": 1
  },
  "citations_pass2": {
   "n_evidence": 8,
   "alive_rate": 1.0,
   "dead_rate": 0.0,
   "blocked_rate": 0.0,
   "official_rate": 1.0,
   "readable": 8,
   "quote_supported_rate": 0.125,
   "lint_issues": 0,
   "flag_count": 1
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 },
 {
  "id": 100,
  "name": "Grain",
  "category": "AI, Research and Media-native",
  "hint": "grain.com (meeting notes)",
  "subcategory": "Meeting recording and note-taking",
  "one_liner": "AI-powered meeting recording and note-taking platform that captures, transcribes, and summarizes video calls.",
  "auth_methods": [
   "bearer_token"
  ],
  "primary_auth": "bearer_token",
  "auth_notes": "Public API supports Personal Access Tokens (PATs) passed as a Bearer token. OAuth2 is available for specific pre-built integrations.",
  "access": "paid_plan",
  "access_notes": "A developer can sign up for a free account, but API access requires upgrading to a paid \"Starter\" plan or higher. The claim that the API is available on the free tier is incorrect.",
  "api_styles": [
   "rest"
  ],
  "api_breadth": "broad",
  "api_notes": "The API covers reading and managing recordings, highlights, video uploads, tags, action items, teams, users, and webhooks.",
  "openapi_spec": false,
  "webhooks": true,
  "sandbox": false,
  "mcp": "official",
  "mcp_notes": "Grain hosts and maintains an official remote MCP server. Access requires the \"Business\" plan or higher. Configuration: mangual config via mcp-remote : { \"grain\": { \"command\": \"npx\", \"args\": [\"-y\", \"mcp-remote\", \"https://api.grain.com/_/mcp\"] } }",
  "verdict": "ready_with_friction",
  "blocker": "paid_plan",
  "blocker_notes": "API access requires a paid subscription, starting with the \"Starter\" plan.",
  "evidence": [
   {
    "claim": "general",
    "url": "https://coldiq.com/tools/grain",
    "quote": "Grain is an AI-powered meeting tool designed for sales, customer success, and product teams. It automatically records, transcribes, and summarizes meetings to keep teams focused without manual note-taking."
   },
   {
    "claim": "auth",
    "url": "https://grain.com/app/settings/integrations?tab=api",
    "quote": "A Personal Access Token (PAT) authenticates requests as you, with the same access you have in Grain. Generate one here: https://grain.com/app/settings/integrations?tab=api."
   },
   {
    "claim": "auth",
    "url": "https://grain.com/app/settings/integrations?tab=api",
    "quote": "Every request needs a token in the Authorization header and a Public-Api-Version header (see Versions). ... curl -X GET \\ -H \"Authorization: Bearer grain_pat_example123\" \\ -H \"Public-Api-Version: 2026-10-01\" \\ https://api.grain.com/_/public-api/v2/token-info"
   },
   {
    "claim": "access",
    "url": "https://grain.com/help/article/what-is-included-in-the-free-plan-167890",
    "quote": "What is not included: file uploads, Trackers, AI coaching, CRM integrations, Teams, and API access."
   },
   {
    "claim": "access",
    "url": "https://grain.com/help/article/what-is-included-in-the-starter-plan-167891",
    "quote": "Additionally, the Starter Plan includes API access for exporting transcripts and integrating Grain with other tools to build custom workflows and automations."
   },
   {
    "claim": "api",
    "url": "https://semarize.com/resources/get-your-data/grain",
    "quote": "Grain exposes recordings and transcripts through a REST API at api.grain.com/_/public-api/."
   },
   {
    "claim": "api",
    "url": "https://grain.com/app/settings/integrations?tab=api",
    "quote": "The Grain API lets you read and manage recordings, highlights, uploads, and more."
   },
   {
    "claim": "api",
    "url": "https://developers.grain.com/docs/api-reference/2026-10-01/release-notes",
    "quote": "Two highly-requested additions for API users: tags and action items! Dig into the docs at developers.grain.com."
   },
   {
    "claim": "api",
    "url": "https://grain.com/app/settings/integrations?tab=api",
    "quote": "Hooks let Grain notify your server when something happens. Create one with a hook_type and a URL, and Grain sends a POST request to that URL whenever a matching event occurs."
   },
   {
    "claim": "mcp",
    "url": "https://grain.com/help/article/what-is-included-in-the-business-plan-167893",
    "quote": "The Business Plan includes everything in Starter, plus... access to Grain's advanced MCP server, which lets AI assistants like ChatGPT or Claude connect directly to your workspace data."
   },
   {
    "claim": "mcp",
    "url": "https://grain.com/release-note/06-18-2025",
    "quote": "mangual config via mcp-remote : { \"grain\": { \"command\": \"npx\", \"args\": [\"-y\", \"mcp-remote\", \"https://api.grain.com/_/mcp\"] } }"
   }
  ],
  "confidence": 0.8,
  "needs_human": true,
  "needs_human_reason": "Uncertainty regarding openapi_spec and sandbox due to conflicting information or potential product confusion. A non-official GitHub repo mentions an OpenAPI spec, but official docs do not. Documentation for a likely separate 'Grain' payments product mentions a sandbox, but the meeting recorder's developer docs do not.",
  "pass1": {
   "primary_auth": "bearer_token",
   "auth_methods": [
    "bearer_token",
    "oauth2"
   ],
   "access": "self_serve_free",
   "api_styles": [
    "rest"
   ],
   "api_breadth": "broad",
   "mcp": "official",
   "verdict": "ready_now",
   "blocker": "none"
  },
  "verifier_changes": [
   {
    "field": "auth_methods",
    "old": "[\"bearer_token\", \"oauth2\"]",
    "new": "[\"bearer_token\"]",
    "reason": "The primary public API uses Personal Access Tokens (PATs), which are a form of bearer token. The documentation found mentions \"Organization API keys\" and \"OAuth 2.1\", but this appears to be for a different product, \"Grain Ledger\" or a crypto payments platform, not the meeting notes app. The developer docs for the meeting notes app clearly state Personal Access Tokens are the primary method.",
    "url": "https://grain.com/app/settings/integrations?tab=api"
   },
   {
    "field": "access",
    "old": "self_serve_free",
    "new": "paid_plan",
    "reason": "API access is not included in the Free plan. It is available on the \"Starter\" plan and above.",
    "url": "https://grain.com/help/article/what-is-included-in-the-free-plan-167890"
   },
   {
    "field": "access_notes",
    "old": "Any developer can sign up for a free Grain account and instantly generate a Personal Access Token from the workspace settings without requiring manual approval or partner review. The personal API is available across all plans, including the free tier.",
    "new": "A developer can sign up for a free account, but API access requires upgrading to a paid \"Starter\" plan or higher. The claim that the API is available on the free tier is incorrect.",
    "reason": "A developer can sign up for a free account, but API access requires upgrading to a paid \"Starter\" plan or higher. The claim that the API is available on the free tier is incorrect.",
    "url": "https://grain.com/help/article/what-is-included-in-the-free-plan-167890"
   },
   {
    "field": "mcp_notes",
    "old": "Grain hosts and maintains an official remote MCP server available to all users. Configuration: mangual config via mcp-remote : { \"grain\": { \"command\": \"npx\", \"args\": [\"-y\", \"mcp-remote\", \"https://api.grain.com/_/mcp\"] } }",
    "new": "Grain hosts and maintains an official remote MCP server. Access requires the \"Business\" plan or higher. Configuration: mangual config via mcp-remote : { \"grain\": { \"command\": \"npx\", \"args\": [\"-y\", \"mcp-remote\", \"https://api.grain.com/_/mcp\"] } }",
    "reason": "The MCP server is official, but it is not available to all users. Access requires the \"Business\" plan or higher. The configuration details are correct.",
    "url": "https://grain.com/help/article/what-is-included-in-the-business-plan-167893"
   },
   {
    "field": "verdict",
    "old": "ready_now",
    "new": "ready_with_friction",
    "reason": "The API is not available on a free plan. A developer must subscribe to the paid \"Starter\" plan (or higher) to gain API access, which constitutes friction.",
    "url": "https://grain.com/help/article/what-is-included-in-the-free-plan-167890"
   },
   {
    "field": "blocker",
    "old": "none",
    "new": "paid_plan",
    "reason": "API access requires a paid subscription, starting with the \"Starter\" plan.",
    "url": "https://grain.com/help/article/what-is-included-in-the-free-plan-167890"
   },
   {
    "field": "blocker_notes",
    "old": "None. The API documentation is fully public, and credentials can be obtained immediately via self-serve methods on a free account.",
    "new": "API access requires a paid subscription, starting with the \"Starter\" plan.",
    "reason": "API access requires a paid subscription, starting with the \"Starter\" plan.",
    "url": "https://grain.com/help/article/what-is-included-in-the-free-plan-167890"
   }
  ],
  "human_reviewed": false,
  "human_note": "",
  "provenance": {
   "primary_auth": "confirmed",
   "auth_methods": "verifier_fixed",
   "access": "verifier_fixed",
   "api_styles": "confirmed",
   "api_breadth": "confirmed",
   "mcp": "confirmed",
   "verdict": "verifier_fixed",
   "blocker": "verifier_fixed"
  },
  "citations_pass1": {
   "n_evidence": 15,
   "alive_rate": 0.9333333333333333,
   "dead_rate": 0.06666666666666667,
   "blocked_rate": 0.0,
   "official_rate": 0.6666666666666666,
   "readable": 9,
   "quote_supported_rate": 0.3333333333333333,
   "lint_issues": 0,
   "flag_count": 3
  },
  "citations_pass2": {
   "n_evidence": 11,
   "alive_rate": 0.6363636363636364,
   "dead_rate": 0.2727272727272727,
   "blocked_rate": 0.09090909090909091,
   "official_rate": 0.8181818181818182,
   "readable": 3,
   "quote_supported_rate": 0.6666666666666666,
   "lint_issues": 0,
   "flag_count": 4
  },
  "models": {
   "research": "gemini-3-flash-preview",
   "verify": "gemini-2.5-pro"
  }
 }
]