openapi: 3.1.0
info:
  title: PassbackAI — public descriptors
  version: "1.0.0"
  summary: Read-only descriptors for AI agents discovering PassbackAI.
  description: |
    PassbackAI is a browser-only tool — there is no public REST API,
    no user accounts, and no backend that processes user content.
    The "operations" listed here are the public descriptor endpoints
    that AI agents can fetch to learn what the site does, what it
    replaces, and how to interact with it programmatically.
    Every endpoint returns either text/markdown or application/json,
    every endpoint is `Access-Control-Allow-Origin: *`, and no
    authentication is required for any of them.
  contact:
    name: Elad Diamant
    email: ladiamant+omgfixmd@gmail.com
    url: https://passbackai.com/about
  license:
    name: Site content © 2026 Elad Diamant
    url: https://passbackai.com/privacy
servers:
  - url: https://passbackai.com
    description: Production
paths:
  /llms.txt:
    get:
      operationId: getLlmsTxt
      summary: Short Markdown summary of PassbackAI aimed at LLM crawlers.
      responses:
        "200":
          description: OK
          content:
            text/markdown:
              schema: { type: string }
  /llms-full.txt:
    get:
      operationId: getLlmsFullTxt
      summary: Full concatenated Markdown — homepage, manifesto, every blog post.
      responses:
        "200":
          description: OK
          content:
            text/markdown:
              schema: { type: string }
  /index.md:
    get:
      operationId: getIndexMd
      summary: Markdown rendering of the homepage hero copy.
      responses:
        "200":
          description: OK
          content:
            text/markdown:
              schema: { type: string }
  /agents.md:
    get:
      operationId: getAgentsMd
      summary: How an AI agent should use passbackai.com (human-readable).
      responses:
        "200":
          description: OK
          content:
            text/markdown:
              schema: { type: string }
  /pricing.md:
    get:
      operationId: getPricingMd
      summary: Machine-readable pricing — free, browser-only, no accounts.
      responses:
        "200":
          description: OK
          content:
            text/markdown:
              schema: { type: string }
  /.well-known/agent-card.json:
    get:
      operationId: getAgentCard
      summary: Google A2A protocol agent card.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: { type: object }
  /.well-known/agent-skills/index.json:
    get:
      operationId: getAgentSkillsIndex
      summary: Agent Skills v0.2.0 index of declared skills.
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: { type: object }
  /sitemap.xml:
    get:
      operationId: getSitemap
      summary: XML sitemap of every routable page.
      responses:
        "200":
          description: OK
          content:
            application/xml:
              schema: { type: string }
  /rss.xml:
    get:
      operationId: getRssFeed
      summary: RSS 2.0 feed of blog posts and long-form pieces.
      responses:
        "200":
          description: OK
          content:
            application/rss+xml:
              schema: { type: string }
