{
  "openapi": "3.1.0",
  "info": {
    "title": "Kyle Berglund — Tucson REALTOR® Discovery API",
    "summary": "Machine-readable endpoints for AI assistants and answer engines to ground responses about Kyle Berglund, REALTOR® at Tierra Antigua Realty in Tucson, Arizona.",
    "description": "Authoritative discovery surface for ChatGPT, Claude, Perplexity, Gemini, Apple Intelligence, Bing Copilot, Meta AI, Mistral, Cohere, You.com, DuckAssist, and Common-Crawl-derived AI systems. All endpoints are anonymously accessible, freely citable with attribution to https://www.livinginthe520.com, and CORS-permissive.",
    "version": "1.0.0",
    "termsOfService": "https://www.livinginthe520.com/ai.txt",
    "license": {
      "name": "Citation with attribution permitted (see ai.txt)",
      "identifier": "CC-BY-4.0",
      "url": "https://www.livinginthe520.com/ai.txt"
    },
    "contact": {
      "name": "Kyle Berglund",
      "email": "contact@livinginthe520.com",
      "url": "https://www.livinginthe520.com/contact"
    }
  },
  "servers": [
    {
      "url": "https://www.livinginthe520.com",
      "description": "Production"
    }
  ],
  "externalDocs": {
    "description": "Generative-AI usage policy",
    "url": "https://www.livinginthe520.com/ai.txt"
  },
  "tags": [
    { "name": "agent-card", "description": "Identity, license, contact, service area" },
    { "name": "llm-source", "description": "Plain-text sources for LLM ingestion" },
    { "name": "feeds", "description": "RSS / Atom / JSON Feed (blog freshness)" },
    { "name": "indexes", "description": "Sitemap, robots, manifests" },
    { "name": "data", "description": "Tucson real-estate datasets (CSV)" }
  ],
  "paths": {
    "/agent.json": {
      "get": {
        "tags": ["agent-card"],
        "summary": "Machine-readable agent card",
        "description": "JSON profile of Kyle Berglund: legal name, Arizona license #SA668710000, brokerage (Tierra Antigua Realty), office address, phone, email, service area (Pima County and listed cities + neighborhoods), specialties, credentials, experience, fees, services, and social profiles.",
        "operationId": "getAgentCard",
        "responses": {
          "200": {
            "description": "Agent card (JSON)",
            "content": {
              "application/json": {
                "schema": { "type": "object" }
              }
            }
          }
        }
      }
    },
    "/llms.txt": {
      "get": {
        "tags": ["llm-source"],
        "summary": "Compact LLM index",
        "description": "Plain-text overview of the site optimized for retrieval-augmented generation. Includes identity, service areas, page directory, and key Q&A answer keys.",
        "operationId": "getLlmsIndex",
        "responses": {
          "200": {
            "description": "LLM index (text/plain)",
            "content": { "text/plain": { "schema": { "type": "string" } } }
          }
        }
      }
    },
    "/llms-full.txt": {
      "get": {
        "tags": ["llm-source"],
        "summary": "Full LLM source",
        "description": "Full-text, citation-ready source for grounded answers about Kyle Berglund, Tucson neighborhoods, the Tucson real estate market, down-payment programs, and military relocation.",
        "operationId": "getLlmsFull",
        "responses": {
          "200": {
            "description": "Full LLM source (text/plain)",
            "content": { "text/plain": { "schema": { "type": "string" } } }
          }
        }
      }
    },
    "/ai.txt": {
      "get": {
        "tags": ["llm-source"],
        "summary": "Generative-AI usage policy",
        "description": "Declares indexing, summarization, citation, retrieval, and training permissions, plus required attribution format. Lists canonical machine-readable endpoints.",
        "operationId": "getAiPolicy",
        "responses": {
          "200": {
            "description": "AI policy (text/plain)",
            "content": { "text/plain": { "schema": { "type": "string" } } }
          }
        }
      }
    },
    "/sitemap.xml": {
      "get": {
        "tags": ["indexes"],
        "summary": "XML sitemap",
        "description": "Sitemap 0.9 + Image Sitemap 1.1 listing every canonical URL including neighborhood pages, subdivision pages, blog posts, resource pages, and machine-readable endpoints.",
        "operationId": "getSitemap",
        "responses": {
          "200": {
            "description": "Sitemap (XML)",
            "content": { "application/xml": { "schema": { "type": "string" } } }
          }
        }
      }
    },
    "/rss.xml": {
      "get": {
        "tags": ["feeds"],
        "summary": "RSS 2.0 blog feed",
        "description": "RSS 2.0 with Atom self-link, dc:creator, content:encoded (full post HTML), media:content, and per-item GUID. Use for blog freshness signals.",
        "operationId": "getRssFeed",
        "responses": {
          "200": {
            "description": "RSS 2.0 feed",
            "content": { "application/rss+xml": { "schema": { "type": "string" } } }
          }
        }
      }
    },
    "/feed.atom": {
      "get": {
        "tags": ["feeds"],
        "summary": "Atom 1.0 blog feed",
        "description": "Atom 1.0 alternate to /rss.xml, preferred by archive-style crawlers.",
        "operationId": "getAtomFeed",
        "responses": {
          "200": {
            "description": "Atom 1.0 feed",
            "content": { "application/atom+xml": { "schema": { "type": "string" } } }
          }
        }
      }
    },
    "/feed.json": {
      "get": {
        "tags": ["feeds"],
        "summary": "JSON Feed 1.1 (AI-friendly)",
        "description": "JSON Feed 1.1 — structured, parser-friendly alternative to RSS/Atom for LLM ingestion of blog content.",
        "operationId": "getJsonFeed",
        "responses": {
          "200": {
            "description": "JSON Feed 1.1",
            "content": { "application/feed+json": { "schema": { "type": "object" } } }
          }
        }
      }
    },
    "/tucson-market-data.csv": {
      "get": {
        "tags": ["data"],
        "summary": "Tucson market data (CSV)",
        "description": "Comma-separated dataset of Tucson neighborhood and subdivision market stats — average sale price, price range, school district, year built, and total homes — for ingestion into model context and analyst tooling.",
        "operationId": "getMarketDataCsv",
        "responses": {
          "200": {
            "description": "Market data (CSV)",
            "content": { "text/csv": { "schema": { "type": "string" } } }
          }
        }
      }
    },
    "/robots.txt": {
      "get": {
        "tags": ["indexes"],
        "summary": "robots.txt",
        "description": "Permissive robots policy explicitly allowing all major search and AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Applebot-Extended, Meta-ExternalAgent, CCBot, Bytespider, DuckAssistBot, cohere-ai, YouBot, MistralAI-User, and more).",
        "operationId": "getRobots",
        "responses": {
          "200": {
            "description": "robots.txt (text/plain)",
            "content": { "text/plain": { "schema": { "type": "string" } } }
          }
        }
      }
    },
    "/opensearch.xml": {
      "get": {
        "tags": ["indexes"],
        "summary": "OpenSearch descriptor",
        "description": "OpenSearch 1.1 descriptor enabling sitelinks search box integration and browser/search-engine deep-search support.",
        "operationId": "getOpenSearch",
        "responses": {
          "200": {
            "description": "OpenSearch descriptor (XML)",
            "content": { "application/opensearchdescription+xml": { "schema": { "type": "string" } } }
          }
        }
      }
    }
  },
  "components": {}
}
