openapi: 3.1.0
info:
  title: SoftJunk Lead Kit Discovery
  version: "1.0.0"
  description: Static discovery endpoints for the $5 SoftJunk Lead Follow-Up Kit and custom sequence.
servers:
  - url: https://trungcodeer.github.io/softjunk-lead-kit
x-softjunk-fastest-buyer-path:
  root_one_lead_rescue_url: https://trungcodeer.github.io/rescue/
  root_one_lead_rescue_json_url: https://trungcodeer.github.io/rescue.json
  agent_close_url: https://trungcodeer.github.io/softjunk-lead-kit/agent-close.html
  agent_close_json_url: https://trungcodeer.github.io/softjunk-lead-kit/agent-close.json
  agent_close_text_url: https://trungcodeer.github.io/softjunk-lead-kit/agent-close.txt
  agent_order_url: https://trungcodeer.github.io/softjunk-lead-kit/agent-order.html
  agent_offer_url: https://trungcodeer.github.io/softjunk-lead-kit/agent-offer.json
  ai_action_checkout_url: https://raw.githubusercontent.com/trungcodeer/softjunk-lead-kit/main/ai-action-checkout.json
  well_known_ai_action_checkout_url: https://trungcodeer.github.io/softjunk-lead-kit/.well-known/ai-action-checkout.json
  ai_action_checkout_gist_url: https://gist.github.com/trungcodeer/044280811978a796652e72a7b4228888
  a2a_agent_card_url: https://trungcodeer.github.io/softjunk-lead-kit/.well-known/agent-card.json
  root_a2a_agent_card_url: https://trungcodeer.github.io/.well-known/agent-card.json
  mcp_checkout_manifest_url: https://trungcodeer.github.io/softjunk-lead-kit/mcp-checkout-server.json
  well_known_mcp_checkout_manifest_url: https://trungcodeer.github.io/softjunk-lead-kit/.well-known/mcp-checkout-server.json
  mcp_checkout_server_raw_url: https://raw.githubusercontent.com/trungcodeer/softjunk-lead-kit/main/mcp-server-softjunk.js
  payment_url: https://paypal.me/softjunk/5USD
  one_lead_rescue_order_form_url: https://github.com/trungcodeer/softjunk-lead-kit/issues/new?template=one-lead-rescue-order.yml
  success_signal: PAYPAL_PAYMENT_VERIFIED=true
