A dance class registration form for a busy studio desk

Updated 2026-10-30

Term starts, and the inbox fills with messages like "can my daughter join ballet on Tuesday?" I would rather send one link and get every answer in the same shape. Then I can build class lists without a hundred replies.

About the dancer

Name and birth date place a dancer in the right age group. A parent or guardian line covers dancers under 18, and an email for class news reaches the right person.

About the dancing

Styles, past experience, days and time of day. These let you match people to classes that exist and spot demand for classes that do not.

About the practical side

Dancewear size, interest in the end-of-term show, injuries and allergies, and a photo permission box. A last box accepts the studio rules.

Who fills it and who reads it

Adult dancers and parents fill it. The studio owner or front desk reads the rows. See forms for gyms and fitness studios and forms for tutors.

A parent's AI might ask "Which styles would your dancer like to try?" Then "Which days could work?" Then "What size dancewear do they need?" It shows all answers and sends only after a yes. See agent-fillable forms.

One tip

Close the form on the registration deadline, and set a cap if a class is small. Other studio formats are in the yoga class registration form and the swim lesson registration form.

Questions

How do I build class lists from the answers?

Download the CSV and filter dance_styles, then sort by dancer_birth_date for age groups. Check class_days and class_time_slot to find a slot that suits the most dancers.

Can I take payment on the form?

No. The form collects details only. It takes no card data. Send fees and payment links yourself, in the way your studio already works.

How should parents handle photo permission?

A checkbox asks if the studio may share photos or videos. Treat an unticked box as a no, and read the media_ok column before you post anything.

Try the form

Live demo ยท nothing is saved

Join a dance class

Tell us who is dancing and what they would like to try. Parents or guardians fill this in for dancers under 18.

We use it to place dancers in the right age group.

Needed for dancers under 18.

Which styles would you like to try? (required)
How much dancing have you done?
Which days could work?
Which time of day suits you?
Dancewear size
Would you like to join the end-of-term show?
The studio may share photos or videos of class
I accept the studio rules (required)

Or paste the JSON

Give this to your AI. It needs the AI Form API MCP server or an API key. It makes the form and sends you the link.

text
Create this form with the AI Form API create_form tool (or POST https://aiformapi.com/v1/forms with my API key). Then reply with the public_url.

{
  "title": "Join a dance class",
  "description": "Tell us who is dancing and what they would like to try. Parents or guardians fill this in for dancers under 18.",
  "fields": [
    {
      "id": "dancer_name",
      "label": "Dancer's name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "dancer_birth_date",
      "label": "Dancer's date of birth",
      "type": "date",
      "required": true,
      "help": "We use it to place dancers in the right age group."
    },
    {
      "id": "guardian_name",
      "label": "Parent or guardian name",
      "type": "short_text",
      "help": "Needed for dancers under 18.",
      "max_length": 150
    },
    {
      "id": "contact_email",
      "label": "Email for class news",
      "type": "email",
      "required": true
    },
    {
      "id": "contact_phone",
      "label": "Phone",
      "type": "phone"
    },
    {
      "id": "dance_styles",
      "label": "Which styles would you like to try?",
      "type": "multi_choice",
      "required": true,
      "options": [
        "Ballet",
        "Jazz",
        "Contemporary",
        "Hip hop",
        "Tap",
        "Ballroom",
        "Salsa",
        "Musical theater"
      ],
      "min": 1
    },
    {
      "id": "dance_experience",
      "label": "How much dancing have you done?",
      "type": "single_choice",
      "options": [
        "None yet",
        "A little",
        "A few years",
        "Plenty"
      ]
    },
    {
      "id": "class_days",
      "label": "Which days could work?",
      "type": "multi_choice",
      "options": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday",
        "Saturday",
        "Sunday"
      ]
    },
    {
      "id": "class_time_slot",
      "label": "Which time of day suits you?",
      "type": "single_choice",
      "options": [
        "After school",
        "Evening",
        "Weekend morning",
        "Weekend afternoon"
      ]
    },
    {
      "id": "dancewear_size",
      "label": "Dancewear size",
      "type": "single_choice",
      "options": [
        "Child small",
        "Child medium",
        "Child large",
        "Adult small",
        "Adult medium",
        "Adult large"
      ]
    },
    {
      "id": "show_interest",
      "label": "Would you like to join the end-of-term show?",
      "type": "single_choice",
      "options": [
        "Yes",
        "Maybe",
        "No"
      ]
    },
    {
      "id": "needs_to_know",
      "label": "Injuries, allergies or needs we should know about",
      "type": "short_text",
      "max_length": 400
    },
    {
      "id": "media_ok",
      "label": "The studio may share photos or videos of class",
      "type": "checkbox"
    },
    {
      "id": "studio_rules_ack",
      "label": "I accept the studio rules",
      "type": "checkbox",
      "required": true
    }
  ]
}

