{"openapi":"3.1.0","info":{"title":"adambrauns.com API","version":"1.0.0","description":"Read-only JSON API for the content published on adambrauns.com — blog posts, projects, reading list, resume, and profile. All endpoints are public and CORS-enabled. An MCP endpoint exposing the same data as tools is available at https://adambrauns.com/mcp (Streamable HTTP, no auth)."},"servers":[{"url":"https://adambrauns.com"}],"paths":{"/api/posts":{"get":{"summary":"List blog posts","description":"Returns metadata for every published post, sorted by date descending.","tags":["Posts"],"responses":{"200":{"description":"Post metadata, newest first.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PostMeta"}}}}}}}},"/api/posts/{slug}":{"get":{"summary":"Get a blog post","description":"Returns a single post with its content rendered to HTML.","tags":["Posts"],"parameters":[{"name":"slug","in":"path","required":true,"description":"Post slug, as returned by /api/posts.","schema":{"type":"string"}}],"responses":{"200":{"description":"The requested post.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Post"}}}},"404":{"description":"No post with that slug.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/projects":{"get":{"summary":"List projects","tags":["Projects"],"responses":{"200":{"description":"Portfolio projects.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Project"}}}}}}}},"/api/books":{"get":{"summary":"Get the reading list","tags":["Reading list"],"responses":{"200":{"description":"Finished books grouped by year.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadingList"}}}}}}},"/api/resume":{"get":{"summary":"Get the resume","tags":["Resume"],"responses":{"200":{"description":"Experience, education, certifications, and skills.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resume"}}}}}}},"/api/profile":{"get":{"summary":"Get the profile","tags":["Profile"],"responses":{"200":{"description":"Name, photo, and the About section.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Profile"}}}}}}}},"components":{"schemas":{"PostAuthor":{"type":"object","properties":{"name":{"type":"string"},"image":{"type":"string"},"imageAlt":{"type":"string"}},"required":["name","image","imageAlt"],"additionalProperties":false},"PostImage":{"type":"object","properties":{"src":{"type":"string"},"alt":{"type":"string"}},"required":["src","alt"],"additionalProperties":false},"PostMeta":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"excerpt":{"type":"string"},"date":{"type":"string"},"readingTimeMinutes":{"type":"integer"},"tags":{"type":"array","items":{"type":"string"}},"author":{"$ref":"#/components/schemas/PostAuthor"},"image":{"$ref":"#/components/schemas/PostImage"}},"required":["slug","title","excerpt","date","readingTimeMinutes","tags","author"],"additionalProperties":false},"Post":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"excerpt":{"type":"string"},"date":{"type":"string"},"readingTimeMinutes":{"type":"integer"},"tags":{"type":"array","items":{"type":"string"}},"author":{"$ref":"#/components/schemas/PostAuthor"},"image":{"$ref":"#/components/schemas/PostImage"},"contentHtml":{"type":"string","description":"Post body rendered to HTML."},"tableOfContents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"}},"required":["id","title"],"additionalProperties":false}}},"required":["slug","title","excerpt","date","readingTimeMinutes","tags","author","contentHtml","tableOfContents"],"additionalProperties":false},"Project":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"image":{"type":"string"},"externalLink":{"type":"object","properties":{"label":{"type":"string"},"url":{"type":"string"}},"required":["label","url"],"additionalProperties":false},"githubUrl":{"type":"string"},"tech":{"type":"array","items":{"type":"string"}}},"required":["title","description","image","githubUrl","tech"],"additionalProperties":false},"Book":{"type":"object","properties":{"title":{"type":"string"},"author":{"type":"string"},"favorite":{"type":"boolean"},"href":{"type":"string"},"note":{"type":"string"}},"required":["title"],"additionalProperties":false},"BookYearGroup":{"type":"object","properties":{"year":{"type":"integer"},"books":{"type":"array","items":{"$ref":"#/components/schemas/Book"}}},"required":["year","books"],"additionalProperties":false},"ReadingList":{"type":"object","properties":{"intro":{"type":"string"},"years":{"type":"array","items":{"$ref":"#/components/schemas/BookYearGroup"}}},"required":["intro","years"],"additionalProperties":false},"ResumeExperience":{"type":"object","properties":{"role":{"type":"string"},"company":{"type":"string"},"location":{"type":"string"},"period":{"type":"string"},"points":{"type":"array","items":{"type":"string"}}},"required":["role","company","location","period","points"],"additionalProperties":false},"ResumeEducation":{"type":"object","properties":{"degree":{"type":"string"},"program":{"type":"string"},"institution":{"type":"string"},"period":{"type":"string"}},"required":["degree","program","institution","period"],"additionalProperties":false},"ResumeCertification":{"type":"object","properties":{"name":{"type":"string"},"issuer":{"type":"string"},"period":{"type":"string"},"credentialId":{"type":"string"},"verificationUrl":{"type":"string"}},"required":["name","issuer","period","credentialId","verificationUrl"],"additionalProperties":false},"Resume":{"type":"object","properties":{"experience":{"type":"array","items":{"$ref":"#/components/schemas/ResumeExperience"}},"education":{"type":"array","items":{"$ref":"#/components/schemas/ResumeEducation"}},"certifications":{"type":"array","items":{"$ref":"#/components/schemas/ResumeCertification"}},"languages":{"type":"array","items":{"type":"string"}},"technologies":{"type":"array","items":{"type":"string"}}},"required":["experience","education","certifications","languages","technologies"],"additionalProperties":false},"Profile":{"type":"object","properties":{"name":{"type":"string"},"image":{"type":"string"},"imageAlt":{"type":"string"},"about":{"type":"object","properties":{"title":{"type":"string"},"paragraphs":{"type":"array","items":{"type":"string"}},"features":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"}},"required":["title","description"],"additionalProperties":false}}},"required":["title","paragraphs","features"],"additionalProperties":false}},"required":["name","image","imageAlt","about"],"additionalProperties":false},"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"additionalProperties":false}}}}