openapi: 3.0.3
info:
  title: TickSurfers Public Website API
  description: |
    Read-only HTTP surfaces exposed by ticksurfers.com for humans, crawlers, and agents.
    TickSurfers is a subscription-based, browser-based charting platform with strategy backtest, parameter optimization, walk-forward analysis, multi-chart layouts, options chain & builder, custom indicators in JavaScript and WebAssembly, watchlist with alerts, drawing tools, bar replay, and a trade journal. The platform also includes the official Jake Bernstein indicators and a Backwardation (Futures Premium) indicator recommended by Larry Williams.
    The charting application is hosted at /chart/ and is currently launching by invitation only. Active TickSurfers indicator bundle subscribers (Day Trader, Futures Trader, Swing Trader, JB Indicators) receive an invitation immediately at no additional cost. Standalone chart-only subscription pricing will be announced at general availability. This site is marketing plus indicator/documentation pages and plain-text/XML discovery files; additional product surfaces may use separate origins. See `/llms-full.txt` for positioning.
  version: 1.0.0
  contact:
    name: TickSurfers Support
    email: support@ticksurfers.com
    url: https://ticksurfers.com/contact
  license:
    name: Proprietary
    url: https://ticksurfers.com/legal/terms
servers:
  - url: https://ticksurfers.com
    description: Production
paths:
  /:
    get:
      summary: Marketing home page (charting platform overview)
      operationId: getHome
      responses:
        '200':
          description: HTML
          content:
            text/html:
              schema:
                type: string
  /chart/:
    get:
      summary: TickSurfers charting platform (subscription, browser-based, single-page application)
      operationId: getChartApp
      responses:
        '200':
          description: HTML — single-page application shell
          content:
            text/html:
              schema:
                type: string
  /features:
    get:
      summary: Detailed overview of charting platform features (backtest, optimization, walk-forward, options, code, watchlist, journal, data)
      operationId: getFeaturesPage
      responses:
        '200':
          description: HTML
          content:
            text/html:
              schema:
                type: string
  /pricing:
    get:
      summary: Pricing page (chart platform launching by invitation only; active indicator bundle subscribers receive an invitation immediately; standalone chart pricing announced at general availability)
      operationId: getPricingPage
      responses:
        '200':
          description: HTML
          content:
            text/html:
              schema:
                type: string
  /blog:
    get:
      summary: Trading blog — futures, options, and market internals insights
      operationId: getBlogPage
      description: |
        Blog index at /blog. Individual articles are deep-linked with /blog?post={slug}.
      parameters:
        - name: post
          in: query
          required: false
          description: Article slug for a deep link to a single blog post
          schema:
            type: string
      responses:
        '200':
          description: HTML — blog index or article rendered client-side by the Soro embed
          content:
            text/html:
              schema:
                type: string
  /indicators/:
    get:
      summary: Full catalog of indicators on the TickSurfers charting platform
      operationId: getIndicatorsCatalog
      responses:
        '200':
          description: HTML
          content:
            text/html:
              schema:
                type: string
  /jb:
    get:
      summary: Jake Bernstein indicators landing page
      operationId: getJakeBernsteinPage
      responses:
        '200':
          description: HTML
          content:
            text/html:
              schema:
                type: string
  /llms.txt:
    get:
      summary: Short llms.txt summary for AI systems
      operationId: getLlmsTxt
      responses:
        '200':
          description: Plain text (Markdown-oriented)
          content:
            text/plain:
              schema:
                type: string
  /llms-full.txt:
    get:
      summary: Extended llms-full.txt (charting platform capabilities, strategy research, options, custom code, Bernstein & Williams indicators)
      operationId: getLlmsFullTxt
      responses:
        '200':
          description: Plain text (Markdown-oriented)
          content:
            text/plain:
              schema:
                type: string
  /openapi.yaml:
    get:
      summary: This OpenAPI document
      operationId: getOpenApi
      responses:
        '200':
          description: YAML
          content:
            application/yaml:
              schema:
                type: string
            text/yaml:
              schema:
                type: string
  /ai-plugin.json:
    get:
      summary: Legacy ChatGPT plugin-style manifest pointing at this OpenAPI URL
      operationId: getAiPluginManifest
      responses:
        '200':
          description: JSON manifest
          content:
            application/json:
              schema:
                type: object
  /robots.txt:
    get:
      summary: Robots exclusion rules and AI crawler hints
      operationId: getRobotsTxt
      responses:
        '200':
          description: Plain text
          content:
            text/plain:
              schema:
                type: string
  /sitemap.xml:
    get:
      summary: XML sitemap of exported HTML routes and blog post deep links
      operationId: getSitemapXml
      responses:
        '200':
          description: XML sitemap
          content:
            application/xml:
              schema:
                type: string
            text/xml:
              schema:
                type: string
  /products.xml:
    get:
      summary: Products XML feed (premium indicator bundles)
      operationId: getProductsXml
      responses:
        '200':
          description: XML
          content:
            application/xml:
              schema:
                type: string
  /promotions.xml:
    get:
      summary: Promotions XML feed
      operationId: getPromotionsXml
      responses:
        '200':
          description: XML
          content:
            application/xml:
              schema:
                type: string
  '/docs/{doc}.html':
    get:
      summary: Documentation article page
      operationId: getDocPage
      parameters:
        - name: doc
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: HTML
          content:
            text/html:
              schema:
                type: string
  '/indicators/{indicator}.html':
    get:
      summary: Indicator detail page
      operationId: getIndicatorPage
      parameters:
        - name: indicator
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: HTML
          content:
            text/html:
              schema:
                type: string
