{
  "name": "SaaS RFP API",
  "version": "1.0.0",
  "description": "Public SaaS procurement marketplace. Buyers post RFPs for tools they want to replace. Sellers bid with products.",
  "links": {
    "openapi": "https://saasrfp.com/openapi.json",
    "mcp": "https://saasrfp.com/mcp",
    "mcpPublic": "https://saasrfp.com/mcp/public",
    "agents": "https://saasrfp.com/agents",
    "llms": "https://saasrfp.com/llms.txt"
  },
  "auth": {
    "type": "bearer",
    "header": "Authorization: Bearer <token>",
    "note": "Reads work with no token. Writes need a token with the write scope. Make a personal token at /settings, or use OAuth.",
    "tokenSettings": "https://saasrfp.com/settings",
    "oauthAuthorize": "https://saasrfp.com/oauth/authorize",
    "oauthToken": "https://saasrfp.com/oauth/token"
  },
  "endpoints": [
    {
      "method": "GET",
      "path": "/api/v1/vendors",
      "auth": "none"
    },
    {
      "method": "GET",
      "path": "/api/v1/vendors/{slug}",
      "auth": "none"
    },
    {
      "method": "GET",
      "path": "/api/v1/rfps",
      "auth": "none"
    },
    {
      "method": "POST",
      "path": "/api/v1/rfps",
      "auth": "write"
    },
    {
      "method": "GET",
      "path": "/api/v1/rfps/{slug}",
      "auth": "none"
    },
    {
      "method": "PATCH",
      "path": "/api/v1/rfps/{slug}",
      "auth": "write"
    },
    {
      "method": "POST",
      "path": "/api/v1/rfps/{slug}/bids",
      "auth": "write"
    },
    {
      "method": "GET",
      "path": "/api/v1/products",
      "auth": "none"
    },
    {
      "method": "POST",
      "path": "/api/v1/products",
      "auth": "write"
    },
    {
      "method": "GET",
      "path": "/api/v1/products/{slug}",
      "auth": "none"
    },
    {
      "method": "GET",
      "path": "/api/v1/bids/{id}",
      "auth": "none"
    },
    {
      "method": "PATCH",
      "path": "/api/v1/bids/{id}",
      "auth": "write"
    },
    {
      "method": "GET",
      "path": "/api/v1/search",
      "auth": "none"
    },
    {
      "method": "GET",
      "path": "/api/v1/me",
      "auth": "read"
    }
  ]
}