API Reference
All 30 Cloudflare Pages Function endpoints for the Owner Website.
Public Endpoints
/api/contactContact form submission — sends email via Resend to CONTACT_EMAIL
/api/reviewsFetch Google Places reviews from 3 locations (NSW, VIC, QLD). Cached 24 hours.
/api/geolocationGeoIP location detection from Cloudflare headers
Admin - Articles (Cloudflare Access Protected)
/api/admin/articlesList all published MDX articles from GitHub via GraphQL
/api/admin/articles/[slug]/editEdit article content
/api/admin/articles/[slug]/deleteDelete article
Admin - AI Content Generation
/api/admin/ai/generate-contentGenerate full article with Claude AI (streamed via SSE). Auto-commits to Git.
/api/admin/ai/generate-imageGenerate image with Gemini 2.5 Flash. Sanitises prompts. 3 retry attempts.
/api/admin/ai/test-imageTest image generation
/api/admin/generate-excerptGenerate article excerpt with Claude
Admin - File Management
/api/admin/fileList content files
/api/admin/file/createCreate new file
/api/admin/file/saveSave file content
/api/admin/file/deleteDelete file
/api/admin/file/renameRename file
/api/admin/file/rawGet raw file content
/api/admin/file/historyFile revision history
/api/admin/file/restoreRestore previous version
Admin - Draft Workflow
/api/admin/draft/statusCheck draft status (changed files)
/api/admin/draft/saveSave article to cms/draft branch
/api/admin/draft/publishPublish all drafts to main
/api/admin/draft/publish-selectedPublish selected files only
/api/admin/draft/discardDiscard draft changes
Admin - Utilities
/api/admin/auth/meGet current authenticated admin user
/api/admin/searchSearch content files
/api/admin/treeGet file tree structure
/api/admin/imagesList uploaded images
/api/admin/settings/system-promptUpdate AI system prompt
/api/admin/unsplash/searchSearch Unsplash images
/api/admin/unsplash/downloadDownload Unsplash image