{
  "openapi": "3.1.0",
  "info": {
    "title": "Las Vegas Wedding Chapel Directory Open Data & Concierge API",
    "version": "1.0.0",
    "description": "Public read-only API and Model Context Protocol (MCP) endpoints for querying 146 active Las Vegas wedding chapels with true Out-the-Door pricing ($102 marriage license, cash minister fees & venue taxes), 24 head-to-head comparisons, 163 local wedding pros, and 18 corridor hotel resort-fee audits.",
    "contact": {
      "name": "Las Vegas Wedding Chapel Editorial Desk",
      "url": "https://lasvegasweddingchapel.com/contact",
      "email": "editorial@lasvegasweddingchapel.com"
    }
  },
  "servers": [
    {
      "url": "https://lasvegasweddingchapel.com",
      "description": "Production Server"
    }
  ],
  "paths": {
    "/api/ask": {
      "post": {
        "operationId": "askVegasWeddingConcierge",
        "summary": "Ask a grounded Las Vegas wedding cost, BYO photo, or license question",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "question"
                ],
                "properties": {
                  "question": {
                    "type": "string",
                    "description": "Natural-language Las Vegas wedding planning question"
                  },
                  "entityType": {
                    "type": "string",
                    "enum": [
                      "global",
                      "chapel",
                      "vendor"
                    ]
                  },
                  "entitySlug": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Grounded concierge answer with matched chapels and Out-the-Door figures"
          }
        }
      }
    },
    "/api/hotel-rates": {
      "get": {
        "operationId": "auditHotelResortFeeRates",
        "summary": "Estimate Las Vegas hotel room rates with 13.38% tax and mandatory resort fees itemized (live API when configured, or seasonal benchmark estimates)",
        "parameters": [
          {
            "name": "slug",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "example": "bellagio"
            }
          },
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "json",
                "redirect"
              ],
              "default": "json"
            }
          },
          {
            "name": "checkin",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "checkout",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "rooms",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Out-the-Door hotel room & resort-fee JSON breakdown"
          }
        }
      }
    },
    "/study/2026-vegas-wedding-cost-dataset.csv": {
      "get": {
        "operationId": "download2026VegasWeddingCostDatasetCsv",
        "summary": "Download the open CC BY 4.0 CSV dataset auditing all 146 active Las Vegas wedding chapels",
        "responses": {
          "200": {
            "description": "UTF-8 CSV dataset of 146 audited Las Vegas wedding chapels"
          }
        }
      }
    },
    "/api/og": {
      "get": {
        "operationId": "renderDynamicOpenGraphReceiptCard",
        "summary": "Render a dynamic 1200x630 PNG Out-the-Door Receipt OpenGraph card",
        "parameters": [
          {
            "name": "chapel",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "vendor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "compare",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "guide",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "plan",
                "study"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "1200x630 PNG image"
          }
        }
      }
    },
    "/feed.xml": {
      "get": {
        "operationId": "getResearchRssFeed",
        "summary": "RSS 2.0 syndication feed of 2026 empirical Vegas wedding cost studies, answer guides, and comparisons",
        "responses": {
          "200": {
            "description": "RSS 2.0 XML document"
          }
        }
      }
    },
    "/api/health": {
      "get": {
        "operationId": "getDirectoryHealth",
        "summary": "Service health, catalog counts, and API readiness status",
        "responses": {
          "200": {
            "description": "JSON health payload"
          }
        }
      }
    },
    "/api/vegas-events": {
      "get": {
        "operationId": "checkLasVegasWeddingDateSurgeAndShows",
        "summary": "Check live Las Vegas stadium/arena congestion, transfer buffers (+15/+25/+40 min), and scheduled evening shows for a target wedding date",
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date",
              "example": "2026-11-14"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "JSON date surge level, transfer buffer minutes, and scheduled Las Vegas events"
          }
        }
      }
    },
    "/api/las-flights": {
      "get": {
        "operationId": "getInformationalLasVegasAirfareBenchmark",
        "summary": "Noncommercial round-trip USD economy airfare benchmark to Harry Reid International (LAS) across 28 US & international gateways (zero affiliate links)",
        "parameters": [
          {
            "name": "origin",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "LHR"
            }
          },
          {
            "name": "month",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "example": "2026-11"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "JSON lowest, median, and nonstop round-trip USD economy airfare benchmark into LAS"
          }
        }
      }
    },
    "/api/park-alerts": {
      "get": {
        "operationId": "getLakeMeadNationalParkAlerts",
        "summary": "Live National Park Service alerts for Lake Mead National Recreation Area (parkCode=lake)",
        "responses": {
          "200": {
            "description": "JSON list of active NPS park alerts and road advisories"
          }
        }
      }
    },
    "/mcp": {
      "post": {
        "operationId": "mcpJsonRpc",
        "summary": "Model Context Protocol (MCP) Streamable-HTTP JSON-RPC 2.0 endpoint",
        "responses": {
          "200": {
            "description": "JSON-RPC 2.0 MCP response"
          }
        }
      }
    }
  }
}