{"openapi":"3.1.0","info":{"title":"PlatPhorm News Layout API","description":"API for the PlatPhorm News shared layout system. Provides health checks, IndexNow integration, and discovery endpoints.","version":"0.0.1","contact":{"name":"PlatPhorm News Team","url":"https://platphormnews.com","email":"support@platphormnews.com"},"license":{"name":"MIT","url":"https://opensource.org/licenses/MIT"}},"servers":[{"url":"https://layout.platphormnews.com","description":"Production"},{"url":"http://localhost:3000","description":"Development"}],"tags":[{"name":"Health","description":"Service health endpoints"},{"name":"Discovery","description":"LLM and SEO discovery files"},{"name":"IndexNow","description":"Search engine indexing"}],"paths":{"/api/health":{"get":{"tags":["Health"],"summary":"Health check","description":"Returns service health status, version, and uptime.","operationId":"getHealth","responses":{"200":{"description":"Service is healthy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/api/indexnow":{"get":{"tags":["IndexNow"],"summary":"Get IndexNow status","description":"Returns current IndexNow configuration and recent submissions.","operationId":"getIndexNowStatus","responses":{"200":{"description":"IndexNow status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndexNowStatus"}}}}}},"post":{"tags":["IndexNow"],"summary":"Submit URLs to IndexNow","description":"Notify search engines about new or updated URLs.","operationId":"submitIndexNow","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndexNowRequest"}}}},"responses":{"200":{"description":"URLs submitted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndexNowResponse"}}}},"400":{"description":"Invalid request"},"429":{"description":"Rate limit exceeded"}}}},"/llms.txt":{"get":{"tags":["Discovery"],"summary":"LLM discovery summary","description":"Plain text summary for AI/LLM systems.","operationId":"getLlmsTxt","responses":{"200":{"description":"LLMs.txt content","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/llms-full.txt":{"get":{"tags":["Discovery"],"summary":"Full LLM documentation","description":"Complete documentation for AI/LLM systems.","operationId":"getLlmsFullTxt","responses":{"200":{"description":"Full LLMs documentation","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/llms-index.json":{"get":{"tags":["Discovery"],"summary":"Structured LLM index","description":"JSON-structured index for programmatic access.","operationId":"getLlmsIndex","responses":{"200":{"description":"LLMs index","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LlmsIndex"}}}}}}},"/sitemap.xml":{"get":{"tags":["Discovery"],"summary":"XML sitemap","description":"Sitemap with all pages and locale variants.","operationId":"getSitemap","responses":{"200":{"description":"XML sitemap","content":{"application/xml":{"schema":{"type":"string"}}}}}}},"/rss.xml":{"get":{"tags":["Discovery"],"summary":"RSS 2.0 feed","description":"RSS feed with recent updates.","operationId":"getRssFeed","responses":{"200":{"description":"RSS feed","content":{"application/rss+xml":{"schema":{"type":"string"}}}}}}},"/feed.xml":{"get":{"tags":["Discovery"],"summary":"Atom feed","description":"Atom 1.0 feed with recent updates.","operationId":"getAtomFeed","responses":{"200":{"description":"Atom feed","content":{"application/atom+xml":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"HealthResponse":{"type":"object","properties":{"status":{"type":"string","enum":["healthy","degraded","unhealthy"]},"version":{"type":"string"},"uptime":{"type":"number","description":"Uptime in seconds"},"timestamp":{"type":"string","format":"date-time"}},"required":["status","version","timestamp"]},"IndexNowRequest":{"type":"object","properties":{"urls":{"type":"array","items":{"type":"string","format":"uri"},"maxItems":10}},"required":["urls"]},"IndexNowResponse":{"type":"object","properties":{"submitted":{"type":"number"},"failed":{"type":"number"},"message":{"type":"string"}}},"IndexNowStatus":{"type":"object","properties":{"enabled":{"type":"boolean"},"keyConfigured":{"type":"boolean"},"recentSubmissions":{"type":"number"}}},"LlmsIndex":{"type":"object","properties":{"$schema":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"version":{"type":"string"},"url":{"type":"string","format":"uri"},"locales":{"type":"array","items":{"type":"object"}},"features":{"type":"array","items":{"type":"object"}},"endpoints":{"type":"array","items":{"type":"object"}}}}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"API key for authenticated requests"}}}}