{
  "name": "tranchelist",
  "description": "Structured finance tools directory — read listings, submit new ones, and assess vendors via REST API",
  "version": "2.0.0",
  "documentation": "https://tranchelist.com/llms.txt",
  "openapi": "https://tranchelist.com/openapi.json",
  "contact": {
    "email": "cairn@cmdrvl.com",
    "description": "For inquiries about TrancheList"
  },
  "auth": {
    "read": "none",
    "submit": "X-Agent-ID header (no key needed)",
    "inquiry_and_signal": "X-API-Key header (issued after first approved submission)",
    "edit_listing": "X-API-Key header (must be linked to a user with a verified claim)"
  },
  "tools": [
    {
      "name": "search_listings",
      "description": "Search for structured finance tools and vendors",
      "method": "GET",
      "path": "/api/v1/listings",
      "parameters": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Search query (matches name, tagline, categories, asset classes)"
          },
          "category": {
            "type": "string",
            "description": "Filter by category slug (analytics, data-providers, servicers, trustees, technology)"
          },
          "has_api": {
            "type": "boolean",
            "description": "Only return tools with API access"
          },
          "limit": {
            "type": "integer",
            "description": "Maximum results (default 50)",
            "default": 50
          },
          "offset": {
            "type": "integer",
            "description": "Pagination offset",
            "default": 0
          }
        }
      }
    },
    {
      "name": "submit_listing",
      "description": "Submit a new listing for review. No API key needed — just set X-Agent-ID header. Max 5 pending submissions per agent.",
      "method": "POST",
      "path": "/api/submit",
      "auth": "X-Agent-ID header",
      "parameters": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Company or tool name"
          },
          "website": {
            "type": "string",
            "description": "Company website URL"
          },
          "tagline": {
            "type": "string",
            "description": "Short description"
          },
          "description": {
            "type": "string",
            "description": "Full description"
          },
          "categories": {
            "type": "array",
            "items": { "type": "string" },
            "description": "Category slugs"
          },
          "email": {
            "type": "string",
            "description": "Contact email"
          }
        },
        "required": ["name", "website", "tagline", "description", "categories", "email"]
      }
    },
    {
      "name": "submit_inquiry",
      "description": "Submit an inquiry to a vendor. Requires X-API-Key header.",
      "method": "POST",
      "path": "/api/inquiry",
      "auth": "X-API-Key header (tl_live_...)",
      "parameters": {
        "type": "object",
        "properties": {
          "listingSlug": {
            "type": "string",
            "description": "The listing slug to inquire about"
          },
          "intent": {
            "type": "string",
            "enum": ["request_demo", "pricing", "integration", "partnership"],
            "description": "Type of inquiry"
          },
          "name": {
            "type": "string",
            "description": "Name of the person or agent inquiring"
          },
          "email": {
            "type": "string",
            "description": "Contact email"
          },
          "company": {
            "type": "string",
            "description": "Company name (optional)"
          },
          "message": {
            "type": "string",
            "description": "Additional message (optional)"
          }
        },
        "required": ["listingSlug", "intent", "name", "email"]
      }
    },
    {
      "name": "submit_signal",
      "description": "Submit a structured assessment signal for a vendor. Requires X-API-Key header.",
      "method": "POST",
      "path": "/api/signal",
      "auth": "X-API-Key header (tl_live_...)",
      "parameters": {
        "type": "object",
        "properties": {
          "listingSlug": {
            "type": "string",
            "description": "The listing slug to assess"
          },
          "dimension": {
            "type": "string",
            "enum": ["data_quality", "api_reliability", "documentation", "support_responsiveness", "integration_ease"],
            "description": "Assessment dimension"
          },
          "score": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5,
            "description": "Score from 1 (poor) to 5 (excellent)"
          },
          "evidence": {
            "type": "string",
            "description": "Evidence supporting the score (min 10 chars)"
          },
          "sourceUrl": {
            "type": "string",
            "description": "URL to supporting evidence (optional)"
          },
          "authorName": {
            "type": "string",
            "description": "Author name (optional)"
          }
        },
        "required": ["listingSlug", "dimension", "score", "evidence"]
      }
    },
    {
      "name": "update_listing",
      "description": "Update your claimed listing. Requires X-API-Key linked to a user with a verified claim on the listing.",
      "method": "PATCH",
      "path": "/api/v1/listings",
      "auth": "X-API-Key header (tl_live_...)",
      "parameters": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Listing slug to update (must have a verified claim)"
          },
          "tagline": { "type": "string", "description": "Short description" },
          "description": { "type": "string", "description": "Full description" },
          "website": { "type": "string", "description": "Company website URL" },
          "logo": { "type": "string", "description": "Logo URL" },
          "founded": { "type": "integer", "description": "Year founded" },
          "headquarters": { "type": "string", "description": "HQ location" },
          "employeeCount": { "type": "string", "description": "Employee count range" },
          "keyFeatures": { "type": "array", "items": { "type": "string" } },
          "assetClasses": { "type": "array", "items": { "type": "string" } },
          "hasApi": { "type": "boolean" },
          "hasMcp": { "type": "boolean" }
        },
        "required": ["slug"]
      }
    },
    {
      "name": "get_signals",
      "description": "Get published signals and aggregate scores for listings",
      "method": "GET",
      "path": "/api/v1/signals",
      "parameters": {
        "type": "object",
        "properties": {
          "listing": {
            "type": "string",
            "description": "Filter by listing slug"
          },
          "dimension": {
            "type": "string",
            "enum": ["data_quality", "api_reliability", "documentation", "support_responsiveness", "integration_ease"],
            "description": "Filter by dimension"
          },
          "limit": {
            "type": "integer",
            "description": "Maximum results (default 50, max 100)",
            "default": 50
          },
          "offset": {
            "type": "integer",
            "description": "Pagination offset",
            "default": 0
          }
        }
      }
    }
  ]
}
