openapi: 3.1.0
info:
  title: Baulkham Hills Conveyancing API
  version: '1.0.0'
  description: |
    Public endpoints for AI assistants to retrieve Baulkham Hills Conveyancing content.
servers:
  - url: https://baulkhamhillsconveyancing.com.au
paths:
  /api/search:
    get:
      summary: Semantic site search
      description: >
        Returns grouped results from services, FAQs, blog posts, and process steps ranked by semantic relevance.
      parameters:
        - in: query
          name: q
          required: true
          schema:
            type: string
            minLength: 2
          description: Natural language search query.
      responses:
        '200':
          description: Successful semantic search response
          content:
            application/json:
              schema:
                type: object
                required: [results, query]
                properties:
                  query:
                    type: string
                  results:
                    type: array
                    items:
                      type: object
                      required: [id, title, url, snippet, type]
                      properties:
                        id:
                          type: string
                        title:
                          type: string
                        url:
                          type: string
                          format: uri
                        snippet:
                          type: string
                        type:
                          type: string
        '400':
          description: Invalid query supplied
        '500':
          description: Search service unavailable
  /sitemap.xml:
    get:
      summary: XML sitemap
      description: Lists discoverable URLs for SEO and AI crawlers.
      responses:
        '200':
          description: XML sitemap content
          content:
            application/xml:
              schema:
                type: string
  /ai-overview.json:
    get:
      summary: AI-ready organization overview
      description: Machine-readable profile for AI assistants and search agents.
      responses:
        '200':
          description: AI overview JSON document
          content:
            application/json:
              schema:
                type: object
  /blog/rss.xml:
    get:
      summary: Blog RSS feed
      description: Syndicated RSS feed of published blog posts.
      responses:
        '200':
          description: RSS XML feed
          content:
            application/rss+xml:
              schema:
                type: string
externalDocs:
  description: Learn more about Baulkham Hills Conveyancing
  url: https://baulkhamhillsconveyancing.com.au/