{
  "openapi": "3.0.3",
  "info": {
    "title": "Abelian Security Council public surface",
    "version": "1.0.0",
    "description": "Discovery and documentation for the unauthenticated public pages on asc.agsv.com. This is not a data API: it lists marketing and trust pages only, and returns no member, client, or deal data. A separate, authenticated client API is planned but not public yet."
  },
  "servers": [
    { "url": "https://asc.agsv.com" }
  ],
  "paths": {
    "/pulse": {
      "get": {
        "operationId": "getPulse",
        "description": "Industry Activity Pulse archive. Public deal activity by month and mission domain. Supports Accept: text/markdown.",
        "responses": { "200": { "description": "OK" } }
      }
    },
    "/pulse/{month}": {
      "get": {
        "operationId": "getPulseIssue",
        "description": "One monthly Pulse issue (YYYY-MM). Supports Accept: text/markdown.",
        "parameters": [
          { "name": "month", "in": "path", "required": true, "schema": { "type": "string", "pattern": "^[0-9]{4}-[0-9]{2}$" } }
        ],
        "responses": { "200": { "description": "OK" }, "404": { "description": "Unknown month" } }
      }
    },
    "/": {
      "get": {
        "operationId": "getHome",
        "description": "Homepage. Marketing content only; supports Accept: text/markdown.",
        "responses": { "200": { "description": "OK" } }
      }
    },
    "/for-clients": {
      "get": {
        "operationId": "getClients",
        "description": "For Clients landing page. Marketing content only; supports Accept: text/markdown.",
        "responses": { "200": { "description": "OK" } }
      }
    },
    "/for-members": {
      "get": {
        "operationId": "getForMembers",
        "description": "For Members landing page. Marketing content only; supports Accept: text/markdown.",
        "responses": { "200": { "description": "OK" } }
      }
    },
    "/about": {
      "get": {
        "operationId": "getAbout",
        "description": "About page. Company facts and public leadership team only; supports Accept: text/markdown.",
        "responses": { "200": { "description": "OK" } }
      }
    },
    "/contact": {
      "get": {
        "operationId": "getContact",
        "description": "Contact page. Supports Accept: text/markdown.",
        "responses": { "200": { "description": "OK" } }
      }
    },
    "/privacy": {
      "get": {
        "operationId": "getPrivacy",
        "description": "Privacy page describing cookies, analytics, and data handling. Supports Accept: text/markdown.",
        "responses": { "200": { "description": "OK" } }
      }
    },
    "/developers": {
      "get": {
        "operationId": "getDevelopers",
        "description": "How agents should read this site. Supports Accept: text/markdown.",
        "responses": { "200": { "description": "OK" } }
      }
    },
    "/llms.txt": {
      "get": {
        "operationId": "getLlmsTxt",
        "description": "Plain-text guidance for AI agents: when to use and when not to use this site.",
        "responses": { "200": { "description": "OK" } }
      }
    },
    "/sitemap.xml": {
      "get": {
        "operationId": "getSitemap",
        "description": "XML sitemap of every public marketing URL.",
        "responses": { "200": { "description": "OK" } }
      }
    },
    "/openapi.json": {
      "get": {
        "operationId": "getOpenapiJson",
        "description": "This document.",
        "responses": { "200": { "description": "OK" } }
      }
    }
  }
}