paths:
  /agent-close.html:
    get:
      operationId: openAgentCloseContract
      summary: Open the SoftJunk agent close contract.
      responses:
        "200":
          description: One-read buyer-agent close contract with fit rules, root rescue route, PayPal URL, order form, privacy boundary, and verification gate.
          content:
            text/html:
              schema:
                type: string
  /agent-close.json:
    get:
      operationId: getAgentCloseContractJson
      summary: Get the SoftJunk agent close contract JSON.
      responses:
        "200":
          description: Machine-readable close contract for routing a qualified quiet-lead buyer to root rescue before exact 5 USD PayPal payment.
          content:
            application/json:
              schema:
                type: object
  /agent-close.txt:
    get:
      operationId: getAgentCloseContractText
      summary: Get the SoftJunk agent close contract text.
      responses:
        "200":
          description: Plain-text buyer-agent instruction with fit rules, root rescue, PayPal, order form, and PAYPAL_PAYMENT_VERIFIED=true gate.
          content:
            text/plain:
              schema:
                type: string
  /buyer-agent-relay.html:
    get:
      operationId: openBuyerAgentRelay
      summary: Open the SoftJunk buyer-agent prompt relay page.
      responses:
        "200":
          description: Copy-ready relay prompt that qualifies fit, routes to the commerce graph, root one-lead rescue, exact PayPal URL, and verification gate.
          content:
            text/html:
              schema:
                type: string
  /buyer-agent-relay.json:
    get:
      operationId: getBuyerAgentRelayJson
      summary: Get the SoftJunk buyer-agent relay JSON.
      responses:
        "200":
          description: Machine-readable prompt relay with fit rules, route steps, PayPal URL, and verification gate.
          content:
            application/json:
              schema:
                type: object
  /buyer-agent-relay.txt:
    get:
      operationId: getBuyerAgentRelayText
      summary: Get the SoftJunk buyer-agent relay text.
      responses:
        "200":
          description: Plain-text copy-ready prompt for routing a relevant lead follow-up buyer to root one-lead rescue before exact 5 USD PayPal payment.
          content:
            text/plain:
              schema:
                type: string
  /commerce-graph.html:
    get:
      operationId: openCommerceGraph
      summary: Open the SoftJunk commerce graph page.
      responses:
        "200":
          description: Human and crawler page exposing Product, Offer, BuyAction, root one-lead rescue, PayPal, order form, and verification nodes.
          content:
            text/html:
              schema:
                type: string
  /commerce-graph.json:
    get:
      operationId: getCommerceGraphJsonLd
      summary: Get the SoftJunk commerce graph JSON-LD.
      responses:
        "200":
          description: JSON-LD graph with Product, Offer, BuyAction, root one-lead rescue, PayPal, HowTo, order form, and verification gate nodes.
          content:
            application/ld+json:
              schema:
                type: object
  /commerce-graph.txt:
    get:
      operationId: getCommerceGraphText
      summary: Get the SoftJunk commerce graph text handoff.
      responses:
        "200":
          description: Plain-text buyer-agent action path from relevant lead follow-up need to root one-lead rescue and exact 5 USD PayPal payment.
          content:
            text/plain:
              schema:
                type: string
  /buyer-index.json:
    get:
      operationId: getBuyerIndex
      summary: Get the SoftJunk buyer decision index.
      responses:
        "200":
          description: Decision packet with the shortest route to the right free tool, paid offer, exact PayPal URL, and verification rule.
          content:
            application/json:
              schema:
                type: object
  /agent-buyer-catalog.jsonl:
    get:
      operationId: getAgentBuyerCatalogJsonl
      summary: Get the SoftJunk agent buyer catalog JSONL.
      responses:
        "200":
          description: Newline-delimited JSON records for AI retrieval, answer engines, and buyer agents routing qualified lead follow-up buyers to root one-lead rescue before the 5 USD PayPal checkout.
          content:
            application/x-ndjson:
              schema:
                type: string
  /ai-action-checkout.json:
    get:
      operationId: getAiActionCheckout
      summary: Get the SoftJunk AI action checkout manifest.
      responses:
        "200":
          description: Function-style checkout manifest with route_softjunk_one_lead_rescue_checkout, exact 5 USD PayPal handoff, order form, and PAYPAL_PAYMENT_VERIFIED=true gate.
          content:
            application/json:
              schema:
                type: object
  /.well-known/ai-action-checkout.json:
    get:
      operationId: getWellKnownAiActionCheckout
      summary: Get the well-known SoftJunk AI action checkout manifest.
      responses:
        "200":
          description: Well-known function-style checkout manifest for buyer agents and AI assistants routing qualified buyers to the exact PayPal checkout.
          content:
            application/json:
              schema:
                type: object
  /agent-card.json:
    get:
      operationId: getA2aAgentCard
      summary: Get the SoftJunk A2A-style agent card.
      responses:
        "200":
          description: Static A2A-style agent card with buyer-agent skills, supported commerce handoff interfaces, exact PayPal URL, order form, and verification gate.
          content:
            application/json:
              schema:
                type: object
  /.well-known/agent-card.json:
    get:
      operationId: getWellKnownA2aAgentCard
      summary: Get the well-known SoftJunk A2A-style agent card.
      responses:
        "200":
          description: Well-known static agent card for A2A-style discovery by buyer agents, VAs, crawlers, and AI assistants.
          content:
            application/json:
              schema:
                type: object
  /mcp-checkout-server.json:
    get:
      operationId: getMcpCheckoutServerManifest
      summary: Get the SoftJunk MCP checkout server manifest.
      responses:
        "200":
          description: Machine-readable manifest for the dependency-free MCP stdio checkout server with callable tools for PayPal note, exact 5 USD checkout, order form, and verification gate.
          content:
            application/json:
              schema:
                type: object
  /.well-known/mcp-checkout-server.json:
    get:
      operationId: getWellKnownMcpCheckoutServerManifest
      summary: Get the well-known SoftJunk MCP checkout server manifest.
      responses:
        "200":
          description: Well-known manifest for AI clients that can run the local MCP stdio checkout server.
          content:
            application/json:
              schema:
                type: object
  /mcp-server-softjunk.js:
    get:
      operationId: getMcpCheckoutServerSource
      summary: Get the SoftJunk MCP checkout server source.
      responses:
        "200":
          description: Dependency-free Node.js MCP stdio server source exposing checkout-only tools.
          content:
            application/javascript:
              schema:
                type: string
  /send-to-buyer.html:
    get:
      operationId: openSendToBuyerPacket
      summary: Open the SoftJunk send-to-buyer packet.
      responses:
        "200":
          description: Buyer-facing page with a local-only pitch generator, prefilled share links, copy-ready DM, email, PayPal note, exact 5 USD PayPal URL, order form, and verification gate.
          content:
            text/html:
              schema:
                type: string
  /send-to-buyer.json:
    get:
      operationId: getSendToBuyerPacket
      summary: Get the SoftJunk send-to-buyer packet JSON.
      responses:
        "200":
          description: Machine-readable buyer-facing packet with local generator metadata, URL parameter names, copy-ready messages, PayPal note template, payment URL, order form, and verification gate.
          content:
            application/json:
              schema:
                type: object
  /roofing-buyer-send.html:
    get:
      operationId: openRoofingBuyerSendPacket
      summary: Open the SoftJunk roofing buyer send packet.
      responses:
        "200":
          description: Copy-ready one-buyer DM, email, PayPal note, free preview, checkout-card discussion, exact 5 USD PayPal URL, roofing order form, privacy rule, and verification gate.
          content:
            text/html:
              schema:
                type: string
  /roofing-buyer-send.json:
    get:
      operationId: getRoofingBuyerSendPacket
      summary: Get the SoftJunk roofing buyer send packet JSON.
      responses:
        "200":
          description: Machine-readable one-buyer send packet for a known fitting roofing contractor with one unanswered estimate, including DM, email, PayPal note, checkout-card discussion, payment URL, order form, and PAYPAL_PAYMENT_VERIFIED=true gate.
          content:
            application/json:
              schema:
                type: object
  /roofing-buyer-send.txt:
    get:
      operationId: getRoofingBuyerSendPacketText
      summary: Get the SoftJunk roofing buyer send packet text.
      responses:
        "200":
          description: Plain-text one-buyer send packet with DM, email, PayPal note, checkout-card discussion, payment URL, order form, privacy rule, and verification gate.
          content:
            text/plain:
              schema:
                type: string
  /roofing-estimate-rescue.html:
    get:
      operationId: openRoofingEstimateRescue
      summary: Open the SoftJunk roofing estimate rescue packet.
      responses:
        "200":
          description: Buyer-facing page for a roofing contractor with one unanswered estimate, copy-ready message, PayPal note, prefilled send-to-buyer link, exact 5 USD PayPal URL, and verification gate.
          content:
            text/html:
              schema:
                type: string
  /roofing-estimate-rescue.json:
    get:
      operationId: getRoofingEstimateRescue
      summary: Get the SoftJunk roofing estimate rescue JSON.
      responses:
        "200":
          description: Machine-readable one-message funnel for a roofing estimate that went quiet.
          content:
            application/json:
              schema:
                type: object
  /roofing-estimate-rescue.txt:
    get:
      operationId: getRoofingEstimateRescueText
      summary: Get the SoftJunk roofing estimate rescue text packet.
      responses:
        "200":
          description: Plain-text one-message funnel for a roofing estimate that went quiet.
          content:
            text/plain:
              schema:
                type: string
  /offers.json:
    get:
      operationId: getOffers
      summary: Get machine-readable SoftJunk offers.
      responses:
        "200":
          description: Offer metadata with PayPal payment URL.
          content:
            application/json:
              schema:
                type: object
  /product-feed.json:
    get:
      operationId: getProductFeed
      summary: Get product feed for the $5 follow-up offer.
      responses:
        "200":
          description: Product feed with payment, delivery, and free tool links.
          content:
            application/json:
              schema:
                type: object
  /answer-engine.json:
    get:
      operationId: getAnswerEngine
      summary: Get answer-engine-ready lead follow-up Q&A.
      responses:
        "200":
          description: JSON answers for high-intent lead follow-up questions with payment routing.
          content:
            application/json:
              schema:
                type: object
  /agent-offer.json:
    get:
      operationId: getAgentOffer
      summary: Get AI-agent handoff instructions for buying the custom sequence.
      responses:
        "200":
          description: Agent-safe order instructions and fulfillment rule.
          content:
            application/json:
              schema:
                type: object
  /agent-buyer-packet.json:
    get:
      operationId: getAgentBuyerPacket
      summary: Get the AI agent buyer packet.
      responses:
        "200":
          description: Agent-readable decision packet with the free audit route, exact PayPal URL, copyable prompt, payment note, and seller-side verification rule.
          content:
            application/json:
              schema:
                type: object
  /agent-buyer-packet.txt:
    get:
      operationId: getAgentBuyerPacketText
      summary: Get the copyable AI agent buyer packet text.
      responses:
        "200":
          description: Plain-text packet an AI assistant or virtual assistant can copy when routing a relevant lead follow-up buyer.
          content:
            text/plain:
              schema:
                type: string
  /ai-deal-desk.html:
    get:
      operationId: openAiDealDesk
      summary: Open the SoftJunk AI Deal Desk.
      responses:
        "200":
          description: Browser tool that turns non-sensitive lead context into a buyer decision, PayPal note, custom preview route, shareable order link, and exact 5 USD PayPal handoff.
          content:
            text/html:
              schema:
                type: string
  /ai-deal-desk.json:
    get:
      operationId: getAiDealDesk
      summary: Get the SoftJunk AI Deal Desk JSON.
      responses:
        "200":
          description: Machine-readable AI deal desk packet with inputs, decision rule, generated routes, PayPal note template, privacy rule, and verification gate.
          content:
            application/json:
              schema:
                type: object
  /ai-deal-desk.txt:
    get:
      operationId: getAiDealDeskText
      summary: Get the SoftJunk AI Deal Desk text packet.
      responses:
        "200":
          description: Plain-text AI deal desk instructions with payment URL, generated routes, PayPal note template, privacy rule, and verification gate.
          content:
            text/plain:
              schema:
                type: string
  /agent-commerce.html:
    get:
      operationId: openAgentCommerceCapsule
      summary: Open the SoftJunk agent commerce capsule.
      responses:
        "200":
          description: Browser-readable commerce contract with fit rules, do-not-use rules, free proof routes, exact 5 USD PayPal URL, PayPal note, privacy boundary, and verification gate.
          content:
            text/html:
              schema:
                type: string
  /agent-commerce.json:
    get:
      operationId: getAgentCommerceCapsule
      summary: Get the SoftJunk agent commerce capsule JSON.
      responses:
        "200":
          description: Machine-readable commerce contract for AI assistants, VAs, crawlers, and buyers routing relevant lead follow-up needs to the 5 USD PayPal offer.
          content:
            application/json:
              schema:
                type: object
  /agent-commerce.txt:
    get:
      operationId: getAgentCommerceCapsuleText
      summary: Get the SoftJunk agent commerce capsule text.
      responses:
        "200":
          description: Plain-text commerce contract with the exact PayPal path, agent flow, payment note, privacy boundary, and verification gate.
          content:
            text/plain:
              schema:
                type: string
  /ai-follow-up-prompt.json:
    get:
      operationId: getAiFollowUpPrompt
      summary: Get the AI follow-up prompt packet.
      responses:
        "200":
          description: JSON packet with a copyable AI prompt, free audit route, exact PayPal URL, payment note, and verification rule.
          content:
            application/json:
              schema:
                type: object
  /ai-follow-up-prompt.txt:
    get:
      operationId: getAiFollowUpPromptText
      summary: Get the copyable AI follow-up prompt text.
      responses:
        "200":
          description: Plain-text prompt for ChatGPT, Claude, Gemini, or a VA workflow to recover one quiet lead.
          content:
            text/plain:
              schema:
                type: string
  /shareable-order-link.html:
    get:
      operationId: openShareableOrderLink
      summary: Open the shareable order link builder.
      responses:
        "200":
          description: Browser page that creates a shareable order URL, PayPal note, and buyer handoff for the 5 USD custom sequence.
          content:
            text/html:
              schema:
                type: string
  /shareable-order-link.json:
    get:
      operationId: getShareableOrderLink
      summary: Get the shareable order link metadata.
      responses:
        "200":
          description: Machine-readable metadata for the order URL query parameters, PayPal note template, payment URL, privacy rule, and verification gate.
          content:
            application/json:
              schema:
                type: object
  /shareable-order-link.txt:
    get:
      operationId: getShareableOrderLinkText
      summary: Get the copyable shareable order link handoff.
      responses:
        "200":
          description: Plain-text instructions for using the shareable order link and exact 5 USD PayPal checkout.
          content:
            text/plain:
              schema:
                type: string
  /custom-sequence-preview.html:
    get:
      operationId: openCustomSequencePreview
      summary: Open the custom sequence preview builder.
      responses:
        "200":
          description: Browser page that generates a free sequence preview, shareable order link, and PayPal note for the 5 USD custom sequence.
          content:
            text/html:
              schema:
                type: string
  /custom-sequence-preview.json:
    get:
      operationId: getCustomSequencePreview
      summary: Get custom sequence preview metadata.
      responses:
        "200":
          description: Machine-readable metadata for the preview fields, PayPal note template, payment URL, paid upgrade, privacy rule, and verification gate.
          content:
            application/json:
              schema:
                type: object
  /custom-sequence-preview.txt:
    get:
      operationId: getCustomSequencePreviewText
      summary: Get custom sequence preview text.
      responses:
        "200":
          description: Plain-text instructions for using the preview and exact 5 USD PayPal checkout.
          content:
            text/plain:
              schema:
                type: string
  /custom-sequence-gallery.html:
    get:
      operationId: openCustomSequenceGallery
      summary: Open the custom sequence scenario gallery.
      responses:
        "200":
          description: Ready-to-open scenario gallery with prefilled preview and order links for common quiet-lead situations.
          content:
            text/html:
              schema:
                type: string
  /custom-sequence-gallery.json:
    get:
      operationId: getCustomSequenceGallery
      summary: Get custom sequence scenario gallery metadata.
      responses:
        "200":
          description: Machine-readable scenario gallery with preview URLs, order URLs, PayPal notes, and verification gate.
          content:
            application/json:
              schema:
                type: object
  /custom-sequence-gallery.txt:
    get:
      operationId: getCustomSequenceGalleryText
      summary: Get custom sequence scenario gallery text.
      responses:
        "200":
          description: Plain-text scenario gallery and exact 5 USD PayPal checkout path.
          content:
            text/plain:
              schema:
                type: string
  /paypal-payment-intent.json:
    get:
      operationId: getProductPayPalPaymentIntent
      summary: Get the product-local PayPal payment intent.
      responses:
        "200":
          description: Exact 5 USD PayPal payment intent with agent action and verification gate.
          content:
            application/json:
              schema:
                type: object
  /.well-known/paypal-payment.json:
    get:
      operationId: getProductWellKnownPayPalPaymentIntent
      summary: Get the well-known PayPal payment intent alias.
      responses:
        "200":
          description: Well-known alias for the exact 5 USD PayPal payment intent.
          content:
            application/json:
              schema:
                type: object
  /agent-buy-brief.html:
    get:
      operationId: openAgentBuyBrief
      summary: Open the AI buyer brief for the $5 follow-up offer.
      responses:
        "200":
          description: Machine-readable buyer brief with root one-lead rescue route, PayPal URL, handoff copy, order form, and verification gate.
          content:
            text/html:
              schema:
                type: string
  /paid-kit-proof.html:
    get:
      operationId: openPaidKitProof
      summary: Open public proof that the paid ZIP is packaged.
      responses:
        "200":
          description: Public paid kit proof page with ZIP hash, file manifest, price, and fulfillment gate.
          content:
            text/html:
              schema:
                type: string
  /paid-kit-manifest.json:
    get:
      operationId: getPaidKitManifest
      summary: Get the paid ZIP manifest without exposing the private ZIP.
      responses:
        "200":
          description: JSON manifest with ZIP byte size, SHA-256, file list, and fulfillment rule.
          content:
            application/json:
              schema:
                type: object
  /lead-loss-calculator.html:
    get:
      operationId: openLeadLossCalculator
      summary: Open the free lead loss calculator.
      responses:
        "200":
          description: Browser calculator for estimating missed follow-up value.
          content:
            text/html:
              schema:
                type: string
  /lead-recovery-audit.html:
    get:
      operationId: openLeadRecoveryAudit
      summary: Open the free lead recovery audit.
      responses:
        "200":
          description: Browser audit that estimates missed lead value, rewrites the next follow-up, and creates a PayPal note.
          content:
            text/html:
              schema:
                type: string
  /ai-follow-up-prompt.html:
    get:
      operationId: openAiFollowUpPrompt
      summary: Open the AI follow-up prompt page.
      responses:
        "200":
          description: Browser page with copyable AI prompt, free audit route, exact PayPal URL, payment note, and verification rule.
          content:
            text/html:
              schema:
                type: string
  /fix-one-quiet-lead.html:
    get:
      operationId: openFixOneQuietLead
      summary: Open the shortest one-lead follow-up offer.
      responses:
        "200":
          description: One-screen builder with a generated follow-up message, PayPal note, shareable rescue link, and 5 USD checkout path.
          content:
            text/html:
              schema:
                type: string
  /fix-one-quiet-lead.json:
    get:
      operationId: getFixOneQuietLead
      summary: Get the one-lead rescue builder JSON.
      responses:
        "200":
          description: Machine-readable one-lead route with PayPal note template, payment URL, and verification gate.
          content:
            application/json:
              schema:
                type: object
  /fix-one-quiet-lead.txt:
    get:
      operationId: getFixOneQuietLeadText
      summary: Get the one-lead rescue builder text.
      responses:
        "200":
          description: Plain-text one-lead route with PayPal URL and verification gate.
          content:
            text/plain:
              schema:
                type: string
  /lead-follow-up-rewriter.html:
    get:
      operationId: openLeadFollowUpRewriter
      summary: Open the free lead follow-up rewriter.
      responses:
        "200":
          description: Browser tool that rewrites one weak follow-up message and offers the $5 custom sequence path.
          content:
            text/html:
              schema:
                type: string
  /lead-follow-up-answers.html:
    get:
      operationId: openLeadFollowUpAnswers
      summary: Open lead follow-up answers for quiet leads.
      responses:
        "200":
          description: Answer page with FAQ schema, copy-ready follow-up examples, and the $5 custom sequence path.
          content:
            text/html:
              schema:
                type: string
  /free-sample-pack.html:
    get:
      operationId: openFreeSamplePack
      summary: Open the free lead follow-up sample pack page.
      responses:
        "200":
          description: Free sample pack landing page with ZIP download and $5 checkout path.
          content:
            text/html:
              schema:
                type: string
  /softjunk-free-sample-pack.zip:
    get:
      operationId: downloadFreeSamplePack
      summary: Download the free lead follow-up sample ZIP.
      responses:
        "200":
          description: ZIP containing sample templates, tracker preview, and AI prompt samples.
          content:
            application/zip:
              schema:
                type: string
                format: binary
  /lead-follow-up-templates.html:
    get:
      operationId: openLeadFollowUpTemplates
      summary: Open the lead follow-up template library.
      responses:
        "200":
          description: Template library for small-business follow-up samples and $5 custom sequence paths.
          content:
            text/html:
              schema:
                type: string
  /follow-up-examples.html:
    get:
      operationId: openFollowUpExamples
      summary: Open lead follow-up before and after examples.
      responses:
        "200":
          description: Before and after examples for weak and improved lead follow-up messages.
          content:
            text/html:
              schema:
                type: string
  /agent-order.html:
    get:
      operationId: openAgentOrderPath
      summary: Open the buyer-safe AI agent order path.
      responses:
        "200":
          description: Rescue-first order handoff page that opens root one-lead rescue, creates a PayPal note, points to exact 5 USD PayPal payment, and keeps delivery gated on PAYPAL_PAYMENT_VERIFIED=true.
          content:
            text/html:
              schema:
                type: string
  /missed-call-follow-up.html:
    get:
      operationId: openMissedCallFollowUp
      summary: Open the missed call follow-up sample generator.
      responses:
        "200":
          description: Browser page for missed call follow-up samples and the $5 custom sequence.
          content:
            text/html:
              schema:
                type: string
  /estimate-follow-up-template.html:
    get:
      operationId: openEstimateFollowUpTemplate
      summary: Open the estimate follow-up sample generator.
      responses:
        "200":
          description: Browser page for quote and estimate follow-up samples and the $5 custom sequence.
          content:
            text/html:
              schema:
                type: string
  /roofing-estimate-follow-up.html:
    get:
      operationId: openRoofingEstimateFollowUp
      summary: Open the roofing estimate follow-up answer page.
      responses:
        "200":
          description: Answer page with FAQ schema, copy-ready Day 0, 1, 3, 5, and 7 roofing estimate follow-up texts, and the 5 USD custom rescue path.
          content:
            text/html:
              schema:
                type: string
  /roofing-estimate-follow-up.json:
    get:
      operationId: getRoofingEstimateFollowUp
      summary: Get the roofing estimate follow-up answer JSON.
      responses:
        "200":
          description: Machine-readable roofing estimate follow-up answer, sequence, payment route, and verification gate.
          content:
            application/json:
              schema:
                type: object
  /roofing-estimate-follow-up.txt:
    get:
      operationId: getRoofingEstimateFollowUpText
      summary: Get the roofing estimate follow-up answer text.
      responses:
        "200":
          description: Plain-text roofing estimate follow-up sequence, payment route, and verification gate.
          content:
            text/plain:
              schema:
                type: string
  /roofing-estimate-generator.html:
    get:
      operationId: openRoofingEstimateGenerator
      summary: Open the roofing estimate follow-up generator.
      responses:
        "200":
          description: Local-only browser generator for Day 0, 1, 3, 5, and 7 roofing estimate follow-up texts, PayPal note, share link, privacy guard, and 5 USD custom rescue route.
          content:
            text/html:
              schema:
                type: string
  /roofing-estimate-generator.json:
    get:
      operationId: getRoofingEstimateGenerator
      summary: Get the roofing estimate follow-up generator JSON.
      responses:
        "200":
          description: Machine-readable generator metadata with query parameters, default sequence, payment route, privacy rule, and verification gate.
          content:
            application/json:
              schema:
                type: object
  /roofing-estimate-generator.txt:
    get:
      operationId: getRoofingEstimateGeneratorText
      summary: Get the roofing estimate follow-up generator text.
      responses:
        "200":
          description: Plain-text generator handoff with default sequence, PayPal note, payment route, privacy rule, and verification gate.
          content:
            text/plain:
              schema:
                type: string
  /price-objection-reply.html:
    get:
      operationId: openPriceObjectionReplyTemplate
      summary: Open the price-objection reply sample generator.
      responses:
        "200":
          description: Browser page for price-objection reply samples and the $5 custom sequence.
          content:
            text/html:
              schema:
                type: string
  /no-show-follow-up.html:
    get:
      operationId: openNoShowFollowUpTemplate
      summary: Open the no-show follow-up sample generator.
      responses:
        "200":
          description: Browser page for no-show recovery samples and the $5 custom sequence.
          content:
            text/html:
              schema:
                type: string
  /quiet-dm-follow-up.html:
    get:
      operationId: openQuietDmFollowUpTemplate
      summary: Open the quiet DM follow-up sample generator.
      responses:
        "200":
          description: Browser page for quiet DM follow-up samples and the $5 custom sequence.
          content:
            text/html:
              schema:
                type: string
  /exact-intent-answer-pack.json:
    get:
      operationId: getExactIntentAnswerPack
      summary: Get the exact-intent lead follow-up answer pack.
      responses:
        "200":
          description: JSON buyer-agent packet for exact follow-up questions, text routes, payment handoff, and verification gate.
          content:
            application/json:
              schema:
                type: object
  /exact-intent-answer-pack.txt:
    get:
      operationId: getExactIntentAnswerPackText
      summary: Get the exact-intent answer pack as plain text.
      responses:
        "200":
          description: Plain-text answer pack for AI assistants, crawlers, VAs, and buyers.
          content:
            text/plain:
              schema:
                type: string
  /missed-call-follow-up.txt:
    get:
      operationId: getMissedCallFollowUpText
      summary: Get the missed-call follow-up answer as plain text.
      responses:
        "200":
          description: Plain-text missed-call answer, sample, payment route, and verification gate.
          content:
            text/plain:
              schema:
                type: string
  /estimate-follow-up-template.txt:
    get:
      operationId: getEstimateFollowUpTemplateText
      summary: Get the estimate follow-up answer as plain text.
      responses:
        "200":
          description: Plain-text estimate follow-up answer, sample, payment route, and verification gate.
          content:
            text/plain:
              schema:
                type: string
  /price-objection-reply.txt:
    get:
      operationId: getPriceObjectionReplyText
      summary: Get the price-objection reply answer as plain text.
      responses:
        "200":
          description: Plain-text price-objection answer, sample, payment route, and verification gate.
          content:
            text/plain:
              schema:
                type: string
  /no-show-follow-up.txt:
    get:
      operationId: getNoShowFollowUpText
      summary: Get the no-show follow-up answer as plain text.
      responses:
        "200":
          description: Plain-text no-show answer, sample, payment route, and verification gate.
          content:
            text/plain:
              schema:
                type: string
  /quiet-dm-follow-up.txt:
    get:
      operationId: getQuietDmFollowUpText
      summary: Get the quiet DM follow-up answer as plain text.
      responses:
        "200":
          description: Plain-text quiet DM answer, sample, payment route, and verification gate.
          content:
            text/plain:
              schema:
                type: string
  /pay.html:
    get:
      operationId: openPaymentPage
      summary: Open the $5 payment page.
      responses:
        "200":
          description: Payment options and PayPal link.
          content:
            text/html:
              schema:
                type: string
  /pay-qr.html:
    get:
      operationId: openPayPalQrPage
      summary: Open the scan-to-pay QR page.
      responses:
        "200":
          description: Payment page with a PayPal QR code and direct PayPal.Me link.
          content:
            text/html:
              schema:
                type: string
  /printable-paypal-flyer.html:
    get:
      operationId: openPrintablePayPalFlyer
      summary: Open the printable $5 PayPal flyer.
      responses:
        "200":
          description: Printable QR flyer for the $5 SoftJunk lead follow-up offer.
          content:
            text/html:
              schema:
                type: string
  /paypal-qr.svg:
    get:
      operationId: getPayPalQrSvg
      summary: Get the PayPal QR SVG for the $5 checkout.
      responses:
        "200":
          description: SVG QR code linking to the exact 5 USD PayPal.Me payment URL.
          content:
            image/svg+xml:
              schema:
                type: string
  /checkout.html:
    get:
      operationId: openCheckout
      summary: Open the AI checkout handoff page.
      responses:
        "200":
          description: Agent-first checkout page with inline PayPal note builder, AI Deal Desk, exact 5 USD PayPal payment, after-payment handoff, GitHub buyer discussion, and verification gate.
          content:
            text/html:
              schema:
                type: string
  /checkout.json:
    get:
      operationId: getAiCheckoutHandoff
      summary: Get the AI checkout handoff JSON.
      responses:
        "200":
          description: Machine-readable checkout contract with inline PayPal note builder, AI Deal Desk route, exact 5 USD PayPal URL, PayPal note templates, after-payment handoff, and verification gate.
          content:
            application/json:
              schema:
                type: object
  /checkout.txt:
    get:
      operationId: getAiCheckoutHandoffText
      summary: Get the AI checkout handoff text.
      responses:
        "200":
          description: Plain-text checkout handoff for buyer-agents routing a qualified SoftJunk buyer to the inline note builder and exact 5 USD PayPal payment.
          content:
            text/plain:
              schema:
                type: string
  /after-pay.html:
    get:
      operationId: openAfterPaymentHandoff
      summary: Open the after-payment handoff page.
      responses:
        "200":
          description: Delivery rules after PayPal payment is visible.
          content:
            text/html:
              schema:
                type: string
  /PAYPAL_VERIFICATION.md:
    get:
      operationId: getPaypalVerificationInstructions
      summary: Get PayPal payment verification instructions.
      responses:
        "200":
          description: Instructions for verifying a 5 USD PayPal transaction before fulfillment.
          content:
            text/markdown:
              schema:
                type: string
  /feed.xml:
    get:
      operationId: getRssFeed
      summary: Get the RSS offer feed.
      responses:
        "200":
          description: RSS feed for SoftJunk offer pages.
          content:
            application/rss+xml:
              schema:
                type: string
