API Documentation
Lumiora API Reference
Build mobile apps and integrations with our REST API and Supabase SDK
Authentication
All authenticated endpoints require a valid Supabase access token
Authorization: Bearer YOUR_ACCESS_TOKENObtain access tokens via Supabase authentication. For mobile apps, use the @supabase/supabase-js library to sign in and get tokens automatically.
Endpoints
POST
/api/stripe/checkoutAuth RequiredCreate a Stripe checkout session for subscription or per-event payment
Request Body
{
"priceId": "string (required) - Stripe price ID",
"planType": "string (required) - One of: per_event, starter_monthly, starter_annual, pro_monthly, pro_annual"
}Response
{
"url": "string - Stripe checkout URL to redirect user"
}POST
/api/stripe/portalAuth RequiredCreate a Stripe customer portal session to manage subscription
Request Body
No request body required
Response
{
"url": "string - Stripe portal URL to redirect user"
}GET
/api/eventsAuth RequiredList all events for the authenticated user
Response
{
"events": "Array<Event> - Array of event objects"
}POST
/api/eventsAuth RequiredCreate a new event
Request Body
{
"name": "string (required) - Event name",
"date": "string (optional) - Event date (ISO 8601)",
"location": "string (optional) - Event location"
}Response
{
"event": "Event - Created event object"
}GET
/api/events/:idAuth RequiredGet event details by ID
Response
{
"event": "Event - Event object with full details"
}PATCH
/api/events/:idAuth RequiredUpdate event details
Request Body
{
"name": "string (optional)",
"date": "string (optional)",
"location": "string (optional)",
"status": "string (optional) - One of: draft, active, completed, archived",
"gallery_public": "boolean (optional)",
"config": "EventConfig (optional) - Event configuration object"
}Response
{
"event": "Event - Updated event object"
}DELETE
/api/events/:idAuth RequiredDelete an event
Response
{
"success": "boolean"
}GET
/api/events/:id/galleryAuth RequiredList all gallery files for an event with signed URLs
Response
{
"files": "Array<GalleryFile> - Array of file objects with url and thumbnailUrl"
}GET
/api/gallery/:slugPublicGet public gallery by slug (no authentication required)
Response
{
"event": "Event - Basic event info",
"files": "Array<GalleryFile> - Array of gallery files with signed URLs"
}Ready to build?
Get your API keys and start integrating Lumiora into your mobile app today.