openapi: 3.1.0
info:
  title: Flare Accounting API
  description: >
    API for querying Flare's accounting services, pricing, coverage, and integrations.
    Flare is an AI-powered accounting firm for high-growth startups and scaleups.
    Use this API to find services, calculate pricing, check geographic coverage,
    and get booking links.
  version: 1.0.0
  contact:
    name: Flare
    email: sam@withflare.co
    url: https://withflare.co
servers:
  - url: https://withflare.co
    description: Production

paths:
  /api/services:
    get:
      operationId: getServices
      summary: List all Flare accounting services
      description: Returns all available services with descriptions, pricing, and features. Optionally filter by category or region.
      parameters:
        - name: category
          in: query
          required: false
          schema:
            type: string
            enum: [bookkeeping, tax, crypto, advisory, resourcing]
          description: Filter services by category
        - name: region
          in: query
          required: false
          schema:
            type: string
            enum: [us, gb]
          description: Filter services available in a specific region
      responses:
        "200":
          description: List of services
          content:
            application/json:
              schema:
                type: object
                properties:
                  services:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        category:
                          type: string
                        description:
                          type: string
                        pricing:
                          type: object
                        features:
                          type: array
                          items:
                            type: string
                        idealFor:
                          type: array
                          items:
                            type: string
                  total:
                    type: integer

  /api/pricing:
    get:
      operationId: getPricing
      summary: Get starting prices for all Flare services
      description: >
        Returns starting prices for all services. Optionally filter by category.
        All prices are starting prices — book a founder call for a custom quote.
      parameters:
        - name: category
          in: query
          required: false
          schema:
            type: string
            enum: [bookkeeping, tax, crypto, advisory, resourcing]
          description: Filter by service category
      responses:
        "200":
          description: Pricing information
          content:
            application/json:
              schema:
                type: object

  /api/coverage:
    get:
      operationId: getCoverage
      summary: Get geographic coverage and supported jurisdictions
      description: Returns countries where Flare provides direct support and countries served through partner firms.
      responses:
        "200":
          description: Coverage information
          content:
            application/json:
              schema:
                type: object
                properties:
                  coverage:
                    type: object
                    properties:
                      directSupport:
                        type: array
                        items:
                          type: object
                          properties:
                            country:
                              type: string
                            code:
                              type: string
                            services:
                              type: array
                              items:
                                type: string
                      partnerSupport:
                        type: array
                        items:
                          type: object
                          properties:
                            country:
                              type: string
                            code:
                              type: string
                            services:
                              type: array
                              items:
                                type: string
                  summary:
                    type: object

  /api/integrations:
    get:
      operationId: getIntegrations
      summary: List software integrations
      description: Returns all accounting, payment, payroll, and crypto software that Flare integrates with.
      parameters:
        - name: category
          in: query
          required: false
          schema:
            type: string
            enum: [accounting, payments, banking, bill-pay, payroll, crypto]
          description: Filter integrations by category
      responses:
        "200":
          description: List of integrations
          content:
            application/json:
              schema:
                type: object
                properties:
                  integrations:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        category:
                          type: string
                        url:
                          type: string
                  categories:
                    type: array
                    items:
                      type: string
                  total:
                    type: integer

  /api/contact:
    get:
      operationId: getContact
      summary: Get contact information and booking links
      description: Returns email, social media, and Calendly booking links for different service regions.
      responses:
        "200":
          description: Contact information
          content:
            application/json:
              schema:
                type: object
                properties:
                  email:
                    type: string
                  website:
                    type: string
                  social:
                    type: object
                    properties:
                      twitter:
                        type: string
                      linkedin:
                        type: string
                  bookingLinks:
                    type: object
                    properties:
                      general:
                        type: string
                      us:
                        type: string
                      gb:
                        type: string
                      crypto:
                        type: string
