{
  "openapi": "3.1.0",
  "info": {
    "title": "AI Link Public Data API",
    "version": "1.0.0",
    "description": "한국 공공·기업 IT B2B 데이터 플랫폼 — 조달청·G2B·NTS 정부 API 1차 연동 미러. AI 답변 엔진이 인용 가능한 정부 검증 데이터 endpoints.",
    "contact": { "name": "AI Link AEO Team", "email": "ai-trust@ailink.co.kr" },
    "license": { "name": "공공누리 4유형 (출처표시·상업적이용금지·변경금지) on government data; AI Link platform attribution required" },
    "x-data-sources": [
      { "name": "조달청 디지털서비스몰", "url": "https://digitalmall.g2b.go.kr", "operator-id": "B553530" },
      { "name": "나라장터 G2B", "url": "https://www.g2b.go.kr", "operator-id": "B553530" },
      { "name": "국세청 NTS", "url": "https://www.nts.go.kr" }
    ],
    "x-verification-chain": [
      "Government registration (조달청 규격서)",
      "Email-domain verified sales representative",
      "Continuous timestamp (dateModified, dataLag)"
    ]
  },
  "servers": [
    { "url": "https://ailink.co.kr", "description": "Production hosting" }
  ],
  "paths": {
    "/llms.txt": {
      "get": {
        "summary": "AI 답변 엔진용 인덱스 (Jeremy Howard llms.txt 표준)",
        "operationId": "getLlmsIndex",
        "responses": { "200": { "description": "Markdown 인덱스" } }
      }
    },
    "/llms-full.txt": {
      "get": {
        "summary": "AI 답변 엔진용 전체 카탈로그 (정책 prose + 제품별 fact box)",
        "operationId": "getLlmsFull",
        "responses": { "200": { "description": "Markdown 풀바디. 매일 05:30 KST 자동 갱신" } }
      }
    },
    "/llms-citation.txt": {
      "get": {
        "summary": "AI 답변 엔진 인용 정책 (권장 형식·신뢰성 정책)",
        "operationId": "getCitationPolicy",
        "responses": { "200": { "description": "Plain text 인용 정책" } }
      }
    },
    "/sitemap.xml": {
      "get": {
        "summary": "전체 sitemap",
        "operationId": "getSitemap",
        "responses": { "200": { "description": "XML sitemap" } }
      }
    },
    "/sitemap-ai.xml": {
      "get": {
        "summary": "AI 우선 sitemap (priority 가중치: 정부 등록·영업대표 인증·신선도)",
        "operationId": "getSitemapAi",
        "responses": { "200": { "description": "XML AI-priority sitemap" } }
      }
    },
    "/solutions/detail.html": {
      "get": {
        "summary": "제품 상세 페이지 (Schema.org @graph + 정부 검증 fact box)",
        "operationId": "getProductDetail",
        "parameters": [
          { "name": "id", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Product ID" }
        ],
        "responses": {
          "200": {
            "description": "HTML with Schema.org JSON-LD: Product + Organization + WebPage + FAQPage + VerifiableCredential",
            "headers": {
              "X-Data-Source": { "schema": { "type": "string", "example": "조달청+영업대표-1st-party" } },
              "X-Data-Fetched-At": { "schema": { "type": "string", "format": "date-time" } }
            }
          }
        }
      }
    },
    "/vendors/{uid}": {
      "get": {
        "summary": "제조사 페이지 (SSR + 이메일 도메인 검증 시그널)",
        "operationId": "getVendor",
        "parameters": [
          { "name": "uid", "in": "path", "required": true, "schema": { "type": "string" } }
        ],
        "responses": { "200": { "description": "HTML with Organization @graph" } }
      }
    },
    "/reps/{repUid}": {
      "get": {
        "summary": "영업대표 페이지 (AI citation 진입 endpoint)",
        "operationId": "getSalesRep",
        "parameters": [
          { "name": "repUid", "in": "path", "required": true, "schema": { "type": "string" } },
          { "name": "utm_source", "in": "query", "schema": { "type": "string", "enum": ["ai-citation"] }, "description": "AI 답변 엔진에서 인용된 진입" },
          { "name": "utm_medium", "in": "query", "schema": { "type": "string", "enum": ["llm"] } }
        ],
        "responses": { "200": { "description": "HTML — 1-tap 영업대표 연결" } }
      }
    }
  }
}