Or call the API

bash
curl -X POST https://aiformapi.com/v1/forms \
  -H "Authorization: Bearer $AIFORMAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Join a dance class","description":"Tell us who is dancing and what they would like to try. Parents or guardians fill this in for dancers under 18.","fields":[{"id":"dancer_name","label":"Dancer'\''s name","type":"short_text","required":true,"max_length":150},{"id":"dancer_birth_date","label":"Dancer'\''s date of birth","type":"date","required":true,"help":"We use it to place dancers in the right age group."},{"id":"guardian_name","label":"Parent or guardian name","type":"short_text","help":"Needed for dancers under 18.","max_length":150},{"id":"contact_email","label":"Email for class news","type":"email","required":true},{"id":"contact_phone","label":"Phone","type":"phone"},{"id":"dance_styles","label":"Which styles would you like to try?","type":"multi_choice","required":true,"options":["Ballet","Jazz","Contemporary","Hip hop","Tap","Ballroom","Salsa","Musical theater"],"min":1},{"id":"dance_experience","label":"How much dancing have you done?","type":"single_choice","options":["None yet","A little","A few years","Plenty"]},{"id":"class_days","label":"Which days could work?","type":"multi_choice","options":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]},{"id":"class_time_slot","label":"Which time of day suits you?","type":"single_choice","options":["After school","Evening","Weekend morning","Weekend afternoon"]},{"id":"dancewear_size","label":"Dancewear size","type":"single_choice","options":["Child small","Child medium","Child large","Adult small","Adult medium","Adult large"]},{"id":"show_interest","label":"Would you like to join the end-of-term show?","type":"single_choice","options":["Yes","Maybe","No"]},{"id":"needs_to_know","label":"Injuries, allergies or needs we should know about","type":"short_text","max_length":400},{"id":"media_ok","label":"The studio may share photos or videos of class","type":"checkbox"},{"id":"studio_rules_ack","label":"I accept the studio rules","type":"checkbox","required":true}]}'

JSON definition

json
{
  "title": "Join a dance class",
  "description": "Tell us who is dancing and what they would like to try. Parents or guardians fill this in for dancers under 18.",
  "fields": [
    {
      "id": "dancer_name",
      "label": "Dancer's name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "dancer_birth_date",
      "label": "Dancer's date of birth",
      "type": "date",
      "required": true,
      "help": "We use it to place dancers in the right age group."
    },
    {
      "id": "guardian_name",
      "label": "Parent or guardian name",
      "type": "short_text",
      "help": "Needed for dancers under 18.",
      "max_length": 150
    },
    {
      "id": "contact_email",
      "label": "Email for class news",
      "type": "email",
      "required": true
    },
    {
      "id": "contact_phone",
      "label": "Phone",
      "type": "phone"
    },
    {
      "id": "dance_styles",
      "label": "Which styles would you like to try?",
      "type": "multi_choice",
      "required": true,
      "options": [
        "Ballet",
        "Jazz",
        "Contemporary",
        "Hip hop",
        "Tap",
        "Ballroom",
        "Salsa",
        "Musical theater"
      ],
      "min": 1
    },
    {
      "id": "dance_experience",
      "label": "How much dancing have you done?",
      "type": "single_choice",
      "options": [
        "None yet",
        "A little",
        "A few years",
        "Plenty"
      ]
    },
    {
      "id": "class_days",
      "label": "Which days could work?",
      "type": "multi_choice",
      "options": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday",
        "Saturday",
        "Sunday"
      ]
    },
    {
      "id": "class_time_slot",
      "label": "Which time of day suits you?",
      "type": "single_choice",
      "options": [
        "After school",
        "Evening",
        "Weekend morning",
        "Weekend afternoon"
      ]
    },
    {
      "id": "dancewear_size",
      "label": "Dancewear size",
      "type": "single_choice",
      "options": [
        "Child small",
        "Child medium",
        "Child large",
        "Adult small",
        "Adult medium",
        "Adult large"
      ]
    },
    {
      "id": "show_interest",
      "label": "Would you like to join the end-of-term show?",
      "type": "single_choice",
      "options": [
        "Yes",
        "Maybe",
        "No"
      ]
    },
    {
      "id": "needs_to_know",
      "label": "Injuries, allergies or needs we should know about",
      "type": "short_text",
      "max_length": 400
    },
    {
      "id": "media_ok",
      "label": "The studio may share photos or videos of class",
      "type": "checkbox"
    },
    {
      "id": "studio_rules_ack",
      "label": "I accept the studio rules",
      "type": "checkbox",
      "required": true
    }
  ]
}