{"service":"fortune","version":"1.0.0-phase1","baseUrl":"https://fortune.platphormnews.com","updatedAt":"2026-05-25T06:52:42.705Z","endpoints":[{"method":"GET","path":"/api/health","access":"public-safe"},{"method":"GET","path":"/api/v1/health","access":"public-safe"},{"method":"GET","path":"/api/v1/fortune","access":"public-safe"},{"method":"POST","path":"/api/v1/fortune/reveal","access":"public-safe"},{"method":"POST","path":"/api/v1/fortune/deterministic","access":"public-safe"},{"method":"POST","path":"/api/v1/fortune/goal","access":"public-safe"},{"method":"GET","path":"/api/v1/fortune/categories","access":"public-safe"},{"method":"GET","path":"/api/v1/fortune/tones","access":"public-safe"},{"method":"GET","path":"/api/v1/quotes","access":"public-safe"},{"method":"POST","path":"/api/v1/share-card","access":"public-safe degraded server renderer"},{"method":"POST","path":"/api/v1/export","access":"public-safe"},{"method":"POST","path":"/api/v1/model/fortune","access":"future protected when enforcement enabled"},{"method":"POST","path":"/api/v1/model/share-copy","access":"future protected when enforcement enabled"},{"method":"GET","path":"/api/mcp","access":"public-safe introspection"},{"method":"POST","path":"/api/mcp","access":"public-safe bounded JSON-RPC tools"}],"authPolicy":{"sharedKeyName":"PLATPHORM_API_KEY","enforcementFlag":"PLATPHORM_REQUIRE_API_KEY","requireApiKey":false,"defaultPhase1Access":"public-safe","acceptedHeaders":["Authorization: Bearer $PLATPHORM_API_KEY","X-PlatPhorm-API-Key: $PLATPHORM_API_KEY"],"serviceSpecificPlatformKeysRejected":true},"publicAccess":true,"fortuneGenerator":{"deterministic":true,"randomLibraryReveal":true,"goalFortune":true,"doesNotPredictFuture":true,"categories":[{"id":"adventure","label":"Adventure","description":"Fortunes about travel, exploration, and pushing beyond comfort zones.","count":35},{"id":"skill","label":"Skill","description":"Fortunes about mastery, learning, craft, and deliberate practice.","count":25},{"id":"experience","label":"Experience","description":"Fortunes about lived moments, relationships, and personal milestones.","count":34},{"id":"wisdom","label":"Wisdom","description":"Fortunes delivering philosophical insights and timeless truths.","count":31},{"id":"chaos","label":"Chaos","description":"Fortunes from unexpected angles — subversive, irreverent, and unpredictable.","count":28},{"id":"principle","label":"Principle","description":"Fortunes grounded in core values, ethics, and guiding beliefs.","count":67}],"tones":[{"id":"classic","label":"Classic","description":"A crisp fortune-cookie voice with playful certainty avoided."},{"id":"playful","label":"Playful","description":"Light, witty guidance that stays reflective and public-safe."},{"id":"mystical","label":"Mystical","description":"Foggy symbolism without pretending to predict the future."},{"id":"practical","label":"Practical","description":"Plainspoken next-step guidance for ordinary momentum."},{"id":"poetic","label":"Poetic","description":"Image-rich reflective language with a softer cadence."},{"id":"technical","label":"Technical","description":"Systems-minded prompts for builders and operators."},{"id":"gentle","label":"Gentle","description":"Low-pressure encouragement for quiet reflection."},{"id":"bold","label":"Bold","description":"Direct challenge without coercion or false certainty."}],"totalFortunes":220},"quotes":{"source":"Fortune Fog public library","count":220,"attribution":"Michael Barbine / PlatPhormNews"},"favoritesLocalOnly":true,"shareCard":{"clientCanvas":true,"serverRenderer":"degraded/future protected scaffold"},"modelScaffolding":{"configured":false,"provider":null,"status":"degraded","modelCallsFromClient":false,"promptRedaction":true,"outputValidation":true,"note":"No model provider is configured. Fortune returns deterministic fallback and labels model assistance as unavailable."},"tools":["reveal_fortune","reveal_deterministic_fortune","generate_goal_fortune","list_fortune_categories","list_fortune_tones","list_quotes","generate_share_copy","create_share_card","export_fortune","get_health","get_info","get_route_compliance","get_discovery_compliance","create_docs_report","create_sheet_report","create_deck_summary"],"resources":["fortune://categories","fortune://tones","fortune://quotes","fortune://library","fortune://examples","fortune://faq","fortune://openapi","fortune://llms","fortune://trust-policy"],"prompts":["reveal_fortune","generate_reflective_fortune","generate_goal_fortune","generate_fortune_share_copy","create_fortune_card_text","explain_fortune","create_daily_reflection","human_machine_fortune_handoff"],"trustedDomains":["*.platphormnews.com"],"routeStandard":["/api/health","/api/v1/health","/api/docs","/openapi.yaml","/openapi.json","/llms.txt","/llms-full.txt","/llms-index.json","/robots.txt","/sitemap.xml","/sitemap-main.xml","/sitemap-index.xml","/rss.xml","/feed.xml","/manifest.webmanifest","/.well-known/mcp.json","/.well-known/agents.json","/.well-known/ai-plugin.json","/.well-known/security.txt","/.well-known/trust.json"],"trustPolicy":"Public-safe fortune reveal, deterministic fortune generation, goal-oriented reflective prompts, local non-sensitive favorites/history, read-only MCP introspection, RSS/feed consumption, trusted-domain discovery, standard route compliance, Vercel metadata capture, backend model scaffolding, and trace-linked Fortune operations are intentionally supported for public playful and reflective use. Fortune does not predict the future and does not provide medical, legal, financial, or crisis advice. PLATPHORM_API_KEY support is scaffolded for future protected backend services, protected model calls, share-card rendering, sync, test-triggering, reporting, administrative actions, and sensitive operations."}