{"openapi":"3.1.0","info":{"title":"MainQuestHobbies API","description":"JSON API for MainQuestHobbies — a personal-development and hobbies blog by Paul Piotrowski. Provides access to all published posts, categories, coined concepts, and full-text search.","version":"1.0.0","contact":{"name":"Paul Piotrowski","url":"https://www.mainquesthobbies.com"}},"servers":[{"url":"https://www.mainquesthobbies.com","description":"Production"}],"paths":{"/api/posts":{"get":{"operationId":"listPosts","summary":"List all published posts","description":"Returns every published blog post ordered by publish date descending. Each entry includes title, slug, canonical URL, summary (meta description), tags, and publish date.","responses":{"_200":{"description":"Array of post summaries","content":{"applicationJson":{"schema":{"type":"array","items":{"_ref":"#/components/schemas/PostSummary"}}}}}}}},"/api/posts/{slug}":{"get":{"operationId":"getPost","summary":"Get a single post by slug","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"description":"URL slug of the post (e.g. 'law-of-attraction-prime-directive')"}],"responses":{"_200":{"description":"Full post metadata","content":{"applicationJson":{"schema":{"_ref":"#/components/schemas/PostDetail"}}}},"_404":{"description":"Post not found"}}}},"/api/entities":{"get":{"operationId":"listEntities","summary":"List all topic categories","description":"Returns all categories with their post counts, ordered by popularity.","responses":{"_200":{"description":"Array of categories"}}}},"/api/concepts":{"get":{"operationId":"listConcepts","summary":"List all coined concepts","description":"Returns original concepts defined on this blog with their definitions and canonical URLs. These are terms coined or specially defined by the author.","responses":{"_200":{"description":"Array of concepts"}}}},"/api/search":{"get":{"operationId":"search","summary":"Full-text search","description":"Search across all published posts and pages. Returns matching results with title, type, slug, canonical URL, and excerpt.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"description":"Search query (e.g. 'law of attraction')"}],"responses":{"_200":{"description":"Array of search results"}}}},"/knowledge.json":{"get":{"operationId":"knowledgeIndex","summary":"Master knowledge index","description":"A comprehensive JSON index of the entire site: all posts with summaries and tags, all categories with post counts, all concepts with definitions, and links to all API endpoints. Ideal as a single-request site overview for AI systems.","responses":{"_200":{"description":"Complete site knowledge graph"}}}}},"components":{"schemas":{"postSummary":{"type":"object","properties":{"title":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string","format":"uri"},"summary":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"publishedAt":{"type":"string","format":"date-time"}}},"postDetail":{"type":"object","properties":{"title":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string","format":"uri"},"canonicalUrl":{"type":"string","format":"uri"},"summary":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"publishedAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}}}}}