{"service":"platphorm-finance","baseUrl":"https://finance.platphormnews.com","publicSafeAccess":true,"requiredPolicyLine":"Public-safe finance dashboards, quote lookup, local watchlists, simulated portfolio views, finance feed browsing, read-only MCP introspection, RSS/feed consumption, trusted-domain discovery, standard route compliance, Vercel metadata capture, backend model scaffolding, and trace-linked Finance operations are intentionally supported for public informational use. PlatPhorm Finance does not provide personalized investment advice and does not execute trades. PLATPHORM_API_KEY support is scaffolded for future protected backend services, private portfolio persistence, provider sync, QuickBooks integration, reporting, administrative actions, and sensitive operations.","auth":{"publicSafeByDefault":true,"enforcementEnabled":false,"featureFlag":"PLATPHORM_REQUIRE_API_KEY","acceptedHeaders":["Authorization: Bearer $PLATPHORM_API_KEY","X-PlatPhorm-API-Key: $PLATPHORM_API_KEY"],"futureProtectedActions":["provider-sync","private-portfolio-persistence","quickbooks-integration","bulk-market-data-job","report-generation","registry-mutation","trusted-domain-mutation","sensitive-audit-read"],"keyStoragePolicy":"Never place PLATPHORM_API_KEY in browser storage, URLs, logs, traces, RSS, sitemap, llms files, or public views."},"marketDataSourcePolicy":"Market data must identify provider, data freshness, delayed/cached/degraded state, and never fabricate missing values.","delayedCachedDegradedPolicy":"Unavailable provider values are shown as unavailable or degraded; stale values must be labeled cached or stale.","noInvestmentAdvicePolicy":"PlatPhorm Finance provides public informational finance data and local simulations only. It does not provide personalized investment advice, execute trades, request brokerage credentials, or promise returns.","localPersistencePolicy":"Phase 1 watchlists and simulated portfolios are browser-local drafts. Do not store brokerage credentials, account numbers, provider credentials, or PLATPHORM_API_KEY.","providerCredentialPolicy":"Provider credentials, when added, are backend-only provider credentials and never platform auth.","modelScaffoldingPolicy":{"providerNeutralAdapter":"Vercel AI SDK compatible scaffold","status":"degraded","configured":false,"dataStatus":"degraded","traceId":"3462095133bbbd1374b15a996b09d0a4","message":"No backend model provider is configured; AI-assisted finance summaries are unavailable instead of fabricated.","supportedUseCases":["public-safe market summaries","finance news summaries","quote explanations","metric explanations","simulated portfolio summaries","business finance report summaries","source comparison","financial glossary explanations"],"safetyPolicy":{"informationalOnly":true,"noPersonalizedAdvice":true,"noBuySellHoldInstructions":true,"noProviderKeyExposure":true,"disclaimer":"PlatPhorm Finance provides public informational finance data and local simulations only. It does not provide personalized investment advice, execute trades, request brokerage credentials, or promise returns."}},"quickBooksIntegrationPolicy":"QuickBooks status is public-safe and degraded unless a future protected backend integration is configured.","trustedDomainPolicy":{"defaultTrustedScope":"*.platphormnews.com","externalDomains":"Only fixed public finance providers and explicitly allowlisted platform domains are called."},"routeStandard":{"requiredCount":25,"implementedCount":25,"score":100,"missing":[],"unsupported":[],"routes":[{"path":"/","title":"Finance Dashboard","description":"Public finance dashboard and quote lookup.","publicSafe":true,"sitemap":true,"kind":"page"},{"path":"/dashboard","title":"Dashboard","description":"Market overview, quote lookup, watchlist, portfolio simulation, and sources.","publicSafe":true,"sitemap":true,"kind":"page"},{"path":"/markets","title":"Markets","description":"Public market benchmark viewer with source freshness.","publicSafe":true,"sitemap":true,"kind":"page"},{"path":"/quotes","title":"Quote Lookup","description":"Lookup public market quotes with freshness labels.","publicSafe":true,"sitemap":true,"kind":"page"},{"path":"/quotes/SPY","title":"SPY Quote","description":"Example public quote detail page for SPY when provider data is available.","publicSafe":true,"sitemap":true,"kind":"page"},{"path":"/watchlist","title":"Local Watchlist","description":"Browser-local public-safe symbol watchlist.","publicSafe":true,"sitemap":true,"kind":"page"},{"path":"/portfolio","title":"Simulated Portfolio","description":"Browser-local simulation-only portfolio calculator.","publicSafe":true,"sitemap":true,"kind":"page"},{"path":"/news","title":"Finance News","description":"Public finance feed reader with source attribution.","publicSafe":true,"sitemap":true,"kind":"page"},{"path":"/feeds","title":"Finance Feeds","description":"RSS/feed and provider source directory.","publicSafe":true,"sitemap":true,"kind":"page"},{"path":"/calculators","title":"Finance Calculators","description":"Public informational finance and business metric calculators.","publicSafe":true,"sitemap":true,"kind":"page"},{"path":"/reports","title":"Reports","description":"Public-safe report export surface and future protected report policy.","publicSafe":true,"sitemap":true,"kind":"page"},{"path":"/sources","title":"Sources","description":"Provider status and source freshness.","publicSafe":true,"sitemap":true,"kind":"page"},{"path":"/faq","title":"FAQ","description":"Finance product and safety answers.","publicSafe":true,"sitemap":true,"kind":"page"},{"path":"/disclaimer","title":"Financial Disclaimer","description":"No-advice and simulation-only policy.","publicSafe":true,"sitemap":true,"kind":"page"},{"path":"/privacy","title":"Privacy","description":"Public-safe local storage and data handling policy.","publicSafe":true,"sitemap":true,"kind":"page"},{"path":"/terms","title":"Terms","description":"Informational use and no-trading terms.","publicSafe":true,"sitemap":true,"kind":"page"},{"path":"/api/docs","title":"API Docs","description":"Human-readable public Finance API documentation.","publicSafe":true,"sitemap":true,"kind":"api"},{"path":"/api/health","title":"Health","description":"Public health summary.","publicSafe":true,"sitemap":false,"kind":"api"},{"path":"/api/v1/health","title":"Health v1","description":"Public health summary.","publicSafe":true,"sitemap":false,"kind":"api"},{"path":"/openapi.yaml","title":"OpenAPI YAML","description":"Machine-readable OpenAPI YAML.","publicSafe":true,"sitemap":true,"kind":"discovery"},{"path":"/openapi.json","title":"OpenAPI JSON","description":"Machine-readable OpenAPI JSON.","publicSafe":true,"sitemap":true,"kind":"discovery"},{"path":"/llms.txt","title":"LLMS","description":"Concise LLM context.","publicSafe":true,"sitemap":true,"kind":"discovery"},{"path":"/llms-full.txt","title":"LLMS Full","description":"Detailed LLM context.","publicSafe":true,"sitemap":true,"kind":"discovery"},{"path":"/llms-index.json","title":"LLMS Index","description":"Structured LLM endpoint index.","publicSafe":true,"sitemap":true,"kind":"discovery"},{"path":"/rss.xml","title":"RSS","description":"Public Finance RSS feed.","publicSafe":true,"sitemap":true,"kind":"discovery"},{"path":"/feed.xml","title":"Feed","description":"Public Finance RSS-compatible feed.","publicSafe":true,"sitemap":true,"kind":"discovery"},{"path":"/sitemap.xml","title":"Sitemap","description":"Dynamic public sitemap.","publicSafe":true,"sitemap":true,"kind":"discovery"},{"path":"/sitemap-main.xml","title":"Main Sitemap","description":"Dynamic human page sitemap.","publicSafe":true,"sitemap":true,"kind":"discovery"},{"path":"/sitemap-index.xml","title":"Sitemap Index","description":"Sitemap index.","publicSafe":true,"sitemap":true,"kind":"discovery"},{"path":"/robots.txt","title":"Robots","description":"Robots policy.","publicSafe":true,"sitemap":false,"kind":"discovery"},{"path":"/manifest.webmanifest","title":"Manifest","description":"Web app manifest.","publicSafe":true,"sitemap":false,"kind":"discovery"},{"path":"/.well-known/mcp.json","title":"MCP Well-Known","description":"Public MCP metadata.","publicSafe":true,"sitemap":false,"kind":"well-known"},{"path":"/.well-known/agents.json","title":"Agents Well-Known","description":"Agent operation metadata.","publicSafe":true,"sitemap":false,"kind":"well-known"},{"path":"/.well-known/ai-plugin.json","title":"AI Plugin","description":"Public plugin metadata.","publicSafe":true,"sitemap":false,"kind":"well-known"},{"path":"/.well-known/security.txt","title":"Security","description":"Security contact.","publicSafe":true,"sitemap":false,"kind":"well-known"},{"path":"/.well-known/trust.json","title":"Trust Policy","description":"Public trust and boundary policy.","publicSafe":true,"sitemap":false,"kind":"well-known"},{"path":"/api/v1/markets","title":"Markets API","description":"Public market summary.","publicSafe":true,"sitemap":false,"kind":"api"},{"path":"/api/v1/quotes","title":"Quotes API","description":"Public quote lookup.","publicSafe":true,"sitemap":false,"kind":"api"},{"path":"/api/v1/quotes/{symbol}","title":"Quote API","description":"Public quote by symbol.","publicSafe":true,"sitemap":false,"kind":"api"},{"path":"/api/v1/assets/{symbol}","title":"Asset API","description":"Public asset profile by symbol.","publicSafe":true,"sitemap":false,"kind":"api"},{"path":"/api/v1/news","title":"News API","description":"Public finance news feed.","publicSafe":true,"sitemap":false,"kind":"api"},{"path":"/api/v1/feeds","title":"Feeds API","description":"Public finance feed sources.","publicSafe":true,"sitemap":false,"kind":"api"},{"path":"/api/v1/sources","title":"Sources API","description":"Public provider source status.","publicSafe":true,"sitemap":false,"kind":"api"},{"path":"/api/v1/provider/status","title":"Provider Status API","description":"Public provider health.","publicSafe":true,"sitemap":false,"kind":"api"},{"path":"/api/v1/watchlist","title":"Watchlist API","description":"Validates a local watchlist without server persistence.","publicSafe":true,"sitemap":false,"kind":"api"},{"path":"/api/v1/portfolio/simulate","title":"Portfolio Simulation API","description":"Public simulation-only portfolio calculator.","publicSafe":true,"sitemap":false,"kind":"api"},{"path":"/api/v1/calculators","title":"Calculators API","description":"Public calculator registry.","publicSafe":true,"sitemap":false,"kind":"api"},{"path":"/api/v1/calculators/{slug}","title":"Calculator Run API","description":"Runs an informational calculator.","publicSafe":true,"sitemap":false,"kind":"api"},{"path":"/api/v1/reports/summary","title":"Report Summary API","description":"Public-safe degraded report scaffolding.","publicSafe":true,"sitemap":false,"kind":"api","protectedAction":true},{"path":"/api/v1/integrations/quickbooks/status","title":"QuickBooks Status API","description":"Public-safe integration status only.","publicSafe":true,"sitemap":false,"kind":"api","protectedAction":true},{"path":"/api/mcp","title":"MCP","description":"JSON-RPC Finance MCP endpoint.","publicSafe":true,"sitemap":false,"kind":"mcp"},{"path":"/api/cron/refresh","title":"Refresh Cron","description":"Bounded refresh and validation scaffold.","publicSafe":false,"sitemap":false,"kind":"cron","protectedAction":true}]},"vercelMetadataPolicy":"Only safe Vercel metadata is captured; raw IPs, cookies, authorization headers, API keys, and request bodies are excluded.","tracePropagationPolicy":"Finance accepts and propagates W3C traceparent/tracestate plus safe PlatPhorm trace headers.","securityContact":"security@platphormnews.com","updatedAt":"2026-06-03T06:31:20.775Z"}