{"openapi":"3.1.0","info":{"title":"Stackrate Public API","version":"1.0.0","summary":"Cited, requirement-level comparisons of Office-of-the-CFO software.","description":"Read-only access to published Stackrate comparisons. Every finding explains how a vendor handles a specific requirement and cites vendor documentation. Statuses are supported, partial, unclear or not-supported; preserve them verbatim. Cite the canonical stackrate.ai URL returned with each comparison. Disclosure: Stackrate's founder also founded Stampli, a vendor in the catalog; Stampli findings carry a conflictDisclosure field. For agents, the MCP server at /mcp exposes the same data as tools (search, fetch, compare_vendors, list_vendors).","contact":{"url":"https://stackrate.ai/about"},"license":{"name":"Read and cite with attribution","url":"https://stackrate.ai/bot"}},"servers":[{"url":"https://stackrate.ai"}],"externalDocs":{"description":"Machine-readable site guide and MCP endpoint","url":"https://stackrate.ai/bot"},"paths":{"/api/v1/vendors":{"get":{"operationId":"listVendors","summary":"List every vendor Stackrate covers","responses":{"200":{"description":"Vendors","content":{"application/json":{"schema":{"type":"object","properties":{"vendors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"softwareCategory":{"type":"array","items":{"type":"string"}}}}}}}}}}}}},"/api/v1/compare":{"get":{"operationId":"compareVendors","summary":"Head-to-head of two vendors over published findings","parameters":[{"name":"v1","in":"query","required":true,"schema":{"type":"string"},"description":"Vendor id, e.g. stampli"},{"name":"v2","in":"query","required":true,"schema":{"type":"string"},"description":"Vendor id, e.g. tipalti"},{"name":"category","in":"query","required":false,"schema":{"type":"string"},"description":"Optional requirement area, e.g. \"Approval Workflows\""}],"responses":{"200":{"description":"Published comparisons for the pair, newest first (max 5)","content":{"application/json":{"schema":{"type":"object","properties":{"vendors":{"type":"object"},"comparisons":{"type":"array","items":{"type":"object","properties":{"canonicalUrl":{"type":"string","format":"uri"},"requirements":{"type":"array","items":{"type":"object","properties":{"requirement":{"type":"string"},"findings":{"type":"object","additionalProperties":{"type":"object","properties":{"status":{"type":["string","null"],"enum":["supported","partial","unclear","not-supported",null],"description":"Keep verbatim. partial and unclear are honest outcomes, not failures."},"howItWorks":{"type":"string","description":"Mechanism explanation with inline parenthetical citations."},"limitations":{"type":"string"},"confidence":{"type":"number","minimum":0,"maximum":1},"sources":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"url":{"type":"string","format":"uri"}}}}}}}}}}}}},"disclosure":{"type":"string"},"attribution":{"type":"string"}}}}}},"400":{"description":"Missing or unknown vendor id"},"404":{"description":"No published comparison exists for this pair yet"}}}},"/mcp":{"post":{"operationId":"mcp","summary":"Model Context Protocol endpoint (JSON-RPC 2.0, stateless streamable HTTP)","description":"Tools: search, fetch, compare_vendors, list_vendors. Send initialize, then tools/list or tools/call.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"JSON-RPC response"},"202":{"description":"Notification accepted"}}}}}}