API Reference.
All data powering this portfolio is available via a public REST API. Public endpoints require an API key. Admin endpoints require a valid session.
Projects
Portfolio projects
/api/projectsList all projects
Returns all projects. Filter by status or featured flag.
statusqueryIN_PROGRESS | COMPLETED | ARCHIVEDfeaturedquerybooleanpagequeryintegerpageSizequeryinteger/api/projects/{slug}Get a single project by slug
slugpathrequiredstringBlogs
Blog posts
/api/blogsList published blog posts
tagquerystringpagequeryintegerpageSizequeryinteger/api/blogs/{slug}Get a single blog post by slug
slugpathrequiredstringPostmortems
Project postmortems
/api/projects/{slug}/postmortemList postmortems for a project
slugpathrequiredstring/api/projects/{slug}/postmortem/{postmortemId}Get a single postmortem for a project
slugpathrequiredstringpostmortemIdpathrequiredstringEducation
Education history
/api/educationList all education entries
Suggestions
Leave a suggestion (public)
/api/suggestionsSubmit a suggestion
namestringemailstringmessagestringrequiredMentorship
Apply for mentorship (public)
/api/mentorshipSubmit a mentorship application
namestringrequiredemailstringrequiredbackgroundstringrequiredgoalsstringrequiredexperiencestringCompanies
Work experience / companies (public)
/api/companiesList all work experience entries
Developer API
Request and manage API keys for external developers
/api/dev/applyRequest a new API key
namestringrequiredemailstringrequiredpurposestring | nullAll routes below require a valid admin session cookie obtained via POST /api/auth/signin.
Admin – Projects
Admin: manage projects (auth required)
/api/admin/projects/{id}/postmortemList postmortems for a project (admin)
idpathrequiredstring/api/admin/projects/{id}/postmortemCreate a postmortem for a project
idpathrequiredstringtitlestringrequiredsummarystringrequiredwhatWorkedstringrequiredwhatFailedstringrequiredlessonsstringrequired/api/admin/projects/{id}/postmortem/{postmortemId}Get a single postmortem for a project (admin)
idpathrequiredstringpostmortemIdpathrequiredstring/api/admin/projects/{id}/postmortem/{postmortemId}Update a postmortem
idpathrequiredstringpostmortemIdpathrequiredstringtitlestringsummarystringwhatWorkedstringwhatFailedstringlessonsstring/api/admin/projects/{id}/postmortem/{postmortemId}Delete a postmortem
idpathrequiredstringpostmortemIdpathrequiredstring/api/admin/projectsList all projects (admin)
/api/admin/projectsCreate a project
titlestringrequiredslugstringrequireddescriptionstringrequiredtechStackstring[]requiredliveUrlstringrepoUrlstringstatusstringrequiredfeaturedbooleanyearintegerrequired/api/admin/projects/{id}Update a project
idpathrequiredstring/api/admin/projects/{id}Delete a project
idpathrequiredstringAdmin – Blogs
Admin: manage blog posts (auth required)
/api/admin/blogsList all blog posts including drafts (admin)
/api/admin/blogsCreate a blog post
titlestringrequiredslugstringrequiredexcerptstringrequiredcontentstringrequiredcoverImagestringtagsstring[]publishedboolean/api/admin/blogs/{id}Update a blog post
idpathrequiredstring/api/admin/blogs/{id}Delete a blog post
idpathrequiredstringAdmin – Education
Admin: manage education entries (auth required)
/api/admin/educationList education entries (admin)
/api/admin/educationCreate an education entry
institutionstringrequireddegreestringrequiredfieldstringrequiredstartYearintegerrequiredendYearintegercurrentbooleandescriptionstringorderinteger/api/admin/education/{id}Update an education entry
idpathrequiredstring/api/admin/education/{id}Delete an education entry
idpathrequiredstringAdmin – Suggestions
Admin: read and manage suggestions (auth required)
/api/admin/suggestionsList all suggestions
/api/admin/suggestions/{id}Mark suggestion read/unread
idpathrequiredstringreadboolean/api/admin/suggestions/{id}Delete a suggestion
idpathrequiredstringAdmin – Mentorship
Admin: review mentorship applications (auth required)
/api/admin/mentorshipList all mentorship applications
/api/admin/mentorship/{id}Update application status
idpathrequiredstringstatusstring/api/admin/mentorship/{id}Delete an application
idpathrequiredstringAdmin – Companies
Admin: manage work experience entries (auth required)
/api/admin/companiesList all companies
/api/admin/companiesCreate a company entry
namestringrequiredrolestringrequiredstartDatestringrequiredendDatestring | nullcurrentbooleandescriptionstring | nulllogoUrlstring | nullorderinteger/api/admin/companies/{id}Update a company entry
idpathrequiredstring/api/admin/companies/{id}Delete a company entry
idpathrequiredstringAdmin – API Keys
Admin: manage developer API keys (auth required)
/api/admin/apikeysList all API key requests
/api/admin/apikeys/{id}Update status or rate limit of a key
idpathrequiredstringstatusstringrateLimitinteger/api/admin/apikeys/{id}Delete an API key
idpathrequiredstring