Photographer
12 slots, sample photos, one landing page -- fully booked in a weekend.
You offer holiday mini portrait sessions in a park or studio, limited to 12 slots over a Saturday and Sunday. You need a booking page that shows sample photos from last year, lists session details and pricing, and lets clients pick a time slot. Once all 12 slots are taken, the form closes automatically. You also want to see how many slots are filled and who booked.
“I need a booking page for my holiday mini sessions -- only 12 slots”
Upload sample photos as page assets so they can be referenced in the landing page HTML.
POST /api/pages/assets
{
"filename": "mini-session-sample-1.jpg",
"contentType": "image/jpeg",
"sizeBytes": 482000
}
// Response includes uploadUrl (PUT the file there) and publicUrl
// Repeat for mini-session-sample-2.jpg and mini-session-sample-3.jpg→ Three sample photos uploaded to CDN. Each returns a publicUrl like https://assets.sutrena.com/pages/{userId}/assets/{uuid}_mini-session-sample-1.jpg.
Deploy the booking page with photos and analytics in one call
curl -X POST https://sutrena.com/api/launch \
-H "Authorization: Bearer st_live_k7xM9..." \
-H "Content-Type: application/json" \
-d '{
"pages": [
{
"slug": "holiday-mini-sessions",
"title": "Holiday Mini Sessions 2026",
"html": "<div style='"'"'max-width:800px;margin:0 auto;font-family:Georgia,serif;padding:2rem'"'"'><h1>Holiday Mini Sessions</h1><p>20-minute portrait sessions in Riverside Park. $150 per session, 5 edited digital images delivered within one week.</p><div style='"'"'display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:2rem 0'"'"'><img src='"'"'PHOTO_1_URL'"'"' alt='"'"'Family portrait'"'"' style='"'"'width:100%;border-radius:8px'"'"'/><img src='"'"'PHOTO_2_URL'"'"' alt='"'"'Child portrait'"'"' style='"'"'width:100%;border-radius:8px'"'"'/><img src='"'"'PHOTO_3_URL'"'"' alt='"'"'Couple portrait'"'"' style='"'"'width:100%;border-radius:8px'"'"'/></div><h2>Book Your Slot</h2><p>Only 12 slots available.</p><div data-sutrena-form='"'"'FORM_ID'"'"'></div><script src='"'"'https://sutrena.com/embed.js'"'"'></script></div>"
}
],
"analytics": true
}'→ Landing page live with photo grid, pricing, and analytics auto-tracking. The _next response suggests creating a booking form.
Create the booking form with a 12-slot cap in one call
curl -X POST https://sutrena.com/api/pipeline \
-H "Authorization: Bearer st_live_k7xM9..." \
-H "Content-Type: application/json" \
-d '{
"name": "Holiday Mini Session Booking",
"fields": [
{ "name": "name", "label": "Your Name", "type": "text", "required": true },
{ "name": "email", "label": "Email", "type": "email", "required": true },
{ "name": "phone", "label": "Phone Number", "type": "tel", "required": true },
{
"name": "preferred_time",
"label": "Preferred Time Slot",
"type": "select",
"required": true,
"options": [
"Sat 9:00 AM", "Sat 9:30 AM", "Sat 10:00 AM", "Sat 10:30 AM",
"Sat 11:00 AM", "Sat 11:30 AM",
"Sun 9:00 AM", "Sun 9:30 AM", "Sun 10:00 AM", "Sun 10:30 AM",
"Sun 11:00 AM", "Sun 11:30 AM"
]
},
{ "name": "children_count", "label": "Number of Children", "type": "number", "required": false, "min": 0, "max": 5, "placeholder": "0" }
],
"successMessage": "You'"'"'re booked! Check your email for a confirmation with location details and what to wear."
}'→ One call creates the booking form. Query submissions via the API to see slots filled and all bookings. Update the form with maxSubmissions: 12 to cap at 12 slots, then embed the formId in the landing page.
A photographer running mini sessions does not need a full scheduling platform. Sutrena gives you a landing page with your photos and a booking form with a hard cap -- all through the API, no website builder required. Query submissions to see who booked which slot. When the 12 slots fill up, the form closes on its own. Next season, duplicate the form and update the page. Automations can send a booking confirmation email with the session time, park location, and prep instructions — what to wear, when to arrive — the moment a client books.
The form automatically stops accepting submissions once it reaches the maxSubmissions limit of 12. Visitors who try to book after that see a closed message. You do not need to manually disable anything.
Set up an automation that queries submission count and updates the landing page via the update_page step. Or use the form's submission count from the API to display availability. When the form hits maxSubmissions, visitors see the closed message automatically.
Yes. The Pro plan ($29/month) includes 5 custom domains. Add it via POST /api/account/domains with your domain, then create a CNAME record pointing to cname.sutrena.com. SSL is provisioned automatically. Your landing page will be served at your custom domain.
Yes. Set up an automation triggered by form submission to send a confirmation email with the session time, park location, and prep instructions — what to wear, when to arrive, and what to expect.
Sutrena is the web runtime for AI agents. Forms, Pages, Analytics, Webhooks, Automations — all through 67 MCP tools and one REST API. Your agent creates web artifacts, humans interact with them, and your agent gets the data back. Use any one feature or all of them together.
Pages
Deploy HTML instantly
Forms
Collect structured data
Automations
DSL-based pipelines with 14 step types
Analytics
Privacy-first, no cookies
Webhooks
Slack, Discord, Telegram
1. Get a trial key (no auth, no signup)
curl -X POST https://sutrena.com/api/trial2. Create anything — a page, form, automation, or analytics site
# Create a form
curl -X POST https://sutrena.com/api/forms \
-H "Authorization: Bearer st_trial_xxx" \
-H "Content-Type: application/json" \
-d '{"name": "waitlist", "fields": [{"name": "email", "label": "Email", "type": "email", "required": true}]}'
# Or deploy a page
curl -X POST https://sutrena.com/api/pages \
-H "Authorization: Bearer st_trial_xxx" \
-H "Content-Type: application/json" \
-d '{"slug": "index", "title": "My Site", "html": "<h1>Live</h1>"}'