{"openapi":"3.1.0","info":{"title":"WordStar Converter","version":"6.1.1","description":"Public HTTP APIs for WordStar Converter (wordstarconverter.com): live product offers/pricing, roadmap voting, feedback, desktop checkout, desktop update checks, and the MSI download proxy.\nAdmin, webhook, and analytics-internal routes are intentionally omitted.\n\nVersioning: the stable surface is `/api/v1/*`. Unversioned `/api/*` paths are aliases of the same handlers and remain supported.\nBreaking changes will ship under a new major path (for example `/api/v2`) and the prior major will advertise `Deprecation` / `Sunset` response headers before removal.\n\nRate limits: public API responses include IETF RateLimit headers. Default policy is 120 requests per IP per 60 seconds; exceeded requests return HTTP 429 with Retry-After.","contact":{"name":"WordStar Converter Support","email":"support@wordstarconverter.com","url":"https://wordstarconverter.com"}},"servers":[{"url":"https://wordstarconverter.com","description":"Production"}],"tags":[{"name":"offers","description":"Live product pricing and payment links"},{"name":"roadmap","description":"Public product roadmap and voting"},{"name":"feedback","description":"Product feedback submissions"},{"name":"download","description":"Windows MSI installer download"},{"name":"version","description":"Desktop app version and update download URL"},{"name":"checkout","description":"Desktop in-app Stripe checkout helpers"}],"paths":{"/api/v1/pricing":{"get":{"operationId":"getPricingOffers","tags":["offers"],"summary":"Get live WordStar Converter pricing and offers","description":"Returns the current product offer payload (prices, Stripe Payment Links, trial file limit). Sourced from the admin offers store with catalog fallbacks. Alias: GET /api/pricing.","responses":{"200":{"description":"Current pricing/offers payload (includes IETF RateLimit headers)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PricingPayload"}}}},"429":{"$ref":"#/components/responses/ApiError"},"500":{"$ref":"#/components/responses/ApiError"}}}},"/api/v1/roadmap":{"get":{"operationId":"listRoadmapFeatures","tags":["roadmap"],"summary":"List visible roadmap features","description":"Returns visible roadmap features with vote counts for the current voter. Alias: GET /api/roadmap.","responses":{"200":{"description":"Roadmap feature list (includes IETF RateLimit headers)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoadmapListResponse"}}}},"429":{"$ref":"#/components/responses/ApiError"},"500":{"$ref":"#/components/responses/ApiError"}}},"post":{"operationId":"toggleRoadmapVote","tags":["roadmap"],"summary":"Toggle a vote on a roadmap feature","description":"Alias: POST /api/roadmap.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoadmapVoteRequest"}}}},"responses":{"200":{"description":"Updated vote state (includes IETF RateLimit headers)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoadmapVoteResponse"}}}},"400":{"$ref":"#/components/responses/ApiError"},"404":{"$ref":"#/components/responses/ApiError"},"429":{"$ref":"#/components/responses/ApiError"},"500":{"$ref":"#/components/responses/ApiError"},"502":{"$ref":"#/components/responses/ApiError"}}}},"/api/v1/feedback":{"post":{"operationId":"submitFeedback","tags":["feedback"],"summary":"Submit product feedback","description":"Alias: POST /api/feedback.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackRequest"}}}},"responses":{"201":{"description":"Feedback accepted (includes IETF RateLimit headers)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackResponse"}}}},"400":{"$ref":"#/components/responses/ApiError"},"429":{"$ref":"#/components/responses/ApiError"},"500":{"$ref":"#/components/responses/ApiError"}}}},"/api/v1/download":{"get":{"operationId":"downloadInstaller","tags":["download"],"summary":"Download the current WordStar Converter MSI","description":"Streams the current signed Windows MSI installer. Alias: GET /api/download.","responses":{"200":{"description":"Installer binary stream (includes IETF RateLimit headers)","content":{"application/octet-stream":{"schema":{"$ref":"#/components/schemas/InstallerBinary"}}}},"404":{"$ref":"#/components/responses/ApiError"},"429":{"$ref":"#/components/responses/ApiError"},"502":{"$ref":"#/components/responses/ApiError"}}}},"/api/v1/version":{"get":{"operationId":"getDesktopVersion","tags":["version"],"summary":"Get current desktop app version for update checks","description":"Returns the published WordStar Converter appVersion and a canonical MSI download URL used by the desktop updater. Alias: GET /api/version.","responses":{"200":{"description":"Current version payload (includes IETF RateLimit headers)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesktopVersionResponse"}}}},"429":{"$ref":"#/components/responses/ApiError"}}}},"/api/v1/checkout/create":{"post":{"operationId":"createCheckoutSession","tags":["checkout"],"summary":"Create a Stripe Checkout session for the desktop app","description":"Alias: POST /api/checkout/create.","requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutCreateRequest"}}}},"responses":{"200":{"description":"Checkout session created (includes IETF RateLimit headers)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutCreateResponse"}}}},"429":{"$ref":"#/components/responses/ApiError"},"500":{"$ref":"#/components/responses/ApiError"}}}},"/api/v1/checkout/status":{"get":{"operationId":"getCheckoutStatus","tags":["checkout"],"summary":"Read checkout payment and license-key status","description":"Alias: GET /api/checkout/status.","parameters":[{"name":"session_id","in":"query","required":true,"schema":{"type":"string","minLength":1},"description":"Stripe Checkout session id"}],"responses":{"200":{"description":"Checkout status (includes IETF RateLimit headers)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutStatus"}}}},"400":{"$ref":"#/components/responses/ApiError"},"429":{"$ref":"#/components/responses/ApiError"},"500":{"$ref":"#/components/responses/ApiError"}}}}},"components":{"schemas":{"ApiError":{"type":"object","required":["code","message","resolution"],"additionalProperties":false,"properties":{"code":{"type":"string","description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable error summary"},"resolution":{"type":"string","description":"Suggested next step for the client or agent"}}},"PricingPayload":{"type":"object","required":["product","productDisplayName","currency","licensePrice","licensePriceDisplay","stripePaymentLink","trialFileLimit"],"properties":{"product":{"type":"string","const":"wordstar"},"productDisplayName":{"type":"string"},"currency":{"type":"string","const":"USD"},"licensePrice":{"type":"string"},"licensePriceDisplay":{"type":"string"},"stripePaymentLink":{"type":"string","format":"uri"},"commercialLicensePrice":{"type":"string"},"commercialLicensePriceDisplay":{"type":"string"},"stripeCommercialPaymentLink":{"type":"string","format":"uri"},"trialFileLimit":{"type":"integer"},"plusAddonPrice":{"type":"string"},"plusAddonPriceDisplay":{"type":"string"},"stripePlusAddonPaymentLink":{"type":"string","format":"uri"},"plusBundlePrice":{"type":"string"},"plusBundlePriceDisplay":{"type":"string"},"stripePlusBundlePaymentLink":{"type":"string","format":"uri"},"plusCommercialPrice":{"type":"string"},"plusCommercialPriceDisplay":{"type":"string"},"stripePlusCommercialPaymentLink":{"type":"string","format":"uri"},"plusAddonCommercialPrice":{"type":"string"},"plusAddonCommercialPriceDisplay":{"type":"string"},"stripePlusAddonCommercialPaymentLink":{"type":"string","format":"uri"}}},"RoadmapFeature":{"type":"object","required":["id","title","description","category","vote_count","voted"],"properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"vote_count":{"type":"integer"},"voted":{"type":"boolean"},"release_version":{"type":["string","null"]}}},"RoadmapListResponse":{"type":"object","required":["features"],"properties":{"features":{"type":"array","items":{"$ref":"#/components/schemas/RoadmapFeature"}}}},"RoadmapVoteRequest":{"type":"object","required":["featureId"],"additionalProperties":false,"properties":{"featureId":{"type":"string","format":"uuid","description":"Roadmap feature UUID"}}},"RoadmapVoteResponse":{"type":"object","required":["voted","vote_count"],"properties":{"voted":{"type":"boolean"},"vote_count":{"type":"integer"}}},"FeedbackRequest":{"type":"object","required":["description"],"properties":{"type":{"type":"string","enum":["feature_request","bug_report","general","review"]},"email":{"type":"string","format":"email"},"description":{"type":"string","minLength":1},"appVersion":{"type":"string"},"rating":{"type":"integer","minimum":1,"maximum":5}}},"FeedbackResponse":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean"}}},"InstallerBinary":{"type":"string","format":"binary","description":"Windows MSI installer bytes"},"DesktopVersionResponse":{"type":"object","required":["version","downloadUrl"],"additionalProperties":false,"properties":{"version":{"type":"string","description":"Published WordStar Converter appVersion from version.json"},"downloadUrl":{"type":"string","format":"uri","description":"Canonical MSI download URL for desktop update checks (includes source=update)"}}},"CheckoutCreateRequest":{"type":"object","properties":{"channel":{"type":"string","enum":["store","msi"]},"product":{"type":"string","description":"Checkout product key recognized by the desktop app"}}},"CheckoutCreateResponse":{"type":"object","required":["sessionId","url"],"properties":{"sessionId":{"type":"string"},"url":{"type":"string","format":"uri"}}},"CheckoutStatus":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["pending","processing","paid"]},"licenseKey":{"type":["string","null"]},"standardLicenseKey":{"type":["string","null"]},"plusLicenseKey":{"type":["string","null"]}}}},"responses":{"ApiError":{"description":"Structured JSON error for API clients ({code, message, resolution})","headers":{"RateLimit-Limit":{"schema":{"type":"integer"},"description":"Requests allowed in the current window"},"RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requests remaining in the current window"},"RateLimit-Reset":{"schema":{"type":"integer"},"description":"Seconds until the window resets"},"Retry-After":{"schema":{"type":"integer"},"description":"Present on HTTP 429"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}