ShowSculptor

API Documentation

Connect your studio to Zapier or your own tools. Available on Essentials and Production Pro.

Authentication

Create a key in Settings → Integrations, then send it with every request:

curl https://app.showsculptor.com/api/public/v1/me \
  -H "Authorization: Bearer ss_your_key"

Base URL: https://app.showsculptor.com/api/public/v1. JSON in and out. Lists return { data, page, limit, has_more }, newest first; use limit (max 100) and page. Errors return { error } with 401, 403, 404, 422 or 500.

Endpoints

GET/meTest the key; returns studio id and name
GET POST/dancersList (search, family_id, external_id, created_since) or create
GET PATCH DELETE/dancers/{id}Fetch, update, or delete a dancer
GET POST/familiesList (search, family_email) or create
GET PATCH DELETE/families/{id}Fetch, update, or delete a family
GET POST/showsList or create shows
GET PATCH DELETE/shows/{id}Fetch, update, or delete a show
GET/shows/{id}/routinesShow order (routines and intermissions)
GET POST/routinesList or create routines
GET PATCH DELETE/routines/{id}Fetch, update, or delete a routine
GET POST/routines/{id}/dancersList dancers in a routine or add one ({ dancer_id })
DELETE/routines/{id}/dancers/{dancerId}Remove a dancer from a routine
GET POST/volunteersList or create volunteers
GET/volunteer-signupsPublic signup form submissions (filter by status)
GET/check-insCheck-in/out records (filter by show_id, dancer_id)
GET/waiversSigned waivers (filter by dancer_id, waiver_id)
GET/costume-ordersCostume orders (filter by routine_id, dancer_id, status)
PATCH/costume-orders/{id}Update status: pending, submitted, on_order, arrived, ready_for_pickup, picked_up
GET/events?type=Recent events (sample data for triggers)
POST/hooksSubscribe: { event, target_url } → { id, signing_secret }
DELETE/hooks/{id}Unsubscribe

Webhooks (instant triggers)

Subscribe with POST /hooks. We POST { id, event, occurred_at, studio_name, …readable fields, ids, sent_at } to your URL, usually within a minute. Verify X-ShowSculptor-Signature — hex HMAC-SHA256 of the raw body using the returned signing_secret. Respond 410 to unsubscribe. Failed deliveries are retried up to 3 times.